WS2811 lights

I am new to Arduino and I am trying to program some lights. I purchased the WS2811 lights (, but I can't get any programs to run on them. There are 50 lights on this strand.

I downloaded the FastLED library (3.1.6) and I have tried to run the example BLINK, but nothing lights up. There is a white (data) wire, a blue (ground) wire, and a red (5V) wire. I have the white wire in data pin 6. There is electricity at the end of the string of lights.

I wasn't sure if anyone had some suggestions of what I should try to do.

EDIT: I am using an Arduino UNO and I believe I have the wires where they should be. When I power the lights, they flash for a second.

You should post a picture of how you have everything connected. Although you think you have them connected properly, without a picture there is no way for us to verify that.

Also, is the ground from the light strip connected to the ground to the arduino? And do you have the arduino connected to the “data in” end of the strip?

I have a power adapter on the other side of the lights, which I normally use to power the lights(Instead of plugging in the red (5v) wire into the arduino). I have plugged in the red (5v) wire into its place on the arduino instead of using the power adapter on the other end, but there is no change of what happens.

Can you post a clear picture of the first pixel where we can see which way the arrow is pointing?

Here is the picture of the first pixel.

EDIT: I just realized that some of the wires became undone from the Arduino, so ignore that.

Note: The wires coming from the Arduino UNO hook up to the side of the chip that has the arrow on it.

Well, it does appear you have it connected correctly. A could you please post the specific code you are uploading to your arduino?

The coding is probably fine because you are using the example, but, just in case.

I would try this, in this order

  1. A different pin, maybe pin six on your arduino is bad

  2. Hook up the other end of the strip data to the arduino. It looks like you got it right, but some times looks are deceiving a and it won't hurt to try

  3. cut the first pixel off, if the first pixel is bad, none of them will work.

make sure the lights ground and the arduino ground are definitely connected, the strip won't work without that connnectionl

Here is the code

#include "FastLED.h"

// How many leds in your strip?
#define NUM_LEDS 50

// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
#define DATA_PIN 6

// Define the array of leds

void setup() { 
      // Uncomment/edit one of the following lines for your leds arrangement.
      // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
      FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
  	  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
      // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS);

      // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

void loop() { 
  // Turn the LED on, then pause
  leds[0] = CRGB::Red;;
  // Now turn the LED off, then pause
  leds[0] = CRGB::Black;;

Thank you so much for your help by the way!

you have got the leds initialize twice, once is ws2811 and then, again, as ws2812 (neopixel).

you need to comment out


so that it is

// FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

Still nothing

Are you powering it from your external power and leaving grounds connected? If so, i think it's time to try 1-3 of my previous post.

Thank you for your help!

Hook up the other end of the strip data to the arduino. It looks like you got it right, but some times looks are deceiving a and it won't hurt to try

I think it could hurt. The OP would be connecting an output to an output, causing damage to either or both. A resistor, e.g. 330R, between the Arduino pin and the data line should protect against this damage.

@wdwocnj, you should have a resistor between the Arduino pin and the first pixel. Anything from 100R to 1K should be ok, ideally 220R or 330R. You should also have a large cap, e.g. 1000uF across the power wires to the LEDs.

It doesn't hurt... it's been done many times by accident on these forums with no damage to the strip. Theoretically possible, maybe.... practically though, not so much. And since the strips aren't working anyway it won't hurt. The strip is already effed (apparently) can't eff it anymore than it already is.

Also, none of the suggestions you bring up will fix the issues with the lights not working. Those are to protect the strip, but they don't help when the strip doesn't work.