Introduction: WordClock Made With a Single LED Strip
Hello everyone.
I'd like to show you a WordClock I made with a single LED strip.
An ESP32 and an LED strip are the only electric parts of this WordClock. It adjusts the time automatically using NTP. The web interface allows you to modify settings like the time zone and color scheme.
Please try it out.
Supplies
3D print parts
- LED_Frame.stl
2D print parts
- WordClock_Face.pdf
- WordClock_Panel.pdf
Picture frame
A picture frame with a minimum square measurement of 200 mm is needed. The shape does not have to be square, letter or A4 size can also be used. It's also a smart idea to use the SHIKISHI size in Japan.
Electronics
- 1x ESP32 MH-ET LIVE Mini (Other model of ESP32 can also be used)
- 109x WS2812B LED strip (Non-Waterproof 60 LEDs/m)
- 1x USB cable, USB AC Adapter (2A up)
Others
- 5x M2 screws, length 6mm with washer
- 1x Thin paper for the Clock face
- 1x Tracing paper or OHP sheet for mask the Clock face
- 1x Cardboard for the LED matrix panel (A4 size, thickness is 0.5 mm up)
- 1x Cardboard to fit in the picture frame (Size should match the picture frame, thickness is 1 mm up)
Step 1: Printing With a 3D Printer
The following file can be printed with a 3D printer.
- LED_Frame.stl
To prevent light leakage, I advise choosing filaments in dark colors or black. The height of the 3D printed layer can be loosely selected (for example, 0.4 mm) because this part cannot be seen from the front, which will speed up printing.
”LED_Frame.stl" measures 200 mm in square. If this size is not supported by your 3D printer, print and assemble the next four parts separately. Since my 3D printer (X-Maker) can only print objects up to 170 x 150 mm, I had to print them twice.
- LED_Frame_1.stl
- LED_Frame_2.stl
- LED_Frame_3.stl
- LED_Frame_4.stl
Attachments
Step 2: Printing With a Printer
The files listed below can be printed using a printer.
- WordClock_Face.pdf
- WordCloclk_Panel.pdf
Printing "WordClock_Face.pdf" on thin paper is recommended. I advise using a laser printer, which can produce a blacker print than an inkjet printer.
The LED light will pass through the black area if only one piece of paper is used for the clock face, hence I advise adding another layer. To preserve the white transparency, it is advised that the second sheet be printed on tracing paper or OHP sheet rather than thin white paper. The second sheet should be 200 mm square or bigger than the LED panel. It makes no impact whether it is smaller than the picture frame's dimensions.
(note) To get a sharp contrast, it is preferable to cut out the clock face with a cutting sheet.
"WordCloclk_Panel.pdf" should be printed on cardboard. The location of the LED strip is indicated by this file. Print on plain paper and attach on cardboard if your printer cannot print on cardboard, or write by hand on the material. The "LED_Frame.stl" requires that this cardboard be cut at a square of 183 mm in order to fit it.
Step 3: Make LED Matrix Panel
Check to make sure the bending position is not indicated by the LED connections, which are typically spaced every 30 LEDs. Skip a single or a pair of the strip's first LEDs to fix this problem.
The LED strip should be adhered from bottom left to top left at the end of the first row, folded carefully, and then placed in the second row. Where folding occurs in between each row, one LED is "wasted". Even though those wasted LEDs are somewhat tilted, "LED_Frame.stl" is made to fit such angles, hence there is no issue.
Step 4: Electrical Wiring
Connect the LED strip and ESP32 using electronic wires.
Connect the ESP32's GPIO 16 to the LED strip's DIN. Connect the ESP32's VCC and GND to the LED strip's +5V and GND to each other. The length of the wiring is about 120 mm. Before actually cutting the wires, it is preferable to temporarily attach the ESP32 and measure the length of the wiring.
The ESP32 should be glued to the lower portion of the LED matrix panel from the center. To make plugging the USB connection into the ESP32 easier, it might be preferable to attach the device using thick double-sided tape.
It would be a good idea to cover the soldering points with stickers.
(note)Although I am aware that directly powering LEDs from the ESP32 VCC is not advised, I chose to do so in order to streamline the wiring. The WordClock just has a few LEDs that light up to show the time, thus I do not believe this will be a significant issue.
Step 5: Sketch / Testing
Download the files through the link:
https://github.com/kghrlabo/WordClockSingleLEDStrip/tree/main/source
Please select the SPIFFS option when uploading sketches. After powering up, the ESP32 will function as a Wi-Fi server. The server will blink its on-board LED while it waits for a connection. If the LED is not blinking, press the reset button or check the wiring again.
While the LED is blinking, look for the SSID "WorldClock" on your smartphone (or PC), then connect to Wi-Fi. Your smartphone should automatically navigate to the browser's settings page. On the settings screen, select "WIFI" and then save your home's SSID and password. In the "Parameter" menu, you can modify the time zone. Once those parameters have been set, "Reset" the ESP32.
(note)If no action is taken on the settings screen for too long, the ESP32 will automatically reboot itself.
You'll be able to see the rainbow illumination if it's set up successfully. By placing the printed "WordClock_Face.pdf" on the LED matrix, you can make sure the WordClock is operating successfully.
(note) Sometimes while connected through Wi-Fi, the "ESP32 MH-ET LIVE Mini" experiences the "Brownout detector was triggered" problem. The code below suppresses the error, however if it continues to exist, it is better to change to a different ESP32 model.
#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"
void setup(){
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
Step 6: Make LED Matrix Module
To create an LED matrix module, put the "LED_Frame.stl" and the LED matrix panel together.
- The folded section of the LED strip needs to fit within the "LED_Frame.stl" properly, therefore the LED matrix panel needs to be positioned accordingly.
- The LED matrix panel is attached to the "LED_Frame.stl" with screws rather than glue so that it may be disassembled if there are any issues.
Step 7: Prepare a Picture Frame
To hold the LED matrix module in place, cut a piece of cardboard to fit the picture frame because each one has a different inner diameter.
- Cut the cardboard to the picture frame's inside measurements.
- Cut an 188 mm square hole in the cardboard's center.
- The LED matrix module should be glued or taped into the 188 mm square hole.
Step 8: Final Assembly
Place the LED matrix module in the picture frame while aligning up the clock face. When the power is turned on and the USB cable is plugged in, the WordClock starts running. Restart the device when the "WIFI WORDCLOCK" LED appears at the start of the web setup.
(note) If no action is taken on the settings screen for too long, the ESP32 will automatically reboot itself.
The WordClock switches to the web setup mode if any of the following faults are detected on the LED.
- "ERR ONE": SPIFFS Mount Failed
- "ERR TWO": SPIFFS read error
- "ERR THREE": SPIFFS write error
- "ERR FOUR": WIFI error
- "ERR FIVE": NTP error
Step 9: Settings
On the web settings panel, you can adjust the LED's color and brightness.
The WordClock works as a Wi-Fi server after it has started. While waiting for a connection, the ESP32 LED flashes. While the LED is flashing, use your smartphone (or PC) to look up the SSID "WorldClock" and establish a Wi-Fi connection. The settings panel in a browser should open on your smartphone right away.
[WIFI]
SSID: select your home Wi-Fi SSID from dropdown list.
Password: set your home Wi-Fi password.
[Parameters]
Color mode: select "Rainbow" or "RGB".
Rainbow: Set interval msec at which the colors change.
RGB: Set the color in RGB.
Day brightness: Brightness in day time.
Night brightness: Brightness in night time.
Morning start: Time for morning begin. 7=7am
Night start: Time for night begin. 22=10pm
Show AM/PM: Indicate AM and PM.
Show Seconds: Indicate seconds.
Show Minutes: Indicate minutes.
[Reset]
Reset parameters to the default value.
[Reboot]
Reboot ESP32.
Step 10: Arrangement
Here are a few designs using various fonts and frames. You will get a very different impression if the font is changed. You can find an attachment that shows a clock face sample.
(note) It is better to cut out the clock face with a cutting sheet to get a clear contrast. If you place a thin piece of paper in front of it, only the glowing letters will be visible.
Attachments
![First Time Author](https://content.instructables.com/FK9/YRHS/LLWBKNEI/FK9YRHSLLWBKNEI.jpg?auto=webp&crop=1240%2C600&frame=1&width=320)
This is an entry in the
First Time Author
12 Comments
Question 1 day ago on Introduction
This looks a very interesting clock, in compiling I get fatal errors linked to the following
"initialize LED_BUILTIN
pinMode(LED_BUILTIN, OUTPUT); // Lights up during Web setting function
digitalWrite(LED_BUILTIN, LOW);"
If I disable them, it compiles using (//) on each of the above-mentioned lines.
I am using the using an esp 32 mini D1, I have compiled it using Esp 32 DEV, I find it works with all that I have done so far!!
I can access the web server, using MY Samsung galaxy S10, and google Chrome, android version.
I cannot edit any of the fields, like time zone ETC
What am I doing wrong??
What version of FastLed version are you using and who is the author?
Hope you can help
Thanks
Answer 1 day ago
Thank you for trying to make it.
fatal errors on LED_BUILTIN
You can add the following one line to eliminate the error. ("LED_BUILTIN" is typically defined in the file "pins_arduino.h". This problem may be resolved by reviewing the ArduinoIDE settings for esp 32 mini D1. )
#define LED_BUILTIN 2
cannot edit any of the fields
The values of the parameters are simply displayed once you've accessed the site. Tap the [WIFI] or [Parameter] button to edit. (If you are unable to do so, you can edit the file "config.h" to change the default values.)
What version of FastLed
I am using the FastLED v3.6.0 by Daniel Garcia
https://github.com/FastLED/FastLED
Reply 1 day ago
Thank you that cured the preoblem
Question 6 days ago
what's the D on the bottom for?
Answer 4 days ago
When the ESP32 is acting as a WiFi server, the "WIFI WORD CLOCK" indicator illuminates."WORD" includes the letter "D".
The following file lists the strings that are defined.
https://github.com/kghrlabo/WordClockSingleLEDStri...
8 days ago
Amazing! Well done! Folding the LED strips was inspired!
These clocks could be sold to every elementary school to help teach time. It would be a three piece ensemble Analog clock on the left, your clock dead center, and a digital clock at right.
We would always tighten our nuts Righty Tighty and loosen them Lefty Loosey. I wonder if that expression replaced "Clockwise Tight & Counter Clockwise Loose" because of the advent of digital watches? Or were both in use?
Do kids learn how to tell time using analog clocks anymore?
Reply 7 days ago
I've heard that young people today can't read analog clocks. "5:15" can be read as (1) five fifteen, (2) fifteen past five, (3) fifteen after five, (4) quarter past five, and so on, but with the widespread use of digital clocks, it is more likely to be read as (1) "five fifteen".
In the same way that we no longer say "dial a phone number," we may stop saying "clockwise" in the near future.
A clock with a face like the one shown in the attached image may be easier to read.
Can Young People Read a Clock? (2019)
One in six people can't tell the time on a normal clock (2023)
https://metro.co.uk/2023/03/15/one-in-six-people-c...
8 days ago
This looks very nice. It seems simple enough for me to make, but I'll need to learn a bit about sending data to the Arduino.
I'm curious about one thing, though. Does it only change the displayed time every five minutes? I can't see any text to indicate minutes in between.
Reply 7 days ago
I will explain how the WordClock shows "minutes". The four dots in the upper right corner indicate the number of minutes elapsed from the time represented by the letter. When "HALF PAST NINE" is displayed and the four dots in the upper right corner are on, it indicates 9:34. The display of dots can be turned off if the time in minutes is not needed.
8 days ago on Step 10
I’m sorry, I have read and re-read this but I do not see how you are addressing individual LED’s in the strip. The only strips I am familiar with have all LED’s light up together. Can you clarify? Thanks!
Reply 7 days ago
HI, The WS2812B can be addressed by using signal wires to tell it which LEDs to turn on. You can get more information by searching Youtube or the web with the keyword "addressable LED arduino".
12 days ago
Nice! That’s an exceptional way of doing it! Like a clump I had always cut the strip and then jumpered with wires! Thanks for sharing your write up!