1
\$\begingroup\$

I have a WS2812B[PDF] LED strip which I want to control with the PWM0 pin (GPIO18) of my Raspberry Pi.
Multiple sources highly recommend to insert a 330-470𝛀 resistor in between the data pin of the controller and the DIN of the first LED.
It looks something like this:

schematic

simulate this circuit – Schematic created using CircuitLab

Apparently the resistor is there “for impedance matching between the [Raspberry Pi's] low-impedance output and the WS2812B's high-impedance input. When using long wires, they act like transmission lines, causing reflections, resulting in unwanted oscillations, ringing and noise.” quote This could damage the IC, cause flickering in the LED or something like that.

oscilloscope image with and without a 220 ohm resistorimage source

But I'm currently missing such a resistor, so my first thought was that maybe a ferrite bead could as well do the job. (Therefore the question.)

The LED strip without any resistor or ferrite bead looks fine to me and I also don't own an oscilloscope, so I cannot verify if a ferrite bead would work equally well.

I also lack the skills in electronics and electrical engineering to be confident enough that I'm not talking complete nonsense here. If somebody could help me out with that, I would appreciate it. Thank you very much in advance!

\$\endgroup\$
11
  • \$\begingroup\$ Very possibly so. How long is the signal line from the Rpi to the first WS2812B? \$\endgroup\$ – Pete W Jan 12 at 20:36
  • \$\begingroup\$ @PeteW about 2m to 4m, I'm not sure how the final wiring will look like. \$\endgroup\$ – Niklas E. Jan 12 at 20:38
  • \$\begingroup\$ Ok, that's certainly on the long side for driving from a bare pin of an IC (other than IC's meant to drive lines). I think you'll get more effective filtering with a resistor. Typical ferrite gives max 600ohm at 100MHz, much less at e.g. 10Mhz \$\endgroup\$ – Pete W Jan 12 at 20:38
  • 1
    \$\begingroup\$ The placement of the resistor or ferrite bead is also important. Will it be on Raspberry Pi output side of the wire for "Source" termination, or on the WS2812B input side of the wire for "End" termination? Chances are, if it does not work without a resistor, it does not work with a ferrite bead. \$\endgroup\$ – Justme Jan 12 at 21:14
  • 1
    \$\begingroup\$ Yes so the prudent solution is use controlled impedance wires to the strip. Such as twisted pair 150 Ohms +/- 50 \$\endgroup\$ – Tony Stewart EE75 Jan 12 at 21:31
1
\$\begingroup\$

It's hard to say since we don't know what the input to the WS2812B is, but the datasheet does say that the digital input should be between -0.5V and 5.5V (which typically means there is diodes on the output and the input current is 1uA, which typically means that it is a FET not a BJT transistor input.

If the signal were to exceed 5.5V it would turn the protection diode on (but you wouldn't want to burn out the diode so keep it below 5.5V).

Either way its best to avoid ringing and wouldn't really matter how the ringing is stopped, just as long as it is attenuated and the rise time is not attenuated too much.

If people are touching the wire it might be good to put a TVS diode on the input so the first LED's input's aren't blown out.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.