Usage of several LED matrices

Hey there!

I am trying to get used to programming my Arduino to control LED Matrices - either by using shift registers or by using drivers like the MAX7219.

Now while there are tons of examples on how to combine several of these nifty 8x8 LED matrices in a single row, i’d really like to learn more about how to control them in different arrangements like 2x2 (so you’ll get one big 16x16 matrix).

Sadly, I haven’t found any real good input on how to do that, so mabye someone out there has some resources for me.


Hi and welcome!

A simple solution is to daisy chain several MAX7219s, one IC per 8x8 LED display. This way you can control a large number of MAX7219s with just a few Arduino pins. Google for "daisy chain MAX7219". Also check out the MAX7219 datasheet.

Hope this helps!

Thanks for your advise! I always thought, that daisy chaining only applies to a single row of matrices. I know that each MAX72XX chip has DOUT on pin24. So by chaining the chips i could also control several LED matrices let say in a 2x2 (or bigger) layout?

Max72xx chips are always connected in series (essentially as one long row) so you have 2 options: - work with one row and use software to map between the boundaries for the pixel matrix for the actual physical arrangement. - work with multiple rows but then you will need to have more pins connecting to the max72xx chips

Personally I would use the first option and build smarts in the software. The interface is much easier and you only need to do mapping during any setpixel() type function, everything else can assume a 2 dimensional array of pixels.

marco_c: - work with multiple rows but then you will need to have more pins connecting to the max72xx chips

That really isn't an option - it makes no sense at all, mentioned largely as a muse. It is only really practical to address one MAX7219 chain at a time.

Whatever you do, the software has to distinguish between your upper eight rows, and the lower eight rows because it is all determined in units of eight rows and eight columns.

It might be a convenience to chain from the first upper module to the first lower, then the second upper, second lower (and so on for more). Or it might be more convenient to chain from left to right in the top row then left to right in the bottom row of modules. That is something you will need to figure out, however the "chainable" modules usually presume to do so in horizontal rows.

Mind you, the modules themselves may be mounted in any of four orientations and the only practical difference is in how the software is organised. The most peculiar suggestion is that the chain of the top row "folds" at the end to the bottom row which then chains backward with the modules inverted. This would require some substantial compensation in the software.

{Incidentally, marco_c is very much the expert here.}

Thanks for all your help on this. Since I have some LEDs to spare ( :astonished: 256 :grin: ) I am really thinking about a 16 by 16 matrix. I’ve also read through this and since there is no other option than controlling the matrix software-wise, I’ll try to dig myself into this. :smiley: