This WordClock 2024 variant covers mostly every input I got from users in the last 2 years for the previous model. =)
New functions and options:
New solder free build option → Yes, you do not need to solder if you like not to do so!
New design with wider, thicker case as shown in the pictures → more stable on desks.
New sliding case that can very easily be opened again if needed.
USB-C port for power input. This ensures more stable power with the better USB-A to USB-C cables available to avoid many of your power issues. Who remembers the “Brownout detector” message in the Arduino IDE or continuously rebooting ESP32 boards does know the reason for this change. ;-)
New more round font front named as “V2” as a new option.
New ESP32 usage with USB-C with better power options, also to avoid many issues.
Faster setup through less actions, easy wiring with less tools.
Better higher intensity usage, because the LED Matrix is directly powered now. No poor dying ESP32 boards anymore due to too bright colors and/or to high intensity values...
Easy assembly like counting 1,2,3 with detailed descriptions below. It seems more complicated at first, but you will get it easily done or can't you count 1,2,3? ;-)
Many hints inside the case to help you with the setup.
FAQ section to most asked questions listed below.
All features and the code are the same as for the WordClock 16x16 model. So “just“ the design is changed and needed quite a few changes to make this work. It again uses a printed diffuser instead of the piece of paper like the previous model. This model requires 2 color changes during printing of the front part. More to that later…
These languages are available in the font variants V1/V2:
German
English
Dutch
French
Italian
Swedish
Spanish
Polish (2024 models only)
Note: New upcoming languages might be added to the 2024 model only.
21.12.2024:Software updateV4.2.0 is now available including several new functions:
Direct software update without the need of an computer or the Arduino IDE as introduced with WordCalendar 2024 before. Watch this video for details. You will need to select the used ESP32 board after the update to this version to download the correct files for your used ESP32 in future. A new page asking for this information will be shown when you enter the web configuration portal after the update.
Scrolling texts function that shows dynamic texts like the IP-address or the initial startup messages much better readable. Watch this video for details.
New startup and initial setup texts included.
The installed software version is now shown during startup in case the “WordClock” text is set active.
The IP-address information to enter the web configuration portal should be shown more clear to read now.
Faster startup on reboot.
Link to an Telegram HowTo added to let you know how you can add this function.
Added a “test mode” in the “Maintenance” section to check all time word output texts faster.
Lots of small changes to the web configuration portal to make the device better.
To update to this new version from older software versions you will need to use the ESP32 flash script once to get the new software update variant. If you just new installed your WordClock you will get the newest version with the script already. =)
05.01.2025: You will now find the ESP32 flash script as a variant of the known MS Windows script for the usage in macOS too. Thanks a lot to John (Rave Props) @JohninNL_289006 for adding this macOS variant! This should make it even more simple to setup the project for macOS users. =)
19.06.2025: New layout for the 2024 models available to support the Polish language with software version V4.8.0. This language is not supporting the WordClock 16x16 of 2025 font unfortunately, because the 2025 font does not support the needed Polish letters fully:
Here are some pictures mostly in German and some parts in light color for a better view:
As shown the inside of the lid now contains several new elements to fasten the new ESP32 board, reducing the amount of parts drastically and allowing to easily setup your WordClock without any soldering actions. More on that below…
Functions:
WordClock using a 16x16 LED matrix and regular fonts.
Super easy print and build, 3 wires to solder or attach solder free in this new version only.
Video instructions available to help you with the code and WiFi setup.
Small print size 180x180 to fit well on the Prusa MK3S+ or any 200x200mm printer. It should fit on the Prusa MINI good as well.
The above named language variants are available using the same code for all of them.
The case can be placed on a desk without a stand or on your wall.
The case is provided in 2 main parts in general to hold the 16x16 matrix and the ESP32 board inside.
The 4 optional printed screws generate a gap between the wall and the case to get the power cable out straight and to get air in the case from the back.
The diffuser layer to show the LED colors is printed in white PLA with 2 color changes of the front part.
No supports needed to print all parts. The parts just need to be placed on their flat sides.
The lid part slides in place into the front part and presses the LED matrix into the holes for each letter.
Web configuration interface to control the WordClock functions.
Custom created WiFi manager integration to avoid setting your WiFi credentials manually in the code.
The from your WiFi router received IP-address is shown as text on the display to inform you about the current value.
During startup a text for “WIFI” or “WLAN” is shown in cyan color until the WiFi settings were done for the first time. Afterwards blue until the device received a new IP-address then in green color.
In case the configured time server cannot be reached a red “TIME" text will be shown and the device will restart until it can reach the time server.
The configuration can be set with an integrated web portal with the ESP32 own host name like “http://esp32-D88998” or via IP-address like "http://192.168.178.50"(depending on your ESP32 hostname and your router settings).
Operation Mode: "Online Mode" with WiFi usage or in "Offline Mode" without the need of a local WiFi possible. In both cases the internal web configuration portal is available.
The LED color for the time texts and the background can be configured to a static value.
Also available is an option to set a random text color every new minute.
The LED intensity can be set for a day time and optional for a night mode usage. With that a time span can be selected to turn off the LEDs fully or reduce their intensity for night time usage.
Updates of the software can be done “Over The Air” / “OTA” with the internal web portal as well to avoid connecting the device to Arduino IDE again. See instructions below.
The in the internal Wifi manager stored settings can be set to default on request to switch to a new WiFi router afterwards.
The WordClock settings can be set to default as well. WiFi and some other basic settings will be kept.
In case the WiFi is no longer available the device will reset the WiFi settings automatically after 30 seconds to avoid flashing with Arduino IDE again. Follow the initial WiFi setup again.
Smart Home environment integration to turn the LED display OFF and ON with HTTP url commands to save some power when e.g. you are not at home. The HTTP commands can be viewed from the web configuration portal.
Telegram functionality to control the extra texts and notify you about events.
Smart home integration: Several additional texts in different colours can be displayed together with the time to notify you about events:
DE:
EN:
Other languages:
Geburtstag
Birthday
x
Alarm
Alarm
x
Feiertag
Holiday
x
Urlaub
Holiday
x
Müll raus bringen
Garbage day
x
Termin
Date
x
Formel1
-
-
Auto
-
-
Zeit zum Zocken
-
-
Gelber Sack
-
-
Werkstatt
-
-
Friseur
-
-
-
Lunch time
x
-
Come here
x
-
Doorbell
x
-
Temperature
x
Integrated web configuration interface:
This WordClock can be used in "Online Mode" with WiFi usage or in "Offline Mode" without the need of a local WiFi. In both modes you will be able to use an internal configuration portal to configure your WordClock. See pictures below. =)
Online Mode:
Offline Mode:
Setup the code for the WordClock and WiFi setup:
Follow this video to get used to the usage:
Code download:
The script to upload the code can be downloaded from my GitHub repository.
See the FAQ section too for more details to the code software.
Update the code of a running WordClock:
Updates can be done “Over The Air” / “OTA” with the internal WordClock web portal.
You will find a section to get the update without the need of a computer with 2 clicks.
Extra words usage:
1.: Telegram:
Create the Telegram bot as described step by step here. Simply perform all the named steps from that list and you get the needed values and get the bot created and running.
In addition you can setup the already preconfigured menu list in Telegram to help you with the usage of the bot.
Add the in the generated Telegram bot token key and your chat id during the initial setup of the WordClock. So if you already attached WordClock to your WiFi without adding the Telegram setting, you will need to use the “Reset WiFi” button in the web configuration portal and then setup WiFi, your language and the Telegram settings during the initial WordClock setup again.
Type ”/start“ to get the list of available commands in Telegram.
With the commands “/ew1”, “/ew2” to “/ew12” (DE) or “/ew9” (all other languages) or use the menu for the bot mentioned above during the Telegram setup to start the same commands via the menu in the Telegram app.
2.: WordClock internal web server commands to integrate into your smart home:
You can control the following WordClock functions from your smart home setup:
Change time color
Change background color
Change intensity value (0 to the maximum limit set in the settings)
Set extra words color
Set extra words on or off
Get the status of an extra word
Get the status of all above named values (colors and on/off value) at once
Examples and details can be found by opening this url from the internal web config in the section ”Smart home control via web URLs” —> “Usage hints and examples” or by opening this url directly: “http://Your-WordClock-IP-address:2023”.
Smart Home environment integration:
If you use similar smart home control environments like HomeBridge and NodeRed like I do, you can add such simple configurations to plugins like “homebridge-http-switch” in HomeBridge to control the extra words from your environment systems with the use of calendar plugins like “homebridge-calendar” automatically. If you use HomeAssistant or similar programs you will get the idea how to apply this to your used systems…
Side note: If you ask yourself why I use these 2 systems instead of whatever you are using, well the WordClock project was created by me after I already used a smart MagicMirror for years before. The with HomeBridge and NodeRed created functions and dashboards were used in this really still fascinating smart mirror project already…
Code and settings within the HomeBridge plugins “homebridge-calendar” and “homebridge-http-switch” for extra word ”ew6” which is “Formel1” in German:
Side note: In addition you will find these created switches in Apple HomeKit too and of course can control them in your HomeKit app as well as via Siri and within other automation workflows too:
Settings in the NodeRed plugin “HomeBridge” named exactly “node-red-contrib-homebridge-automation” and the in this plugin included controls “hb-event” and “hb-control”:
Alternative Smart Home environment integration via Apple shortcuts:
In case you don’t use such smart home environment devices like mentioned above, you can simply add the named extra word URLs to the ”Shortcuts” of your Apple iPhone or iPad and run them on a fixed time of each day. This might work similar on other devices like Android, but I use Apple devices only. So here you will find a simple example for 2 extra words in German “Geburtstag” which is “Birthday“ and “Feiertag” which is “Holiday” in English language.
Steps to follow in the shortcuts app usage:
Get the numbers of your extra words you want to setup. You can find these numbers in the WordClock configuration portal in front of the extra words:
Geburtstag = Birthday = 2
Feiertag = Holiday = 5
Use the shortcuts app to add a new shortcut like shown below for the 2 extra words and combine them to your separate calendars. One calendar for your birthday events and one calendar for the holidays to keep this simple.
The shown IP-address will be needed to adjust to your local environment value for your WordClock. You can use the hostname instead of the IP-address of your WordClock too if you like of course.
Add a local automation in the shortcuts app like shown below to a fixed time and set the execution to be without additional apply to run unattended in the background.
With that your iPhone or iPad will set the texts on your WordClock based on the calendars. =)
WordClock Integration for Home Assistant:
The user bluenazgul added a solution for Home Assistant here.
Note: Photo by blueszgul
KRIZ-R made an even more advanced version of this using the RGB query of the extra words introduced with WordClock software version V4.7.1:
Link: https://github.com/KRiZ-R/HA_AWSW_Wordclock
Note: Photo by KIRZ-R
FAQ:
Q: “Can I use a smaller power supply like 5V/1A or 5V/2A?”
A: Do NOT use 5V/2A or even 5V/1A ones to avoid damage to your environment!
Q: “Why is it not possible to use a USB-C power supply directly?”
A: The honest answer is, that it was planned to be used with a USB-C power supply directly, but it simply does not work. Most USB-C power supplies “communicate” with the plugged in device and then turn their power on. This is not possible with the WordClock. So this is why a USB-A power supply with a USB-A-to-USB-C cable is required. You will find 2 very good ones in the parts list.
A: There is an advantage to this anyway. Because such USB-A-to-USB-C cables seem to have a better standard, they work much better than the previously used Micro-USB cables.
Q: “Can I use my old ESP8266 boards instead of the named ESP32?”
A: No ESP8266 usage possible, because of its low specs. It is not compatible too.
Q: “Why isn’t the circuit done like with the previous models over the USB cable only?”
A: That often lead to some poor grilled ESP32 boards when the LED intensity was set to high and too much current was routed through the ESP32 to the LED matrix. That also seems to happen due to user reports often too, when other code sketches like WLED or others were “tested”… After some time or directly depending on the set color and intensity this caused some of these boards to die. As this seems to be an issue for some users and even I never experienced this myself, I wanted to make the circuit better.
A: The 2nd reason is that I wanted to try a solder free variant and so it was even more simple to save these poor little boards from dying on their job. =)
Q: “Why was the switch from the ”D1 mini ESP32" board done to the new ESP32?"
A: The 1st reason is that during the runtime of the previous WordClock models I heard of several problems with these D1 mini boards from users, which mostly I did not face. What I could find on very few of these boards was the “Brownout detector” error message which prevented these boards from booting. Some of them worked for days and even weeks. Then I needed to replace the Micro-USB cable to a shorter one and for any reason then it worked most of the times. A few days later the same board worked with the “old” cable again without any problems.
A: The 2nd reason is that the new chosen NodeMCU ESP32 board has a USB-C connector and I had often issues with the old Micro-USB cables and ports on the old ESP32.
A: The 3rd reason is that this board can be easily used to reach the solder free variant and is possible to screw to the custom made mounting socket in the lid.
A: The 4th reason is that I got slightly better WiFi connection and boot operations with these new boards compared to the old ESP32.
A: The 5th and most important reason for this new 2024 model was, that the D1 mini ESP32 cannot be powered without the Micro-USB cable usage. It seams to have a design issue that it cannot be powered from the VIN/5V and a GND pin on its board. I searched many forums and pages to get it working over such a pin connection, but it was not possible. So the new NodeMCU ESP32 will be used here.
Q: “Where do I need to set the color changes and how are these changes done?”
A: See printing instructions below please. You will find a manual and details.
A: Consider using Prusa Slicer even for your non-Prusa 3D printer too. =)
Q: “Do I really need to print with black filament?”
A: Yes, to avoid light shining through to the other letters this is required or lets say at leased it is required as light blocker. You can add other, lighter colors to the first front part layers if you wish to, but you have to have this light blocking black layers. For the matrix part of the front it is mandatory to use black too.
Q: “Can I use transparent PLA instead of the named white filament for the diffusor?”
A: Tests showed that this is not ideal, because such transparent filament will route light to other cells of the matrix that should not be lit at that time or in that color.
Q: “I cannot read the on the display shown IP-address. What is my IP-address?”
A: Just step away 1-2 meters from WordClock during startup to be able to read it.
Q: “How can I setup the Telegram option?”
A: If you want to use the Telegram function, follow the instructions in the settings.h file. Add the BOTtoken and your CHAT_ID value in the settings.h file and save it.
Optionally add the menu for the Telegram bot like mentioned in the settings.h file.
Q: “Why is the software not provided as self to compile code to run in Arduino IDE?”
A: Although I created scripts for setting up the Arduino IDE, automatically download and install needed libraries and spend a lot of time to give you a setup option as easy as possible, it seems to be still way to complicated for many users. Thats why you have the new script to download and flash the code for you now as precompiled .BIN files now. I had so many messages from users each week that did not (fully) follow the already quiete simple instructions and the only possible way for me is to make this as easy as possible and not provide the more complicated way anymore.
A: By giving you the precompiled code you can be sure that this is tested and will work with the named components, which should be a big benefit. =)
A: And YES, I know, that other ESP32 boards might not work with these precompiled code files, but I honestly have to say, that this is a ≤5€ or ≤5$ problem and I perform this here as a hobby and cannot support many different ESP32 variants anyway… I guess you will understand this, that I cannot and will not spent more time on this when it can be fixed with buying such a cheap ESP32 fitting to the project.
Q: “In Offline Mode the from the device created WiFi access point requires a password, which I don’t know. What is this password and does the configuration page open automatically when connecting to this internal access point?”
A: “The password is ‘Matrix-16x16’ and in case the configuration page doesn’t open up properly on your device (mostly heard of on Android devices) just connect to the WiFi and then open your browser on ‘http://192.168.4.1’. Once saved to your device the password should be stored and you not need to enter it again anymore. This password was added to make the device more secure for example if you want to use it on your work environment without access to a regular WiFi.”
Printing instructions:
No supports needed for all parts.
Using a brim was not needed in my tests, because I cleaned my textured sheet with dishwashing liquid carefully with a new sponge and then with isopropanol alcohol again on the printer to make the parts stick really good. If you face problems with adhesion feel free to add a 5mm brim to the front and lid part.
0.3 draft profile used. You can print in 0.2, but it was not needed for my printers.
Textured sheet used:
If you use a textured sheet too, let it cool down completely after the print and wait for the part gets loose by itself. Do not pull on it to avoid ripping off the letters!
In my case it takes 45-60 minutes after the print has ended and the part just lays loose on the print bed.
Do not touch the print bed and clean it with Isopropanol alcohol before printing.
The 4 screws should be printed with 30-50% infill just in case you need to screw them in a little harder. I could use 15% infill good as well.
IMPORTANT:
Two (2) color changes in the front part from black to white and to black again are required at about 1.2mm and 2.4mm height to create the diffuser layer. Why “at about”? Well it depends on your layer height:
0.2mm = Changes at 1.2mm + 2.4mm
0.3mm = Changes at 1.1mm + 2.6mm
Color changes are done in this order:
1st color = black = layer 0 to 1.2/1.1mm
2nd color = white = layers 1.3/1.2mm to 2.4/2.6mm
3rd color = black = layers 2.5/2.7mm to the end of the print
To read how such a color change is done, you will find a really good article here.
If you use the .3MF files the color change is preconfigured for 0.3mm layer height.
Parts needed:
1x 16x16 LED matrix (Use this one. The case is made to fit to it only!)
Connecting the parts for this WordClock is as easy as possible.
You may need to solder or connect solder free 3 connections only to the ESP32.
The small holders in the lid can be used for a small cable ties to secure the cables.
Have a look into the pictures how to arrange the LED matrix in the front part to ensure that the direction of the LEDs is correct.
In case you want to solder, the only change compared to the solder free variant would be to solder the 3 wires to the ESP instead of using the named plugged cables. Details will not be described here due the connections are the same as for the solder free variant. The Wago clamps would be used in this case too, because they are really handy to use…
Please check the table which pins are connected for the project as well as the pictures:
USB-C port:
ESP32:
LED matrix:
Wire color:
5V
VIN
5V
Red
GND
GND
GND
Black or White
D32
DIN
Green
Here is a step by step guide how to connect all the cables:
With the help of the following pictures you will see how to wire the device, easy as 1,2,3:
Here you see all the required parts.
Cut off the middle and lower cable pairs from the matrix to avoid electric short circuits. The cables at „DIN“ have to remain. The result is shown here.
Add the LED matrix in the orientation as shown.
Next strip the 2 USB-C port wires 11mm and push it into its place in the lid. It will click in place with a bit of the force. ;-)
You will find a 11mm long mark in the case to help you finding the right strip length. See the upper edge in the picture above with the "11".
Open the 3 Wago clamps and put them into their holders in the lid as shown.
Remember the 1,2,3 under the clamps as:
1 = red = 5V
2 = black or white = GND
3 = green = DIN
Add the 2 stripped USB-C port wires to the clamps 1 and 2 as shown and close the clamps on the used slots.
Add the 3 Female-Male cables like shown to the clamps and close their slots as:
1 = red = 5V
2 = black = GND
3 = green = DIN
The male pin part of the cable is pushed into the clamps.
Add the “female” part of the cables to the ESP32 like shown:
VIN = red = 5V
GND = black = GND
D32 = green = DIN
Carefully push the ESP32 and the 3 cables with their black posts in to the tight holder part of the lid as shown.
Route the 3 cables out of the small slots.
Secure the ESP32 in place with the 4 M3x8 screws.
As last part add the with the LED matrix delivered connector to the circuit.
Do not forget to strip its wires 11mm too.
Add the 3 last wires as shown and close the Wago clamps:
1 = red = 5V
2 = white = GND
3 = green = DIN
Add the USB-C part of the USB-A-to-USB-C cable through its hole in the lid and plug it into the USB-C port like shown.
If you followed all instructions carefully, checked them again and check that all clamps are closed.
Please add some small cable ties to secure the cables in place. Especially the power cable should be secured in place.
If you haven't uploaded the code to the board yet, you should perform this action now!
As last action you have to do is to connect the LED matrix to its connector in the lid.
Slide the lid carefully together with the front part as shown.
The lid pushes the matrix down and holds it in place. No tape or glue etc. needed.
Use the 3 M3x16 screws to fix the lid in place to the front.
Plug WordClock to its 5V/3A power supply. Follow the WiFi setup video for WordClock.
Check the function and you finished the WordClock setup.