The MAX7219 Chip

The MAX7219 is a display driver originally designed to handle up to 8 7-segments display

But it can generally handle from 1 to 64 LEDs for a

8x8 LED Matrix
10 LEDs Bar Graph (Prototype coming soon)
8 Seven Segment Display
The C# class MAX7219.cs implements the different methods to support the 8x8 LED Matrix, Seven Segment Display (coming soon) and more. The library support also chained devices.


Videos

Source Code - Datasheet


Multiplexing

What is a display driver?

Out of the box if you want to turn on 64 LEDs, you need 64 GPIOs and the GPIOs must be able to supply enough current for the 64 LEDs (let's say 64 x 20 1280 milli-amp).

Generally we do not have 64 GPIOs, so we can use a technique called multiplexing. What's easy to understand with multiplexing, is that if we command the MAX7219 to light up the 64 LEDs of an 8x8 matrix, it will only light up 8 at the time, but because it does it so fast, our human eye cannot tell the difference. This save GPIOs and current consumption.

To learn more about multiplexing, see Multiplexing with Arduino and the 74HC595 by amandaghassaei


Current Consompution

All 64 LEDs on at full brigthness, the current consumption is 90 milli-amp.


Chaining

MAX7219 chip can be chained together to handle even more LEDs. Up to 8 MAX7219 can be chained together. Therefore up to 512 LEDs. USB power consumption is limited to 500 milli-amp.


7 Segment Display

The MAX7219 chip first goal is to manage seven segment display up to 8 with one MAX7219. And up to 64 with 8 MAX7219 chained together.

Source Code - Video