Introduction: Bending Time: a Guide to Building a 3D Printed Curved LED Clock With WS2812 LEDs and ESP8266

Time is a fundamental aspect of our lives, and there are countless ways to keep track of it - from wristwatches to wall clocks to smartphones. However, for those who want a more personalized and visually stunning way to keep track of time, I propose the construction of a DIY LED clock, a construction that can be an exciting and rewarding project. In this guide I will try to show you how to create a unique and eye-catching curved LED clock using WS2812 LEDs, which are capable of producing a wide range of vibrant colors and patterns.

The clock displays the time on a 12x5 WS2812 LED matrix, with hours, minutes, and seconds represented as colored LED bars and pixels. This allows for a high degree of customization and creativity in designing the clock's display.

Whether you're an experienced do-it-yourselfer or a newcomer to the world of electronics, this guide will take you step-by-step through the process of building a custom LED clock that will not only tell time but also add a touch of visual flair to any room in your home or office. So, let's get started and bend time to your will! :)

Step 1: What We Need

  • 3D printed parts: support for LEDs, the grid, support box for the electronic circuit and the cover for it and some end pieces. The project with these parts is on Tinkercad. I also attached the STL files bellow. All parts were made 100% on Tinkercad.

  • 84 WS2812 LEDs, which is about one and a half meter of a LED strip with 60 LEDs/meter.
  • One Wemos D1 mini.
  • A 2.5m female plug with wire.
  • A 5V/2A power supply.
  • M3 screws, 20-30mm in length, 2 pieces.
  • M3 nuts, 2 pieces.
  • Mini wood screws, 2.5mm in diameter, 3.5mm screw head diameter, and 10mm in length. These can be purchased from hobby stores and are used to mount locks and hinges on decorative wooden boxes.
  • Printed paper for the display. (SVG files for two clock face variants are attached bellow)
  • For the display, a piece of transparent PETG plate with dimensions of 215x130 mm and a thickness of 0.75 - 1mm.

Step 2: How Is the Time Displayed?

I know that there are many ways and methods to use such a display, a classic example being displaying the digits by scrolling them on the display. I thought of approaching the problem in a different way, and that's why I came up with the following solution:

The time is displayed using two colored columns of five LEDs each placed to the left and right of the hour point printed on the top band of the clock. An exception to this rule is 12 o'clock and 0 o'clock, which are also displayed on two columns: the first and last column of the display.

The minute is displayed in two stages: a column of 5 LEDs in the group of 5 minutes (the groups first minute is printed on the bottom band of the clock (for both minutes and seconds). In this column, the exact minute is then displayed in a different color.

The second is represented by a single square that moves from zero seconds to 59 seconds.

And to make things clearer, I will present some examples of the time displayed on the clock below.

It is 02:38:46 or 14:38:46

It is 05:24:07 or 17:24:07

It is 12:45:19 or 00:45:19

Step 3: Assembly of the Clock

It all starts, of course, with 3D printing the components. The parts are relatively difficult to print because they are quite complicated and all except for the support box lid require supports during printing.

I used PrusaSlicer 2.5.0 and made some modifications to the support settings to make the supports removal easier. I took inspiration from the discussions here. I printed the grid lying down but the LED support vertically.

I also printed the box in the lying position and it took quite a while to remove the support material. Luckily, it was on the inside :)

The setting I used for supports:

After the parts were printed, I soldered the connection wires to the 7 pieces of 12-LED strips and pushed the LED strips onto the support (they are self adhesive). I mounted the LED support onto the box with the help of M3 screws and nuts. I made the connections to the Wemos D1 mini, between the module and LEDs, as well as the power cable (you can find the electronic circuit at the next step).

Then, I fixed the support grid onto the LED support with the mini screws. I printed (repeatedly) the black number model on good quality A4 white paper and cut a piece of 0.75 mm thick transparent PETG measuring 215x130 mm. I fitted the printed model on the paper in front of the grid in the channel, then fixed the PETG plate in the channel of the grid.

I also printed two pieces that are inserted at the edges of the LED support in order to protect the connections made on the back of the support between the LED strips

Finally, I mounted the box lid. And that's it, I'm finished.

All these steps can be followed in the images above.

Step 4: How to Make the Clock Work

First the electronic circuit.

As you can see from the diagram above, the electronic circuit is remarkably simple. I particularly enjoy using the Wemos D1 mini because it is incredibly easy to program, requiring nothing more than a standard USB-to-micro USB cable.

Some things I should point out about the operation...

In total, I used 84 LEDs. If all were lit white, assuming that one LED consumes approximately 60mA, the total consumption would be 96 x 0.06 = 5.76A. Therefore, a power source of at least 6A would be needed. But since I limited the brightness to 120, which is less than half of maximum, and no LED is lit in white and maximum brightness, a 2A power source is sufficient. Even from the laptop's USB port, it works ok (except for some rare flickers).

In addition to the LEDs for displaying the time, I should also mention that I used two colors, a darker gray and a lighter one to highlight the quarters of an hour. The first three columns and the columns from 7 to 9 have the darker gray LEDs, the rest have the lighter gray ones.

The program that needs to be loaded into the Wemos D1 mini can be found on github. I used Arduino 1.8.19 for compiling and uploading the program. I also used the 2.7.4 framework for the ESP8266 microcontroller and the fastled library version 3.5.0.

As I did in my previous projects based on the ESP8266 microcontroller, in this project, I also used a web framework based on JOHN Lassen's, which you can find out more about here - https://www.john-lassen.de/en/projects/esp-8266-arduino-ide-webconfig.

It is used very simply:

  • Upload the program
  • Start the clock
  • On a phone or laptop (with wifi enabled), search for and access an access point with the name that begins with "Curved LED Clock", the access password is "admin1234"
  • After connecting to the phone or laptop, start a browser and navigate to the site 192.168.4.1
  • Go to "Network Configuration" where you enter your wifi router connection details and save them
  • Restart the clock

Everything should work fine. You can learn more about using this web framework in my instructable "https://www.instructables.com/VERBIS-Desktop-8x8-RGB-LED-Matrix-Word-Clock/"

And one more thing... I thought about making the display a bit more... dynamic, so I used a very nice option from the FastLED library: displaying colors from a palette of colors on a group of LEDs. I defined different palettes for the hour, minute bar, minute, and second, and spent a lot of time trying out a bunch of palettes :) But I think it turned out interesting in the end.

You can see in the short video below the actual functioning of the clock.

Step 5: The Video

Step 6: Conclusion

In conclusion, the Curved LED Clock is a stunning and unique addition to any space. With its elegant curved display and custom color scheme, it is sure to capture the attention of anyone who sees it. Despite its complex appearance, the clock is surprisingly simple to assemble and program, making it an accessible project for anyone with a basic understanding of electronics and programming.

Whether you're a seasoned maker or just getting started with DIY projects, the Curved LED Clock is a fantastic way to hone your skills and create something truly special. With its customizable design and user-friendly web configuration interface, the clock is both fun and functional, serving as both a timepiece and a work of art.

I hope that this guide has provided you with all the information you need to build and enjoy your own Curved LED Clock. From selecting your components to programming the clock and configuring its settings, I've tried to cover everything you'll need to know to get started.

If you have any questions or need further information about this project, please don't hesitate to contact me. I would be more than happy to assist you in any way I can. Thank you for your interest and happy building! :)


Clocks Contest

Runner Up in the
Clocks Contest