This ESP8266-based project runs a simple web server with 1 page to control an 8×8 LED monochrome matrix. It is powered by USB, and portable, as it uses the WiFiManager library to connect to any available wifi network. It allows you to control the LED matrix from a browser on a phone, tablet, laptop.

IMG_20180508_135301 - Edited

The web single page looks as below and allows to:

  • create an 8×8 binary image by toggling the pixel on/off
  • save/load 1 image, stored in permanent EEPROM
  • input text to be scrolled on the matrix, with a slider for speed
  • show a binary-coded decimal clock, using NTP
  • a slider for the overall brightness (not visible on below screenshot)


The hardware is fairly simple:

  • an ESP8266 in NodeMCU v1.0 package, programmed with the Arduino IDE
  • 8×8 LED matrix with MAX7219 driver
  • an LED to show the wifi connection status
  • a USB power cord

IMG_20180508_140423 - Edited

The code is a bit more work, combining several elements of other people’s work:

Here’s a little video that shows the startup. It displays the image previously saved in EEPROM, then attempts to connect to the last knows wifi network. When not found, the yellow LED remains on, and it launches an access point to setup the connection (WiFiManager).

Once it connects to the wifi network, it shows a welcome message, and the IP address of the web server. Then briefly the saved image, and then the BCD clock, showing the time 13:54

Below picture shows time 14:38 (ignore the first 2 rows and columns, and the last 2 columns: the dots there indicate the rows and columns that show the actual data)

  • row 3 shows 0001¬†= 1
  • row 4 shows 0100 = 4
  • row 6 shows 0011 = 3
  • row 7 shows 1000 = 8

IMG_20180508_143858 - Edited

One thought on “8×8 LED mono matrix with ESP8266 web server

Leave a Reply

Your email address will not be published. Required fields are marked *