Rainbow Word Clock With a Full Rainbow Effect.





Introduction: Rainbow Word Clock With a Full Rainbow Effect.

Under construction


1) Simple

2) Not expensive

3) As energy efficient as possible

Code in Step 6


Step 1: The Case for the Clock

With some simple tools and a bit of skill, it's not hard to make a letter clock
I used the materials availible to me.

For the case I used a rough pine bar in which I sawed a few frames. These would make the four sides of the case, which were glued together and reinforced with a small piece of wood in the corners. Then the wood needs sanding and painting.

The letters are cut out of foil by a printer. The foil is at the back of the glass plate and is covered with a double layer pattern paper for better light distribution. The glass is fixated by silicone sealant.

Step 2: Neopixels

The Neopixels LEDs are arranged on a wooden plate.
In this you first drill 3 mm holes. At the front they are enlarged to letter size to 3/4 depth. After that the 3 mm at the back is increased to 10 mm, this is the size of a Neopixel. For some characters among others the W, the hole should be slightly adjusted.

I used plywood which quickly splintered, MDF may be better.

Step 3: Adjusting Front Text

The front plate is now in Dutch, but simply to convert in any language.

The NeoPixels leds are switched in succession here from 0-167. The numbering goes from the first row at the top left to the right and then to the second row right-to-left etc. Adjusting can be done according to your own needs. The number of NeoPixels is determined by the amount of characters. Less or more Neopixels can be adjusted in the following line

#define NUMPIXELS 168 // How many NeoPixels are attached to the Arduino?

168 is than another number. Numbering starts at 0. You can make any text. If you change the text then you will also have to adjust the corresponding words. The numbering remains the same.

As an example, DRIE of the minutes, is determined in the code

void zetmDrie () {

Led_Aan[56]=1, Led_Aan[57]=1, Led_Aan[58]=1, Led_Aan[59]=1 ; // min-drie


If you want to make the word Arduino then it goes like this:

void zetArduino () {

Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;

Led_Aan [120] = 1, Led_Aan [135 = 1, Led_Aan [147] = 1; //Word-arduino


So you can make words between.

For clock words it is useful if they a contiguous word forms but it is not necessarily necessary. At the unused letters do not need Neonpixels. I have them all filled because there are still more possible than just the time displaying.

If you change the starting point or change the succession sequence the numbering should change accordingly.

Step 4: Full Rainbow Effect

The clock is now so programmed that there a number of times per second is counted how many neopixsels there are switched on.

The total spectrum is about the number of divided and then slightly shifted. As a result, each Neopixel a different color which changes continuously. Neopixel nr 1 and nr 167 follow each other on some color involves.

If you prefer less different colors at the same time, this is easy to adjust. The color shifts still over the entire spectrum but with a smaller part of it. Neopixel nr 1 and nr 167 no longer follow on each other some color involves.

The brightness can be set in the following line,


A smaller number is less and a larger number more brightness.

Step 5: The Various Components

The following components I used

Arduino Pro Mini ATMEGA328 5V/16MHz

Clock Module DS3231

168 pieces Neopixels led's WS2812 LED Chip & Heatsink 5V 5050 RGB WS2811 IC Built-in

Foil letter stencil

DCF77 receiver

Step 6: Code for the Clock

Here is the code. She's not finished yet but the rainbow effect and the DCF77 receiver is ready.
I'm still working with a brightness control and power off when no one is present and at night.

Added RCWL-0516 Radar Microwave Motion Sensor ( search for RADAR )

After 10 minutes of no movement, the NeoPixels go out.

I am still testing in practice whether it is funtional.

Step 7: The Hardware Description

Under construction

Added a RCWL-0516 Microwave Motion Sensor.

As long as there is movement in the vicinity of the clock, the NeoPixel remain on

and as soon as there is no more movement the NeoPixel go off after a few minutes.

Temporarily simple programmed as a test version.

Step 8: The Software Description

Under construction



    • Creative Misuse Contest

      Creative Misuse Contest
    • Clocks Contest

      Clocks Contest
    • Water Contest

      Water Contest

    13 Discussions

    Hey Jan,

    Is there some kind of wiring plan available? I'd like to make one but I'm not really sure how to connect the components!

    4 replies

    It has traditionally been linked together, but I will make it a scheme

    Thanks, Jan!

    I'll have a go at it in the next couple of weeks!!!

    Hey Tinker-Bel,

    I have put the code in a more readable text and ino file.


    Scheme has been added and hopefully it is clear enough.

    Hey dancopy,

    I have put the code in a more readable text and ino file.

    Still working to make them completely in Englisch.


    Yes, there are still seven points open.

    Nou dit noem ik DUTCH POWER. amazing this is DUTCH power.

    Geweldig Jan, ik ga dit bouwen om je te eren. en na dat het klaar is link ik JOUW instructable link in de youtube vid en op onze website.

    ik hoop op backup voor eventuele problemen, maar dit moet gladjes verlopen ik heb alles al.



    1 reply

    Very cool design. You should enter this into the LED contest that is currently running.


    1 year ago

    Hallo Jan, I have build a dutch wordclock myself (because i am dutch) with an ESP8266, but am looking for improvements. The Rainbow effect is very nice.

    Did you thought of using an ESP32 instead of a Mega with extensions?

    (ESP32 has them all onboard & is cheap nowadays)

    Klok klaar.jpg
    1 reply

    Nice processor, possible for a next project.