I have a project which involves building a 64 x 48 (3072) LED matrix driven by a Raspberry PI computer. I am a first-year computer engineering student so I am still inexperienced with shift registers and multiplexers. I'm wondering what would be the most efficient way to go about multiplexing these LEDs. Some of my options include the MAX7219 multiplexers, or 74HC595 shift registers. In particular, I'm interested in knowing how much of each chip would be required to multiplex this matrix, and which would be the better way to go?

Also, in terms of power, I was thinking of using a power supply like this one to power all of these LEDs. Would that work or would I be faced with brightness issues and power draining driving all of these LEDs at once?

I'm also interested in hearing any tips or thoughts from someone with experience in a similar project in terms of things that could go wrong in a project this big with so many LEDs, and how I can prevent them.

The LEDs are 3mm super-bright red (5 Candela) rated at 1.9-2.1 DC Voltage and 20mA forward current.

  • \$\begingroup\$ If you simply multiplex the LEDs they can never all be driven at once - is this last part a real need and if so, why? \$\endgroup\$
    – Andy aka
    May 14, 2013 at 7:19
  • \$\begingroup\$ Could you please resolve the conflict between "Multiplexing" and "power all of these LEDs"? Which is it? \$\endgroup\$ May 14, 2013 at 16:19
  • \$\begingroup\$ @AnindoGhosh I am intending to use multiplexing, so I guess none of them will be on at the same time then. \$\endgroup\$
    – hesson
    May 14, 2013 at 22:18

2 Answers 2


Hmm, let's start w/ power first: 3072 * 20mA * 2.1 = 130 W!

Your power supply can only give you about 5W. You're very much short there.

If you can, greatly reduce the size of your matrix.

One solution would be to use a desktop ATX power supply. Those have 5V lines through their hard drive connector and can give you lots of power. If you take the 5V you'll either need to design an LED drivers or you'll be burning (5V - 2.1V) * 20mA * 3072 = 180W. That's 180 watts of heat son! That's not gonna be good, or comfortable or usable. So you really need to design an efficient LED driver.

The main issue with driving LEDs is that their voltage drop is not consistent for the same current between different batches, meaning one LED will drop 2.0 and another 2.1. If you just line them up an give them 5V you'll get noticeable variations.

You can buy efficient LED drivers and google is your friend but not your best friend. Because it will find you drivers to drive a string of LEDs, not a single one. You want the LEDs to be individually controllable so you'll need to put a regulator on every single one of these -- that's 3072 individual copies of the same circuit -- and then enable/disable those. That is a lot of work.

Yes you can use shift registers to control each regulator. How you wire up the shift registers very much depends on the 'frame rate' that you want to get out of controlling these LEDs. I'm not gonna go there right now because as you can see the power/design to drive each individual LED is quite high and complex.

  • 1
    \$\begingroup\$ Your power calculations would only be correct if the all of the LEDs were on all of the time. Most matrices multiplex such that only one LED in a group of so many is ever on at a time, that way, the control for an entire bank is shared. \$\endgroup\$ May 14, 2013 at 4:11
  • \$\begingroup\$ I'm assuming he wants to display some sort of pattern and I'm assuming that at some point he wants all of these to be on, even if for a 1 second. He stated in his question that he wants to know if the power supply would be good for driving all of these LEDs at once. Hence worst case calculations. \$\endgroup\$
    – EEToronto
    May 14, 2013 at 4:13
  • 1
    \$\begingroup\$ Yes, that is true - but all of the LEDs on at once would not be multiplexing. \$\endgroup\$ May 14, 2013 at 4:15
  • \$\begingroup\$ Correct. But it sounds like he wants to drive the entire matrix but is trying to figure out how to and is using the term "multiplex" loosely. \$\endgroup\$
    – EEToronto
    May 14, 2013 at 4:23
  • \$\begingroup\$ @EEToronto Thanks for your reply (coincidentally I am a student at Toronto). I do intend on multiplexing so I guess only one column will be on at a time and the power is much more manageable, but if I am multiplexing between so many columns all at once, should I be concerned that the brightness of the LEDs will be reduced drastically? Also, how many shift registers would be needed to drive the 64 x 48 matrix? \$\endgroup\$
    – hesson
    May 14, 2013 at 22:32

A long time ago I built a led array (20 plus years), I still have the assembly code for it. The basic design was only one column of 8 LED's depth was powered and based on time shared multiplexing your eyes see it as a font of a character or some other image (pac man I seem to remember). So whilst there are chips that probably do a lot more now than they did (I am playing with the raspbery pi now) - its just I guess the power to light that column and to the rows and the - then move on and do that at a frequency that makes it look solid to the eye.


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.