I’ve got a power problem with a 16 x 16 matrix of addressable RGB LEDs.

Front view

Circuit diagram example OP's note: this 4 x 4 array follows the same pattern as the 16 x 16 version in the photo.

First, an R3 Arduino Uno supplies the value of each LED. The LEDs are 5mm PL9823 (datasheet), run at 5V, and appear to draw 47.5mA at full white.

(Editor's note: notice that these aren't regular LEDs, they come with a controller that limits current and include a shift register in it - that knowledge will make the rest of question much easier to understand for some).

The Data Out of each LED is connected to the Data In of the next, thereby joining all 256 LEDs in series. The first Data In connects to a 150ohm resistor, then pin 6 on the Arduino. This is a PWM pin.

Back view, detail

None of the other LEDs have resistors, but I've seen a similar array done without them. This is because the resistors recommended by the manufacturer prevent the LEDs getting enough voltage for colour mixing, allowing only full red, green or blue.

They do, however, have a 100 nF capacitor each. This is a decoupling capacitor, with one lead attached to each power lead of the LED, thereby bridging the positive and negative terminals to supply more steady power as the light values change. The capacitors are mounted on the reverse side of the array. The VDD and GND leads of each LED are joined in parallel, in two separate grids. And of course, GND is tied back to the Arduino. USB powers the Arduino for now.

Power leads connected

If my maths is right, the combined current of 256 LEDs on full white at the same time should be 12.8A. I have a regulated PSU rated at 30V @ 3A. But the thing is, the current code for the Arduino is to drive only one light at a time, as a test. But the LEDs show no response when I switch the array on. I have the current turned up to maximum. I'm drawing 3A but no voltage.

Power supply before connection

Power supply after connection

With my multimeter, I was reading 200mV on some LEDs, sometimes, and 0mV at other points. I don't know what the difference could possibly be, the setup is pretty evenly balanced.

I removed one LED to test and it still works fine. In the beginning, I tested this whole arrangement but with a 9 x 5 array. Again, it worked fine. In this test I was drawing 1A even though the maths should dictate: (9 * 5) * 0.0475 = 2.14A?

9 x 5 test run

Could the power needs still be way too high for the power supply? My permanent solution was ultimately to locate a 5V @ 12.5A power supply, but I’d really like to be able to test my handiwork, to make sure it isn’t fried. Also I don't know if a 15A supply would be better, just in case, but I don't expect to ever have them all on, full white, at any point.

The goal is to be able to control each LED individually or in groups, using graphics libraries for Arduinos that generate geometric shapes and colour noise.

  • \$\begingroup\$ Can you provide a link to the LED datasheet? Your math seems right to me, you should poke around with a scope and see if the ucontroller signal is ok. Great handwork though, you could probably save all those 100n though. \$\endgroup\$ Commented Apr 6, 2015 at 16:54
  • 4
    \$\begingroup\$ If I saw 0.00V and 0.83A on my power supply I'd immediately think there's a dead short somewhere in my circuit ... \$\endgroup\$
    – brhans
    Commented Apr 6, 2015 at 16:55
  • \$\begingroup\$ Here's the PL9823 datasheet. \$\endgroup\$
    – Ricardo
    Commented Apr 6, 2015 at 17:40
  • \$\begingroup\$ The link to the datasheet beforehand and a schematic (maybe not all LEDs but of at least one LED) would have been helpful. If you look at Olin's answer you'll notice that he did not understand that the LEDs came with their own controller, as neither did I. These LEDs are suspiciously similar to regular RGB LEDs, and if one assumes so, then your question doesn't make much sense. There'll be a lot of headscratching on this one. \$\endgroup\$
    – Ricardo
    Commented Apr 6, 2015 at 17:52
  • 1
    \$\begingroup\$ @Ricardo Thank you for taking the time attaching the datasheet on my behalf, I greatly appreciate the kindness. I absolutely see how this would be way too confusing without it, but as a novice it slipped my mind. Hopefully it, my basic schematic and my few other edits (in italics) will give a fuller picture. \$\endgroup\$
    – Strings
    Commented Apr 7, 2015 at 17:14

1 Answer 1


It sure sounds like you've got a short from +5 to GND somewhere in that "smart LED" array. I don't think we can easily help you find it- you'll have to find it yourself. You can verify this with a multimeter set to ohms (with power off, of course).

I suggest giving it a good visual once-over, and if that fails to turn up anything (it's possible one of the LEDs is internally shorted, but less likely) then start cutting the 5V lines into groups and test the groups individually. Divide and conquer (or do a binary search if you prefer programming paradigms to political strategies).

I suggest disconnecting the Arduino during this testing- it can't help to have it connected, and it's possible you could damage something.

The (rather sketchy) LED datasheet is mute on the quiescent current draw, but I would expect a small current draw at 5V with no controller connected- perhaps some hundreds of mA or less.

  • \$\begingroup\$ It would be really sad if the OP would have to cut the power lines on such a well-crafted LED matrix. But +1 for sharing the clever method AND for suggesting using binary search for choosing the cutting points. \$\endgroup\$
    – Ricardo
    Commented Apr 6, 2015 at 19:52
  • 2
    \$\begingroup\$ @Spehro Pefhany Thankyou for such a detailed answer, given how little information you had. It gives me a lot to go on. \$\endgroup\$
    – Strings
    Commented Apr 7, 2015 at 17:15
  • \$\begingroup\$ There's another way- if you use a voltmeter on the lowest range and pass a few amperes you may be able to trace the current flow by following the voltage gradient. I've used that method to find shorted ceramic capacitors. \$\endgroup\$ Commented Apr 7, 2015 at 18:39

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.