WS2812B....ish? Fairy Icicle lights

I came across something really strange today.
I ordered these fairy icicle lights off Amazon to use with my WLED/xlights display and I figured they would be just like the low density curtain matrix and the waterfall tree by the same company. Aka fixed address.

Well to my surprise they seem to be addressable. But I am not sure how.

They have a main 3 wire lead that runs horizontal across the top along with an additional 2 wire power injection tied from the lead end to the far end. Then they have repeating segmented drops of 6-4-3 for the icicles. The icicle drops are 3 wire and do not have any wires coming back out of the bottom ends of the icicles to run data back up to the next drop, but somehow they are addressable??

How I know this: I took a cheap string of uncoated BTF fairy lights and hooked them to the Esp, from the end of that string I connected the icicles and set the length to 51 LEDs and all 50 of the BTF string lit along with 1 LED on the icicles. Set to 60… All 50 BTF light and 10 icicles…

Remove the BTF string and connect just the icicles and Bam! 60 LEDs on the icicles light.

I wonder how in the world they are setting the addresses w/out data running from the end of each drop to the beginning of the next drop?

P.S. Just to make sure I was not crazy I did the above tests 2x to be sure I was not crazy.

Need a little more research to figure this out.

What happens with Sweep or Sinelon effects, can you actually address a single LED by itself in the "drop string:?

It’s possible the drop LEDs are hard coded addresses, in which case if you swap the first and last drop string, you should see your effects go out of wack. If you do some presets lighting only LED 1-3 and 57-59 (for eg.) you should be able to prove/disprove this theory.

Hmm not 100% sure I understand your idea. Here is what I have tried though.

I connected the string to the gpio and lit 1: first pixel lights
Switched on 10: first 10 pixels light (drops are 6,4,3 so first 2 drops lit)

Connected a 50 ct string of lights in front of the icicles to see if the icicles would light with the same 1-50 addresses as that string and they didn’t. : only the 50ct string lit.
Switched on 51: first string and first pixel of icicles lights.
Switched on 60: first string of 50 light + first 2 drops of icicles (10 pixels) lit

  • I would think that if they were fixed address the first 50 icicles would have lit along with the 50 pixels in the addressable string that I put in front of the icicles?

I can’t move the far end to the beginning as it’s one string of 260 and I’m not going to cut them apart.

I did just set a segment that corresponded to the first 10 icicles and turned it on and also reversed it. the first 10 came on and when reversed it moved to the last 10.

“I figured they would be just like the low density [curtain matrix and the waterfall tree by the same company. Aka fixed address. Well to my surprise they seem to be addressable. But I am not sure how.”

Let me understand your usage. By “addressable” do you mean “addressable serially” via daisy chaining like the WS2811 etc? And by “fixed address” do you mean addressable in parallel (feeding the same data to all pixels, and each pixel chooses the pre-programmed bytes) like some fairy lights do?

If so, you cannot determine that by inserting serially addressable pixels between them and the controller. A string of 50 serially addressable pixels will “eat” the first 50 outputs (150 bytes of RGB) before it sends the 51st to the following icicles. The 51st RGB sequence will appear to the icicles exactly as if it were the first, whether it’s going to serial or parallel addressable pixels.

The only way to tell is (1) to cut up the icicles (which you don’t want to do, understandably), or (2) to add more pixels after the end of the icicles. The icicles probably do not have an output connector, tho, right?

The way the parallel addressable (fixed-address) pixels work is that each pixel “counts” how many RGB packets to ignore after a reset timeout, before taking the next RGB packet. The first one skips 0 packets, the second skips one packet, etc. But if they are placed after a serial addressable string, the icicle pixels don’t see the first 50 packets at all, and are not counting them. So they will naturally start at the address after the last in the previous serial string.

My guess is that the icicles are indeed parallel addressable (fixed-address), so that they don’t need to bother with a forth wire in each drop to bring back the data out of the last pixel in the drop.

If I’m not understanding your question, feel free to clarify.