Introduction: Functional Hollow LED Clock

About: I am photographer with interest into electronics and DIY tools.

I always loved LEDs devices, from keyboards to smart lights bulbs. RGB LEDs are always great to have in your setup specially if you are a streamer, because practical lights are always nice to see on a scene. But what happens for a regular user? Sometimes it is not the perfect fit for a room or a office, unless... you add some functional use like a clock, a charger station, and a night light! Let's make it!.


Step 1: Designing It With Fusion 360

This clock was designed using fusion 360, basically it is a hollow cylinder with text, the thickness of the walls is 2mm.

I used circular pattern to create the holes for the rods.

The base is hollow to put the usb charger and the ESP board.

There are Two back covers. You can use the one you like or just leave open the back.

The diffusers can be 3d printed or you can use just paper.

Step 2: Assembling the Clock

  1. Add the diffusers to the clock, I 3d printed my diffusers using white PLA, but you can use just paper or any translucent material.
  2. Solder the cables on the LED Strip, you will need to add a small Resistor (100Ohm) between the Data cable (center pad) ann the Dupont Cable that goes to the ESP32 (or ESP8266).
  3. Pass through the cables in the bottom hole of the clock.
  4. Use hot glue to place the LED Strip, Remember to arrange the LEDs of the strip that light the numbers goes clockwise.
  5. Glue the back cover (Optional). You can leave the clock without the back cover because it will light the wall behind the clock if you want.
  6. Cut the rods. Using a small saw of a hobby knife cut the rods in the right amount (around 47mm).
  7. Glue the rods using hot glue, place the rods in the center of holes so the LEDs lights the rods.
  8. Place and glue the center piece.
  9. Pass through the cables in the base hole.
  10. Glue the Base to the clock.
  11. Split a spare USB cable and strip the Red and Black cable. (Red for Positive and Black for Negative)
  12. Solder the Positive LED Strip Cable, and the two Red cables of the USB cable.
  13. Solder the Negative LED Strip Cable, and the two Black cables of the USB cable.
  14. Use electrical tape or shrinking tubes to protect the soldered cables.
  15. Connect the Cables, ESP Board and Button using female-female DuPont cables:
  16. Connect Data cable (Din of LED strip) to GPIO16 of the ESP32.
  17. Connect Vcc Pin of the Button to GPIO17 of the ESP32.
  18. Connect Center Pin of the Button to GND of the ESP32.
  19. Secure the pins with a little of hot glue.
  20. Place the ESP32 (or ESP8266) and the Charger inside the base.
  21. Glue the Button cover.
  22. Done!.

Step 3: Programming the ESP

This is an easy step and quick step.

  • Connect the ESP32 or ESP8266 to your computer using a micro USB to USB cable, wait for the driver installation or download the drivers for your board:

CP210X USB to Serial Driver

CH340 USB to Serial Driver

  • Go to the website: (this installation webpage will only work on Chrome)
  • Click on Install. (I installed 0.14.0-b1 version)
  • Select your USB Serial Port (COM_) and click Connect.
  • Click on Install WLED and Confirm Install.
  • Wait for a couple of minutes until the installation is complete.
  • Click on NEXT once the installation is Complete.
  • Enter your Wifi Network Name and Password so your ESP is easily configured.
  • Click on VISIT DEVICE so the installation page will direct you to your new WLED device.
  • DONE!.

Step 4: Configure the Clock in WLED

Go to the Config Menu and then LED Preferences.

  1. Select the length of the strip: 24
  2. Select GPIO button: 17
  3. Click on Save.

Go to the Config Menu and then Time & Macros.

  1. Select your time zone GMT.
  2. Find in Google what it is your Time zone. (or you can click on the Get location button).
  3. For me it is GMT-4 (GMT minus 4 hours, so I have to enter the correction in seconds. -4 hrs x 60min x 60 secs = -14400 secs)
  4. Scroll down to Clock Title and configure the next.
  5. Select "Analog Clock Overlay"
  6. First LED: 12
  7. Last LED: 23 (23 because we start counting from 0 up to 23 - total 24 LEDs)
  8. 12h LED: 17 (17 is the LED that will be the 12Hr in our clock)
  9. Select "Show 5min marks" (you can unselect this if you do not want showing seconds)
  10. Click on Save.
  11. It is done! You can see the clock already working.

The inner LEDs will be controlled by the effect you select. There are 101 effects! you can choose from.

Step 5: Configure the Actions of the Button

Because we want this working as a night light lamp, we configure the button actions.

Go to the Config Menu and then Time & Macros.

  1. Scroll down up to button actions.
  2. In button 0 row configure:
  3. short: 0
  4. long: 1
  5. double: 2
  6. and Save.

By default the short press of the button will turn on and off the Clock.

Then we configure the preset tab with the next:

  1. Select New Preset
  2. Enter the Name of the action: Night
  3. Enter the Label for the Preset: 1
  4. Enter the action:

Note: This action turn the brightness to 32 from 255 that it is the maximum. If you wanna know more about all the instructions available you can go to: API Configuration

And Save!. This preset will work for a long press of the button. Whenever you long press the button the brightness will go from the last brightness you have to 25% (or 32/255).

For the second preset (double press) I configured set brightness to 255 or 100%.


But you can select any preset effect you want. For example I will configure an automatic brightness reduction.

  1. Go to Time & Macros in the Config Menu.
  2. Scroll down to Time-controlled presets.
  3. Enter the Hours you want to activate the presets:
  4. At: 19:00 I will activate preset number 3 (Preset 3 is AutoBrightness to 25%)
  5. At: 8:00 I will activate preset number 4 (Preset 4 is AutoBrightness to 100%)
  6. and Click Save.

Now you must create the presets 3 and 4. Similar to presets 1 and 2.

And in this case because our brightness will automatically turn down and up. I can use my button for other purposes like a Night Light and regular preset I like.

I will go to the color wheel and select warm light, solid, and maximum brightness. Then I will go to preset tab and save the actual effect as Label ID 1. (this will replace the last preset number 1)

Then I will select my favorite effect like Chase Rainbow and save it as Preset Label 2 to replace old preset number 2.

That way I will have:

  • Short press: Nightlight.
  • Long press: Favorite effect.
  • Automatic Brightness at 8:00 and 19:00

Step 6: Done!

Now you have a Functional Hollow LED Clock! It won't just be an ornamental clock. It will be:

  • Smart light.
  • Night Light.
  • Practical Light.
  • Charger.
  • Clock.

Leave a comment below if you would like to see a better version of this clock! WLED offers UserMods so we can develop new functions color.

Clocks Contest

Participated in the
Clocks Contest