Skip to content

RealDeco/matrixclock-esphome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕒 Matrix Clock for Esphome with MAX7219

A simple yet nice-looking Matrix Clock built using MAX7219 dot matrix displays and esp32-c3 supermini.

Nothing groundbreaking here — it’s just a digital clock that:

  • Keeps time over NTP (or from home assistant)
  • Listens to MQTT for messages
  • Scrolls any received text across the display
  • Runs with or without Home Assistant

Matrix Clock preview unnamed-2

---

📖 Background

I’ve been using this ESP8266 NTP Clock project for years and it works great for showing what is playing on the radio and so on..

This time, I wanted to run it on an ESP32-C3 SuperMini and instead of porting the old code, I wrote a simple ESPHome YAML config that replicates the same functionality.


🔧 Hardware Setup

ESP32-C3 SuperMini + MAX7219 dot matrix display:

MAX7219 with ESP32-C3 wiring

parts:

MAX7210: https://www.aliexpress.com/item/1005008005112441.html (comes with cable)

ESP32-C3 Supermini: https://www.aliexpress.com/item/1005005967641936.html


⚙️ Installation

1. Fonts

Make sure you have these fonts in your ESPHome fonts directory:

fonts/Eight-Bit-Dragon.ttf
fonts/5x8.bdf

2. Secrets

In ESPHome, set the following secrets (top-right corner in the ESPHome dashboard):

mqtt_username: "your-mqtt-username"
mqtt_password: "your-mqtt-password"

3. Configuration

At the top of your YAML script you will find this, change timezone and IP of your MQTT broker

if using several clocks, change topic for each

other settings can be left as they are if you followed the diagram:

  clock_timezone: "Europe/Copenhagen" # (only used if no HA)

  mqtt_broker: 10.66.66.12
  mqtt_topic: "matrixclock-1"

  pin_mosi: GPIO8
  pin_cs:   GPIO9
  pin_sck:  GPIO10

  num_chips: "4"

  scroll_delay_ms: "20"   # delay between scroll steps (ms). Increase = slower, Decrease = faster/smoother

(chips = number of max7219 sections on the board, usually 4, but could be 8)

4. Configuration

compile (install) and you are done! :)


⚙️ Testing MQTT

To test, go to developer tools, actions, and publish (mqtt.publish) this:

action: mqtt.publish
data:
  evaluate_payload: false
  qos: 0
  retain: false
  topic: matrixclock-1/scroll
  payload: "testing scrolling text and the speed TESTING TESTING TESTING "

About

Simple Matrix Clock for Esphome with MQTT scroller.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published