Controls Up To Eight 7-Segment LED Displays Or 64 Individual LED

The popular MAX7219 controller is used in many 7-segment LED displays and can drive up to eight displays (for displaying eight digits):

This controller is essentially an LED driver. You are not limited to use a 7-segment LED display. You could as well drive up to 64 individual LED, i.e. to control indicator LED or drive a LED bar graph.
This is a 5V device. Use MAX6951 if you need 3.3V operation. Typically though, even for 3.3V ESP microcontrollers, it is best to use 5V to drive LED and employ a level shifter for the control wires.


The MAX7219 consists internally of these units:

  • BCD Code-B Decoder: converts 4-bit decimal numbers in a 7-segment decimal
  • Multiplex Scan Circuitry: controls 8 LED at a time in rapid succession (800Hz)
  • Static RAM: stores the value displayed in each display

LED Driver

MAX7219 lets you flexibly control the connected LED:

Item Description
Common Cathode LED are controlled by their anode (+) and all use the same cathode (-)
Brightness digital and analog brightness control
Max recommended current per LED 40mA
Segment Control individual LED segment control: each LED can be controlled individually
LED Current provides constant current that can be set through an external resistor
Max Sink Current 500mA (62.5mA per LED)
Blank Mode Can blank display to reduce energy consumption while retaining the information
Digits Can be set to control between 1 (8 LED) and 8 (64 LED) 7-segment displays.

Brightness Control

LED brightness can be controlled via current (analog) by using an external resistor, and also digitally in 16 steps.

Current Control

LED are driven by constant current. The current per LED is set by an external resistor according to this table (select the column that matches the forward voltage of the LEDs you want to drive):

Current (mA) 1.5V 2.0V 2.5V 3.0V 3.5V
40 12.2k 11.8k 11k 10.6k 9.69k
30 17.8k 17.1k 15.8k 15k 14k
20 29.8k 28k 25.9k 24.5k 22.6k
10 66.7k 63.7k 59.3k 55.4k 51.2k


MAX7219 supports a simple 4-wire 10 MHz serial interface.

MAX7221 supports SPI, QSPI, and MICROWIRE interfaces and is slew-rate limited to reduce electromagnetic interference (EMI). Otherwise, both chips are identical.

Breakout Boards

Typically, the MAX7219 comes on a breakout board ready-to-use with 7-segment displays:

The controller and all logic is placed on the back side:

Data Sheet

Data Sheet


Please do leave comments below. I am using utteran.ce, an open-source and ad-free light-weight commenting system.

Here is how your comments are stored

Whenever you leave a comment, a new github issue is created on your behalf.

  • All comments become trackable issues in the Github Issues section, and I (and you) can follow up on them.

  • There is no third-party provider, no disrupting ads, and everything remains transparent inside github.

Github Users Yes, Spammers No

To keep spammers out and comments attributable, all you do is log in using your (free) github account and grant the permission to submit issues on your behalf.

If you don’t have a github account yet, go get yourself one - it’s free and simple.

If for any reason you do not feel comfortable with letting the commenting system submit issues for you, then visit Github Issues directly, i.e. by clicking the red button Submit Issue at the bottom of each page, and submit your issue manually. You control everything.


For chit-chat and quick questions, feel free to visit and participate in Discussions. They work much like classic forums or bulletin boards. Just keep in mind: your valued input isn’t equally well trackable there.

  Show on Github    Submit Issue

(content created Mar 28, 2024)