MAX7219 LED Matrix with an Arduino Uno
A serial-input common-cathode LED driver IC paired with an 8x8 dot-matrix, controlling all 64 LEDs over three signal wires.

The MAX7219 needs a 4.0 V to 5.5 V supply and 3.5 V for a logic high, so it is a direct fit for the Arduino Uno's 5 V. Its DIN, CLK and CS go to D11, D13 and D10, the Uno's hardware SPI pins, even though the LedControl library used here bit-bangs them.
Wiring the MAX7219 LED Matrix to the Arduino Uno
Pin by pin.
| MAX7219 LED Matrix | Arduino Uno |
|---|---|
| VCC_IN | 5V |
| GND_IN | GND |
| DIN | D11 |
| CLK_IN | D13 |
| CS_IN | D10 |
What to know on the Arduino Uno
- The MAX7219 reads a high from 3.5 V and the Uno drives 5 V, so no level shifter is needed, unlike on 3.3 V boards.Maxim MAX7219/MAX7221 datasheet 19-4452 Rev 4, pp. 2, 3
- A fully lit module draws about 330 mA. Over USB the Uno's 500 mA polyfuse covers one module at full brightness but not two; for a chain, feed the modules from their own 5 V supply with a common GND, or keep setIntensity() low.Maxim MAX7219/MAX7221 datasheet 19-4452 Rev 4, p. 2; Arduino UNO R3 documentation, USB overcurrent protection
- Because DIN and CLK already sit on MOSI (D11) and SCK (D13), switching to a hardware-SPI library such as MD_MAX72XX for faster scrolling needs no rewiring; CS on D10 is the Uno's SS pin.Arduino UNO R3 datasheet, p. 10
- Each extra module in a chain only adds 16 bits per update, and the Uno stores one byte per row per module, so even long chains fit in its 2 KB of SRAM.Maxim MAX7219/MAX7221 datasheet 19-4452 Rev 4, p. 5; Arduino UNO R3 tech specs
MAX7219 LED Matrix code for the Arduino Uno
Compiled for arduino:avr:uno on 2026-10-30.
// MAX7219 LED Matrix on Arduino Uno: wiring and a free simulation at https://www.tinkered.ai/components/max7219-matrix/arduino-uno
#include <LedControl.h>
// LedControl(DIN, CLK, CS, numDevices): Uno: MOSI=11, SCK=13, SS=10
LedControl lc = LedControl(11, 13, 10, 1);
void setup() {
lc.shutdown(0, false); // wake from power-saving
lc.setIntensity(0, 8); // brightness 0–15
lc.clearDisplay(0);
}
void loop() {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, 0xFF); // light the whole row
delay(120);
lc.setRow(0, row, 0x00);
}
}
MAX7219 LED Matrix on the Arduino Uno: questions
Can an Arduino Uno power a MAX7219 LED matrix from USB?
One module, yes. Fully lit it draws about 330 mA (Maxim datasheet, p. 2), within the Uno's 500 mA USB polyfuse. Two or more at full brightness need a separate 5 V supply with a shared ground.
Which Uno pins should the MAX7219 use?
DIN to D11, CLK to D13 and CS to D10, the Uno's SPI pins. LedControl works on any pins, but these also let you use a hardware-SPI library later.
Does the MAX7219 need a level shifter on the Uno?
No. It needs 3.5 V for a high (Maxim datasheet, p. 3), and the Uno's pins drive 5 V.
This guide as plain Markdown. /components/max7219-matrix/arduino-uno.md