DIY LED Domino Clock

by skylar-makes in Circuits > Electronics

137 Views, 3 Favorites, 0 Comments

DIY LED Domino Clock

IMG_7578.jpg
F3HVUP4MEBV9LTG.jpg
FK02Q9HMEBV9LS1.jpg

I was browsing Instructables when I stumbled into this awesome project (now inaccessible) and I was inspired. I loved how it told time in a unique way, but was still relatively easily readable. I knew I wanted to make something similar, but the complicated wiring and the light diffusers made it impractical to use that design. I decided to make my own from scratch.

Supplies

IMG_4710.jpg

Time to make: 4 hours (& 12 hours of printing)

Total cost: $60

Materials:

  1. White Parchment Paper - Amazon
  2. WS2812B LED Strip w/ 33mm spacing - Amazon
  3. ESP32 (or any other Arduino-style microcontroller with a small footprint) - Amazon
  4. 15ft white micro USB cable - Amazon
  5. DS3231 RTC - Amazon
  6. 30 AWG Wire - Amazon

Tools:

  1. 3D Printer
  2. Soldering Iron
  3. Scissors
  4. Ruler
  5. Super Glue
  6. Double Sided Tape

3D Print Case

IMG_7590.jpg
IMG_2025081910012312.PNG
Screenshot 2025-08-21 200611.png

After ordering all the electronics, the first step is to 3D print the case.

Print with these settings:

  1. Layer Height: 0.2
  2. Infill: 15% Gyroid
  3. Supports: Disabled

You will need to print:

  1. 1 of each main body
  2. 3 front plates
  3. 1 of each back plate
  4. ♫ and a partridge in a pear tree ♫

I have attached stl, 3mf, & step file formats. The 3mf is set up already for a Bambu Lab P1S.

Cut the Parchment Paper

IMG_4720.jpg
IMG_4724.jpg

The next step is to cut the parchment paper. Take the ruler & scissors and cut 3 3.9x8in rectangles out of the paper. Round all the corners.

Assemble the Front Panel

IMG_4729.jpg
IMG_4730.jpg

Take the 3 large front panel pieces and super glue the back edges to the flat side of the main bodies. Make sure to have the front panel's paper slot on the side opposing the main body's cable hole and to have the triangular wire cutouts of the main bodies aligned. Slide the cut parchment paper into each slot, making sure every domino dot gets covered.

Wiring

IMG_4743.jpg
Domino Clock LED Wiring Diagram.drawio (1).png
IMG_7601.jpg
IMG_7602.jpg
IMG_7603.jpg

Take the LED strip and cut:

  1. 6 strands of 6 LEDs
  2. 6 strands of 1 LED

Make sure to cut on the labeled line along the visible soldering pads.

Stick the strands to the back panels, aligning the LEDs with the embossed dots and following the diagram for orientation of the DIN and DO soldering pads. Make sure the mounting holes on the back panels are on top. I found the 3M adhesive backing wasn't as strong as I would've liked, so I used super glue to securely hold down the areas that were peeling.

Now onto soldering!

  1. Using the wires and following the wiring diagram, solder like pads together all the way down the chain of LEDs (i.e. solder 5V to 5V, GND to GND, DO to DIN).
  2. When you reach the end of the line, solder the 5V pad to the VIN pin of the ESP32, the GND pad to GND, and DIN to D13. Make sure to leave enough wire length to attach the ESP32 to the main body with the ESP32-shaped cutout.
  3. Remove the header from the RTC and solder + to 3V3 on the ESP32, - to GND, C to D22, and D to D21.

Upload Code

Screenshot 2025-08-21 202406.png

To upload to the code to the ESP32, you will need to install the ESP32 board into the Arduino IDE using these instructions. In addition, you will need to install the DS3231 & FastLED libraries. Search for them in the IDE and install the top results.

To set the correct time, uncomment the lines

/*
myRTC.setYear(25); // 00-99
myRTC.setMonth(8); // 1-12
myRTC.setDate(13); // 1-31
myRTC.setDoW(3); // 1 is monday
myRTC.setHour(23); // 0-23
myRTC.setMinute(6); // 0-59
myRTC.setSecond(0); // 0-59
*/

and put in the time a minute ahead. Upload the code about 30 seconds before the correct time as it takes a decent amount of time to compile. After setting the time, re-comment the same lines and re-upload the code. This makes it so that the ESP32 doesn't reset the RTC's time after every boot.

If it worked, the LEDs should light up almost instantly. Congrats! You completed the hardest step.

If not, go to Step 8 to debug.

Final Assembly

IMG_7608.jpg
IMG_7609.jpg

Now that the electronics work, the clock can be fully assembled.

Use double sided tape to attach the ESP32 to the main body that has the wire cutout. Plug in the micro USB cable and run it through the cable hole.

Arrange the wires on the backplate such that they are not near any of the LEDs. Route them along the triangle wire cutouts on the main bodies as you pop them into place. They should click and remain pretty secure.

Plug the USB A side of the cable into a wall adapter and you're done!

How to Read the Clock

IMG_4701.jpg

To read the clock, the number of dots in the leftmost domino represents the hour, the number in the middle domino is the first digit of minutes, and the rightmost domino is the second digit of minutes.

So the pictured time would be 1:40.

Debugging

If the clock is not working, there are a couple things that can be wrong:

If only some of the LEDs are lighting up, check that all the LED strips are soldered together correctly.

If the LEDs are lighting up but display random dots, check that the wiring follows the diagram in Step 4.

If the LEDs don't display the correct digits for the current time, reset the time on the RTC following Step 5.

If the LEDs don't light up, check to see the LEDs are soldered to the right digital pin on the ESP32. If you need to change which pin is set to control the LEDs, look for

#define LEDPIN 13

and modify the code accordingly. Also check that the LEDs' 5V pad is soldered to the VIN pin and that the LED's GND pad is soldered to the GND pin.