The pxlBlck_SlotClock consists of a 1×60 LED matrix. It can display the time in the same way as an analog clock. The colors of the individual hands can be adjusted. Hour markers can also be displayed. This makes orientation and reading the time a little easier. 🙂
Animations can also be shown on the LED display to provide information about events.
Everything you need to build your own pxlBlck_SlotClock can be found in the following article.

Safety instructions
I know the following hints are always a bit annoying and seem unnecessary. But unfortunately, many people who knew it "better" from carelessness lost their eyes, fingers or other things or hurt themselves. In comparison, a loss of data is almost not worth mentioning, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Even the coolest project is worth no injury or other annoyance. https://www.nerdiy.de/en/sicherheitshinweise/
Affiliate links / advertising links
The links to online stores listed here are so-called affiliate links. If you click on such an affiliate link and store via this link, Nerdiy.de receives a commission from the online store or provider concerned. The price doesn't change for you. If you do your purchases via these links, you will support Nerdiy.de in being able to offer further useful projects in the future. 🙂
Requirements
For the assembly you have to master soldering tasks. The following articles provide tips on how to do this.
- Electronics—My friend the soldering iron
- Electronics - soldering THT components by hand
- Electronics - soldering SMD components by hand
Required tools:
Required material:
In the following list you will find all the parts you need to assemble.
Overview
Here you can see a small overview of how the display of animations and the time on the pxlBlk_SlotClock can look.
Collect the parts you need
Before you can start building your own slotClock, you should have the required parts together.

To assemble the slotClock you need the following parts.
- 1x WS2812 or SK6812 LED strip 144LEDs / m 60 LEDs long
- 1x round acrylic glass disc, milky, diameter 133mm
- 3D printed base
- 3D printed stand
- 3D printed cover for the stand
- 3D printed retaining ring
- 2x M8x40 cylinder head screws
- 1x Wemos D1 Mini (ESP8266)
- 4x self-tapping screws 2×6
- 3x cables approx. 10cm long
You can find the STL files for printing on your 3D printer in the repository for the pxlBlck_SlotClock under the following link.
Prepare the LED strips
First, you should prepare the LED strip for installation.

Here the red line is connected to the 5V contact, the black line to the GND contact and the green line to the DIN contact of the first LED.
The signal line is connected to the DIN contact directly on the first LED. This makes it easier to install the LED strip later.
Place the LED strip in the holder
The prepared LED strip can now be inserted into the holder.

Now it gets a bit tricky: The lines should now be brought together in such a way that they do not jam when the LED strip is pushed in.
Note: The bracket in the picture looks a little different than the STL file offered above. The STL file is the correct version. Only in this way the twelve and six o'clock positions are aligned vertically.

Another view.
Note: The bracket in the picture looks a little different than the STL file offered above. The STL file is the correct version. Only in this way the twelve and six o'clock positions are aligned vertically.

The end of the LED strip could slightly overlap with the beginning of the LED strip.
Note: The bracket in the picture looks a little different than the STL file offered above. The STL file is the correct version. Only in this way the twelve and six o'clock positions are aligned vertically.

Make sure that there are no short circuits.
Note: The bracket in the picture looks a little different than the STL file offered above. The STL file is the correct version. Only in this way the twelve and six o'clock positions are aligned vertically.

If necessary, you can stick some hot glue or insulating tape behind the end of the LED strip to avoid any short circuits.

As soon as you have completely inserted the LED strip everywhere, your SlotClock should look like this.
Mount the base
The base is there (as the name suggests) to make the SlotClock upright. It also houses the ESP8266 to control the LED strip.
Insert the front screen
To cover the LED strip you can now insert a plexiglass plate into the LED strip holder.

To do this, you need the prepared unit consisting of the LED strip holder and stand as well as a 3mm thick Plexiglas pane with a diameter of 133mm.

The acrylic glass plate should now hold itself in the LED strip holder.
If you want to attach the acrylic glass plate also, you can now …
Install weights in the stand
The SlotClock should now stand upright by itself. Nevertheless, you should install two additional weights in the base to increase the stability.

… into the recesses in the base.
To prevent the screws from falling out, you can glue the screws in with a drop of hot glue.
Install ESP8266
To be able to control the LED strip, an ESP8266 must of course be installed. This microcontroller will later take over the control of the LED strip.

The ESP8266 is available in different versions. For the installation in the SlotClock I recommend using the "Wemos D1 Mini".

Now you should prepare the lines to be soldered to the ESP8266.
Cut the cable to the correct length...

...together.
The connections should be connected as follows.
ESP8266 | Line color | LED stripe |
5V | editor | 5V |
G | Black | GND |
D4 | Green | DIN |
Connect the USB cable and attach the cover
Before you close the back of the stand with a lid, you should connect a USB cable to the ESP8266.
Install LDR for brightness detection
The step described here is optional. It is only necessary if you want your SlotClock to be able to automatically adjust its brightness to the ambient brightness.

You will need the following components for this.
- 1x LDR
- 1x resistor 1k
- 2x shrink tubing two cm long
- 2x lines about five cm long

In order to connect the lines to the LDR, you should prepare them again.
To do this, remove five mm of the insulation at both ends of the cables and tin them with a little solder.

In order to then connect the LDR to the ESP8266, you should tin the following contacts of the ESP8266 with some solder.
- 3V3
- A0

After the installation you can screw on the cover of the base again.
Be careful not to damage any cables.
Programming firmware
After setting up the pxlBlck_SlotClock, you now have to install ESPEasy including the pxlBlck plug-in on the ESP8266. How you can proceed is described in the following article.
Configure pxlBlck plugin
After installing the firmware you have to configure the plugin correctly. You can also find information on this in the article pxlBlck – Install and configure the pxlBlck plugin.
As an additional orientation, you can also use the settings from the screenshot shown here.

Animations, icons and commands
You can find more information on the display of animations, icons and the possible commands with which you can configure your pxlBlck in the following articles.
- pxlBlck - Configure and display animations
- pxlBlck – Design icons, transfer them to the pxlBlck and display them
- pxlBlck – Commands to configure the pxlBlck
Scaling to other sizes or LED strip "densities"
The WS2812 LED strips are available in different lengths or "dense" (LEDs/m). In theory, these (longer LED strips) can also be used to build a SlotClock. Olivier from https://huf.org/wp/ has taken the trouble and created a Google Sheet with which you can easily calculate the scaling factors. With the factor that fits your LED strip, you should also be able to print a suitable STL (if necessary divided into several parts).
Thank you Oliver! 🙂
Link to the Google Sheet:
LEDs by m on the strip | Number of LEDs in a circle | Lenght [m] | radius [m] | Diameter [m] | magnification factor to the original 3D model |
---|---|---|---|---|---|
144 | 60 | 0,417 | 0,066 | 0,133 | 1,000 |
96 | 60 | 0,625 | 0,099 | 0,199 | 1,500 |
74 | 60 | 0,811 | 0,129 | 0,258 | 1,946 |
60 | 60 | 1,000 | 0,159 | 0,318 | 2,400 |
30 | 60 | 2,000 | 0,318 | 0,637 | 4,800 |
Have fun with the project
I hope everything worked as described. If not or you have any other questions or suggestions, please let me know in the comments. Also, ideas for new projects are always welcome. 🙂
P.S. Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you appreciate that I share this information with you, I would be happy about a small donation to the coffee box. 🙂
Looks really cool! Great article, someday I want to build a watch too! Thanks for writing it together.
I'm happy, thank you 🙂
As already written by email, a great project! Thank you for the amount of time you obviously invested in it!
For the design of the base, I have another suggestion in terms of pressure optimization:
If the wall thickness of the subdivisions were a multiple of 0.4mm, the print would be a little faster and cleaner. Otherwise, a very narrow infill is printed for each sub-line, which increases the printing time,
You could of course hack something via the slicer and the infill settings, but it would be cleaner directly in the design :)
Hey Philip,
Thanks. 🙂
And thanks for the hint. Is a good point. I'll implement that and update the STL. 🙂
Best regards
Fab
Hi,
I intend to recreate the clock and have already prepared the ESP with LED strip for this. I made all settings according to this guide. However, the ESP controls only 59 pixels, between 30 and 32 seconds a pixel is missing. What could have gone wrong with me?
Greetings Myrng
Hi Myring,
did you flash the firmware with the Arduino IDE (i.e. the current code) or did you use the precompiled binaries? I plan to have the binaries created automatically (so far I've added them to the repository manually), which means that the binaries are not up to date.
Yesterday I fixed an error that sounds similar to the one you described. So if you flashed the binary let me know. Then you can try programming from the Arduino IDE or I'll update the binary manually. 🙂
Best regards
Fab
Yes, I took the finished binary. Will try again with the IDE. I've already done quite a lot with ESPs, but haven't found ESPeasy that intuitive so far, hence the finished IDE.
Greetings Myrng
Yes, I had the same problem at first. It's like everything else: once you've dealt with it, it becomes easier. 😀 (Sorry for the stupid advice). Flashing the firmware is ultimately relatively easy. So if you've already flashed firmware onto the ESP using the Arduino IDE, you should be able to do it. 🙂 If you want, please let me know if it worked and the error in it has been fixed. 🙂
Best regards
Fab
The clock is ready and the self-compiled version works! No more errors with missing LEDs 🙂
Great, I'm happy! 🙃 Then have fun with it!
hey fab,
Awesome, almost got it 😀
Mega sense of achievement right now 🙂
I just did it a bit differently than you did, made the clock itself twice as big, i.e. two LEDs should be controlled per second, so I use a total of 120 LEDs.
Is there a way to adjust these changes in the ESP-Easy user interface?
Thanks and regards,
Luke
Hey Lukas,
great, I'm glad. 🙂
This option is not (yet) available in the user interface. But if you give me some time, it should be possible (at least in the code). 🙂
Best regards
Fabian
hey fab,
All right, I'll just wait a little longer, thanks! 🙂
I still have a small question, I've now built the small clock from Fun again, now the big clock has a little brother 😀
There I have the problem that the user interface shows me the message that no RTC has yet been selected for display. I then read up a bit on the net, do I still need an additional RTC module or does the clock normally query the time via the WIFI?
maybe Did I miss something in the settings, or do I have to activate something else?
Otherwise everything works great, keep checking the clock :DD
Hey Lukas,
could it be that there was something about "...NTP..."? 🙂 You don't necessarily have to have an RTC installed. If the pxlBlck is connected to a WiFi network, it is more accurate/easier to get the time via NTP. I wrote an article that explains how you can configure the whole thing: https://nerdiy.de/howto-espeasy-ntp-zeitabruf-aus-dem-internet-aktivieren/
I hope everything works out. 🙂
Best regards
Fabian
hey fab,
Yes everything worked, thanks to your instructions everything is working now.
Thanks for the cool projects!
Best regards,
Luke 🙂
Great, I'm glad. 🙂
Thank you and best regards
Fabian