1

I have an Arduino UNO driving a 8 x WS2812 strip but only the rightmost three of the strip are lighting up. The UNO should be able to deliver current for more than 3 WS2812s. That previous link states a 200mA max on Vcc so I should be able to see ~6-8 of the LEDS depending on the current draw. I was reading ~45-55mA when displaying some basic RGB colors on the strip and was reading 115-120mA when all 3 were being driven to provide a white hue (i.e. all 3 internal LEDS to the WS2812 on). This is a little lower than what the spec sheet states as they said ~50-60mA for all three internal LEDs on to produce white.

I'm powering from the USB port of a laptop, but have also used a 5V 1A USB wall wart with no change in the number of WS2812s lighting up.

I can add in a standalone WS2812 to the circuit with no problems, so I'm unclear as to why the 8 x WS2812 is only partially lit. I've tried a second 8 x WS2812 and it behaves the same way, only lighting 3/8 of the LEDs. I've even soldered on Vcc + GND to the other end of the 8 X WS2812.

I have a small resistor on the data line per the Adafruit best practices. The 8 x WS2182 has built in power protection so it doesn't need a cap in front of it and I'm just being lazy for the single WS2812.

As you can see in the photo I am only partially lighting up the 8 x WS2812. The stand alone WS2812 works fine and removing it doesn't allow for another one on the 8 x to light up. The piece of paper is just there to get a decent picture as the LEDs are bright such that it is hard to take a picture that isn't overexposed.

Breadboard

The schematic is basically what I have. There wasn't an 8 x WS2812 in Fritzing but it basically would just be a drop in replacement for the single WS2812. I am using the pot as an input that the Arduino reads and based on that reading changes the color that is fed to the WS2812. I realize that in the image above, I'm using an Arduino UNO and in the schematic I'm using a Nano. Schematic

N Klosterman
  • 131
  • 1
  • 3
  • 1
    Put the WS2812 strip as close as you can to the Arduino, and throw a 10uF cap on the strip power rails. See if that changes things. – uint128_t Jan 11 '16 at 04:03
  • 1
    I've driven a [Adafruit 8xWS2812B](https://www.adafruit.com/products/1426) using an Arduino, over 10cm wires, with no problems. Make everything simpler. Start with a simpler circuit (remove the potentiometer), use a very simple program (e.g. same 'mid value' for each of R, G and B for all LEDs), make the wires short. If you have wires with pins and sockets, wire straight into the Arduino, and don't use the breadboard. If you have to use the breadboard, don't bother using the power rails, keep every connection short. – gbulmer Jan 11 '16 at 05:08
  • Have you tried using a different library? I use [light_ws2812](https://github.com/cpldcpu/light_ws2812) and have had no problems controlling up to 16 of them (which is the longest run I've tried thus far). – Ignacio Vazquez-Abrams Jan 11 '16 at 05:25

1 Answers1

2

It appears that my code is to blame (scratches head). I loaded NeoPixel's strandtest and all 8 LED modules lit up on the WS2812 once that was loaded on the 'Duino.

I will need to experiment further taking into account all of the helpful suggestions to see if I can get my code to work with only hardware modifications.

In response to the helpful people who responded in the comments section A) Thank You!, B) I did have a filtering cap on the power rails. I didn't add it to the schematic but you can see it in my photo. You can also spot a resistor on the Data In line for the 8x WS2812. C) I will have to experiment with shorter wires and different libraries. I plugged Vcc and GND directly from the Arduino to the horizontal row the 8xWS2812 was plugged into and that didn't change any of the behavior. I plugged the Data In line from the Arduino to the vertical rail of the breadboard and that didn't seem to help either.

I will experiment further and report back.

N Klosterman
  • 131
  • 1
  • 3