I need to add this because some companies try to make money out of copyright infringements regarding word clocks. This is a description of a project I did for my own purpose. I neither sell nor use it for any other than private use. I don’t sell kits, either. The inventor of the word clock (“Kult-Uhr”) is Achim Schneider (www.kult-uhr.com). You can buy the most popular design here: http://www.qlocktwo.com/. You can use this to create your own project, but be aware that commercial use might be prohibited in your country!
This is the first project I’d like to share. It’s a little different from the rest of the Wiki, which usually deals with technical things and setup guides. But if you read all those guides, you should be ready to accomplish this project, which I really liked.
I built my first word clock nearly 20 years ago. Back then, I used my on circuitry, Atmega8 microcontroller and had to solder all 114 LEDs manually to a grid. I drilled all the required holes manually etc. But it’s still working! 🙂 Now, with new tools, things are so much easier… Thanks to the laser (and the available code base from GitHub), I could do the project within a few hours, which took me weeks back then. So let’s start with the final result:
This clock shows the time in words (therefore the name 🙂 ). Since I’m German, I used the German layout, but the project files include everything to build an English clock as well. So let’s start with the required tools and hardware:
The links mentioned in the table are selected with delivery to Germany, you might need to select different ones if shipping is not available. Additionally, most of them are cost-effective, but have a long delivery time. If you need fast delivery, costs may be significantly higher.
|Item||Cost (Germany)||Link (Germany)|
|1x IKEA Sannahed picture frame||~6€||IKEA|
|6x sheets of plywood with at least 25×25 cm side length (I used 4 mm poplar in DIN-A3 format (~30×42 cm) from the local hardware store, it’s low quality but worked quite well), optional a piece of black acrylic or white/clear acrylic as front plate||~10€ (plywood)|
~10€ extra for acrylic front
|local hardware store|
|1x ESP8266 or ESP32 board, depending on availability or the features you want to integrate, I used a “Wemos D1 mini” clone||~5€||AliExpress (example)|
|1x WS2812B LED strip, about 5 m length, 60 LEDs / m (that’s important because of the distance of the LEDs), the order of RGB, BRG etc. is not significant, you can change it in the firmware later if it doesn’t fit. 3 m might be sufficient.||~15€||AliExpress (choose >3m, 60, IP 30)|
|1x 5V 2A power supply||5€||AliExpress|
|Some cables, sheets of paper, soldering iron, tools etc.|
Roughly about €40-50 maximum, if you have the wood and some spare parts etc. already, it’s more like €25. If you don’t have IKEA next to you or want to use a special frame, have a look at this great video from Dragoncut, where she is designing nearly exactly such a picture frame with the laser: https://www.youtube.com/watch?v=L6FQ1AGCPzE (check at minute 22:50)
There are many projects out there that use nearly the same set of hardware and the ESP chips to drive it. You can also use Arduino boards etc. Since the Wi-Fi feature is a nice thing, I selected the ESP8266 (the ESP32 was already too much in this case). Here are some of the projects:
- ESPWortuhr (https://github.com/ESPWortuhr/Wortuhr): this is the one I used. I liked it because it’s simple but has many functions built in, it’s actively supported and recently features different languages (it’s German originally)
- Wortuhr_ESP32_mp3 (https://github.com/manfred-hofmann/Wortuhr_ESP32_mp3): full-blown code including music player, weather, even games. It is nice, but was over the top for my simple project. There is also an ESP8266 version: https://github.com/manfred-hofmann/Wortuhr_ESP8266
- If you search GitHub for “word clock” or “wortuhr”, you will find plenty of additional projects
To get the code to the ESP chip, you need a programming environment, like Arduino IDE or Visual Studio Code with the PlatformIO extensions. I used the latter. I will provide the (few) changes I made to the code here soon. Maybe they will be integrated into the official repository as well. I’m also busy updating the code for the English front plate. Will be here soon. Update: it’s now included in the official repository already!
Update 02-20: Here is the copy of the Wortuhr project above, including the German and English layouts adjusted to the layout in the LightBurn file: Download-Link (Complete project folder. You need to open this folder in PlatformIO, compile and upload it to the D1 mini board). You can use this method if you use another ESP board or want to change anything in the code.
If you use the same D1 mini board, you don’t need to compile the whole project. You can download the firmware file directly and flash it using a flash tool like NodeMCU PyFlasher to flash the chip. Worked fine for me:
Update 05-25: There have been many changes to the official repository, the code now natively supports English language etc. You can try to use this version directly to get the latest features. I recommend testing the repository version first.
If it is flashed successfully, you can connect to the clock’s Wi-Fi and change all settings. It supports the German and English front plate layout that is in the LightBurn file. Unfortunately, the user interface is only in German right now, an update will be there soon. Update: I changed most interface values to English as well (see download above), but it was just a quick and dirty solution, there will be a better coded version soon.
I put all project related parts into one big LightBurn file, where you can select the parts you require and do adjustments as you like. The settings within the file are set for an S10 laser, but you might need to adjust to your material and laser anyway. It is based on the template provided by the Wortuhr-Project: original template Click on the image below to download the new version:
Here is a step-by-step guide on how to put everything together. First, we start with a picture gallery showing all the steps. This should be already enough for you to build it, but I added a few comments below.
If you mastered soldering the LED strips, the rest of the electronics is easy to do. It’s only power connections and one data line between controller and strip.
Be aware: as illustrated by the sketch above, the VCC (5V positive line) is connected to the microcontroller and the LED strip at the same time. This is required for powering the clock only with mains power later. As long as you attach the microcontroller via USB to the PC, the 5V line is also powered through the USB port. Make sure that you have the power supply connected all the time while you are connecting the board via USB. Otherwise, the LED strip will be powered through the USB port, which is too much for most ports (the clock uses up to 900mA at 5V). So keep the power supply connected, not to overload the USB port. It’s no problem to connect both (USB + power supply) at the same time.
Remarks on the build process:
- Since I wanted to save some time in soldering, I put the minutes-strip as a full strip, where only every second LED is used. Therefore, I needed to adapt the source code very little, but it works fine. (Update: the official source code has been adapted already to take this into account)
- LED strip: the LED strip uses a serial protocol where the control signal is piped along the strip. Therefore, small arrows are printed on the strip. You need to make sure to align those arrows with the arrows on the baseplate! Otherwise, there is no signal sent along. You must glue the strip alternating in each row. See picture:
- I did not use the LDR that is shown in the picture above. But there are some small holes foreseen in the project files to mount it top-left on the front page. The clock then can adjust the brightness to the room light level. The code also supports setting a fixed brightness level depending on the time as well.
- Front plate: For the ease of building, I used a plywood sheet as well and painted it. But it might give a nicer finish if you use either a black acrylic plate (where you cut the letters out) or a clear / white plate. In that case, you can paint the plate in any color and use engraving mode to remove the letters (like you do mirrors, for example).
- Depending on the thickness of your material or the frame you are using, you might need a different space frame. I used boxes.py to design on, you can use this link with all settings already set (and change the “h” height to the value you need): boxes.py
- If you have a different thickness for the LED grid parts, you need to use the LightBurn tool “resize slots in selection”. How this works is explained here: https://www.youtube.com/watch?v=0Yep7sYi9Rs
- If the colors do not match the ones selected in the firmware, there is another order of the red, green and blue channels in your strip. You can change it in the firmware to different order like RGB, BRG, RBG etc…
- If you want to generate your own word lists, you can use a tool like this: https://github.com/im-pro-at/WordClockGenerator