I just made this. I started at the bottom using a typical 30 led/m strip wound around a short piece of pipe and once I reached the bulbous shape I switched to fairy lights and continued to the top. The whole string of fairy lights was running fine when I started, but by the time I finished laying lights and glass beads and had cut off the remaining 2/3 of the string, I turned it back on the fairy lights were flickering. It looks like it could be voltage drop, but since the were working in the beginning and are now a shorter string, I’m wondering if I could have scratched the enameled wires when I was stuffing the string down into each cavity and have some sort of shorting going on. Can anyone confirm that a mid length short could be the cause? Happen to know which lines being crossed would cause this particular effect, or if it’s possible to confirm integrity of the lines with a voltage meter?
If you look carefully, you can see that the bottom section the lights are not flickering. It looks to me like they start misbehaving somewhere between the second and third bulb from the bottom.
Try reducing brightness. I know these lights aren’t designed to run at 100% across the whole string. If that helps it is related to voltage drop, though it may not be the root cause.
My guess is that it is signal reflections, since the data wire is essentially a long bus wire. High speed signals travel down to the end and reflect back. I’ve wondered how they handled this in their design of these. It could be the last led has some transmission line termination circuitry. Or possibly they have a softer signal edge.
Try adding a 1k or so resistor between PB and the data input wire. This will soften the data signals and should help with reflections. You could use a potentiometer too, dial in an ideal resistance, then let us know the magic number!
If this is WS2812b LEDs each one is a re-transmitter for the Data Signal.
The longest travel time/distance is a longest wire between two sequential LEDs.
Adding 1K resistor between PB and first LED will affect only this connection
and will not do anything for the following LEDs.
BTW, why resistor value is 1K?
For the proper Serial Termination the resistor value should/must match the
impedance (not a DC resistance) for the transmission line. For the bare wire
the impedance is around 100-120 ohm. Since the internal output resistance
is around 30-50 ohm the correct value for the termination resistor should
be around 60-70 ohm. (Rtermination = Impedance - Rinternal).
Since first sets of LEDs are healthy adding the resistor between PB and
first LED will not do anything good. The problem in this case is not
related to the reflections. Something else is going on.
My guess is these are the new bus-addressable LEDs. I should have asked! But I’ve seen the same on my bus-addressable LEDs in certain conditions. They are ws2812 compatible but have 3 pins, no data output. They have an address programmed internally. Your can find more in this forum post.
Yes if you terminate a transmission line (to gnd?), but that would also cut the voltage in half if around 100 ohms (PB driver has 100 ohm) right?
1k on the PB output will increase slew rate which can reduce reflections magnitude. Also 1k in known to work for 2812, though thinking about it the fan out for this many might need less.
Thank you for the link to the thread.
I was not aware about existence of LEDs with internally programmed address.
I am sorry, I did not have a time to read the entire thread and it could be a good
use case for these LEDs but I can see only a problems:
- During the manufacture each LED must be personalized with somewhat
unique address. This personalization is extra manufacture step will add a
cost for programming and testing. Number of addresses is not infinite and
will repeat - not really a 100% unique identifier.
- For the distribution this is extra headache to make sure each set does not
have LEDs with the same address. Or they are selling giant box of LEDs
with the same address?
- Strip/Matrix/Ring manufacture also must be sure there is no two (or more)
LEDs with the same address.
From the electrical point of view - multidrop (bussed) wiring for the Data/Clock
signals is a HUGE problem. Yes, because this is the easiest way to create
terrible reflections and easiest way to compromise Signal Integrity.
- Y-splits are NO GO all together!
- Daisy-chained line ABSOLUTELY must be terminated at the end point.
- Driver must be very strong in order to drive high capacity line.
So, what is an advantage for these type of LEDs?
I don’t see any and personally NEVER will use them.
Wiring for LEDs with DI-DO pins is very electrically friendly because
each connection for the Data Signals is always point-to-point.
Because normally wires between LEDs is usually within few inches
they are “electrically short” and therefore Serial Termination is not
required (but sure, always desired).
No, I was talking about Serial Termination at the Source.
Adding the resistor to the GND is a Parallel Termination and must be
applied at the End Point (at the Load).
The Serial Termination Resistor must be as close as possible to the Driver Output.
Only in this case it will become part of the Internal Driver Resistance.
Reflection(s) will be entirely suppressed if this combine Internal Driver
Resistance is equal to the line impedance. But the termination is only
necessary for the “electrically long” (travel time is longer than rise/fall time) lines.
Yes, at the Source Point at the very beginning (rise/fall edges) Voltage will
be seen as a Half Voltage. But at the Load Point because of the Reflection
Voltage will double. Therefore Load will see nice and clean front with a
full voltage swing. Who cares what happens at the Source Point?
Yes, you will see on a Scope a very nice “voltage step” with double travel time duration.
1K resistor definitely will increase slew rate.
But the reflection magnitude will be reduced only because the increased slew rate
will make line “electrically short”. Yes, this trick is working but this is not a correct
way to deal with reflections.
Don’t even think about applying this trick to the Bussed (multidrop) lines.
Bussed lines must be terminated at the end with Parallel Termination tehnique.
A little followup. I didn’t have any luck by adding the resistor and I confirmed that it wasn’t a voltage drop issue. (It measured 5.34v at the end of the line and injecting additional power did nothing as one would expect). So, I decided to repair the light. As soon as I removed the flickering portion from the lamp, it returned to working normally, but rather than using the leftover of that roll, I replaced it with a portion of a brand new roll of the same type (confirmed to be working normally). Once installed, they displayed the same flickering behavior. Not easily dissuaded, I tried again, this time with the kind of WS2812 fairy light where you can see the data line switch from DI to DO on either side of the chip and, it worked just fine. I can’t comment on all the fascinating issues being discussed by @wizard and @Vitaliy that were flying over my head, but now I’m wondering if it might have to do with being installed in series after about the meter of traditional 12mm 30LED/meter ws2812 tape. Maybe whatever signal amplification or shaping that was done by the first portion of the strip made it incompatible with the second portion and induced the flicker? …just another data point to consider on these curious lights.
It does sound like you have the 3 pin bus addressable LEDs then, can you confirm?
Very interesting, indeed! It might be that the ws2812 output driver wasn’t up for the task.
Glad you have it working, though I would say that 5.34V is a little on the high side, what are you using for power?
I agree, WS2812 output is too weak to drive the bus (multiple loads).
In this case using the IO Expander should take care about this problem.