Best method for driving a 7x10 LED matrix?

I went to the local electronics store and managed to abscond with a couple of scrolling LED matrix displays that used to be used for Lottery vending machines. After liberating one of the LED modules from the display, I found out that the modules are 7 elements tall by 10 elements wide. As a bonus, the display is actually a dual color display with separate + pins for the red and green LEDs. After further probing, it appears that the modules are common GND.

I've done a bit of research on it however I'm not sure how to proceed. I'd like to start off with wiring up just one of the sets of LEDs, (red or green first) then hopefully later on, I can mod it and add the other LEDs to the mix. At first glance, I would say that I need two 74HC595's for the columns (GND) and need a 74HC595 for the rows.

The questions I have are:

  • With the existing spec, is it possible to drive two of these modules (using three 595's for columns and four 595s for the rows ( two per display, one red, one green).
  • Will the 74HC595's and the Arduino be able to keep up and maintain persistence of vision?
  • Will the 74HC595's be able to sustain a full display being lit (assume that incoming power is not a problem and that a 220ohm resistor is between the LED array and the output port on the 595).

Are there any gotchas that I should be looking out for or is there a better way of doing it? I haven't ordered any parts yet but want to see if it's possible with the way I think it'll work. If there's a part that works better, please let me know.

Your suggestions are welcome. Thank you.

Common Ground, i.e. Common Cathode, as in Circuit Diagram A here?
(except larger)

What is generally done is to drive all the anodes, from parts like HC595, and sink the current for one cathode at a time.
Drive anodes, sink cathode.
Next row:
Drive anodes, sink cathode.
Next row. Repeat until done.
Can use ULN2003/ULN2803 as buffer on output of HC595, or use a single chip like TPIC6B595 that is shift register with high current sink capability per pin.
Or use ULN2803 on output of Arduino pins if you have enough pins.

Use SPI.transfer() to shift the data into the registers.

Or Use HC595' for both Anodes & Cathodes, and just do 1 LED at a time, but your refresh rate will be waaaay slower.

MOG1558AC.pdf (94.9 KB)

firestorm_v1:
After liberating one of the LED modules from the display, I found out that the modules are 7 elements tall by 10 elements wide. As a bonus, the display is actually a dual color display with separate + pins for the red and green LEDs. After further probing, it appears that the modules are common GND.

Do you mean 14 Anodes (7 Red + 7 Green) and 10 Common Cathodes (24 pins) or 20 Anodes (10 Red + 10 Green) and 7 Common Cathodes (27 pins)?

Assuming the former:

Depending on how you wire the two displays you'd have 28 anodes and 10 cathodes (six shift registers: 4+2) or 14 anodes and 20 cathodes (5 shift registers: 2+3).

The LED displays are common anode with 10 pins (one for each column) then 2 rows of 7 pins (one for each color).

I would like to drive two of these displays, so it looks like 20 anodes, 28 cathodes (14 red, 14 green)

In the image attached, the 10 anode pins are on the top, the cathode pins are on the bottom with pin 1 being towards the left hand side of the image. Element 1 is the upper left hand corner (Orange). Cathode R1 (red) and G1 (green) are connected to light the first element with the orange color. Cathode G2 is connected and lights the second element green, Cathode R3 is connected and lights the third element red. The cathodes are laid out R1, G1, R2, G2, R3, G3, R4 {space} G4, R5, G5, R6, G6, R7, G7

Based on sheer volume of pins, my limited knowledge tells me that I will be needing some kind of multiplexer chip to run the pins instead of the Arduino I currently have. I know the 74HC595 can do it (although padding it with the ULN2003 isn't a bad idea to prevent from burning out the shift registers) Would it be better to use the Arduino to drive all seven Cathodes (with another 2003) and then use a 74HC595 with another 2003 to sink the Anodes?

As far as refresh rate goes, I'm trying to get a display that is good enough for the POV to appear solid and not like someone videotaping a CRT display. (forget what that's called).

So it sounds like you need this, with the number of anodes & cathodes adjusted.

You would mulitplex it by driving the cathodes as needed, that can be from 74HC595 as they are sinking current for 1 LED only, and then sourcing current via PNP trnansistor (or a part like UDN2981) controlled by 74HC595.