16x8 LED Dot Matrix With MAX7219 Module





Introduction: 16x8 LED Dot Matrix With MAX7219 Module

16x8 LED dot matrix with MAX7219 module

The objective of this project is: to show off the use of the module "MAX7219 dot matrix display module MCU control DIY"
In order to using it you will need the module that can be purchased on ebay:


And you will need the MaxMatrix libraries files (which are 3):




The sketch with the code can be found on the link below:


Or get all files at GitHub:

See in the attached picture the interconnection diagram between Arduino module and MAX7219 module (it was used only 2 MAX7219 modules in this case):

Arduino pin 13 (alternative: pin 10) connected to the CLK pin of the module MAX7219
Arduino pin 11 (alternative: pin 8) connected to pin DIN module MAX7219
Arduino pin 10 (alternative: 9 pin) connected to pin CS module MAX7219
GND and VCC (+5V)

To expand the number of modules, you should just connect Dout pin of one MAX7219 module with the Din pin of the another MAX7219 module... and so on.

The MAX7219 Dout pin is at the top of the module while Din pin is at the botton of the module.

Remembering that you can connect modules as you want, just connecting the output of one module with the input of the other and leaving the other signals in parallel.
In the sketch, you should to modify the parameter "maxInUse" for the amount of modules that you will use.

The video is just demo.
Remember that you can modify the messages in the code itself, or use the serial console to enter the message.


A second video using four MAX7219 modules.


New features were added to this project (on November 1st, 2014):

1 - 40x8 LED dot matrix;
2 - Start scrolling button;
3 - Speed control potentiometer;
4 - Intensity control

Some buttons were added as shown in schem above.

Here it is the new video showing these new features.


If you are having problem/errors with "prog_ucahr" in the PROGMEM statement line

Use the following:

1 - Used for older Arduino's IDE:

PROGMEM prog_uchar CH[] = {

2 - Used for newer Arduino's IDE:

PROGMEM const unsigned char CH[] = { //used for newer arduino's IDE

Feel free to send me comments/questions/problems.

Best Regards

Marcelo Moraes
Skype: marcelo.moraes

The Company

ArduinoByMyself is a non profitable entity. Our goal is to share knowledge and provide SW and HW free for everyone. We seek a better society and therefore we do not sell products but we give all the support for everyone that want build their own project and we also give support for questions and problems as they needed.
We do not make projects by ordering but every idea is valid and saved for future use if interesting (technically and didactically speaking).
There are no copyrights in our projects, you can modify and use the code and description of how to do without legal implications (we only ask you to disclose "ArduinoByMyself" blog in order that other people also have access to the information contained in it).

6 People Made This Project!


  • Epilog Challenge 9

    Epilog Challenge 9
  • Paper Contest 2018

    Paper Contest 2018
  • Science of Cooking

    Science of Cooking

We have a be nice policy.
Please be positive and constructive.





can you help me?

I am using 8 matrix as daisy chain, sometimes the text message get blurr and keep blurr at some matrix till I switch off and on the system again, could you please tell me what would be the reason

I am using 8 matrix as daisy chain, sometimes the text message get blurr and keep blurr at some matrix till I switch off and on the system again, could you please tell me what would be the reason

hi there, can i ask something? it about of LED Dot Matrix using Arduino. How can i put a character and the character will scroll to up and down. Thank you. Please help me.

hi,i want to change the another language not in a english.how can i change it.please any one help me....

Hi Bd! Thanks a lot for sharing.
I have a huge favor to ask you. I found something extremely similar to this, but it seems that the connections between the MAX7219 and the LedMatrix are upside down. It is basically the same but somewhat upside down, and now I'm not sure which one to follow, because I don't know the risks of getting it backwards.
Could you please take a quick look at it and tell me if it is wrong?

Thank you very much!

Is it possible to set the Matrix up as 32X16? so you have 2 rows of 4 max7219s and they scroll in sequence like each16x8 acts as one module?

Hey hannoc,

Did you find like project what is contained 2 rows?

No I haven't, but I haven't been looking too hard, Im still waiting for my parts to come from china

I think Yes. But I had no code for this kind of project.

Thanks a lot for your comment.