Build festive lighting for the holidays with balena, Christmas lights 2020

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 :+1:

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! :joy: 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 :slight_smile:

A quick starter guide on how to use xlights? Iā€™ll take a crack at it. No promises on how good it will be.:grin:

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.

1 Like

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!

1 Like

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ā€¦

1 Like

@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?

1 Like

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. :thinking:

1 Like

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!

2 Likes

@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 :slight_smile:

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? :stuck_out_tongue: