WordClock Made With a Single LED Strip
by kghrlabo in Circuits > Clocks
8100 Views, 115 Favorites, 0 Comments
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)
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
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.
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.
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.
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
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.
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.
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
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.
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.