Animated Word Clock




About: Crazy about technology and the possibilities it can bring. I love the challenge of building unique things. My goal is to make technology fun, relevant to everyday life and help people succeed in building coo...

Build your own Word Clock with an animated display. This is a simple project uses an Arduino Nano, Color LEDs and includes a stylish 3D Printed Case.

The Word Clock has three animated patterns
- Matrix style

- Typewriter Style

- Rainbow Color

The three buttons on the back enable animation style, color and time to be set.

A great addition to your home office or work space and a great gift for others. The Display provides an opportunity to experiment with various display options so there is potential to add your own custom animations.

- I hope you enjoy!!

Step 1: Gather the Materials

  1. Arduino Nano
  2. WS2812B RGB LED Module x 110
  3. DS2321 RTC module
  4. Light Dependent Resistor (Approx 8k-20k range)
  5. Resistor 10K ohm
  6. Push Button Switch x 3
  7. Vero Board 15 x 34 holes
  8. Access to 3D Printer with a build volume of 200mm x 200 mm x 70mm (Ender 3)
  9. White PL filament
  10. Mini-B USB cable - 2m length
  11. Multi-core hookup wire
  12. Bell Telephone Single-Core wire 3m
  13. Soldering Iron
  14. Silver or Black Spray paint for coating inside of Baffles

Step 2: Print the Case

The 3D design of the case has been through three iterations in the field and now I've settled on this design to give maximum transfer of light in the clock without compromising on aesthetics or build quality.

There are four components to print

  1. LED Mount - Contains the 110 x WS2812 LEDs
  2. Front Case
  3. Baffles
  4. Rear Panel

Download the STL files from Thingiverse link here and load into your slicer in preparation for printing on your 3D Printer.

I used PLA filament and printed at 210 Degrees with a print speed of 40mm/sec, no supports are required.

I printed on a glass bed heated to 60 Degrees to get the clean finish on the face.

Note: When you print the baffles there are some parts of the letters that have no attachment. For instance the centre of the letter "O". Dont worry about these because you can use a marker pen to color these in on the back of the front case if there is too much diffusion. See the final photo above.

Step 3: Build and Test the LED Array

The LED Array

The unit uses an 11x10 LED MAtrix using 110 Ws2812 LEDs which are connected in series as bus as per the Circuit Diagram.

Take the LEDs and carefully orient them in the LED Mount so that the LEDs follow the pattern and numbering provided above.

Solder the +ve and -ve connections using single core Bell Wire that has been stripped into one long chain see photo. Then carefully run one wire down the Data line and solder in place. I then snipped out the Data connection on each LED individually to make it easier to connect up.

I used hookup wire to connect each column of LEDs as per the photograph.

Testing the LEDs

Using breadboard and an Arduino Nano it is easy to test the LEDs at this stage. Connect the Arduino Nano Vin and GND pins temporarily to the LED Array then connect D11 to the Data pin.

Connect the Arduino Nano to the LED Array Data pin and connect to a Desktop device USB.

Load the Arduino IDE and then upload the code provided. The clock LEDs should run the startup Tests without any connections and therefore is a good way of testing your Array. If there are any LEDs not lighting during startup check connections and orientation of LEDs to resolve.

Step 4: Assemble the Circuit and Test

Assemble the Circuit

Now that you have tested the LED array you can assemble the circuit,

I have provided photos of the Vero Board layout so you can copy the holes and wiring layout provided. Drill out the mounting holes and check the alignment with the 3D printed read lid.

Solder in the Nano, Switches and LED first then connect up wiring as per the circuit diagram.

The DS3232 RTC clock module was installed last of all and connected with Bell Wire to the Nano as per the photo provided.

Load the Arduino IDE Libraries

These need to be added to the Arduino IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.





Follow the Arduino IDE update library procedure to do this before the next step.

Set the Time

Use the "TIme Set" Sketch provided in this step, upload to the Nano and ensure that RTC is functioning correctly by setting the current. Then load the code provided and test the LED operation.

Step 5: Putting It All Together

Final Assembly

Finally, attach the USB cable through the rear case lid and fasten in the chord grip provided.

Screw in the mounting for the PCB. Place a sheet of plastic between the back of the Baffle and PCB to avoid any short circuits.

Screw in the back lid and you should be ready to use your Matrix Word Clock


The Word Clock has four animated patterns

  1. Rainbow Color
  2. Matrix style
  3. Typewriter Style
  4. Standard Static Display
  5. Downward Fill Style

Adjust Animation

The default animation is the Rainbow colour style. You can increment your way through the animations by holding down the left buttonfor a few seconds until white and red square fills the display. Release the button and then the animation will appear on the clock.

Adjust Colour
The default colour for the clock is Green. You can increment your way through the colours by holding down the right button for a few seconds until white and blue square fills the display. Release the button and then the animation will appear on the clock.

Auto Dimmer
The LDR provides enough sensitivity to detect dark and light environments through the white PLA casing. I have tuned this in the code to turn on the LEDs to brightest intensity when in daylight. You may have to adjust this depending on LDR values. You can do this by printing analogRead(7) and then exposing the clock to both dark and light environments then display the readings in the IDE monitor. Make appropriate adjustments in the code.

Manual Time Adjustment

I recommend you use the Set Time Sketch provided to set the time accurately. Using an external USB port to power the clock gives you the convenience of doing this. The RTC will have a rechargeable battery that should retain the time for approx 24 months so there should be no real reason for manual changes.

If you have to you can increment or decrement the minute setting of the clock by doing the following.

Decrement Time

You can decrement the time by one minute by holding down the right and middle button for a few seconds until a white and purple square fills the display. Release the button and then change will be made. Remember the clock only displays five-minute variations of time so this means you will need to repeat until you see a change.

Increment Time
You can increment the time by one minute by holding down the right and middle button for a few seconds until a white and purple square fills the display. Release the button and then change will be made. Remember the clock only displays five-minute variations of time so this means you will need to repeat until you see a change.

The Display provides an opportunity to experiment with five various display options and I have only included 5.

There is potential to add your own custom animations. - I hope you enjoy!!

Arduino Contest 2019

Participated in the
Arduino Contest 2019



    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest
    • Pets Challenge

      Pets Challenge
    • Beauty Tips Contest

      Beauty Tips Contest

    28 Discussions


    Question 1 day ago on Step 4

    Hi, Nice project so far! Compile fails with errors around DS1307 library. Where do I download this library?


    Question 8 days ago

    is there anyone who can give me some tips how i can make this work with a esp8266?

    3 answers

    Answer 3 days ago

    The LED control would be straight forward I haven't tried the RTC with esp boards yet


    Reply 3 days ago

    Unfortunately i don't have the time to build it now. But will do in the near future.
    I will try to use the esp with the time from the internet.

    Tip 9 days ago

    My first print of the Case_Final failed, because my magnetic mat wasn't the best for this print. The sides warped and even the magnetic mat came lose. So i printed it on back of the glas of the ender 3. I heated the bed to 50 degrees and it came out super smooth.
    I got this tip from Ivan Miranda.
    It took me about 19 hours to print.

    2 replies

    Reply 9 days ago

    Nice work, has a great finish!! I used a Glass bed and Gluestick however you got a better finish


    Reply 8 days ago

    Thanks for your great design. Still have to put it together, but the days are getting warmer now so i dont want to sit inside my house soldering.


    17 days ago

    How long did it take you to print the baffle? Thunderstorms make me wary of starting a print for 48+ hours. Anyway, nice project.

    3 replies

    Reply 9 days ago

    It took me about 12 hours. Sliced in Cura. Used the draft settings for ender 3


    Reply 17 days ago

    Hi I think my print was less than 12 hours on an Ender 3. It does not require a high quality finish being interior to the clock so you can up the speed to 60mms and use a draft print quality to speed things up.


    Question 18 days ago

    what are the dimensions of the 3d printed parts?

    1 answer

    Answer 17 days ago

    Hi the finished clock dimensions are approx 190mm X 190mm x 50mm


    Question 20 days ago

    Hi, How much ohm is the photoresistor? i see on aliexpress only WS2812B, not WS2182B, the right model is WS2812B White?

    3 answers

    Answer 20 days ago

    The LDR is approx 8K to 20K. I have provided a link for this part. Yes they are WS2812B RGB White for that link. Apologies this was a typo corrected now.


    Reply 20 days ago

    Cannot see the LDR link, can you repost it? i m also trying to do an italian version of this clock but i need different letters for the case, can you help me with the stl file? i need the layout in attached. i'll modify the code you give us.


    Reply 19 days ago

    Yep, I used an emboss feature in Windows 3D Builder to cut the text into 4mm thick horizontal strips. Then I put a 0.8mm layer over the front panel. You can open the STL provided and take thickness measurements. PS. LDR link now in parts list


    22 days ago

    The link for the LED module takes you to a site where the cost is $3.90 each for 25+ purchased. That means that 110 of them will cost $429. Even if they are NZ dollars that's a lot for a clock. That is equivalent to US$278. Or did I miss something?

    1 reply