Adding input and output capacitors either side of my 5V DC-DC converter doesn't seem to help much, and I'm wondering if some kind of signal interference might be my problem.

I'm running signal from a Teensy 3.1, through 74HCT245 level shifters, then from there through about 4m of 1.5mm^2 3-core stranded domestic power cabling (alongside ground and +12V from a Meanwell power supply—yes, the grounds of the Teensy, level shifters and power supply are tied together) via a combination of Neutrik PowerCON connectors to strips of WS2812B (aka Neopixel) LEDs.

The LEDs don't seem to be getting a clean signal. Every output pin works perfectly individually, but when I get up to about 6-8 of the strings connected, some pins glitch really badly, some glitch a little bit and some are perfectly fine. When I reduce the speed of the signal (using FastLED's sequential output, rather than parallel output) everything is much more solid.

I'm wondering if there's some kind of signal interference, which somehow gets worse as the power supplies get loaded? (Note: there are four power supplies, feeding four strings each—their grounds, but not the +12V rails, are tied together.)

enter image description here

For clarity this diagram only shows one of the signal paths—there are another seven off the pictured 74HCT245, plus another eight off another 74HCT245 not pictured

Without having a oscilloscope (I'm trying to get hold of one), what diagnostic steps could I take to try and rule this out?

SUPPLEMENTAL: We've now tried plugging the strip directly into the control box (omitting the 4m cable in between) and are still getting glitching. So it doesn't seem to be the distance per se.

  • \$\begingroup\$ "domestic power cabling" Yuck. Great for supply, terrible for transmission. Get some UTP and put ground on the other member of the pair. \$\endgroup\$ – Ignacio Vazquez-Abrams Apr 8 '15 at 8:17
  • \$\begingroup\$ I realise it's not ideal, but it's for stage use so there were lots of considerations—no shielded cabling I could find would give me the current carrying capability I needed. \$\endgroup\$ – Robert Atkins Apr 8 '15 at 8:20
  • \$\begingroup\$ You don't need shielding, just something usable for actual transmission. \$\endgroup\$ – Ignacio Vazquez-Abrams Apr 8 '15 at 8:24
  • 2
    \$\begingroup\$ Diagnostic step - how about a schematic or some kind of diagram what you have wired up. I'm not making much of what you are saying. \$\endgroup\$ – Andy aka Apr 8 '15 at 8:33

Please read https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices If you've already read it, read it again and do what it says this time.

You are violating best practices in at least 3 ways.

1 - You don't show a capacitor on your Murata output.

2 - You don't have a resistor on your data line.

3 - You are running long cables.

Try something like this:


simulate this circuit – Schematic created using CircuitLab

Note that the twisted pair can be almost any guage - 26 will do fine.

  • \$\begingroup\$ I have read it; you're right, I'm not showing a capacitor on the Murata output, but there is one (1000uF, 6.3V electrolytic.) You have two resistors and two 74HCT245s in your schematic. I don't understand why? Is the second 74HCT245 to re-shape the signal at the far end of the long signal run? How did you arrive at those resistor values? Unfortunately physical constraints of the project require longish cable runs and preclude separating the power and signal cable as you imply in your diagram. \$\endgroup\$ – Robert Atkins Apr 8 '15 at 15:23
  • \$\begingroup\$ Note that the Murata isn't isolated - it has a common ground, so no chance of keeping the signal levels separate from the ground lift by using two grounds wires :( \$\endgroup\$ – tomnexus Apr 8 '15 at 17:51
  • \$\begingroup\$ Sigh - Well, if you're stuck with 3 conductors, you can still give it a try. The second buffer is, as you suspect, intended to clean up the waveform at the end of the wire. Since the first buffer has 0 - 5 volt outputs, I chose a family with 0 - 5 volt inputs. The 120 ohms is a series terminator, and the value is a typical impedance for UTP. You can still use the transmitter/receiver idea, since 3 wires twisted together in a cable will have an impedance, and ~100 ohms is a good starting point. You will have possible problems with load current spikes coupling into your data lines... \$\endgroup\$ – WhatRoughBeast Apr 8 '15 at 18:48
  • \$\begingroup\$ ... The second resistor is the 300-500 ohm value suggested in the link. The idea is that the 74HC receiver is located close to the NeoPixel, and the resistor (probably) serves as a low-pass filter for noise. \$\endgroup\$ – WhatRoughBeast Apr 8 '15 at 18:51
  • \$\begingroup\$ Adding a Schmitt trigger buffer such as 74HC14 can help clean up inductive ringing / glitches caused by the long cable. \$\endgroup\$ – MarkU Apr 9 '15 at 3:45

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.