Yun or Adafruit Neopixel LED library bug??


In the Adafruit Neopixel library, sketches / objects and their members overall work fine… Except when you try to use the class member to set a single pixel to all white:

    // Set pixel color from 'packed' 32-bit RGB color:
    void Adafruit_NeoPixel::setPixelColor(uint16_t n, uint32_t c) {

And employ it on an Arduino Yun/Yún with a call like:

    strip.setPixelColor(0, strip.Color(255, 255, 255)); // White;

The pixel Flashes white, then goes to black (off)

However if you change the above with:

    strip.setPixelColor(0, strip.Color(255, 255, 254)); // or make any of the 3 values so that they are not all 3 the same...

Then the pixel works fine… stays (almost) pure white as possible.

What is the library or HW bug where (on the Yun/Yún, at least) where if these three color values are the same non-zero values, it flashes that color then instantly changes to off?

Any suggestions / discussion welcomed.

(Using a straight WS2812B connected directly to the Yun, pin 6 for Data/clk)


are you using a strip or just one pixel? pure white uses the most current, maybe there is not enough current? did you try this with a different arduino?

takissd: are you using a strip or just one pixel?

Just one pixel.

pure white uses the most current, maybe there is not enough current?

A single pixel... probably not the issue. Changing any one of the three values to 1 less than 0xFF resolves the issue... Doubtful that one-bit difference would create an issue like this.

did you try this with a different arduino?

No... but the nature of this is not behaving like a HW issue...

So... any other ideas???


You might post on the Adafruit neopixel forum

I don't have any solutions to to you problem. I used the Yun to drive a set of Neopixels for a Halloween display just fine. The problem I ran into was the the signal line. If it was too long or not well enough connected I would get odd behavior from the Neopixels. Beyond that it worked just fine.

I used the Neopixel library as an extension to the StandardFirmata library which was my sketch. I controlled the whole thing from a Python script running on the Linino side.

awardblvr, I ran into the same problem you describe.

The symptom is the same: I can't get the white to work (all three RGB values to be the same). As soon as I try to send two same values the LED turns off. It doesn't matter what the intensity level I try to set, as long as two or three values are the same it doesn't work. Any other colour and intensity works fine.

I'm using the Adafruit library on UNO, with the simplest code I found. strip.setPixelColor(n, red, green, blue);

Everything is hooked up to a 20A power supply (PC PSU), I have a 1000 uF cap between the power and ground and a resistor on the data line, as suggested on the Adafruit site.

The only problem I see with my setup is the fact that since I've got the individual pixels, I have them hooked up in air with wires and not on a PCB.

Have you ever found the solution?