Programmable LED Clock


Fun project. I was trying to find a use for these microchips I had lying around, and I wanted to make something clean and functional, so I decided on a clock of which I was lacking in the living room. Of course with any project, you just end up loading on more supplies in the end than you had to begin with…hence the cycle continues!


An atmega328p chip serves as the “brain” of the clock. In order to program it with my clock code, an Arduino UNO was used as the intermediary from the computer to the chip so they can talk.

Originally, I thought I would use simple buttons and dials to set and customize the clock, but that made the circuit physically too big and difficult to mount everything cleanly. Then I thought I can use one of the spare remotes lying around from previously used LED strips. These remotes are commonplace when you buy a wireless dimmer or led strips. So I added an IR receiver to the project to receive signals from one such remote. Each button can then be programmed to do whatever I want: set hour, set minutes, set hue/saturation/brightness, etc.

Recording of IR remote transmitted signals

Originally I thought in order to be able to control each LED for each minute/second dot, I would have to expand the number of inputs on my chip by a lot, from 14 to 60+, using shift registers in chain. Turns out, it was much easier than that, thank goodness. Addressable LEDs are now commonplace and quite affordable. They are different from standard LEDs in that they can be connected in series, but individually controlled using one common data I/O. That is amazing! Instead of wiring 60 individual LEDs to the microcontroller, I only need to send one data wire to it!

Tearaway pack of LEDs (not a connected matrix)

By using an IR receiver and addressable LEDs for the minutes and hours, the circuit can be reduced to just this tiny board. The blue board is a real time clock module used for keeping time, as the microcontroller should not be relied on to keep accurate time.

Completed core circuit

The biggest trial was not the programming or designing the circuit, it was soldering 60 LED dots each with six wires coming out of it. Holy moly.

All the parts were mounted to a laser-cut acrylic clock face with cyanoacrylate (superglue) and other adhesives.

Completed assembly

Each hand on the clock can be programmed to a different color for AM and for PM, so overall there are 24 colors for hours, and one for the minute. The second tick is a dim white, not readily apparent in photos.

24-hour customizable clock

(Ignore the seconds jumping around–it’s from resetting the hours)