0
\$\begingroup\$

I've been building a large, 3D printed dodecahedron infinity mirror. Prior to adding the polycarbonate pentagons with mirror film applied, the LEDs worked perfectly in the frame. Once I fished the power, ground and data wires through a hole in one of the pentagons, I started to get random flashing colours. I painstakingly double checked and re-soldered several contacts on the LED strips, then I just tried using one strip at a time through the hole and then the LEDs worked fine again.

So what I'm wondering is, is there signal interference disrupting the data wire? I even tried using a CAT 6 cable to shield the data wire, but it still didn't work.

List of materials:

  • 3.3 WS2812B LED strips (300 LEDs per strip, 990 LEDs total)
  • 5V 20A power supply
  • 5V 60A power supply
  • Arduino Mega

This is the schematic I made:

enter image description here

This is where the wires are pulled through and where they connect to the power supplies:

enter image description here

enter image description here

This is the frame and pentagons:

enter image description here

Here's where the data wires all converge:

enter image description here

This is the random light effect:

enter image description here

\$\endgroup\$
8
  • 1
    \$\begingroup\$ You have two separate grounds. All grounds should connect together. \$\endgroup\$
    – Marla
    Jan 1, 2022 at 23:58
  • 1
    \$\begingroup\$ Those wires look very thin. \$\endgroup\$
    – StarCat
    Jan 2, 2022 at 10:22
  • 1
    \$\begingroup\$ You'd want to add some fusing to the 5V wires - with 60A kicking around, it probably won't take much to melt those wires if something goes wrong. Then expect a fireball. \$\endgroup\$
    – Kartman
    Jan 2, 2022 at 10:35
  • \$\begingroup\$ @Kartman the power supplies have fuses built in and I did add a line in the code #define MAX_POWER_MILLIAMPS 60000. But are you suggesting something like plug fuses as an additional protective measure? \$\endgroup\$
    – lakerice
    Jan 2, 2022 at 23:09
  • 1
    \$\begingroup\$ Make sure your wiring can handle whatever your LED strips need, then choose fuses that match the wiring (i.e. size your fuse to protect the wiring). Your wires look much too thin to handle a potential 60A and could melt or catch fire when shorted or even during normal use. \$\endgroup\$
    – StarCat
    Jan 3, 2022 at 14:36

2 Answers 2

2
\$\begingroup\$

Grounding. You have a potential for 80 A of current running around, and the only place the two supplies have a (mandatory) common ground is through pins on the Arduino. Not good. Also, you have data signal ground current and LED ground current in the same wire. This causes the reference potential for the data signal to move around with LED activity, possible enough to look like false data transitions.

There is no instant answer; you will have to try things to see what works. To start -

Mount the two supplies as close together as possible, and run a very heavy gauge wire between the two grounds. Now you have one ground point for all of the LED strips. It would be best to run +5 V and ground wires to each one.

Now comes the tricky part. Ideally you want the Arduino GND to be tied to something in the center of the LEDs, so the serial line output stage is working against a potential that is approximately the same for all LED strips. I guess I would start with that, running a 5 V line from a supply and GND from an LED strip.

Why? Because the LED strip data input stage does not care about fluctuations in the 5 V line. Its decision about whether the incoming signal is a 1 or a 0 is based solely on the signal's amplitude against the ground pin right next door on the connector. So you want the Arduino ground to be as close as possible to the average LED strip ground.

\$\endgroup\$
3
  • \$\begingroup\$ Thanks! So just so I understand, you would have something like 16 or 18 AWG wire connect to one ground port on each power supply and tie all the LED ground wires and Arduino ground to the thick wire? Sorry if I misunderstood \$\endgroup\$
    – lakerice
    Jan 2, 2022 at 22:59
  • \$\begingroup\$ Your supplies are rated at 20 A and 60 A. #16 is too small for either. What are the actual load total currents on each supply? \$\endgroup\$
    – AnalogKid
    Jan 2, 2022 at 23:42
  • \$\begingroup\$ so the total load for the light pattern I will be using was 5.6A. I haven't tried full white yet, but that is a good sign considering it's bright blue and magenta? Also, I did the common ground and it worked! \$\endgroup\$
    – lakerice
    Jan 5, 2022 at 3:29
1
\$\begingroup\$

This is probably because the first 4 led Strips in your schematic don’t have their ground connected to the arduino. The signal has no ground reference and that messes with the control ic of the led. Just make a bridge between the two power supply grounds. I had the same problem and connecting all grounds together solved it.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks Panthera. You're right the grounds have to come to a single point. \$\endgroup\$
    – lakerice
    Jan 2, 2022 at 23:03

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.