HowTo: pxlBlck – Build your own pxlBlck_RingClock

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.

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.

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, 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 in being able to offer further useful projects in the future. 🙂


For the assembly you have to master soldering tasks. The following articles provide tips on how to do this.

Required tools:

Required material:

In the following list you will find all the parts you need to assemble.

1x Solder  Bei Amazon kaufen
1x Wemos D1 Mini  Bei Amazon kaufen
1x Hot Glue Stick  Bei Amazon kaufen
1xUSB power supply 5V/3.4A  Bei Amazon kaufen
1xWS2812 LED Stripe  Bei Amazon kaufen
10cm 3 wire line  Bei Amazon kaufen
1x Acrylic glass Ring ID:130mm OD:141mm 3mm thick  Bei Amazon kaufen
2x M8x40 Cylinderhead screw  Bei Amazon kaufen
1x LDR  Bei Amazon kaufen
1x 1k resistor 1/4W  Bei Amazon kaufen
1x Shrinktube  Bei Amazon kaufen
1x Micro-USB-Kabel  Bei Amazon kaufen
2x 2×6 Self-tapping screw  Bei Amazon kaufen


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

Another view of the ring parts.

You can find the STL files for printing on your 3D printer in the repository for the pxlBlck_RingClock under the following link.

Update 16.02.2021

Oliver has created an STL with which the LED ring can be printed from transparent PLA. He has kindly agreed that this is linked here. Thanks again for that. 🙂 You can find the STL on Thingiverse 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.

Another view of the screwed base with the LED holder.

Another view of the screwed base with the LED holder.

Prepare the LED strips

Before you can insert the LED strip into the base, you should solder the connection lines to it.

To do this, remove the insulation at each end 5mm.

Then put …

… 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.

Solder the leads, then as shown …

… to the prepared contacts of the LED strip. Cables are soldered to the following contacts.

  • G
  • 5V
  • DIN

Another view of the soldered lines.

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.

Close-up of the bent wires.

Insert the LED strip into the LED ring

After you have prepared the LED strip, you can now insert it into the LED holder.

To do this, guide the cables through the LED holder and the screwed-on base as shown.

Then you can start from the lower “6 o’clock position” to insert the LED strip into the LED holder.

The LED strip should be pushed into the LED holder as far as it will go.

Another view of the inserted LED strip.

Another view of the inserted LED strip.

Insert the acrylic glass ring

As a diffuser, you should now insert a suitable LED ring into the LED holder.

Put the diffuser on the LED holder …

… and press it evenly over the entire circumference into the LED holder.

The diffuser should ultimately sit flush in the LED bracket.

View of the structure so far.

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.

You can now connect the Wemos D1 Mini to the prepared connection lines of the LED strip.

To do this, the LED strip must be connected according to the following scheme.


Another view of the connected ESP8266.

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.

Solder the 1k resistor then …

… 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.

Close-up of the soldered resistor.

Close-up of the soldered resistor.

You now have to solder the LDR between the contacts of the analog digital converter and 3V3.

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.

Another view of the installed LDR.

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.

To slide the Wemos D1 Mini into the base, you should slide it into the base as shown.

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.

The LDR should peek out a bit at the end.

If you want, you can then bend the LDR up a little and “align” it even better with the ambient light.

Another view.

Another view of the built pxlBlck_RingClock.

Another view of the built pxlBlck_RingClock.

Another view of the built pxlBlck_RingClock.

Another view of the built pxlBlck_RingClock.

Another view of the built pxlBlck_RingClock.

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

Another view of the required components without the “ring parts”.

Connect the RTC to the ESP8266

Of course, you need the Wemos D1 Mini and an RTC to set it up.

Now start preparing the RTC by …

… carefully bending the tub ledge …

… and then pull off the plastic part.

You can now use the bare contact tongues as a kind of assembly aid.

Merge the RTC with the Wemos D1 Mini as shown …

… and glue the RTC to the Wemos D1 Mini using a drop of hot glue.

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.

The contacts of the RTC should then look as shown.

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.

Repeat this with another line between contact “C” of the RTC and contact “D1” of the ESP8266.

Close-up view of the soldered I2C bus connection.

In addition, you can now establish the ground connection between the RTC and ESP8266. Solder a line …

… between the “-” contact of the RTC and the “G” contact of the ESP8266.

Last but not least, the RTC must of course also be connected to the 3.3V power supply.

Solder a wire between the “+” contact of the RTC and the “3V3” contact of the ESP8266.

Another view of the connected RTC.

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.

Make sure that there are no short circuits to the neighboring components.

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.


Another view.

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.

To do this, slide it into the illustrated recess in the base as shown – with the RTC first.

Make sure that no components on the PCB of the Wemos D1 Mini are torn off or cables are jammed.

The Wemos D1 Mini should be able to be pushed into the recess without great effort.

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.

For example, the M8x40 cylinder head screws shown are quite suitable for this.

You can simply …

… push them into the recesses in the base of the pxlBlck_RingClock.

So that these stay in place, you should fix them in the base with a drop of hot glue. 🙂

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

Everything you need is now available here:

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.


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.

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 it that I share these information with you, I would be happy about a small donation to the coffee box. 🙂

Buy Me a Coffee at   


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

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

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

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

  3. 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”!!

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

  4. 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:
    Du kannst ihn gerne im Artikel verlinken oder die Tabelle mit den gängigsten LED-Varianten übernehmen.


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

        1. Alles klar, danke Dir! Habs gerade eingetragen und darin auf deinen Blog verlinkt. Danke nochmal dafür! 🙂
          Beste Grüße

  5. 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 !

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

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

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

  6. He Fabian,

    erst mal vielen Dank für die tolle Anleitung hier. Ich hatte mit mal die Zeit genommen das ganze nach zu bauen. Dadurch, dass du das so detailliert beschrieben hast war das auch kein Problem.
    Auch wenn das hier kein Forum ist habe ne Frage / Problem.

    Bei mir zeigt es aktuell keine Markierung bei den Stunden an (22Uhr Ortszeit). Einen Defekt am LED Band kann ich ausschließen. Wenn ich die “Direction inversed:” Funktion aktiviere, dann funktioniert es, aber dann läuft es ja in die falsche Richtung.
    Hast du eine Idee was das sein kann?


    1. Hey Carsten,
      Danke, freut mich zu hören. 🙂 Ach immer her mit den Fragen. Dafür ist der Kommentarbereich ja gedacht. 🙂
      Ich habe vor ca. drei Wochen einen Bug behoben der sehr ähnlich klingt. Es kann sein, dass der Fix noch nicht in den aktuellen binaries enthalten ist.
      Ich werde mal versuchen das nachzustellen und zu prüfen.
      Bis dahin: Hast du den Code selber kompiliert und programmiert oder die vorgefertigten bin-Dateien/binaries genutzt? Falls letzteres, welche hast du genommen? 🙂
      Danke und beste Grüße

  7. Danke dir für die schnelle Antwort. Ich habe das binary für den ESP8266 von der github Seite genommen.
    Heute konnte ich feststellen, dass es bei der Umschaltung auf 18Uhr (also wenn von LED 60 auf 1 geschallten wird) es dazu kommt, dass die Stunden nicht mehr dargestellt werden.

    Eventuell helfen dir ja die Infos aus dem System Page:
    Build:⋄ 20111 – Mega
    System Libraries:⋄ ESP82xx Core 2_7_2, NONOS SDK 2.2.2-dev(38a443e), LWIP: 2.1.2
    Git Build:⋄ (custom)
    Plugin Count:⋄ 48 [Normal]
    Build Origin: Self built
    Build Time:⋄ Jan 25 2021 18:41:50


    1. Hey Carsten,
      dann hast du auf jeden Fall die aktuellste Version. Möglicherweise ist da dann doch ein Bug im Code. :/
      Ich habe es gerade mal auf meiner Uhr versucht nachzustellen aber dort sieht alles gut aus.

      Kannst du mir noch deine Konfiguration schicken? Also welche Optionen du im Plugin wie konfiguriert hast. Gerne auch als Screenshot.
      Wenn du möchtest kannst du mir auch die Konfiguration deiner Uhr als Datei zukommen lassen. Dazu musst du auf den Tab “Tools” wechseln und mit dem Button “Save” in der Sektion “Settings” die Einstellungen exportieren.
      (Dadurch werden nur die Einstellungen und keine WiFi Daten o.ä exportiert. :))

      Vielen Dank und beste Grüße

    2. …vergiss meine Anfrage vom vorherigen Kommentar. Ich weiß jetzt was du meinst. Konnte es auf meiner uhr auch nachstellen. :/
      Ich behebe das und gebe dann hier bescheid.
      Danke fürs bescheid geben. Ist mir beim testen nicht aufgefallen. Da bin ich immer dankbar, wenn ich solche Hinweise bekomme. 🙂
      Beste Grüße

    3. Hey Carsten,
      habe den Fehler gefunden. (Hoffe ich) 😀
      Auf meiner Uhr taucht er jetzt auf jeden Fall nicht mehr auf. Bin mir aber auch nicht sicher ob ich alle Möglichkeiten abgetestet habe.
      Habe die aktualisierte binary hochgeladen.
      Ich hoffe es passt nun alles. Falls ja würde ich mich über eine kurze Rückmeldung freuen. 🙂
      Beste Grüße

      1. Vielen DANK,

        musste ich sofort ausprobieren.
        Hab die bin geflasht und die Konfiguration gemacht (hätte ich ja vorher mal Backupen können), aber war auch in 2min gemacht.
        Läuft 🙂
        Super, dass du so schnell ne neue Version bereitgestellt hast. Wenn ich die Plexiglas Abdeckung hab. Mach ich mal nen Bild.

  8. Hallo

    Ich habe keinen Laser-Cutter, und wollte die Uhr erstmal aufbauen, ohne auf den Plexiglas-Ring warten zu wollen. Deshalb habe ich einen Ring in OpenSCAD erstellt und mit transparentem PETG ausgedruckt.

    Ich habe mehrere Versuche gemacht: bei einer Materialstärke von 1 mm ist er schön transparent. Die Transparenz nimmt bei 2mm etwas ab. Wenn man den Ring so satiniert, wie im Foto haben möchte, kann man die Rückseite leicht mit feinem Schmirgelpapier anrauen, oder den Ring dicker drucken und mit dem Infill-Muster herumspielen….

    Für eine erhöhte Transparenz sollte das Material mit etwas höherer Temparatur gedruckt werden.

    Vorlagen in 1 mm und 2 mm, sowie der OpenSCAD-Quellcode sind auf Thingiverse:

  9. Hallo Fabian,

    klar. Gerne auch einen Link auf das Thingiverse-Repo, dann können Interessierte mit der OpenSCAD Source herumspielen 🙂


  10. Hi,

    First of this is a great project and the writeup is fantastic. Thank you.

    I have three questions:
    – They say that the D1 mini doesn’t have enough power for more that a few leds and you should power that separately. In your build I assume that you power the D1 from the usb and pass power to the strip from the 5v pin. Did you have issues with brightness and/or the D1 just failing by doing that?

    – Your stl for the ring assumes 144 leds/m and has the small dividers accordingly. I assume using a strip with less leds/m would produce dark spots. Can you share the original file so I can edit the spacing?

    – When you solder the wires on the led strip, why do you connect the power and ground after the first?

    Thanks again

    1. Hey Alexandros,
      thanks you 🙂

      Here three answers. 😀
      1. Yes and no. The max brightness is limited in software. So yes, the full brightness is not available. I’m actually working on a special PCB that should make it possible to make more brightness available on some pxlBlck plattforms 🙂
      2. The problem with LED stripes using less leds/m is also that it wouldnt fit in the ring anymore. Also the diameter would become a lot bigger. At least when you try to use an led stripe with 60 LEDs as well.
      3. Hm, I’m not really sure what order you are refering here to. Normally it doesnt matter in which order the wires are soldered. 🙂 Of course you should solder the wires without any power supplied to any component involved. 🙂

      Best regards

      1. Thank you for the reply,

        Regarding 1 my issue what they discuss here meaning that the D1 will fail if you use it to pass power to the led strip.

        Regarding 2 I was looking more to make a light display and less a clock that is why I was asking.

        Regarding 3 in this image
        you wire the data at the start but the power and ground after the first led. why is that?

        Again thank you for the tutorials and the time

        1. Hey Alexandros,
          you are welcome. 🙂
          Regarding 1. Yes basically this is right. What I did to prevent is to use the “setBrightness” function of the underlying adafruit library. The maximal setable brightness of the matrix can be set. For more infos please read here: and search for “setBrightness()”. I used this functionality in my plugin (here: to reduce the max setable brightness. So if you use the pxlBlck plugin it shouldnt be possible to overload the usb-connection since the max brigthness is limited in software. The reduced brightness also leads to a reduced current and therefore the wemos should be capable to deliver the needed current. But of course you could also choose the option to bypass this “problem” by wiring the led strip to an external 5V-power input. 🙂

          Regarding 3. Now I got what you are refering to. 🙂 Thats basically done for space reasons. Electrically it does not really matter if the power connections are wired to the first, second or 33rd LED. All LEDs are powered in parallel by the 5V source. So the energy is dsitributed to the whole LED strip independently from where it is connected. Since it is easier to solder the power wires at that area I decided to use the power terminal at the second LED. Only the data input has to be soldered to the first led-data input. 🙂

          Best regards

  11. Alexandros,

    Re. 1: The “Neopixel” strips are different from “common” LED strips or single LEDs in the way that the power for lighting the LED comes only from the 5v connector.

    The D1 (or D4) is just a data pin that delivers color (and brightness) *information* to the LED pixels. Every LED regenerates that data signal and passes it on to the next neighbor. The amount of current on the data pin needed for a 10-pixel strip is (almost) identical to that of a 100-pixel strip. This current is no problem for the data pins of the ESP (or Arduino).

    Keep asking!

  12. Hallo,
    erst einmal vielen Dank für das super tolle Projekt 😀
    Leider treten bei mir folgende Probleme auf:

    1. Die Sekunden-LED immer für 1 bis 3 sek an und springt dann weiter. Verdacht war, dass das Netzteil (2A) in die Knie geht, austausch war ohne Erfolg. Auch die Stromaufnahme der LEDs zu reduzieren brachte nichts.

    2. WLAN funktioniert im Easy Mega AP mit meinem Smartphone S20 5G FE nur sporadisch, d.h. die Seiten werden nicht oder teilweise geladen.

    Beides sieht sehr nach Überlastung des ESP aus? Könnte es sein, dass die auch entsteht, wenn der ESP den NTP nicht erreicht?

    Hast du eine Idee, wie man das Problem fixen kann?

    Build:⋄ 20111 – Mega
    System Libraries:⋄ ESP82xx Core 2_7_2, NONOS SDK 2.2.2-dev(38a443e), LWIP: 2.1.2
    Git Build:⋄ (custom)
    Plugin Count:⋄ 48 [Normal]
    Build Origin: Self built
    Build Time:⋄ Feb 13 2021 10:53:33


    PS: Gibt es schon einen Zeitplan, wenn du das RTC in die SW einbindest bzw. uns Jünger(innen) eine Konfig-Seite präsentierst 😉

    1. Hi Anke 🙂
      vielen Dank. 🙂
      1. Das liegt sehr wahrscheinlich an der Auslastung des ESP. Der ESP kann leider nur immer eine Aufgabe erledigen. Dabei haben vor allem das WiFi handling und die ganzen anderen Aufgaben die das ESPEasy Framework im Hintergrund erledigt Priorität (bzw. Verzögern andere Prozesse). Du kannst das sogar beobachten, wenn du die Debugausgabe für die serielle Schnittstelle aktivierst (Im Webmenü unter “Advanced”). Auf der seriellen Schnittstelle sollte ausgegeben welcher Prozess gerade bearbeitet wird und ggf. die anderen Prozesse verzögert. 🙂
      2. Das heißt du benutzt ESPEasy als Access Point und verbindest dein Handy direkt damit? Ich muss zugeben, dass ich da nicht viel Erfahrung habe. Ich habe meine ESPs mit meinem WiFi zuhause verbunden und greife darüber auf die ESPs zu. Hast du das schonmal probiert? 🙂 Wenn du den ESP in diesem Modus betreibst kann der ESP (normalerweise) auch den NTP Server nicht erreichen. Dann hast du vllt. ein ähnliches Problem wie im ersten Punkt mit der verzögerten Sekundenzeiger Aktualisierung. Der Verbindungsversuch mit dem NTP Server verzögert dabei vermutlich auch den Prozess der die Webseitendaten an dein verbundenes Handy ausliefert. Du könntest ja mal (nur zum Test) versuchen den NTP Abruf zu deaktivieren und dann gucken ob sich etwas verändert/verbessert. 🙂

      Zum RTC Plugin:
      Ich habe das gerad mal auf meiner ToDo Liste etwas nach oben geschoben. Geplant ist, dass ich die Sachen darauf bis Anfang April fertig mache. Ich hoffe das klappt. 🙂

      Beste Grüße

      1. Hallo Fabian,

        sorry das ich jetzt erst wieder antworte.

        Du hattest natürlich recht, es liegt an der Auslastung des ESP, der Wifi/NTP Prozess bei mir 80% Last wenn die WLAN Verbindung nicht zu stande kommt bzw. abbricht.
        Dies ist auch das Problem mit dem Handy, da der ESP ausgelastet ist. Vielleicht wird auch der AP resetiert? Ist aber nur eine Vermutung, da ich im programmieren und SW debuggen eine Anfängerin bin.

        Bzgl. RTC Plugins sag ich schon jetzt mal Danke für deine tolle Arbeit 🙂


        1. Hey Anke,
          super, freut mich zu hören, dass wir zumindest der Ursache auf die Spur gekommen sind. 🙂
          Beste Grüße

  13. Hallo Flo
    Du schreibst:
    > “Um die RTC in Kombination mit ESPEasy nutzen zu können,
    > habe ich ein weiteres Plugin geschrieben.
    > Dessen Konfiguration werde ich bald in einem gesonderten Artikel beschreiben
    > und dann natürlich auch hier einfügen bzw. auf posten.”

    Ich kann die Modulbeschreibung nirgends finden. Leider weisen die Hilfeseiten des Moduls auf dem ESPEasy ebenfalls ins Leere.

    Ich habe das Modul verbunden und die Kommunikation mit dem 8266 funktioniert auch (z.B. Modul-Temperatur wird angezeigt). Leider macht der Betrieb ohne WiFi massiv Probleme: der Sekundenzeiger der Uhr “springt” und verzögert immer wieder (etwa zur selben Minute). Ich denke, das könnte mit dem Update-Intervall zusammenhängen.

    Kannst du zur Konfiguration der RTC 3231 bitte noch etwas schreiben?

    Vielen Dank.

    1. Hey Oliver,
      uh das ist ein gruselig gutes Timing. 😀 Ich habe gerade in einem anderen Kommentar auch zu dem Thema etwas geschrieben.
      Ich versuche den Artikel bis Anfang April fertig zu bekommen. Der ganze Betrieb ohne WiFi ist generell etwas problematisch, aber ich versuche das auch mithilfe des Plugins zu lösen. 🙂
      Beste Grüße

  14. Hallo Flo,

    Habe eben gesehen, dass Anke auch schon gefragt hat 🙂
    BTW: Wenn der NTP Server verfügbar ist, habe ich den “Sekundensprung” nicht, auch wenn die RTC aktiv ist.

    1. Moin Björn,
      gibt es tatsächlich. 😀
      Das Plugin ist in dem letzten build in dem pxlBlck repository enthalten. (Wenn du möchtest schau gerne vorbei) Ich arbeite gerade an der Doku. Sollte (wenn alles klappt) noch diese Woche online gehen. 🙂
      Beste Grüße

  15. Hallo.

    Klasse Idee, welches Material und welche Druckauflösung hast du für das Gehäuse benutzt?


    1. Hey Blackster,
      ich drucke meistens mit PLA und wenn es etwas hübscher werden soll mit 0,2mm Schichtdicke. 🙂
      Beste Grüße

  16. Updates on the RTC plugin? Also, I used your links and this version of ESP Easy doesn’t have the plugin for the analog input for the LDR. Thoughts? My clock is working, just without a working RTC or LDR.

    1. Hey Stephen,
      yes and no. :/ The plugin should be included in the git repository. I will check that and will also finish the work on the article about it (like it was promised some time ago.)
      Sorry for the delay. :/
      best regards

  17. Hallo Fabian, in Ermangelung eines 3D-Druckers habe ich mir erst mal zum Testen einen 60 LED-Ring von Ali bestellt. Der Ring kommt in 4 Segmenten, die erst einmal zusammengelötet werden wollen. Ganz ehrlich, kein Spaß – die 3 Kontakte sind relativ nah beieinander, aber ich hab es trotzdem hinbekommen.
    Worum es mir jetzt erst mal geht, wie bekomme ich die RingClock dazu, so auszusehen, wie hier auf den ersten 2 Fotos auf der Seite? Ich habe die komplette Anleitung durch, die ESPeasy Configuration durchsucht, aber ich habe leider überhauptnix gefunden um auch nur zeitweise einen solchen Rainbow anzuzeigen. Am liebsten wäre mir ich könnte solch einen Rainbow als Clock-Hintergrund anzeigen und die Zeiger z.B durch ausgeschaltete LED anzeigen!? Geht das? In dem Zusammenhang dachte ich, wäre es praktisch, das Zifferblatt „einfach“ zu invertieren (mit einem Befehl) vielleicht zeitweise oder im Wechsel, also Hintergrund = schwarz, Zifferblatt = weiß -> Wechsel -> Hintergrund = Rainbow, Zifferblatt (invert) = schwarz -> etc

    1. Hey Patrick,
      ich glaube den Ring kenne ich. Habe auch schonmal damit gekämpft. 😀
      Ehrlich gesagt gibt es diese Anzeigemöglichkeit (noch) nicht. Aber ich finde die Idee cool (und wundere mich auch gerade, dass ich da noch nicht selbst drauf gekommen bin).
      Habe den Regenbogenhintergrund bisher immer nur für die Startanimation genutzt.
      Die Invertierung der Farben müsste durch eine entsprechende Konfiguration der Rules möglich sein. Hast du damit schonmal gearbeitet?
      Beste Grüße

  18. Hi Fabian,

    hab mir auch gedacht, dass es evtl. über die Rules geht, aber komm damit noch nicht so klar. Meinst Du, dass man auch den Regenbogen über die Rules erzeugen kann, oder geht das nur über die Programmierung direkt im Code? Ich werde erstmal schauen, was ich über die Rules so hinkriege.

    Ich hätte auch noch eine Idee für einen schönen Effekt der Zeiger. Statt einfach eine LED weiter zu springen, wäre es doch toll, wenn die Zeiger erst mal eine schnelle Runde ums ganze Zifferblatt drehen würden, bevor sie zur nächsten Stelle springen, beim Sekundenzeiger wäre der Effekt am besten zu beobachten – wäre auch toll, wenn man dabei die Drehrichtung der Umkreisung wählen könnte.

    Ein weiterer Effekt wäre, wenn der Sekundenzeiger das Zifferblatt (bis auf Marker und andere Zeiger) mit einer Umdrehung langsam füllen könnte, welche erst beim Sprung auf Sekunde 1 wieder aufgelöst wird – würde wohl am Besten ohne Marker aussehen.

    Nur mal so ein paar Ideen, falls Du Lust und Zeit dafür hast. 🙂

    Freundliche Grüße

    1. Hi Patrick,
      Ich habe die Regenbogenanimation letztens mal provisorisch implementiert. Du kannst sie mit der aktuellen Firmwareversion und dem pbani Befehl auslösen. Dazu musst du die Anmations-ID 7 benutzen. 🙂
      Danke für deine Ideen. Aktuell komme ich nicht so richtig dazu daran zu arbeiten, aber ich habe es mir aufgeschrieben. 🙂
      Beste Grüße

  19. Hallo Fabian,
    mein Bekannter hat sich bereit erklärt, mir die Uhr zu bauen, da mein handwerkliches Geschick bei solch diffizilen Sachen eher, na sagen wir mal, katastrophal ist.
    Da ich keinen 3D Drucker habe, frage ich mich ob Du mir die benötigten Teile drucken könntest und was es kostet?
    Kannst Du mir auch grob sagen, was die gesamten benötigten Teile ungefähr zusammen kosten?

    Mit lieben Grüßen

Leave a Reply

Your email address will not be published. Required fields are marked *