Ok so if I understand correctly, there are 8 channels on the FC and each channel can handle 170 pixels. So if I use 8, 50ct strands that should be 1200 pixels (Message Data Size), correct?
If you have 8 strands of 50 LEDs (one for each Fadecandy channel, youād need 8 * 50 * 3 = 1200 for message data size, yep
Youād have to update server.json
as well to add the extra channels, probably like this:
[ 1, 0, 0, 50, "grb" ],
[ 1, 50, 64, 50, "grb" ],
[ 1, 100, 128, 50, "grb" ],
[ 1, 150, 192, 50, "grb" ],
[ 1, 200, 256, 50, "grb" ],
[ 1, 250, 320, 50, "grb" ],
[ 1, 300, 384, 50, "grb" ],
[ 1, 350, 448, 50, "grb" ]
Sweet!!! Iāll update it now and start playing with my setup. Yāall are awesome!!! This makes me want to go to college and learn more about programming!!! Thanks so much.
On the last line, would it be 350 since the last one was 300?
Yep, good spot, it would be 350 not 450, I will edit my post!
Yay Iām smart! Thanks again. Are you going to see if xlights can replace Gladiator? If so I look forward to seeing it. Iām not too good with overhauling, just tweaking here and there. I wish I could be more help with stuff like this.
I will take a look at it but Iām not sure when I can get to it. What weāll need to do is update the blog post and give everyone a quick start guide for xLights. You could definitely help with that side of things if you are interested
A quick starter guide on how to use xlights? Iāll take a crack at it. No promises on how good it will be.
ok so after looking around, there is just too much info to post. so i am posting the main places to find the info needed to use xLights.
In-depth xLights for Beginners
https://xlights.org/quick-start-guide/
There are lots of YouTube videos that are easy to follow and get the hang of using xLights.
Official xLights Support Group on Facebook is the best for support.
Hi Earl, thanks for the pointers, they are certainly helpful. We have everything we need now and will append the xLights quick start guide to our work queue.
With my āstockā project working - Iām going to give this a shot. Installing xLights on my MBP now, and will make the required changes above to server.json to update the OPC channel. Iām assuming I donāt need to bother shutting down the āunusedā containers, for now (Glediator and ArtNet) ā will just ensure the Output stream is Off in Glediator.
Will report back how it goes!
EUREKA!!
That was all quite straight forward. After the required edit to the fadecandy server.json, I publishing the app with the balena cli. Then in xLights (currently running on my MBP) ā on the Controllers tab, I was able to āAdd Ethernetā and provided the IP address of the Pi. At first, I thought Iād have to add the TCP port number (e.g. :7890) onto the IP address when defining the controller - but you donāt. Removed the port, and it started working - so Iām guessing thatās implied / inferred as the default OPC port? Also made the required change to Message Data Size (250 LEDs = 750 Message Data Size).
Then, it was off to Tools -> Test ā and selected my controller / channels, and an output pattern, and - voila! Iām going to digest some of the āgetting started w/ xLightsā content, and keep track of which one(s) I like best.
Since xLights talks OPC directly to fcserver ā that means it would replace both the Glediator and
ArtNet containers, correct? I havenāt looked at the Linux version yet - but weād need that install ācontainerizedā ā and built for the right architecture, yeah? Hmmm - with about 30 seconds of Googling, it seems a better solution might be Falcon Player (FPP) - executing sequences created / exported from xLights? I guess that violates the āeverything on the Piā guiding principle, though.
Deeper down the rabbit holeā¦
@chrisys Question: With the change to the FadeCandy server.json file to OPC Channel 1 ā this, of course, makes causes the ArtNet server to no longer connect to FadeCandy.
So - I jumped into the ArtNet folder - and it looks like changes to artnet-server_fc.py are probably in order.
I tried to make a similar change to the one from fadecandyās server.json file:
gridarray = [ [1],
[1, 0, 49, 50, 99, 100, 149, 150, 199, 200, 249],
[1, 1, 48, 51, 98, 101, 148, 151, 198, 201, 248],
[1, 2, 47, 52, 97, 102, 147, 152, 197, 202, 247],
[1, 3, 46, 53, 96, 103, 146, 153, 196, 203, 246],
[1, 4, 45, 54, 95, 104, 145, 154, 195, 204, 245],
[1, 5, 44, 55, 94, 105, 144, 155, 194, 205, 244],
[1, 6, 43, 56, 93, 106, 143, 156, 193, 206, 243],
[1, 7, 42, 57, 92, 107, 142, 157, 192, 207, 242],
[1, 8, 41, 58, 91, 108, 141, 158, 191, 208, 241],
[1, 9, 40, 59, 90, 109, 140, 159, 190, 209, 240],
[1, 10, 39, 60, 89, 110, 139, 160, 189, 210, 239],
[1, 11, 38, 61, 88, 111, 138, 161, 188, 211, 238],
[1, 12, 37, 62, 87, 112, 137, 162, 187, 212, 237],
[1, 13, 36, 63, 86, 113, 136, 163, 186, 213, 236],
[1, 14, 35, 64, 85, 114, 135, 164, 185, 214, 235],
[1, 15, 34, 65, 84, 115, 134, 165, 184, 215, 234],
[1, 16, 33, 66, 83, 116, 133, 166, 183, 216, 233],
[1, 17, 32, 67, 82, 117, 132, 167, 182, 217, 232],
[1, 18, 31, 68, 81, 118, 131, 168, 181, 218, 231],
[1, 19, 30, 69, 80, 119, 130, 169, 180, 219, 230],
[1, 20, 29, 70, 79, 120, 129, 170, 179, 220, 229],
[1, 21, 28, 71, 78, 121, 128, 171, 178, 221, 228],
[1, 22, 27, 72, 77, 122, 127, 172, 177, 222, 227],
[1, 23, 26, 73, 76, 123, 126, 173, 176, 223, 226],
[1, 24, 25, 74, 75, 124, 125, 174, 175, 224, 225]]
But ā it didnāt seem to work. Maybe that first [0] in the map object didnāt need to be changed. Or ā Iām off the mark completely. :). Wanted to test some of my crontab changes for the timer - so needed to re-establish the ābrokenā path of Glediator -> ArtNet -> FadeCandy.
Iāll do a little digging into the ArtNet configuration, and see if I can self-serve on this request.
On another similar-but-different front - If I can figure out how to record some sequences in xLights, Iām going to experiment with Falcon Pi Player - which might be an interesting and simple container to run alongside FadeCandy.
@SnoWake you probably want to change the usage of put_pixels
; add the channel to the client.put_pixels(self.pixels)
line as defined here. So it would become client.put_pixels(self.pixels, 1)
. Maybe that will do the trick?
This is spot on. We could replace both of these. What about a setup that uses Falcon Player, so for folks that just want to use prebuilt sequences (like the few I provided for Glediator) they wouldnāt need to do anything more other than pick the one they like with an env var.
I like the idea of having everything on the Pi but xLights is super complex so maybe itās fair to ask that people install that on their own machines and export the sequences? I wonder how easy we can make the workflow to get the sequences on the Pi. Alternatively we could install xLights in another container alongside Falcon Player but it seems a bit strange to use that app over VNC when it could be installed natively.
Yeah - I like the Falcon Player idea and will pursue that path. xLights has itās own learning curve ā but thereās a wealth of information available. Looking to first create a model for our āMega-Treeā ā and then create some simple sequences that can be saved/exported to Falcon Player. This opens up a lot of possibilities - while allowing the project to retain that āeverything on the piā design principle.
Whoops - I missed the reply above about the ArtNet config! Thanks for the guidance: Iāll try this momentarily and report back.
Only a year later - but confirming that the suggested change by @chrisys above (adding the channel to put_pixels) did, indeed, do the trick.
I also successfully extended the fadecandy grid and pixel count, from 250 to 350, and added two additional strands to my rig. Dusting off all kinds of brain cells - now to see if I can get back to where I was with XLights - and eventually, on to Falcon!
@SnoWake keep me posted on your findings. I have a few other things I need to get done before Xmas but do want to continue the tradition of improving it a little each year so will make some time for this over the next couple of weeks and want to make sure weāre not duplicating efforts
Happy to also give you write access on the repo if necessary so you can merge changes without waiting for me.
Is it that time of year again?