Big LED matrix - Limits and correct components

Hi all,

I'm trying to create a 30x30 matrix of led's to use in wall panel.

Because the my arduino doesn't have enough outputs, and I know jack-sh** about electronics I think I must buy the following:

  • 112 x TEXAS INSTRUMENTS SN74HC595D
  • 900 x LED's

My question is: Can I chain all this shift components, all this led's connected, and still provide a full 30x30 animation with 25/30Hz ?

And can you recommend the right led's for this? I don't know which to get (right current, lamp size, max voltage, etc).

Thanks :wink:

And I understand that using the SN74HC595D I can power individual led's simultaneous at any given time.

You could do it that way. A more common (more component efficient) way is to use shift registers to drive the columns of a display and then use a MOSFET or darlington pair to drive each row. So you'd load the first row of data into the shift registers, turn on the row 1 driver for a bit, then off, then load row 2 data into the shift registers, activate row 2's driver for a bit, etc. If you do this rapidly enough, the human eye cannot discern that the display is actually flashing and will perceive a steady image.

Well that's a very big matrix.
Assume you want to multiplex them:-
First off you need to be able to supply or sink current for 30 LEDs at a time. Assuming 20mA per LED that is 30 * 20 = 600mA. Then you need to turn the LEDs rows on 30 times a second. Therefore with 30 rows you have to have one row switch on at a rate of 30 * 30 = 900 times a second. This is fast. Also as the LED is only on 1/30 th of the time it will not be as bright and will be the equivalent of having less that 20 / 30 = 0.66. mA through it.

That is the killer for you so with an array that size you can't multiplex it in the conventional row and column method.

Right... although the OP doesn't seem to be fazed at the idea of wiring up 900 LEDs and 112 shift registers, you might want to know that you can buy 8x8 grids of LEDs pre-packaged in a matrix format (i.e. row/column strobing required).

If you are serious, I'd buy some of these and experiment. You can buy 10 for about 15 bucks on ebay; is sure beats doing all that wiring.

How big of a matrix can an Arduino drive at 30 fps with reasonable brightness?

How big of an animation can you store on the arduino? By animation I hope you don't mean a full color movie :-).

Once the limit is established, I'd simply buy multiple Arduinos and make your display essentially out of independent smaller displays. Or almost indepenent -- that you could synchronize them with a single "Master" that writes a frame pulse out one of its IOs and hook that up to the other Arduinos.

There is a board out there called the Rainboduino that is optimized for driving (small) matrices.

I made a LED driver shield effluvia of a scattered mind: First Arduino shield boards arrived! that controls 70 current sinks, you could use it as the column part of a larger matrix. But you'd still have to drive the current sources with something else (another poster discussed darlingtons or mosfets).

That is essentially what my girlfriend and I did a few months ago. We based our design mostly of of Evil Mad Scientists' Peggy 2.0, but just a lot larger (6.5x6.5 feet and 30x30 pixels) and a lot brighter. This uses multiplexers driving transistors for the columns and LED drivers for the rows.

Here is what we made:

Are you trying to do this in RGB, or just one color?

We used green 13,000 mcd 5mm flat-top wide-angle LEDs, drawing about 24ma at 3.0-3.4v, but we drive them at about 100ma at a 1/30th duty cycle.

Go to Evil Mad Scientists' forums for several threads where we discuss driving a larger, brighter Peggy 2.0.

Hi,

Thank you all for your feedback.

I'm looking now at MonsieurBon project, and its precisely what I want. I will be looking into its project, and should start to build one exactly like it very soon.

PS: Doing one color, like you.

Thanks you again.

MrLinx,

In your original message you mentioned you didn't know much about electronics. If you think you can learn, then by all means go for 30x30. But you will make things significantly easier on yourself if you limit the scope to 25x25, as then you can use the Peggy 2.0 libraries and the schematic without having to change anything.

Hi again,

Thanks for the info. Peggy 2.0 seems cool, and 25x25 should be enough.

I have a few questions, should be easy for you :wink:

  • Peggy 2.0 already has a 25x25 led area... But I want to make a system like yours where the led's are more spaced between them. Can I buy a peggy kit/board without this? or there's some way to override current connections to connect to my own led's?

  • I've seen the new Peggy brings the ATmega328P... but this is precisly my current microcontroller in my a arduino. I can't seem to find the difference between a Peggy board and using my current arduino with row/column driver. Can you please explain this? (my strength is software... I had difficulty understading Grumpy_Mike response.

  • How much have you spent on the board? and led's?

Thanks again :smiley:

MrLinx,

Grumpy Mike was not entirely correct. You can indeed multiplex with the standard row/column method, you just have to supply more current during that fraction of a second that the LED is on. LEDs can handle maybe 4-5x their rated current if you stay under a 10% duty cycle. The latest versions of the Peggy 2.0 (go get the schematic) have trim pots on the current control reference resistor inputs on the LED drivers. That was something we added as well, before it was in the Peggy schematic. You have to be sure to turn those down (well, up in resistance) when programming the board, as you can blow out LEDs since you are sharing the serial TX/RX pins with the first multiplexer. We used 1k trim pots, but I wish I had user 0.5k pots to give me more adjustment range. I forget what the newest Peggy uses, but I think it limits the maximum brightness so you can't easily fry the LEDs.

I don't think you want to know how much I spent. :o We basically built an electronics lab in my basement, and outfitting that was quite costly. Honestly a lot of that was shipping costs, and ordering 10 of items we only needed 3 of, but sometimes having extras on hand is good and unit costs frequently drop significantly when you order more. We also were under a serious time crunch, so instead of doing something fun and DIY like making our own oscilloscope or logic analyzer when we needed them, we frequently just had to buy whatever we could get the fastest. But if you left out the music part of our project, you could do without a lot of the fancy tools and such. Or just use our design.

But we were able to get 1,000 LEDs for under $0.10 each, which was quite a good deal. I bought them from www.c-leds.com. If I had to estimate the cost of the electronic components we used, including LEDs, and not including the parts we have extras of, I would put it at somewhere between $350-$500. That includes the 500 or so feet of tinned copper bus wire, all the DB-15 connectors, the MIDI controller, etc. The physical wooden board we built probably cost us close to $350 in materials (including ping pong balls), and more in incidentals.

What size do you want your display to be? Do you want to use diffusers on the LEDs? These are things to consider.

You could buy the Peggy 2.0 kit and then run your own wires from the edges of the rows and columns to a larger board with the LEDs on it. I believe someone on the EMSL's Peggy forum did just that. We opted to build our own circuit to give us more control over its interoperability and flexibility. Also, we moved the multiplexers and LED drivers to the physical board, using VGA cables to communicate between the AtMega328P and them. This necessitated pull-down resistors as we were getting a lot of noise and visual weirdness. We also learned that VGA cables are HIGHLY variable. Some have each pin except for 2 grounds as separate wires. The ones we had only had about 9 usable pins, as all the other were connected together.

You could use your Arduino with an AtMega328P on it. Just get a breadboard and put the multiplexers and LED drivers on it, then connect them as per the schematic. You should look at a schematic or layout diagram of your Arduino variant though, as the Arduino pin number mapping isn't part of the Peggy 2.0 schematic.

Hope that helped.

We also have code we'd be happy to share if you did decide to go to 30x30 or integrate Pong, music, or Etch-a-Sketch. I think my girlfriend just wants to get it cleaned up a bit first. There's a lot in there that we ended up not using, like a battery voltage sensor, motion sensor, and a light sensor.

If you get this working, my girlfriend and I really want to get ours connected to the web and be able to play pong at parties with people across the country on another board. So here's hoping you do it! :slight_smile:

One more thing. I really really really wish we had put RGB LEDs in, even if it cost 50% more. If we had, we could have a working one-color display first, and then when we felt like it, wire up the other colors' leads as well to another microcontroller and do full color. So think about that before you buy LEDs and start permanently attaching them to things.

Cheers