Hand-built LED Word Clock with Arduino
A wall clock that shows the time, the part of the day and the temperature by lighting words; 256 hand-soldered LEDs, an Arduino Nano, a DS3231 clock and a black face with white letters.
Overview
A word clock shows the time by lighting up the words of a sentence, for example "IT IS QUARTER PAST THREE IN THE AFTERNOON AND WARM". I built this one for myself in 2021, from the routed body and the wiring of 256 LEDs to the black front plate with white letters.
The idea of the clock and the design of its body come from an open-source project by Wouter Devinck (2014, CC BY-NC-SA 4.0), published on Instructables. That project did not work as published and had bugs, so I wrote the firmware completely from scratch, changed the type of the LEDs, and built my own version.
What the clock shows
The face has 16 rows and 16 columns of letters, with one LED behind every letter. Only the words that are needed light up:
The hour and the minute, like "HALF PAST SEVEN" or "TWENTY TO NINE".
The part of the day: MORNING, AFTERNOON, EVENING or NIGHT.
A temperature word: COLD, COOL, WARM or HOT, from the room temperature.
The other letters stay off and are barely visible on the black glass, so when all words are off the clock is just a plain black panel. The diagram below shows the main parts.
How it works
A DS3231 real-time clock module keeps the time accurately, even when the power is off. An Arduino Nano reads it, turns it into words, and builds a simple picture for the 256 LEDs. The LEDs are lit by 4 driver boards with a MAX7219 chip, connected to the Arduino one after another. The brightness of the LEDs can be adjusted. Four touch sensors sit in the corners of the face and respond when you touch the glass.
Construction
These were the main parts of the build:
Body: the body follows the open-source design; a hole and a recess for every LED were cut by CNC and drilling.
LEDs: I soldered all 256 LEDs one by one onto a 16×16 grid, in four 8×8 sections, each reaching one driver.
Electronics: MAX7219 driver boards, an Arduino Nano, the DS3231 clock module and touch sensors. I changed the type of the LEDs from the original design.
Software: I wrote the firmware from scratch.
Front plate: a black glass (acrylic) face with white letters and metal standoffs, with "Made by Alireza" on it.
The pictures below show the clock lit on the wall, all letters lit during a test, the front plate, the wired back, and the parts and the routed body.
Specifications
256 letters and 256 LEDs in a 16×16 grid
Microcontroller: Arduino Nano
Real-time clock: DS3231
LED drivers: four MAX7219 boards
Four touch sensors in the corners
Shows the time, the part of the day and a temperature word
Later version
Later I turned this same clock into a complete PCB, so everything sits on a board instead of hand wiring.
Result
A complete, working wall clock, built by hand and hanging on a wall at home.
Gallery
BLOG
Related posts
Questions about this project?
If you have questions about this project, or a similar one in mind, I would be glad to hear from you.