This is an electrical/hardware issue, but for background, here's my setup:

I'm using a Wemos D1 mini in conjunction with Home Assistant running on a RPi3. The MQTT setup works fine and the commands are being executed perfectly, but the colors are completely off unless I'm touching the data wire.

For instance, if I request solid blue and am touching the wire, they all turn blue. If I let go of the wire, the first LED turns red and the rest are a strong green. If I touch the wire, they go back to blue. Any colors or patterns requested show likewise confusing changes.

What kind of effect is causing this, and what can I do to fix it?

Using a Tanbaby 5V 60A for power

Lights are Alitove WS2811 5V 12mm RGBs

  • I am having the same issue, I put a Capacitor in the right place and I also put the resistor in line, and when I put the resistor inline it does not work at all. Any other feedback on this? – James Feb 18 '18 at 1:22

It sounds like the bits are getting garbled. There is more than one wire, which one do you mean? Data? Earth? Power?

From the Adafruit NeoPixels best practices guide:

  • Before connecting NeoPixels to any large power source (DC “wall wart” or even a large battery), add a capacitor (1000 µF, 6.3V or higher) across the + and – terminals.

  • Place a 300 to 500 Ohm resistor in series between the Arduino data output pin and the input to the first NeoPixel. This resistor must be at the NeoPixel end of the wire to be effective!

  • Try to minimize the distance between the Arduino and first pixel.

  • Avoid connecting NeoPixels to a live circuit. If you simply must, always connect ground first, then +5V, then data. Disconnect in the reverse order.

  • If powering the pixels with a separate supply, apply power to the pixels before applying power to the microcontroller.

  • I agree that it's an issue of mangled bits, but how does touching the data wire "fix" that. Skipping the capacitor advise for now, as it's manifesting as a data issue. Tried adding a resistor, but that eliminates the signal altogether. The data wire is only 4 inches, soldered into the board and clipped to the led data input. – humbleLearner Dec 10 '17 at 21:23
  • your body is adding capacitance to whatever it touches – jsotola Dec 11 '17 at 0:25
  • 1
    What is supplying the data? The Pi? The ESP8266? What voltage are you running at? The Neopixels require 5V as I recall. If you are running at 3.3V the performance may be marginal. – Nick Gammon Dec 11 '17 at 6:40
  • The ESP8266 is supplying the signal. The lights are more "christmas light"-style, they're not Neopixels. – humbleLearner Dec 12 '17 at 1:56
  • 1
    Yes, well Adafruit call them Neopixels. They may not be technically the Neopixel "brand" but Neopixels use the WS2811 chip (amongst others). – Nick Gammon Dec 12 '17 at 4:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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