Using multiple 5x7 LED as matrix

Hi all.

I have what I think is a pretty simple question/project, but I'm running it here for a sanity check.

I want to build a very small LED matrix display, and already have a bunch of TA-07 cathode-row 5x7 matrix displays (2.1Vf, 10mA) that are ideal for the project. Is there any reason at all I can't just wire up the common row pins (cathodes) together and slap some transistors and a shift register to do the scanning, while putting limit resistors and shifters to control the columns?

I'm just assuming there's nothing special about those modules aside from the fact they're already wired up in a 5x7 matrix. I just want to use them together as a unit. I've got some Max 6953s, but I think I'd have to use cathode-column matrix displays in that case.

Anyway, as I said, I don't think there's anything crazy about what I'm considering, but I also like tapping into the smarts of others for a sanity check. Thanks.

I was going to suggest you Just get some MAX7219s, but then you say

Is there any reason at all I can't just wire up the common row pins (cathodes) together and ...

which makes no sense.

Perhaps you should have another attempt to explain what you actually want to do with these displays?

I'm sorry I didn't explain it well enough.

I was just contemplating connecting each display's rows together, treating the displays as a single logical unit rather than x discrete displays.

For example, Row 1 is on pin 12. Row 2 is on Pin 11, etc. I was considering connecting all #12 pins together to create a single logical row; all Pin 11's together for a single logical row 2, etc.

Sorry if that's an obviously stupid thing to suggest doing. Guess that's why I'm asking.

You can do that, yes. You could use a 74hc595 shift register and 7 transistors, or 7 Arduino pins and 7 transistors, or a tpic6b595 (no transistors needed), to scan the rows. Then you would need a bunch more 74hc595 shift registers to source current to the columns, for example 4x 74hc595 for 6x matrices. So for 6 matrices that's 4 or 5 chips and 30 resistors. Plus you have to write a complex sketch that does the multiplex scanning. Depending what else your project is doing, it can be tricky to keep that scanning regular and avoid the displays flickering.

If you use max7219, you need one chip per display, you can't common the cathode rows, and it seems a waste to use a chip that can drive 8x8 for displays with only 5x7. But consider the benefits. No transistors, only one resistor per chip, the multiplexing is done for you and remains stable and flicker-free regardless what your sketch is doing. You also need a couple of caps per chip, but you need those whichever chips you choose.

Another possibility is ht16k33 chips. Each chip can drive 3 5x7 matrices (connecting the cathodes/rows), and again, no transistors and only one resistor per chip. You can get quite convenient modules with ht16k33 chips, resistors and caps all built in.

Thanks, Paul.

The ht16k33 is an intriguing possibility. And you're right in that my sketch would get complicated with the refresh using shifters.

At the risk of pushing my luck, to maximize the 7219, could I use the "extra" (unused) pins to the columns on the adjacent 5x7s, spanning the displays (for lack of a better term)?

That is: Max7219 #1 goes to the five columns of Display 1, and the three remaining go to the first three columns of display 2. Then, Max7219 #2 would span the remaining two columns of LED #2, then the five of LED #3, then the first column of LED #4, and so on. Doable?

No, that would mean one max7219 controlling 3 columns of a 5x7 matrix and another max7219 controlling the other 2 columns. But you can't separate a matrix like that, the rows are common to all 5 columns. The only way would be to have the row scanning perfectly synchronised between the max chips.. There's no way to do that except controlling the row scanning with the Arduino, and you are back to using shift registers.

Sounds like the HT16K33 is the go for your application. I am not so familiar with it, but have just purchased a few for "Ron". :grinning:

Aliexpress item

Just thought I wold mention I opted to go for the 7221 solution for the 5x7 matrix project. Read up a bit on the ht and from what I could tell the addressing might put a limit on how many I could use, and I'm going to have two displays of eight matrices each. I know I can daisy chain up to eight 7221's on a single setup, so that helped make the decision simpler.

So, I dug around and found I had a couple leftover from a different project just driving some 7-seg displays; breadboarded up a quick sample project and a test sketch for the matrix and it was drop-dead simple, actually simpler than driving 7-segs.

Worked up some schematics and got some PCB'S designed and ordered for the project.


No problem for ht16k33, you would need 6 chips and you can have up to 8 easily. If you need more than 8 you could use a tca9548a i2c multiplexer, which would allow up to 64 ht chips per multiplexer and up to 8 multiplexers.

Just to put a bow on this thread, I designed and ordered some PCBs for two assemblies using these 5x7 matrices in the form factor I needed, and they came in the other day. Got them soldered up, tested, and working easily in an evening. They work perfectly and are exactly what I needed. Thanks for all the good input.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.