Homemade Word Clock

by shu_engineering in Circuits > Arduino

2026 Views, 37 Favorites, 0 Comments

Homemade Word Clock

20230227_131220.jpg
Clock Back.gif
Clock Front.gif

In this tutorial we will be building a word clock out of wood! It uses an ESP 32 and features WiFi syncing to adjust the time according to an internet database. Different words lighting up every five minutes and the color changes every minute for precise time keeping.

Supplies

Attached is a PDF of the required materials. It is split into two categories, consumables and reusables. Consumables are the items that you need for this project. Reusables are materials that are required, but can be used for other projects afterwards. If you already have some of these materials, feel free to use your own!


There are a few tools that we will need access to for this project. We will need:

  • A laser cutter
  • A table saw
  • A soldering iron


We will also need access to a vector based image editor such as Corel Draw or Inkscape. This will be used for editing the letters of the face if you would like to do so.


We will code the ESP 32 using Arduino IDE. A few extra libraries will need to be downloaded for it.


Additional materials you could use for the wooden frame is sandpaper and files to smooth out any imperfections. We will need hot glue for assembly towards the end.

Laser Cutting the Face

20221020_160115.jpg
LED Support Matrix.png

The first step is to create the wooden frame for the clock. This will require the use of a laser cutter. For this step, we will need:

  • Plywood


First, we need to laser cut two components, the face plate and the LED supports out of plywood. The files for these cuts are attached below. I made the three letters of the face "SHU" as those are the initials of my college, but feel free to change them to whatever you like. Make sure that the outer box is cut last as to avoid messing up any of the letters.

Cutting the Bezel

Cut Instructions.png

Once you have these two pieces, we can cut the outer bezel. For this step, we will be using a table saw and need:

  • 2x4


To begin, cut the 2x4 plank of wood cut down the middle using a table saw. Once split, mark the edges of the face plate on the 2x4 plank. These marks will be the bottom of our 45 degree cuts. Use a table saw to cut 45 degrees up and away from the mark. Save the corners of the wood as we can use them later.


Once finished, we should be left with several pieces. We should have:

  • The clock face plate
  • The LED support grid
  • 4 pieces of 2x4 cut down the middle and at a 45 degree angle
  • The 4 leftover corners of the 2x4


Next we will begin assembly

Assembling the Frame

20230206_122309.jpg
20230206_122417.jpg
Cut Guide.png

We will now assemble the frame. For this step, we will need:

  • Our cut pieces
  • Wood putty
  • Wood glue


Attached above is the end goal for this step. Place the face plate face down on a table with the 4 pieces of 2x4 around it forming a box. Glue the edges of the face plate to the 2x4 and the corners of the 2x4 together. Clamp down and leave to dry.


We can use the 4 corners of leftover 2x4 as structural supports. Glue a corner into each corner of the back of the frame. You may need to cut these pieces down a little to have them fit.


You may notice that in the picture showing the back of the clock, I routed a channel into the bottom 2x4 for a power supply wire to run through. If you would like to hang this clock on a wall, you may want to create your own channel with a table saw.


After everything has dried, use the wood putty to fill in any gaps or imperfections in the wood. The smoother the appearance the better. Allow around a day for the putty to dry.

Painting the Frame

20230208_115948.jpg
20230208_120017.jpg

Our next step is to paint the frame. For this next we will need:

  • Our assembled face
  • The LED support grid
  • Spray paint


Apply several coats of paint to both the assembled face and the LED support grid. Once it looks smooth and fully covered, you are finished. Allow around a day for the paint to dry.


The spray paint recommended in the materials list functions as both paint and primer. If the paint you are using does not include primer, make sure to apply a few paints of primer first.

Assembling the Bread Board

Schematic.png
Wire Split.png

For this step we will need:

  • ESP32
  • Power Supply
  • Soldering Kit
  • Buttons
  • Wire
  • Adafruit LED Strip


The picture shown is the schematic of the ESP32. I chose to solder this onto a PCB board for a smaller form factor. You could either do the same or keep the ESP32 on the breadboard.


The 3 wires that are sticking out of the breadboard are the power, ground, and data wires. The power and ground wires will be soldered into the adapter that comes with the power supply to power the clock. You can branch another wire off of these two and plug the ground, power, and data pins into the LED strip to power it.

Coding the ESP32

arduino_logo_1200x630-01.png

Below is the Arduino file that contains the code for this project. Make sure that you download the libraries that are needed. These are:

  • Adafruit_NeoPixel.h
  • ESP32Time.h
  • WiFi.h


In the Declarations section of the code are the variables:

  • const char* ssid    = "FILL IN HERE";
  • const char* password = "FILL IN HERE";

For ssid enter the name of your WiFi network. For password enter your WiFi password. This will allow the ESP32 to connect to the internet.


Below is the variable:

  • const long gmtOffset_sec = -18000;

Use this to set your timezone offset in seconds. For me this is adjusted to EST.


Some other things to change are the pin numbers for the buttons and LED strip if you wired them to different pins. The code for this is located in Setup and the beginning of Main.


I chose to cut the LED strip into 10 rows of 10 and solder them back together with a few inches of wire. This allowed me to easily bend the strip onto the LED supports. If you wish to skip this step and bend the LED strip as is, you will need to change the which LEDs light up the words. For example, take "int Its[] = {97, 3};". 97 is the starting LED, and 3 is the length of the word. This means that "I" lights up at 97, "T" at 98, and "S" at 99. You would have to change the 97 to whichever LED is the new starting point.


In the variable section is the "Colors" section. Right now, the minute words light up white for +0, red for +1, green for +2, blue for +3, and yellow for +4. these are labeled as min1 through min5. If you'd like to change the colors, replace the three numbers in the command.

  • They are the bold numbers here: uint32_t min5 = strip.Color(255, 255, 0).

Assembling the Clock

20230223_163755.jpg
Layer Instructions.png

It is time to assemble the clock! For this step we will need:

  • The painted frame
  • The painted LED support grid,
  • The assembled ESP32 component
  • Adafruit LED strip
  • Diffusion gel
  • Power supply


To begin, cut out a piece of diffusion gel to be the same size as the LED support grid. The gel listed in the PDF has two sides to it, a glossy one and a matte one. You can put a light behind it and decide which side you prefer facing up.


Sandwich the diffusion gel between the back of the face and the LED support grid. Apply hot glue around the edges to hold everything in place.


Next comes the LED strip. Bend the strip until it covers all the letters as shown in the picture above. Next, hot glue the strip to the LED support grid. This can be accomplished by making a hot glue bridge over the strip to hold it in place.


I used some extra scrap wood to create some supports for the ESP chip so I could hot glue it to the back of the face. You could do this too if you'd like.


I finished by hot gluing any extra wires down so it would look nice from behind.

Setting the Clock

Chart.png

When you first plug in the clock, it will automatically attempt to connect to the internet and set the time. If you'd like to sync the clock with WiFi later, you can push one of the three buttons to do so (for me its the red button). If the clock is not able to connect, it will time out automatically and you'll need to set it manually.


The other two buttons adjust the hour and minute values. I made some signs on the back of the clock to specify what each button does and what each color means.

Congratulations!

FIJMB8ZLER49VH5.gif
FVYWCDBLER49VH8.gif

You have finished the clock! Enjoy the fruits of your hard work!