The pxlBlck_RingClock is very similar to the pxlBlck_SlotClock. It is also built using a 1 × 60 LED matrix and can display the time according to the same scheme as the pxlBlck_SlotClock.
However, the LED strip of the pxlBlck_RingClock is installed in a ring and not in a disc. This makes the design of the it even more unobtrusive. The microcontroller for control is built into the base of the pxlBlck_RingClock.
You have the choice between a minimalist base in which the ESP8266 is housed as compactly as possible. If, on the other hand, you want a little more stability and maybe even space for an RTC then you can also build the pxlBlck_RingClock with the larger base. If you also install the RTC, you can use the pxlBlck_RingClock without an active WiFi connection.
All information about how to build the pxlBlck_RingClock can be found in the following article.

Inhalte
- 1 Safety instructions
- 2 Affiliate links / advertising links
- 3 Requirements
- 4 Overview
- 5 Collect the parts you need
- 6 Screw the LED ring to the mini base
- 7 Prepare the LED strips
- 8 Insert the LED strip into the LED ring
- 9 Insert the acrylic glass ring
- 10 Connect the ESP8266 to the LED strip
- 11 Connect LDR to ESP8266
- 12 Slide the ESP8266 into the mini base
- 13 Structure of the pxlBlck-Ring Clock including RTC (Real Time Clock)
- 14 Connect the RTC to the ESP8266
- 15 Connect the LDR to the ESP8266
- 16 Connect the ESP8266 to the LED strip
- 17 Slide the ESP8266 into the base
- 18 Install weights in the stand
- 19 Programming firmware
- 20 Configure pxlBlck plugin
- 21 Configure LDR to adjust the display brightness
- 22 Configuration of the RTC in ESPEasy
- 23 Set LED offset and alignment
- 24 pxlBlck-Usecases
- 25 Animations, icons and commands
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/sicherheitshinweise/
Affiliate links / advertising links
The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and shop via this link, Nerdiy.de receives a commission from the online shop 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 what the pxlBlck_RingClock can look like. As usual, the colors of the minute, second, hour hand and the hour marker can be set. The brightness of the hour markers and the hands can be adjusted independently of each other.
Collect the parts you need
So that you can start building your pxlBlck_RingClock, you should first collect all the parts you need.

To build the pxlBlck_RingClock you need the following parts.
- WS2812 LED strip 144LEDs/m 60LEDs long
- 3D printed LED holder
- 3D printed base (there are different versions)
- 3x cables approx. 10cm long
- 1x Wemos D1 Mini
- 2x self-tapping screws 2×8
- 1x acyl glass ring inner diameter: 130mm, outer diameter: 141mm, Thickness: 3mm
- 2x M8x40 cylinder head screw
You can find the STL files for printing on your 3D printer in the repository for the pxlBlck_RingClock under the following link.
Screw the LED ring to the mini base
There are different versions of the socket. The socket shown here is the smallest of the available sockets. It only houses the ESP8266. (More doesn’t fit in there either). Due to its low weight, the pxlBlck_RingClock stands upright, but also tips over quickly. So you should only use this base if the planned installation site is level. As an alternative socket, there are sockets below, which can also be weighed down with weights. In addition, there is a little more space in one of these sockets. For example, an RTC (real-time clock) can also be integrated into this socket.

To do this, screw the base to the LED holder as shown. You can use the illustrated M2 screws including nuts or self-tapping 2×8 screws.
Prepare the LED strips
Before you can insert the LED strip into the base, you should solder the connection lines to it.

… the LED strip in front of you so that the arrow points away from you. This is important because the data input of the LED strip is on this side.

Now you should prepare the first contacts with some solder. This makes soldering the cables a little easier later.

So that the LED strip can be easily inserted into the LED holder, you should now carefully bend the red line so that all lines lead away from the LED strip in the same direction.
Important: Make sure that you do not stress the contact surface of the SMD strip too much. Otherwise it could happen that the wire including the contact surface tear off.
Insert the LED strip into the LED ring
After you have prepared the LED strip, you can now insert it into the LED holder.
Insert the acrylic glass ring
As a diffuser, you should now insert a suitable LED ring into the LED holder.
Connect the ESP8266 to the LED strip
Your pxlBlck_RingClock should now look pretty much finished. However, the heart – the ESP8266 – for operating the clock is still missing.

For this you need the ESP8266. I do recommend using the Wemos D1 Mini here. The ESP8266 is installed on this.

To do this, the LED strip must be connected according to the following scheme.
ESP8266 | LED-Stripe |
---|---|
5V | 5V |
G | G |
D4 | DIN |
Connect LDR to ESP8266
I recommend installing an LDR so that your pxlBlck-RingClock can also automatically adjust the brightness of the LED strip to the ambient brightness. This is a bit fiddly due to the limited space in the base, but ultimately it’s worth it. 🙂

For this you need an LDR and a “normal” (1 / W) 1k resistor.
Also, some heat shrink tubing (not shown in the picture) is very helpful.

… as shown to the shown contacts on the Wemos D1 MIni.
So the resistor between GND and the input of the ADC is soldered. It functions as a series resistor to the LDR and forms a voltage divider in combination with the LDR.

For this you should protect at least one of the LDR contacts against short circuits with a shrink tube.
The LDR itself should then protrude approx. 5mm beyond the end of the Wemos D1 Mini board.
Slide the ESP8266 into the mini base
After you have connected the LDR to the Wemos D1 Mini, it can now be pushed into the base. But if you want you can wait and test the function first. To do this, just skip this part and program and test the pxlBlck_RingClock first. However, it is also no problem to take the Wemos D1 Mini out again later.

Make sure that no SMD components on the Wemos D1 Mini are damaged or torn off.
You should be able to slide in the Wemos D1 Mini without much effort.

If you want, you can then bend the LDR up a little and “align” it even better with the ambient light.
Structure of the pxlBlck-Ring Clock including RTC (Real Time Clock)
The pxlBlcks usually obtain the correct time via an NTP server that they can reach using the WiFi connection. Sometimes you want to set up the pxlBlcks in a place where no WiFi connection is available. In this case, the missing source for a correct time can be replaced by an RTC. An RTC (Real Time Clock) maintains the set time with a battery backup. So the time is not lost even without a power supply.

For the construction of the pxlBlck_RingClock including the possibility of accommodating an RTC you need the following parts.
- WS2812 LED strip 144LEDs / m 60LEDs long
- 3D printed LED holder
- 3D printed socket (now the larger version which is also available in the Git repository.)
- 3x cables approx. 10cm long
- 1x Wemos D1 Mini
- 2x self-tapping screws 2×8
- 1x acyl glass ring inner diameter: 130mm, outer diameter: 141mm
- 2x M8x40 cylinder head screw
If you also want to connect the LDR (information below) also the following parts.
- LDR
- 1k resistor 1 / 4W
- approx. 3 cm shrink tubing
Connect the RTC to the ESP8266

Now you can remove the contact tongues by briefly heating them with a soldering iron. A pair of tweezers or pliers with which you can pull out the contact tongues while heating them with the soldering iron is very helpful.

Now you have to connect the RTC to the I2C bus of the ESP8266 and the supply voltage.
To do this, a first line leads from contact “D” of the RTC to contact “D2” of the ESP8266.

In addition, you can now establish the ground connection between the RTC and ESP8266. Solder a line …
Connect the LDR to the ESP8266
This step is optional. With the help of a connected LDR you are able to configure your pxlBlck in such a way that it adapts the brightness of the connected LED matrix to the ambient brightness. This means that the brightness of the connected LED matrix is dimmed when the ambient light becomes darker and increased when the ambient light becomes brighter.

To do this, you first have to connect the shown 1k resistor between the contacts “GND” and “A0” of the Wemos D1 Mini.
An example of how you can make this possible very compact is shown in the picture.

On top of the Wemos D1 Mini you then have to solder the LDR as shown.
It is recommended to insulate the bare connection pins of the LDR with some shrink tubing.

The “head” of the LDR should be soldered so that it protrudes approx. five to ten millimeters above the end of the Wemos D1 Mini circuit board.
Connect the ESP8266 to the LED strip
Now that you have prepared the Wemos D1 Mini so far, you can continue with the connection to the LED strip.

Solder the connection lines of the LED strip to the Wemos D1 Mini as shown.
You can connect the contacts of the LED strip to the contacts of the Wemos D1 Mini according to the following scheme.
ESP8266 | LED-Strip |
---|---|
5V | 5V |
G | G |
D4 | DIN |
Slide the ESP8266 into the base
Now that you have connected all parts to the ESP8266 / Wemos D1 Mini, you can install the Wemos D1 Mini in the base.
Install weights in the stand
If you want to make your pxlBlck_RingClock a little more stable, you can equip the base with additional weights.
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.

Configure LDR to adjust the display brightness
So that the LDR is read out by ESPEasy and the current brightness of the LED matrix is updated accordingly, you must first make a few configurations. How you can proceed is described in the following article.
Configuration of the RTC in ESPEasy
In order to be able to use the RTC in combination with ESPEasy, I wrote another plugin. I will soon describe its configuration in a separate article and then of course add it here or post it on Nerdiy.de.
Set LED offset and alignment
Since the LED strips can be installed in different ways, you may have to adjust the display.
For this you can set the offset of the “twelve o’clock position” from the beginning of the strip. You can find this setting in the web menu of the plugin in the section “12 o’clock LED position”. It’s best to try something here until you have found the correct value. For better orientation you can activate the option “Thick 12 o’clock mark”. So you can easily see where the 12 o’clock position of the clock face is and adjust the offset so that it is at the top position.
In the event that your RingClock is running in the wrong direction, you can reverse the “direction of rotation” with the “Direction Inversed” option.
pxlBlck-Usecases
Under the tag “pxlBlckUsecase” articles are listed in which you can find examples how to integrate the pxlBlcks in your smartHome. It also explains how you have to configure your pxlBlck for this.
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
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. 🙂
Fab
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 it that I share these information with you, I would be happy about a small donation to the coffee box. 🙂

Hallo,
danke für die ausführliche und sehr gute Beschreibung. Ich hab das ganze mal nachgebaut (hatte noch einen Streifen mit 60LED hier rumliegen), jedoch ist mit aufgefallen, das beim Sprung von dem einen Ende (Einspeisung) auf das andere Ende ein Sprung / Lücke von 1 Sekunde ist; hast Du eine Idee, woran das liegen könnte ?
Ich schick mal ein kleines Vide per Mail..
Joachim
Guten Abend Joachim,
hattest du die vor kompilierte binary geflasht? Ich hatte nämlich kürzlich einen bug gefixed der diesem sehr ähnlich sieht. Hatte den Fehler allerdings nur im Code behoben und die binary noch nicht aktualisiert. Daran arbeite ich gerade. Du kannst die Firmware also entweder mit der Arduino IDE flashen oder 10 Minuten warten. Bis dahin sollte ich die Binary aktualisiert haben.
Lass mich gerne wissen, ob das den Fehler behoben hat. 🙂
Beste Grüße
Fabian
Hallo und Danke für die sehr ausführliche Anleitung. Leider warte ich schon ne ganze weile auf den über Kickstarter finanzierten 3D-Drucker und sicher warte ich noch etwas länger. Hast Du eine Idee wo ich die 3D Teile drucken lassen kann oder gibt es vielleicht hier einen anderen Leser, der mir die Teile gegen Bezahlung drücken kann?
Ich will trotzdem schon mal alle anderen fehlenden Komponenten bestellen und da ist mir aufgefallen, dass du nirgends die Stärke des Acrylrings angegeben hast. Da dieser ja bündig sitzen soll, wäre die Angabe sicher hilfreich. Danke!
Freundliche Grüße vom Niederrhein
Patrick
Hey Patrick,
danke für den Hinweis mit der Dicke für den Plexiglasring. Ich habe die Info (3mm) hinzugefügt.
Was das Drucken der Teile angeht: Das kann ich auch gerne machen. Kontaktiere mich doch einfach über das Kontaktformular wenn du Interesse hast und dann können wir das abklären. 🙂
Beste Grüße
Fabian
Hallo Fabian,
Vielen Dank für die detailierte Anleitung!
Zwei Fragen: wie dick ist dein Acrylglas für die Abdeckung? 3mm?
Und noch interessanter: Wie hast du das Acrylglas geschnitten?
Viele Grüße und ein “gutes Neues”!!
Oliver.
Hey Oliver,
Danke und danke für den Hinweis mit der Dicke für den Plexiglasring. Ich habe die Info (3mm) hinzugefügt. Ich habe den Ring bei http://www.acrylformen.de/ per Laserzuschnitt zuschneiden lassen. Leider ist der Shop aktuell (soweit ich weiß aufgrund der hohen Nachfrage) geschlossen. Es gibt aber auch andere Shops die diesen Service anbieten. Ich kann dir nur leider keinen Konkreten empfehlen. 🙂
Frohes neues und beste Grüße’
Fabian
Hallo Fabian,
Ich habe mir überlegt, eine größere Variante der Uhr zu bauen (3D-Modell muss man dann ggfs. in mehreren Teilen drucken). Die LED-Streifen gibt es ja standardmässig in verschiedenen “Dichten” (Anzahl LED/m). Für die verschiedenen Varianten habe ich einen Rechner erstellt, der den Durchmesser und den Vergrößerungsfaktor (für den 3D-Druck) berechnet. Den Rechner habe ich freigegeben: https://docs.google.com/spreadsheets/d/1NKIeCsHsKDcRir4_VSnpM0GEaJx69tWigmRbGMM3S2I/edit?usp=sharing
bzw.: https://bit.ly/2JAXHnR
Du kannst ihn gerne im Artikel verlinken oder die Tabelle mit den gängigsten LED-Varianten übernehmen.
Gruß,
Oliver.
Hey Oliver,
super coole Sache! Vielen Dank dafür. Würde das in den Artikel mit einbauen. Soll ich dich/deinen blog/etc. iwie verlinken? 🙂
Vielen dank und beste Grüße
Fabian
Hallo Fabian,
Du kannst gerne meinen Blog verlinken: https://huf.org
Habe aber noch keinen Artikel dazu gemacht 🙂
Viele Grüße,
Oliver.
Alles klar, danke Dir! Habs gerade eingetragen und darin auf deinen Blog verlinkt. Danke nochmal dafür! 🙂
Beste Grüße
Fabian
Hello !
I’m trying to download your STL from the github link but when I open the downloaded files in Cura, I have an error anf It won’t load. I’m used to download stl files from “thingiverse” or “Cult3d” but here, there is something in the link I can’t figure out .
Can you help me to get those files ?
Thank you for your inspirating work !
Hey Matt,
Thanks for pointing that out. I got a similar complain in the past and investigated whats going on here. It looks like that gitHub does not delivering the STL file itself at downloading it but the page to display a preview of it. I have to find another way to offer the files here. Until then please download the complete repository (containing the stl files). The following link should work: https://github.com/Nerdiyde/pxlBlck/archive/main.zip
The STL files should be located in pxlBlck\platform\pxlBlck_RingClock
I hope this works for you. If possible please let me know. 🙂
Thanks and Best regards
Fabian
Hello, thank you.
The link worked as expected. And now I have to chose which round clock I’ll make 🙂
I have a broken LCD TV and I was wondering what it yould like to use the TV “diffusor” or any of the different display layer between the panel and the LED . I got to try !
Have a nice day.
Matt from France
Hey Matt,
sounds good, thanks for letting me know. 🙂
Good look with the diffusor. 🙂 Hope it works. If you like let me know how your build came out in the end.
Thanks and best regards from germany
Fabian