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

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

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.


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.

ESP8266LED-Stripe
5V5V
GG
D4DIN

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.

ESP8266LED-Strip
5V5V
GG
D4DIN

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


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

Buy Me a Coffee at ko-fi.com

14 comments

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

    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
      Fabian

  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
    Patrick

    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
      Fabian

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

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

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

    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
      Fabian

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

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

      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
          Fabian

Leave a Reply

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