I have an Arduino Due with an Arduino Ethernet Shield V2 that I use to control multiple daisy-chained WS2811 LED strips.

When I turn on most of the LEDs the Arduino and attached wires seem to become an antenna, picking up fluctuations that make the LEDs flicker, by messing with the data on the WS2811 data line. Touching the data cable, touching the ethernet plug on the shield, or simply hovering my hand over the Arduino adds noise that causes flickering in the lights.

When I pull out the ethernet plug, it stops. (The Arduino continues to update the WS2811 chips, even without network connection)

My setup

The flickering is especially strong when I set the first couple of LEDs in the chain to White (biggest draw of current), while having red or green colored LEDs at the beginning causes milder flickering (even if there are LEDs set to White further back in the chain).

Some more observations:

  • The LED strips are powered from both sides. It doesn't seem to be a power issue.

  • I tried with a different Arduino Due, a different Ethernet shield, a different router and Ethernet cable, and a different power supply.

  • The router the Arduino is plugged into, is positioned on the same table, and powered from the same power bar as the LED/Arduino power supply.

  • I tried running the Arduino and the LEDs from different power supplies but that didn't help. Rather the opposite (which makes sense)

  • This happens no matter how long the equipment has already run or how hot it is.

Another mystery: You might notice the lose ground cable from the LED strip connector. When I plug that into the Arduino Due, the LEDs don't get turned on at all. When I plug that ground cable into the Ethernet shield sitting on the Due, then some lights turn on wrong. No matter if Ethernet is plugged in or not (though there's a difference in the 'wrongness' of the lights when Ethernet is plugged in). Note, that the Arduino and the LED strips already share ground 1 foot away as they are both fed by the same 12V power supply.

Where are all these grounding issues coming from and how do I get rid of them? What else could I try?

1 Answer 1


I suspect that the signal driving the LED strip does not have enough voltage swing. And that ground noise/resistance is what makes the system sometimes appear to work correctly.

With 12 volt LED strips, the data signal into the WS2811 should swing at least 0.3x to 0.7x 12 volts, or below 3.6 volts (low) to above 8.4 volts (high).

The Arduino Due has output signals from 0 volts to 3.3 volts.

Which would explain the observation that if ground is connected directly between Due and LED then the Due output is never high enough to signal the LEDs.

I would try using a logic level converter between the Arduino Due output and the LED strip data input.

  • Thank you, this does sound like it's the most logical conclusion. I had already tested a quick logic-level conversion with npn-transistors I had lying around. But that didn't work, either because of the specs of the transistors I picked, or because I only attempted to upgrade it to 5V. I will order a logic-level converter board now to do a proper test.
    – evsc
    Oct 3, 2017 at 15:27
  • I first got the "SparkFun Logic Level Converter - Bi-Directional" but that one didn't help much, then I read up a bit more and ordered a 74HCT245 (which is able to handle much faster switching) and now it works!
    – evsc
    Oct 5, 2017 at 22:08

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.