Home

Awesome

micropython-max7219

MicroPython driver for MAX7219 8x8 LED matrix

CI status

What is it?

This library provides support for the MAX7219 8x8 LED matrix on ESP8266 with MicroPython. It uses framebuf internally to provide drawing primitives and text support. You can chain several matrices the way you like: if you use two 4x 8x8 matrices, you can have one of the left, and the other on the right giving you a 64x8 area, or have one on top of the other to have a 32x16 display!

Tested on ESP8266 and ESP32 systems.

Connecting on ESP8266

ESP8266MAX7219
5VVCC
GNDGND
GPIO13 (HWSPI #1 MOSI)DIN
GPIO14 (HWSPI #1 SCK)CLK
GPIO15CS

Connecting on ESP32

ESP32MAX7219
5VVCC
GNDGND
GPIO13 (HWSPI #1 MOSI)DIN
GPIO14 (HWSPI #1 SCK)CLK
GPIO15CS

Examples

Using 10000000 as baudrate is recommended as greater values don't seem to work well...

Single 8x8 matrix (8x8 pixels)


from machine import Pin, SPI
import max7219

spi = SPI(1, baudrate=10000000)
screen = max7219.Max7219(8, 8, spi, Pin(15))
screen.text('A', 0, 0, 1)
screen.show()

Single 4x 8x8 matrix (32x8 pixels)


from machine import Pin, SPI
import max7219

spi = SPI(1, baudrate=10000000)
screen = max7219.Max7219(32, 8, spi, Pin(15))
screen.text('ABCD', 0, 0, 1)
screen.show()

Two 4x 8x8 matrices (left/right, 64x8 pixels)


from machine import Pin, SPI
import max7219

spi = SPI(1, baudrate=10000000)
screen = max7219.Max7219(64, 8, spi, Pin(15))
screen.text('ABCDEFGH', 0, 0, 1)
screen.show()

Two 4x 8x8 matrices (top/bottom, 32x16 pixels)


from machine import Pin, SPI
import max7219

spi = SPI(1, baudrate=10000000)
screen = max7219.Max7219(32, 16, spi, Pin(15))
screen.text('ABCD', 0, 0, 1)
screen.text('EFGH', 0, 8, 1)
screen.show()

Credits

This library is based on:

Thank you for the inspiration!