0
\$\begingroup\$

I know for ws2812 strips (60ppm) you can ground the data line at the far end to reduce the chance for "echos" and improve performance.

My question is can you:

  • Short the data tab to the ground tab at the end of the strip (with a resistor I assume?)?
  • Or do you have to run a line back up to the ground wire going into the strip?
  • Or does it have to be a seperate line all the way back to the ground on the power source?

For a bit of background I have a Pi3 running 18 x 1m strips in parallel. The strips are powered by 2 x 40A PSU, one is powering 8 strips, the other 10. Everything works if I only attach the data line to the collection of 8, or the collection of 10, but connect both sets and flickering occurs. I've common grounded the Pi3 and both PSU, but still getting flickering. In case it's relevent, when all connected it's the collection of 8 which flicker.

I feel this is more to do with grounding 2 PSU that are supplying different loads? But grounding the data lines is an easy(ish) possibility to rule out.

Additional The pins are driven by the D18 pin on a Pi3, although i have tried this with a nano with the same result.

When I say flickering I mean that with a changing colour-wheel animation, one set is flicking between inconsistant colours, not matching the other room until i disconnect one or the other.

Solved In addition to @CrossRoads answer, it turned out that using pygame's mixer at the same time as the led strips causes issues on a Pi3. I noticed that after loading the strips the audio would degrade drastically.

Moving the strips to an Arduino solved both problems: - Arduino supports multiple strips on multiple digital pins, where the Pi can only use D18. - Removing the strips from the Pi3 solved the audio issues

Now the PI3 sends serial commands, via USB, to the arduino which in turn controls the strips.

Thanks all for your help.

\$\endgroup\$
4
  • \$\begingroup\$ What is driving the data line? A Pi3 gpio? \$\endgroup\$
    – Jeroen3
    Feb 18, 2020 at 7:44
  • \$\begingroup\$ The data line is buffered at each neo pixel. The story about data grounding at the far end is nonsense. \$\endgroup\$
    – Codo
    Feb 18, 2020 at 8:58
  • \$\begingroup\$ Do you have a resistor in the data lines between the Raspberry Pi and the neopixles? If so, I recommend to remove them. Even though it was recommended a few years ago and is still found in many guides, it's not necessary any more in recently produced neopixels and I've even experienced problems with it (neopixels not receiving new color values). \$\endgroup\$
    – Codo
    Feb 18, 2020 at 10:00
  • 1
    \$\begingroup\$ "I know for ws2812 strips (60ppm) you can ground the data line at the far end to reduce the chance for "echos" and improve performance." That makes no sense, as each element buffers the data signal and passes it along. Grounding the last element is bad for the last element. \$\endgroup\$
    – CrossRoads
    Feb 18, 2020 at 19:05

3 Answers 3

0
\$\begingroup\$

" Everything works if I only attach the data line to the collection of 8, or the collection of 10, but connect both sets and flickering occurs."

Sounds like you are overstressing the data pin. I would suggest having the pin buffered with 2 inputs of a 74ACT125 and let the 2 outputs with up to 24mA current drive all the pins.

\$\endgroup\$
0
\$\begingroup\$

I've never heard of the grounding of the data pin on WS2812 strips. Do you have a reference/link to this advice? I scanned through Adafruit's uberguide and could find no reference to such advice.

Generally, the grounding of a microcontroller output, which is expected to go high, is a bad idea. Inside each WS2812 LED is such a microcontroller.

\$\endgroup\$
0
\$\begingroup\$

Do you've got a flickering of brighness, or flashing leds, which you don't wanted to light up? If it's a data issue, you could try to short the data line to GND with a 1k resistor. If the PSUs don't like each other, try connect them via an inductor.

Edit:

A friend of mine had the problem, that the LEDs were lighting up randomly without sending data. The wire at data-line worked as antenna. Pull-down helped. After more investigating the problem, we recognised, that there was a broken data line connector. Fixing it helped, because the µC pullup was enough to fix the signallevel on the data line. So grounding is not neccessary, if µC is permanent connected to data line.

\$\endgroup\$
1
  • \$\begingroup\$ How would that help? Each LED chip has a buffer. There is an individual data line from the output of one chip to the input of the next. It's much more likely that the fan-out from the microcontroller is too high if s/he's driving 18 strips in parallel. \$\endgroup\$
    – Transistor
    Feb 18, 2020 at 19:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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