1
\$\begingroup\$

I am somewhat new to electronics and I am encountering an issue with a WS2812B LED Strip and noise from other PWM data lines near by causing the LED strip to flicker. I am using an NodeMCU ESP8266MOD board which has 3.3v data lines, and I have a 22 ohm resister in series with the LED strip data line.

What might you suggest I try to isolate the noise?

Thanks for any help!

\$\endgroup\$
3
  • 2
    \$\begingroup\$ Please include images of your schematic and PCB design. It's hard to answer without those. \$\endgroup\$
    – Null
    Commented Sep 17, 2021 at 15:08
  • \$\begingroup\$ And please show how the WS2812B are powered (is it from 3.3V or 5V?) \$\endgroup\$
    – rdtsc
    Commented Sep 17, 2021 at 15:15
  • \$\begingroup\$ I'm powering the WS2812B with 5V, the ESP8266 has a 3.3v regulator built in that I'm providing the 5V signal. As far as board design goes, I am doing point to point wiring with a PCB prototype board. \$\endgroup\$
    – GRMrGecko
    Commented Sep 17, 2021 at 19:36

2 Answers 2

1
\$\begingroup\$

The WS2812B does not work with a 3.3V data signal if it is powered from 5V.

The datasheet says the data signal must be at least 0.7*Vdd = 3.5V to be within specification. Another way to test is to lower the supply voltage down near 4.5V which is the minimum acceptable supply voltage for it.

The only reasonable solution is to just convert the 3.3V signal to the 5V supply voltage level.

\$\endgroup\$
5
  • \$\begingroup\$ I'll see about adding a transistor to bring the 3.3v line from the ESP8266 board to a 5V line and update you. May be a week before I get to that. \$\endgroup\$
    – GRMrGecko
    Commented Sep 17, 2021 at 19:39
  • \$\begingroup\$ or just feed the strip though a dioide to drop it to within spec range, operating at about 4.5v instead of 5v. Also might try a different ESP8266; it's borderline capable and some of my nodeMCUs will work fine, and some will get interference, so it pays to experiment. \$\endgroup\$
    – dandavis
    Commented Sep 17, 2021 at 21:11
  • \$\begingroup\$ @GRMrGecko A transistor for level conversion of 800 Kbps data stream? Unlikely to work. Search this site for solutions, level conversion for WS2812b has been asked a number of times already from different viewpoints. \$\endgroup\$
    – Justme
    Commented Sep 18, 2021 at 0:30
  • \$\begingroup\$ I'm reading through happyinmotion.com/?p=1247 after searching. Thanks for the feedback, I will mark this question as answered as this sounds like my issue. I wasn't exactly sure what to search for when I originally had the issue, and found posts that never got me to my answer. Maybe this question would help others searching? \$\endgroup\$
    – GRMrGecko
    Commented Sep 18, 2021 at 16:33
  • \$\begingroup\$ @Justme So I got myself a 74HCT245 hooked it up and I'm receiving the same results. I have an RGB LED strip and the WS2812B LED strip and I'm trying to control them both using the same ESP-12F controller. Based on experiments, it happens no matter which RGB channel is on for the PWM based strip, and only happens when they reach a range of duty cycles. Fully on/fully off does not cause interference. What I'm wondering now is if the interference is not related to an electrical one, but instead is related to the fact the ESP-12F uses software PWM signals and not hardware. \$\endgroup\$
    – GRMrGecko
    Commented Sep 25, 2021 at 15:06
0
\$\begingroup\$

I switched to using an Arduino Pro Mini 5V for the control of both lights and using serial from ESP2866MOD to control the Arduino Pro Mini to fix my issue. I got myself an oscilloscope so I can see the issue first hand, and my thought was correct. The software PWM interrupts are causing a timing issue on the WS2812B lines, as you can see in the screen capture in Yellow, PWM signal in purple.

WS2812B timing issue

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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