Word Clock




Introduction: Word Clock

A few years ago, I started making my first Word Clock, inspired by the nice Instructables available.
Now that I made eight Word Clocks, which I try to improve each time, I think it is time to share my experience!

An advantage of my experience is that the latest version of my Word Clock is actually quite simple: if you have all the components, you should be able to build it in one day.

First, the inside of the Word Clock.

My current version uses a RGB led strip: this is a led strip in which each 'light bulb' consists of a Red, Green and Blue led. By combining the three colors, (almost) every color can be created. The RGB led strip is controlled by one input (still a bit of magic to me). So, by connecting one wire, you can control all the leds in the strip!

Behind every letter on the face of the Word Clock (please see later this step) hides one led of the RGB led strip. So, when one led turns on, it should light up one letter. To accomplish this, I used a laser cutter to cut out a grid of wooden board.
In other Instructables, this grid was made using foam strips that are put together in a grid. I also tried this, but this did not work out for me. However, in my first version, I made the grid out of thin wooden strips which I glued together. This works perfectly fine, but takes a lot of time to build!

The brain of the Word Clock is the Arduino Nano. This tiny computer is able to control the RGB led strip. You can find infinitely many programs on the internet to mess around with, quite fun!

To avoid a lot of soldering (which takes time and is quite a craft), I use a terminal adapter for the Arduino Nano. All a terminal adapter does is to enable us to connect our wires to the Arduino using screws.

Of course, the purpose of any clock, besides being pretty, is to display the time. In my Word Clock, an Real Time Clock module (RTC) keeps track of the time. The idea of this module is that once you set the correct time, it keeps ticking (until its battery is dead). I work with the DS3231 RTC, which is quite cheap and a lot of support is available on the internet.

Now the inside of the Word Clock is clear, we move on to the outside.

From experience I know it is important to start your project from a convenient base. That is why I build almost all my Word Clocks using the RIBBA frame of IKEA. The advantage of this is that you start with a frame of which all angles are nicely 90 degrees and the finish of the outside is seamless.
Of course, you can build your own frame if you like, but I would stick to the RIBBA frame.

The face of the Word Clock is determined by the letters through which the light indicates the time. I found two ways of creating this face:

  1. Printing on transparent foil. You can print the negative of the letters on the foil. The black ink stems the light. A drawback of this option is that the ink should be dense enough to be non-transparent. A possible solution is to print the face twice and stack them on top of each other.
  2. Laser cutting paper. If you are able to use a laser cutter, an option is to cut-out the letters from paper. If the paper is thick enough, no light will pass. However, you should use a 'stencil' font. These kind of fonts have no close circles. So, for example, the 'o' will not be just a hole in the paper, but actually a 'o'.

What does the Word Clock do?

Of course, the Word Clock should tell you the time. Besides, since we are using a RGB led strip, you can light up any letter in (almost) any color you want!
You can set the color of the individual RGB leds by programming the Arduino Nano. If you want to be able to change the colors of the leds in real time, you can add a button that does this for you. However, since I want to keep it simple for now, this is not included in this Instructable.

Recently, I developed a Word Clock which uses Bluetooth to set the colors and the time. If I find the time I will post an update about this!

Step 1: Gathering Materials and Equipment

The materials needed:

- RGB-led strip, 5 volt, 60 leds per meter, individually adressable. You need around 3 meters of led strip. For example, this will do: RGB led strip. The 'ip' stand for the degree of resistance to water. Since non of the components we use is resistant to water, the ip30 version is fine.
Price: 4 euro per meter, so 12 euro.

- Arduino Nano: Arduino Nano. Please note that it is convenient to but a Arduino of which the pins are already soldered to the Arduino.
Price: 3 euro.

- Terminal adapter for Arduino Nano. Using a terminal adapter will save a great deal of time! They are quite cheap: Terminal adapter
Price: 1 euro.

- RTC DS3231: RTC DS3231. You may use another RTC, but this one proved to work perfectly fine!
Price: 1 euro.

- RIBBA-frame: RIBBA frame (23x23cm), black or white.
Price: 6 euro.

- For the face you either need:

  1. Transparent foil that is suitable to print on (ask your local print-shop!)
  2. Cardboard that is suitable for laser cutting (ask your laser cutter!)

Price: 5 euro.

- Jumper wires to connect the components. I do not really know how many we need, but they are cheap and widely available: Jumper wires. It is convenient to have male-male, male-female and female-female wires, however, male-male wires will do too (with a bit of extra soldering).
Price: 3 euro.

- Power supply. The RGB led strip uses 5V. It is important to not exceed this voltage, because the RGB led strips are easily damaged. Each led uses 20-60mA. Since we use 169 leds, the amperage that is needed to power the leds is quite large. Therefore, I recommend to use at least a 2000mA power supply, such as these: Power supply.
Price: 5 euro.

- One 400-500 ohm resistor.
Price: negligible.

- One 1000 uF capacitor.
Price: negligible.

- One prototype board, such as these: Protoboard.
Price: 1 euro.

- A piece of wood (board) to form the back of the Clock.
Price: 2 euro.

- A wooden strip of about 3x2cm to attach the back of the Word Clock to the frame.
Price: 1 euro.

- Two wire nuts (to connect to times 5 wires), available at your local DIY shop.
Price: 2 euro.

Total price: about 40 euro.

The equipment needed:

- Pencil
- Soldering station
- Stripping tool
- Screwdrivers
- Scissors
- Double-sided tape (to fix the components)
- Saw (to saw the board for the back of the Word Clock)
- A piece of cloth (to prevent scratches on the RIBBA frame while working on it)

Step 2: The Overview

Now we have all the materials, it is nice to have a overview of the general idea of the Word Clock.

The face of the Word Clock consists of the letters (either printed on transparent foil or laser cut out of cardboard). Behind every letter hides one led of the RGB led strip. Since the RIBBA frame measures 23x23cm and we use a RGB led strip consisting of 60 leds per meter (so 100cm/60leds=1.67cm per led), we can fit 23cm/1.67=13.8 leds in one row. Since 0.8 led may be a little inconvenient, we stick to 13 leds per row. Since the RIBBA frame is square, we will (later) construct a 'led-matrix' of 13x13 leds.

Simply said, the Word Clock consists of a little clock (the RTC DS3231) which once set, keeps ticking. This little clock communicates the time to the tiny computer (the Arduino Nano). The tiny computer knows which leds should turn on for a specific time. So, the tiny computer sends a signal though the data wire to the RGB led strip and turns on the leds.

This sounds quite simple, doesn't it?! :)

Step 3: The Face of the Word Clock

How to construct the face?

As said, I found two ways to create the face of the Word Clock:

  1. Printing on transparent foil. You can print the negative of the letters on the foil. The black ink stems the light. A drawback of this option is that the ink should be dense enough to be non-transparent. A possible solution is to print the face twice and stack them on top of each other.
  2. Laser cutting of paper. If you are able to use a laser cutter, an option is to cut out the letters from paper. If the paper is thick enough, no light will pass. However, you should use a 'stencil' font. These kind of fonts have no closed circles. So, for example, the 'o' will not be just a hole in the paper, but actually an 'o'.

What words to use?

Since we will use 13 leds per row, 13 rows and each led lights up one letter, we have room for 13x13=169 letters. In the Dutch language, these 169 letters are just enough to describe the time per minute. You can reuse some words, for example the only difference between '19 minutes to 4' (15:41) and '19 minutes past 4' (16:19) are just the words to and past.
It is quite fun to think about how to display the time in your language: be creative and you will find a way to optimally use the 169 letters!

Adding your signature

Of course, you are proud of your work and you deserve to be acknowledged! I added my own name (Bas) in the very down right corner of the face, just like famous painters do on their masterpiece.

Designing the face

I designed the face of my Word Clock using Adobe Illustrator. First, I created a square measuring 230x230mm on layer 1. Second, I constructed a 14x14 grid on layer 2. By placing the letters (on layer 1) on the grid-intersections, you are sure that the letters are aligned.

You can find my Dutch template attached to this step.
If you chose to laser cut the letters, please remember to use a 'stencil' font!

Step 4: The Grid Behind the Face

Why do we use a grid?

As said, each led of the RGB led strip should light up one letter. To avoid the light 'leaking' to another letter, I used a grid.

Laser cutting the grid

The most easy way to create the grid is to use a laser cutter to cut the grid out of a wooden board (thickness 3-6mm). The template (.ai format) is attached to this step. Please note that some letters (such as the 'M' take up more space then other letter (such as the 'I'). Therefore, you may need to make some grid cells slightly bigger than others.

Gluing the grid

If you do not have a laser cutter that you can use, an alternative way of creating the grid is to use wooden strips and glue them together. A drawback of doing this is that it takes a lot of time and it is quite difficult to get the grid right. However, I did it in the first versions of my Word Clock and it works perfectly.

Step 5: Creating the Led-matrix

We will use 13 leds in one row and 13 rows, which adds up to a 13x13 led matrix.

Cutting the RGB led strip

Cut 13 strips of the RGB led strip of a length of 13 leds. You have to cut the RGB led strip at the middle of the three copper ovals.

Assembling the 13 RGB led strips

We stick the 13 led strips to the wooden board that is included in the RIBBA frame. There is a hook glued to the board, which can easily be removed using a screwdriver.
Using the grid (of the previous step), you can easily mark the position of each led on the board. Most of the RGB led strips have a sticky back, so that you can easily stick them to the board. It is important to note the direction of the RGB led strip. The arrows on the RGB led strip indicate the direction in which the current flows. Since we want to connect the 13 RGB led strips, we have to create a continuous path for the current to flow.
Recently, IKEA cut one corner of the board, so that it is more easy to get the board out of the frame. It is convenient to use this cut corner to get the wires from one side of the board to the other. In other words, make sure that the first led is located in the cut corner.

Soldering the 13 RGB led strips

Now the 13 RGB led strips are stuck on the board, we can connect them using the soldering iron. First, dispense a little bit of solder on each half of the copper ovals. Second, cut the jumper wires strip one end. Again, dispense a little bit of solder on the stripped end of the wire. Now, led the stripped end of the wire touch the copper oval and use the solder iron melt the solder and connect them.
Connect the GND of one RGB led strip to the GND of the next RGB led strip. Do the same for the 5V and data wires.

Finishing the led matrix

Solder a jumper wire to the each of the three copper ovals of the first led of the RGB led matrix. As said, it is convenient to locate the first led at the cut corner of the board so that you can easily get the three wires to the other side of the board.

Step 6: Electronics

Now we have finished our led matrix, we can start connecting the components.

We will stick the components (Arduino Nano in the terminal adapter, RTC DS3231, wire nuts) to the back of the board on which we made our led matrix. You can use the double-sided tape to fix the components.

RGB led strip

First, put the Arduino Nano in the terminal adapter. It is convenient to place the terminal adapter in the middle of the board, since quite a few wires need to be connected to the terminal adapter. Connect the data wire of the RGB led strip (the middle wire) to one of the digital ports of the Arduino Nano (usually I use port D6). To protect the RGB led strip from voltage spikes, you can put a 400-500 ohm resistor between the data wire and the Arduino.

RTC DS3231

Second, stick the RTC DS3231 somewhere to the board. This module needs four connections: one ground, one 5V, one SCL and one SDA. We do not use the SQW and 32K port. You can use a female wire to connect to the pins of the RTC DS3231.
Connect the SCL to the fifth analogous port (A5) of the Arduino Nano.
Connect the SDA to the fourth analogous port (A4) of the Arduino Nano.

Step 7: The Power Supply

What power supply to use?

You can power the Arduino Nano using a wide rage of voltages. The 'Vin' port can handle 7-12V, the 5V port can handle 5V (what a surprise) and you can power the Arduino Nano using the usb mini cable.
However, the RGB led strip is more picky in its demands. Most manufacturers prescribe a 5V +/- 5% input to their RGB led strips (for more information see powering Neopixels). Therefore, we will use a 5V power supply.

One RGB led actually contains three separate leds (a red, green and blue one) which together form the desired color. One of the three leds uses about 20mA. So, a RGB led that emits the color white by putting on the red, green and blue led simultaneously uses 3*20mA=60mA. If you light up all the 169 RGB leds at once in the color white, you need 169*60mA=10140mA=10A*.
Most common power supplies are about 2000mA. So, in other words, lighting up all RGB leds at once in the color white is not a very bright idea**.

I recommend to use a 5V, 2000mA power supply, since they are common and quite cheap.

* Please pay attention that high currents (above 5mA) are dangerous! So, please be very careful when powering the Word Clock!

** There are some tricks to light up all RGB leds at once, such as connecting the power supply to both ends of the RGB led strip, or using the RGB leds at a lower brightness.

Connecting the power supply

We will connect the power supply to the components. We will connect a 1000 uF capacitor over the positive and negative wire of the power supply. You can use a protoboard to secure the connection (see picture). Since we have quite some components that needs power, we connect each of the two wires of the 5V power supply to one wire nut: we will call them the positive wire nut (which is connected to the positive wire of the power supply) and negative wire nut (which is connected to the negative wire of the power supply). Now, connect the 5V wires of the RGB led strip and the RTC DS3231 to the positive wire nut. Similarly, connect the ground wires (GND) of the RGB led strip and the RTC DS3231 to the negative wire nut. We will power the Arduino Nano through its 5V port and one of its ground ports. To do this, connect the 5V port of the Arduino to the positive wire nut and one of the GND ports to the negative wire nut.

Securing the power supply

To avoid ripping apart all your nicely wired electronics, it is recommended to fix the cord of the power supply to the inside of the RIBBA frame. You can to this by simply making a knot in the power cord before it leaves through the back of the Word Clock. However, a more elegant way is to secure the cord by clamping it to the inside of the RIBBA frame. You can easily do this by using a little piece of wood and screwing it to the inside of the RIBBA frame using two screws. Clamp the cord of the power supply between the piece of wood and the RIBBA frame.
In my latest version of the Word Clock, I used a little hinge (about 3cm) to secure the power cord. A advantage of this is that you do not have to cut a little piece of wood.

Step 8: Putting It All Together

Now we printed or cut the face of the Word Clock, finished the led matrix and connected the electronic components, it is time to put all layers of the Word Clock together.

  1. Put the face of the Word Clock in the RIBBA frame.
  2. Put a (semi) opaque paper (regular printing paper or tracing paper) to nicely distribute the light along the letter.
  3. Put the grid in the RIBBA frame.
  4. The board with on one side the led matrix and on the other side the electronic components can be carefully put into the RIBBA frame.

Step 9: Creating the Back of the Word Clock

The back of the clock can simply be made out of wooden board.
The nicest way to do this is to saw a piece of board at the same dimensions (about 22.5x22.5 cm) as the board that was supplied in the RIBBA frame.
Drill two holes in the back of the Word Clock: one for attaching it to the wall (if you want to) and one for to power cord to leave the Word Clock.

Saw two pieces with a length of about 20cm of the wooden strip. These two strips have two functions:

  1. Holding the wooden board with on one side the RGB led strip and on the other side the electronic components in place
  2. Creating a surface on which the back of the Word Clock can be screwed in place.

Now, screw these strips against the inside of the RIBBA frame make sure that you press them tightly against the board which holds the electric components.
Next, you can put wooden board that you just sawed on top of the wooden strips and fix it using screws.

If you want to put the Word Clock on the wall, make sure that back of the Word Clock is attached firmly.

Step 10: Programming of the Arduino Nano

If you are new to programming Arduino, I would recommend to first do a few tutorials (such as Blink), which are very informative (and fun!).

Since I am just a Mechanical Engineering student, programming is not my favorite part of the project. Luckily, my brother in law is a Masters in Computer Science, so programming the Arduino was a piece of cake for him. So, all the credits for programming are for him (thanks Laurens)!

The basic idea is that you indicate which leds are part of which word. Note that the first led is indicated as led number 0. So we have 0-168 leds. Next, you tell the Arduino which words need to light up at a specific time. You set the time on the RTC DS3231, so that the Arduino knows what the current time is.

The colors of the leds of the RGB led strip are determined by a value of 0-255 for red, green and blue. So, a red led is denoted by (red, green, blue) = (255, 0, 0) and a purple led by (reg, green, blue) = (255, 0, 255). A led that is not used has the color (red, green, blue) = (0, 0, 0).

You can group the words according to their purpose:

  • A group that always lights up ('It', 'is', your name, etc.)
  • A group for words that indicate the minutes
  • A group of coupling words ('past', 'to', 'half', 'quarter', etc.)
  • A group of words that indicate the hours
  • A group that covers all letters that you do not use at the current time

For each word group you can set a color (this is easier than defining a color for each word or even letter separately).

You can upload you program by connecting the Arduino Nano to your computer using a usb mini cable.

UPDATE (January 2019):

I added the Arduino-file to the Instructable. The file is written by my brother in law, so all credit goes to him!
The file is based on a Word Clock using buttons to switch between certain color-modes and a digital mode. Of course, you can program the buttons the way you like it.

Step 11: Finishing Up!

If everything went according to plan, you just made your very own Word Clock!

Please, if you have any recommendations, do not doubt to comment!
I will try to answer them, but since my time is limited, it can take a while.

1 Person Made This Project!


  • CNC and 3D Printing Contest

    CNC and 3D Printing Contest
  • Puzzles Challenge

    Puzzles Challenge
  • Rice & Grains Challenge

    Rice & Grains Challenge



3 months ago

Hello Bas, as there are no buttons in this project, the added ino actually does not work, because the code is waiting for the buttons. I had to remove all the code pointing to buttons to get it working. (I will see if it work when I add buttons aswell, but happy as it is now)


3 years ago

Very cool! I've always wanted a clock like this.


3 years ago

Thanks Bas for adding the files!!!
keep you posted on my build


3 years ago

Hi Bas, its been 10 months since someone asked you the first time for the .ino file , but i guess, you never added it. Will you please share the .ino file? or if you did share it , where can it be found? Greetzzz


Reply 3 years ago

Hi, I just added the Arduino file. Good luck!


Reply 3 years ago

Hi! Thanks for your interest in my project! I did not write the Arduino file myself (since my Arduino programming skills are very limited), luckily, a friend did that for me. Since the file is his work, I cannot share it without asking him. I will ask him soon, please remind me to post his answer over here! Thanks and happy new year, Bas.


Question 3 years ago

Hello Bas,

Thanks for the nice tutorial! I'm also planning to make a word clock but I still have some doubts about which power supply to use. You mention that each led draws around 60mA at the max. If you use 169 leds, don't you need a power supply that can provide +10A? Or do you just make sure that you never power too much leds at the same time?
What would be the effect of powering all leds together with this supply? Will something break or will the brightness just decrease?




Answer 3 years ago

Hi Wannes!

Thanks! Indeed, each led draws 60mA when all the three colors (red, green blue) are switched on to form the color white. If the power supply does not deliver the required current, the leds will light up in a non-white color (yellowish) and the brightness will decrease gradually along the led strip.
I am using a 3A power supply, which delivers sufficient current for the normal operation of the clock. Only when I want all the leds to light up simultaneously in a white color, the current is not sufficient.

Good luck!



Question 4 years ago on Introduction

Hello. Gréât job , i am not an arduîno Specialist, is it possible to get the arduino code for this clock? Thanks


Question 4 years ago

Hi Bas, I am Dutch too and I'm using the exact same components as you, it would make my life a whole lot easier if you posted the .ino file here, so I don't have to code it. I'm more interested in the building process than the code


4 years ago

Cool! electronic scrabble!


Reply 4 years ago

Thank you!


4 years ago

I'm glad you took everything you learned and made your own! It turned out really nice and your instructable is well written and easy to follow :)


Reply 4 years ago

I agree! This is going on my ToDo list for sure.


Reply 4 years ago

Thanks! Good luck!


Question 4 years ago on Step 10

Can you upload the .ino file?


Answer 4 years ago

Since the major part of the .ino file is written by my brother in law, I have to ask him if I can share the file. What is exactly the part that you are stuck with?