0

I'm trying to power about 150 WS2812 LEDs from my ESP8266 NodeMCU board (running NeoPixel Arduino code). The first few LEDs are white, but about half way down, the LEDs turn yellow, then they turn orange, and at the end they're basically red.

Could this be caused because of the power draw? The strip itself is currently drawing about 900 mAh, and I am powering the ESP8266 with a 1.5A 5v supply. The LEDs are running off 3.3v directly from the ESP8266.

Also, after like 2 minutes, the LEDs turn off completely. The board never disconnects from my WiFi. They just turn off. I can turn them on again right after.

3 Answers 3

5

See Powering NeoPixels.

Each individual NeoPixel draws up to 60 milliamps at maximum brightness white (red + green + blue).

...

To estimate power supply needs, multiply the number of pixels by 20, then divide the result by 1,000 for the “rule of thumb” power supply rating in Amps. Or use 60 (instead of 20) if you want to guarantee an absolute margin of safety for all situations. For example:

So you need at least 3 amps or even 9 amps for absolute safety.

The LEDs are running off 3.3v directly from the ESP8266.

I doubt it is designed for that. The internal traces won't be designed to handle maybe 5 amps.


To avoid colour degradation through the strip you could use multiple power supplies (to avoid the voltage dropping due to the resistance over the strip). You would connect the grounds (and connect the data wires of course) but break the +5V line in the middle and insert another power supply.

However one (fairly powerful) supply directly connected to the NeoPixels might do the trick. That is, not through the ESP8266.

Also see NeoPixels Revealed: How to (not need to) generate precisely timed signals.

On that page:

Q: In the video, when the entire strip is lit full white, it looks like the far end has a orange tint to it. Is this an artifact of the camera or something?

A: Wow, you are very perceptive! Yes, the string did start to get orange at the end at full power. I actually didn’t just run out of apartment when making this long string – I also ran out of power supplies. I had 3 supplies, each 10amps. This is almost enough, but not when every single LED is full brightness white. When that happens, the voltage at the very end of the strip starts to get too low and the LEDs start looking pallid. Why orange? Because blue LEDs need the highest voltage drop to light so when the voltage sags they are the first to go followed by the greens – leaving yellows to oranges and ultimately red.

(He had 1000 pixels). So this guy used 3 separate 10 amp power supplies!

11
  • Thanks for the reply! I don't have NeoPixels LEDs. I just use their library (well, Hakuna's library to be specific). Adding power to a 5m strip seems a bit... weird. Is that the only way? They do support 5v if that helps. Commented Jan 7, 2017 at 22:06
  • WS2812 - same thing. :) Adding power to the strip is perfectly OK. You just take data and ground from your ESP8266 to give them commands, and +5V and ground from your power supply to the pixel string.
    – Nick Gammon
    Commented Jan 7, 2017 at 22:07
  • Read the page I linked with tips from Adafruit. They have lots of suggestions there.
    – Nick Gammon
    Commented Jan 7, 2017 at 22:09
  • Oh yeah, powering the strip isn't a problem.. per se. The issue is, I don't want to run additional wires across the entire room, just to power the strip. Surely there is a better way? I have over 15M of LED strip I can power with a single 12v source (just regular RGB 5050 LEDs). Can't this be achieved? Commented Jan 7, 2017 at 22:09
  • I can see the last LEDs are about 2.2v... That's not good haha. Commented Jan 7, 2017 at 22:18
1

From the Adafruit Uberguide. https://learn.adafruit.com/adafruit-neopixel-uberguide/power

I am experiencing the same issue. This is the solution I found.

Distributing Power The longer a wire is, the more resistance it has. The more resistance, the more voltage drops along its length. If voltage drops too far, the color of NeoPixels can be affected.

Consider a full 4 meter reel of NeoPixels. With 5V applied at one end of the strip, for those pixels closest to this end, power traverses only a few inches of copper. But at the far end of the strip, power traverses 8 meters of copper — 4 meters out on the +5V line, 4 meters back on the ground line. Those furthest pixels will be tinted brown due to the voltage drop (blue and green LEDs require higher voltage than red).

leds_brownout.jpg

Pro Tip: NeoPixels don’t care what end they receive power from. Though data moves in only one direction, electricity can go either way. You can connect power at the head, the tail, in the middle, or ideally distribute it to several points. For best color consistency, aim for 1 meter or less distance from any pixel to a power connection. With larger NeoPixel setups, think of power distribution as branches of a tree rather than one continuous line.

leds_nobrown.jpg

-1

Just incase anyone else has the problem,

You need to connect the strip as a ring by returning the tail end to the psu,

Electricity basics !!!!

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.