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

FrontView.jpg
BackView.jpg

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

Supplies.jpg

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

LED_Frame.png
LED_Frame_1234.png
frame_234.jpg
frame_1.jpg
frameGlue.jpg

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

WordClock_Face.png
WordClock_Panel.png

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

LED_panel.jpg
LED_panel3.jpg
LED_Frame.jpg
WS2812B.jpg

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

ElectronicSolder.jpg
ElectronicSolderESP32.jpg

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

SSID_Lookfor.png
IDE_Option.png
Menu_Top.png
Menu_WIFI.png

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

LEDModule.jpg

To create an LED matrix module, put the "LED_Frame.stl" and the LED matrix panel together.

  1. 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.
  2. 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

MaskingTape.jpg
LEDModule2.jpg
LEDModule3.jpg

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.

  1. Cut the cardboard to the picture frame's inside measurements.
  2. Cut an 188 mm square hole in the cardboard's center.
  3. The LED matrix module should be glued or taped into the 188 mm square hole.

Final Assembly

Shikishi_Frame.jpg
BackPanelView.jpg

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

Menu_Parameter.png

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

SAMPLE1.jpg
SAMPLE3.jpg
SAMPLE4.jpg
SAMPLE2.jpg
SAMPLE5.jpg
SAMPLE6.jpg
Square_Frame.jpg

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.