HowTo: pxlBlck - Building the pxlBlck_RingClock

Die pxlBlck_RingClock ist der pxlBlck_SlotClock sehr ähnlich. Sie ist auch mithilfe einer 1×60 LED-Matrix aufgebaut und kann die Uhrzeit nach dem gleichen Schema wie die pxlBlck_SlotClock darstellen.

Jedoch ist der LED-Streifen bei der pxlBlck_RingClock in einem Ring und nicht in einer Scheibe verbaut. Dies macht das Design der Uhr noch unaufdringlicher. Der Mikrocontroller zur Ansteuerung ist im Sockel der pxlBlck_RingClock verbaut.

Dabei habt Ihr die Wahl zwischen einem minimalistischem Sockel in dem der ESP8266 so kompakt wie möglich untergebracht ist. Wenn Ihr dagegen etwas mehr Standsicherheit wollt und vielleicht sogar noch Platz für eine RTC dann könnt Ihr die pxlBlck_RingClock auch mit dem größeren Sockel aufbauen. Falls Ihr auch die RTC verbaut, könnt Ihr die pxlBlck_RingClock auch ohne aktive WiFi Verbindung nutzen.

Alle Infos zum Aufbau der pxlBlck_RingClock findet Ihr im folgenden Artikel.


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
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 make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Requirements

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

Required tool:

Required material:

In the following list you will find all the parts you need for the assembly.


Overview

Hier seht Ihr eine kleine Übersicht, wie die Anzeige der pxlBlck_RingClock aussehen kann. Wie üblich lassen sich die Farben der Minuten-, Sekunden-, Stundenzeiger und der Stundenmarkierung einstellen. Die Helligkeit der Stundenmarkierungen und der Zeiger lassen sich unabhängig voneinander einstellen.


Collect the necessary parts

Damit es mit dem Aufbau Eurer pxlBlck_RingClock losgehen kann solltet Ihr zunächst alle benötigten Teile zusammensuchen.

Für den Aufbau der pxlBlck_RingClock benötigt Ihr die folgenden Teile.

  • WS2812 LED Streifen 144LEDs/m 60LEDs lang
  • 3D gedruckter LED halter
  • 3D gedruckter Sockel (hiervon gibt es verschiedene Versionen)
  • 3x cable approx. 10cm long
  • 1x Wemos D1 Mini
  • 2x selbstschneidende Schrauben 2×8
  • 1x Acylglas Ring Innendurchmesser: 130mm, Außendurchmesser: 141mm, Dicke: 3mm
  • 2x M8x40 cylinder head screw

Weitere Ansicht der Ringteile.

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

Updated 02/16/2021

Olivier hat eine STL erstellt mit der sich der LED-Ring aus transparenten PLA drucken lässt. Er hat freundlicherweise zugestimmt, dass diese hier verlinkt werden darf. Vielen Dank nochmal dafür. 🙂 Die STL findet Ihr auf Thingiverse unter folgendem Link.


LED-Ring mit der Mini-Basis verschrauben

Grundsätzlich gibt es verschiedene Versionen des Sockels. Der hier gezeigte Sockel ist der kleinste der verfügbaren Sockel. In ihm ist lediglich der ESP8266 untergebracht. (Mehr passt dort auch nicht hinein). Durch sein geringes Gewicht steht die pxlBlck_RingClock zwar aufrecht, aber kippt auch schnell Um. Ihr solltet diesen Sockel also nur verwenden, wenn der geplante Aufstellort eben ist. Als alternativer Sockel folgen weiter unten noch Sockel, welche sich zusätzlich mit Gewichten beschweren lassen. Zusätzlich ist in einem dieser Sockel auch etwas mehr Platz. So kann zum Beispiel auch eine RTC (Echtzeituhr) in den Sockel integriert werden.

Verschraubt den Sockel dazu wie abgebildet mit der LED-Halterung. Dazu könnt Ihr die abgebildeten M2 Schrauben inkl. Mutter oder Selbstschneidende 2×8 Schrauben verwenden.

Weitere Ansicht des verschraubten Sockel mit der LED–Halterung.

Weitere Ansicht des verschraubten Sockel mit der LED–Halterung.


LED-Streifen vorbereiten

Bevor Ihr den LED-Streifen in die Basis einlegen könnt solltet Ihr die Anschlussleitungen an diesen anlöten.

Entfernt dazu die Isolierungen an den Enden jeweils 5mm weit.

Legt dann…

,,,den LED Streifen so vor Euch hin, dass der Pfeil auf von Euch weg zeigt. Dies ist wichtig, da an dieser Seite der Dateneingang des LED-Streifens liegt.

Nun solltet Ihr die ersten Kontakte mit etwas Lötzinn vorbereiten. Dadurch fällt das Anlöten der Leitungen später etwas leichter.

Lötet die Leitungen, dann wie gezeigt…

… an die vorbereiteten Kontakte des LED-Streifens. Dabei werden Leitungen an die folgenden Kontakte angelötet.

  • G
  • 5V
  • DIN

Another view of the soldered cables.

Damit der LED-Streifen leichter in die LED-Halterung eingelegt werden kann, solltet Ihr nun die Rote Leitung vorsichtig umbiegen, sodass alle Leitungen in die selbe Richtung vom LED-Streifen wegführen.

Wichtig: Achtet darauf, dass Ihr die Kontakfläche des SMD-Streifens nicht zu sehr beansprucht. Ansonsten könnte es passieren, dass die Leitung inkl. der Kontakfläche abreißen.

Nahaufnahme der umgebogenen Leitung.


LED-Streifen in LED-Ring einlegen

Nachdem Ihr den LED-Streifen vorbereitet habt könnt Ihr diesen nun in die LED-Halterung einlegen.

Führt dazu die Leitungen wie abgebildet durch die LED-Halterung und den angeschraubten Sockel.

Dann könnt Ihr von der unteren “6-Uhr-Position” aus beginnen den LED-Streifen in die LED-Halterung einzustecken.

Der LED-Streifen sollte bis zum Anschlag in die LED-Halterung eingeschobene werden.

Weitere Ansicht des eingeschobenen LED-Streifens.

Weitere Ansicht des eingeschobenen LED-Streifens.


Acrylglas-Ring einlegen

Als Diffusor solltet Ihr nun noch einen passenden LED-Ring in die LED-Halterung einlegen.

Setzt den Diffusor dazu auf die LED-Halterung auf…

…und drückt Ihn gleichmäßig über den gesamten Umfang in die LED-Halterung.

Der Diffusor sollte letztendlich bündig in der LED-Halterung sitzen.

Ansicht des bisherigen Aufbaus.


ESP8266 mit dem LED-Streifen verbinden

Eure pxlBlck_RingClock sollte nun schon ziemlich fertig aussehen. Allerdings fehlt bisher noch das Herzstück – der ESP8266 – zum Betrieb der Uhr.

Dazu benötigt Ihr den ESP8266. Wie oft empfehle ich hier den Wemos D1 Mini zu verwenden. Auf diesem ist der ESP8266 verbaut.

Den Wemos D1 Mini könnt Ihr nun an die vorbereiteten Anschlussleitungen des LED-Streifens anschließen.

Dazu muss der LED-Streifen nach folgenden Schema angeschlossen werden.

ESP8266LED strips
5V5V
GG
D4DIN

Weitere Ansicht des angeschlossenen ESP8266.


LDR an ESP8266 anschließen

Damit Eure pxlBlck-RingClock auch die Helligkeit des LED-Streifens automatisch an die Umgebungshelligkeit anpassen kann empfiehlt sich der Einbau eines LDRs. Dies ist aufgrund des geringen Platzes im Sockel etwas fummelig, aber letztendlich lohnt es sich. 🙂

Dazu benötigt Ihr einen LDR und einen “normalen” (1/W) 1k Widerstand.

Außerdem ist etwas Schrumpfschlauch (nicht auf dem Bild zu sehen) sehr hilfreich.

Lötet den 1k Widerstand dann…

…wie abgebildet an die gezeigten Kontakte des Wemos D1 MIni.

So wird der Widerstand zwischen GND und dem Eingang des ADCs verlötet. Er funktioniert so als Serienwiderstand zum LDR und bildet in Kombination mit dem LDR einen Spannungsteiler.

Nahaufnahme des verlöteten Widerstands.

Nahaufnahme des verlöteten Widerstands.

Den LDR müsst Ihr nun zwischen den Kontakten des Analog Digital Converters und 3V3 verlöten.

Dazu solltet Ihr mindestens einen der LDR-Kontakte mit einem Schrumpfschlauch gegen Kurzschlüsse schützen.

Der LDR selbst sollte dann ca. 5mm über das Ende der Platine des Wemos D1 Mini hinaus ragen.

Weitere Ansicht des verbauten LDRs.


ESP8266 in Mini-Basis einschieben

Nachdem Ihr den LDR an den Wemos D1 Mini angeschlossen habt kann dieser nun in die Basis eingeschoben werden. Wenn Ihr wollt könnt Ihr damit aber auch erst warten und zuerst die Funktion testen. Überspringt dazu einfach diesen Teil und programmiert und testet die pxlBlck_RingClock erst. Es ist aber auch kein Problem den Wemos D1 Mini später nochmal herauszunehmen.

Um den Wemos D1 Mini in den Sockel einzuschieben, solltet Ihr ihn wie gezeigt in den Sockel schieben.

Achtete dabei darauf, dass keine SMD Komponenten auf dem Wemos D1 Mini beschädigt oder abgerissen werden.

Ihr solltet ohne großen Kraftaufwand in der Lage sein den Wemos D1 Mini einzuschieben.

Der LDR sollte am Ende licht herausgucken.

Wenn Ihr wollt, könnt Ihr den LDR dann noch etwas hochbiegen und noch besser zum Umgebungslicht “ausrichten”.

Other view.

Weitere Ansicht der aufgebauten pxlBlck_RingClock.

Weitere Ansicht der aufgebauten pxlBlck_RingClock.

Weitere Ansicht der aufgebauten pxlBlck_RingClock.

Weitere Ansicht der aufgebauten pxlBlck_RingClock.

Weitere Ansicht der aufgebauten pxlBlck_RingClock.


Aufbau der pxlBlck-RingClock inklusive RTC (Real Time Clock)

Die pxlBlcks beziehen die korrekte Uhrzeit grundsätzlich über einen NTP-Server den sie mithilfe der WiFi-Verbindung erreichen. Manchmal möchte man die pxlBlcks aber auch an einem Ort aufstellen an dem keine WiFi-Verbindung verfügbar ist. In diesem Fall kann man die fehlende Quelle für eine korrekte Uhrzeit durch eine RTC ersetzen. Eine RTC (Real Time Clock) hält die eingestellte Uhrzeit Batteriegepuffert nach. So geht die Uhrzeit also auch ohne Stromversorgung nicht verloren.

Für den Aufbau der pxlBlck_RingClock inkl. Unterbringungsmöglichkeit für eine RTC benötigt Ihr die folgenden Teile.

  • WS2812 LED Streifen 144LEDs/m 60LEDs lang
  • 3D gedruckter LED halter
  • 3D gedruckter Sockel (nun die größere Version die ebenfalls im Git-Repository verfügbar ist.)
  • 3x cable approx. 10cm long
  • 1x Wemos D1 Mini
  • 2x selbstschneidende Schrauben 2×8
  • 1x Acylglas Ring Innendurchmesser: 130mm, Außendurchmesser: 141mm
  • 2x M8x40 cylinder head screw

Falls Ihr auch den LDR anschließen wollt (Infos dazu unten) ebenfalls folgende Teile.

  • LDR
  • 1k Widerstand 1/4W
  • ca. 3cm Schrumfpschlauch

Weitere Ansicht der benötigten Bauteile ohne die “Ring-Teile”.


RTC mit dem ESP8266 verbinden

Für den Aufbau benötigt Ihr natürlich den Wemos D1 Mini und eine RTC.

Beginnt nun mit der Vorbereitung der RTC indem…

…Ihr die Wannenleiste vorsichtig umbiegt…

… und dann den Kunststoffteil abzieht.

Die blanken Kontaktzungen könnt Ihr nun als eine Art Montagehilfe missbrauchen.

Führt die RTC wie gezeigt mit dem Wemos D1 Mini zusammen…

… und verklebt die RTC mithilfe eines Tropfens Heißkleber mit dem Wemos D1 Mini.

Nun könnt Ihr die Kontaktzungen entfernen indem Ihr sie kurz mit einem Lötkolben erhitzt. Sehr hilfreich ist dabei eine Pinzette oder Zange mit der Ihr die Kontaktzungen herausziehen könnt während sie gleichzeitig mit dem Lötkolben erhitzt werden.

Die Kontakte der RTC sollten danach wie abgebildet aussehen.

Nun müsst Ihr die RTC noch an den I2C Bus des ESP8266 und die Versorgungsspannung anschließen.

Führt dazu eine erste Leitung vom Kontakt “D” der RTC zum Kontakt “D2” des ESP8266.

Wiederholt dies mit einer weiteren Leitung zwischen dem Kontakt “C” der RTC und Kontakt “D1” des ESP8266.

Nahansicht der verlöteten I2C Bus Verbindung.

Im weiteren könnt Ihr nun die Masseverbindung zwischen RTC und ESP8266 herstellen. Verlötet dazu eine Leitung…

… zwischen dem “-” Kontakt der RTC und dem “G” Kontakt des ESP8266.

Zu guter Letzt muss die RTC natürlich auch an die 3,3V Spannungsversorgung angeschlossen werden.

Lötet dazu eine Leitung zwischen den “+” Kontakt der RTC und dem “3V3” Kontakt des ESP8266.

Weitere Ansicht der fertig angeschlossenen RTC.


LDR an den ESP8266 anschließen

Dieser Schritt ist optional. Mithilfe eines angeschlossenen LDRs seid Ihr in der Lage Euren pxlBlck so zu konfigurieren, dass er die Helligkeit der angeschlossenen LED-Matrix der Umgebungshelligkeit anpasst. Das heißt die Helligkeit der angeschlossenen LED-Matrix wird gedimmt, wenn das Umgebungslicht dunkler wird und erhöht wenn die Umgebungshelligkeit heller wird.

Dazu müsst Ihr zunächst den gezeigten 1k Widerstand zwischen die Kontakte “GND” und “A0” des Wemos D1 Mini anschließen.

Eine Beispiel wie Ihr dies sehr Kompakt ermöglichen könnt ist im gezeigten Bild dargestellt.

Achtet dabei darauf, dass keine Kurzschlüsse zu den benachbarten Bauteilen entstehen.

Auf der Oberseite des Wemos D1 Mini müsst Ihr dann noch den LDR wie gezeigt verlöten.

Dabei empfiehlt es sich die blanken Anschlussbeinchen des LDRs mit etwas Schrumpfschlauch zu isolieren.

Der “Kopf” des LDR sollte so verlötet werden, dass er ca. fünf bis zehn Millimeter über das Ende der Platine des Wemos D1 Mini herausragt.


ESP8266 mit dem LED-Streifen verbinden

Nachdem Ihr den Wemos D1 Mini nun soweit vorbereitet habt, könnt Ihr mit dem Anschluss an den LED-Streifen fortfahren.

Lötet die Anschlussleitungen des LED-Streifens dazu wie gezeigt an den Wemos D1 Mini.

Dabei könnt Ihr die Kontakte des LED-Streifens nach folgendem Schema mit den Kontakten des Wemos D1 Mini verbinden.

ESP8266LED strips
5V5V
GG
D4DIN

Other view.


ESP8266 in die Basis einschieben

Nachdem Ihr nun alle Teile an den ESP8266/Wemos D1 Mini angeschlossen habt könnt Ihr den Wemos D1 Mini in den Sockel einbauen.

Schiebt diesen dazu wie abgebildet – mit der RTC voraus – in die dargestellte Aussparung im Sockel.

Achtet dabei darauf, dass keine Bauteile auf dem PCB des Wemos D1 Mini abgerissen oder Leitungen eingeklemmt werden.

Der Wemos D1 Mini sollte ohne großen Kraftaufwand in die Aussparung geschoben werden können.


Gewichte in den Standfuß einbauen

Falls Ihr Eure pxlBlck_RingClock etwas Standsicherer machen wollt, könnt Ihr den Sockel mit zusätzlichen Gewichten ausstatten.

Dazu eignen sich zum Beispiel die gezeigten M8x40 Zylinderkopfschrauben recht gut.

Diese könnt Ihr dazu einfach…

…in die Aussparungen im Sockel der pxlBlck_RingClock schieben.

Damit diese an Ort und Stelle bleiben solltet Ihr sie mit einem Tropfen Heißkleber im Sockel fixieren. 🙂


Program firmware

Nach dem Aufbau der pxlBlck_RingClock müsst Ihr nun noch ESPEasy inklusive pxlBlck-Plugin auf dem ESP8266 installieren. Wie Ihr dabei vorgehen könnt ist in folgendem Artikel beschrieben.


Configure pxlBlck plugin

After installing the firmware you have to configure the plugin correctly. You can also find information about this in the article pxlBlck - Install and configure the pxlBlck plugin.

For additional orientation, you can also use the settings from the screenshot shown here.


LDR zur Einstellung der Displayhelligkeit konfigurieren

Damit der LDR von ESPEasy ausgelesen und die aktuelle Helligkeit der LED-Matrix entsprechend aktualisiert wird, müsst Ihr zunächst noch ein paar Konfigurationen vornehmen. Wie Ihr dabei vorgehen könnt ist in dem folgenden Artikel beschrieben.


LED-Offset und Ausrichtung einstellen

Da die der LED-Streifen auf verschiedene Weisen verbaut werden kann, müsst Ihr die Anzeige ggf. anpassen.

Dazu könnt Ihr den Offset der “Zwölf-Uhr-Position” vom Anfang des Streifens einstellen. Diese Einstellung findet Ihr im Webmenü des Plugins in der Sektion “12 o’clock LED position”. Probiert hier am besten etwas rum, bis Ihr den korrekten Wert gefunden habt. Zur besseren Orientierung könnt Ihr dazu auch die Option “Thick 12 o’clock mark” aktivieren. So könnt Ihr leicht sehen, wo die 12 Uhr Position des Ziffernblatts ist und durch die Anpassung des Offsets so einstellen, dass sie an der obersten Position steht.

Für den Fall, dass Eure RingClock in die falsche Richtung läuft, könnt Ihr die “Drehrichtung” mithifle der “Direction Inversed” Option umkehren.


Konfiguration der RTC unter ESPEasy

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 Nerdiy.de posten.

Alles was ihr wissen müsst um dieses korrekt zu konfigurieren findet ihr hier:


pxlBlck Usecases

Articles are listed under the tag "pxlBlckUsecase" in which you can find examples of use. It also explains how you have to configure your pxlBlck for this.


Animations, icons and commands

More information about the display of animations, icons and the possible commands with which you can configure your pxlBlck can also be found in the following articles.


Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS 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 think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

53 comments

  1. Hello,
    Thank you for the detailed and very good description. I recreated the whole thing (had a strip with 60LED lying around here), but I noticed that there is a jump / gap of 1 second when jumping from one end (supply) to the other end; do you have an idea what could be the reason?

    I'll email you a little video...
    Joachim

    1. Good evening Joachim,
      did you flash the pre-compiled binary? I recently fixed a bug that looks very similar to this one. However, I had only corrected the error in the code and had not yet updated the binary. I'm working on that. So you can either flash the firmware with the Arduino IDE or wait 10 minutes. By then I should have updated the binary.
      Please let me know if that fixed the error. 🙂
      Best regards
      Fabian

  2. Hello and thank you for the very detailed instructions. Unfortunately I've been waiting for a while for the 3D printer financed via Kickstarter and I'm sure I'll wait a little longer. Do you have an idea where I can have the 3D parts printed or is there another reader who can print the parts for me for a fee?

    I still want to order all the other missing components and I noticed that you didn't specify the thickness of the acrylic ring anywhere. Since this should sit flush, the information would certainly be helpful. Thanks!

    Kind regards from the Lower Rhine
    Patrick

    1. Hey Patrick,
      thanks for the hint with the thickness for the plexiglas ring. I added the info (3mm).
      As for printing the parts: I'm happy to do that too. Just contact me via the contact form if you are interested and then we can clarify it. 🙂
      Best regards
      Fabian

  3. Hello Fabian,

    Thank you for the detailed instructions!
    Two questions: how thick is your acrylic glass for the cover? 3mm?
    And even more interesting: How did you cut the acrylic glass?

    Viele Grüße und ein “gutes Neues”!!
    Olivier.

    1. hey oliver,
      Thanks and thanks for the hint with the thickness for the plexiglass ring. I added the info (3mm). I have the ring with me http://www.acrylformen.de/ be cut by laser. Unfortunately the shop is currently closed (as far as I know due to high demand). But there are also other shops that offer this service. Unfortunately I can't recommend any specific ones. 🙂
      Frohes neues und beste Grüße’
      Fabian

  4. Hello 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
    or.: https://bit.ly/2JAXHnR
    You are welcome to link it in the article or use the table with the most common LED variants.

    Greeting,
    Olivier.

    1. hey oliver,
      super cool thing! Thanks a lot for this. I would include that in the article. Should I send you/your blog/etc. how to link? 🙂
      Thanks and best regards
      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 inspirational 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 diffuser. 🙂 Hope it works. If you like let me know how your build came out in the end.
          Thanks and best regards from Germany
          Fabian

  6. Hey Fabian,

    First of all, thank you for the great guide. I took the time to build the whole thing. Because you described it in such detail, that wasn't a problem either.
    Even if this is not a forum, I have a question/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.
    Do you have an idea what that could be?

    Thanks
    Carsten

    1. Hey Carsten,
      Thank you, glad to hear it. 🙂 Oh, bring on the questions. That's what the comments section is for. 🙂
      About three weeks ago I fixed a bug that sounds very similar. It may be that the fix is not yet included in the current binaries.
      I'll try to reproduce it and check it.
      Until then: Did you compile and program the code yourself or use the pre-made bin files/binaries? If the latter, which one did you take? 🙂
      Thank you and best regards
      Fabian

  7. Thank you for the fast answer. I took the binary for the ESP8266 from the github site.
    Today I was able to determine that when switching to 6 p.m. (i.e. when LED 60 goes to 1), the hours are no longer displayed.

    Maybe the information from the system page will help you:
    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

    Carsten

    1. Hey Carsten,
      then you definitely have the latest version. There might be a bug in the code. :/
      I just tried to recreate it on my watch but everything looks fine there.

      Can you still send me your configuration? So which options you have configured in the plugin and how. Gladly also as a 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.
      (This only exports the settings and no WiFi data or similar. :))

      Thanks and best regards

    2. ...forget my request from the previous comment. I now know what you mean. Was able to replicate it on my watch as well. :/
      I'll fix that and let you know here.
      Thanks for telling me. I didn't notice it when testing. I'm always grateful when I get tips like this. 🙂
      Best regards
      Fabian

    3. Hey Carsten,
      found the error. (I hope) 😀
      In any case, it no longer shows up on my watch. I'm not sure if I've tested all the options.
      Uploaded the updated binary.
      I hope everything is ok now. If so, I would appreciate a short feedback. 🙂
      Best regards
      Fabian

      1. Thanks very much,

        I had to try it immediately.
        I flashed it and did the configuration (I should have been able to make backups beforehand), but it was done in 2 minutes.
        Running 🙂
        It's great that you made a new version available so quickly. When I have the plexiglass cover. I'll take a picture.

  8. Hello

    I don't have a laser cutter and wanted to build the watch first without waiting for the Plexiglas ring. So I created a ring in OpenSCAD and printed it out with transparent PETG.

    I have made several attempts: with a material thickness of 1 mm, it is beautifully transparent. The transparency decreases slightly at 2mm. If you want the ring to be as satin finished as in the photo, you can lightly roughen the back with fine sandpaper, or print the ring thicker and play around with the infill pattern….

    For increased transparency, the material should be printed at a slightly higher temperature.

    Templates in 1mm and 2mm, as well as the OpenSCAD source code are on Thingiverse:
    https://www.thingiverse.com/thing:4762684

  9. Hello Fabian,

    clear. A link to the Thingiverse repo is also welcome, so interested parties can play around with the OpenSCAD source 🙂

    Greeting,
    Olivier.

  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 fewer 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,
      thank 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 platforms 🙂
      2. The problem with LED stripes using fewer leds/m is also that it wouldn't 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 referring here to. Normally it doesn't 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
      Fabian

      1. Thank you for the reply,

        Regarding 1 my issue what they discuss here https://forum.arduino.cc/index.php?topic=492092.0 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 https://i2.wp.com/nerdiy.de/wp-content/uploads/2020/11/www.nerdiy.de-howto-pxlblck-pxlblck_ringclock-aufbauen-20190408-144522.jpg?resize=1152%2C1536&ssl=1
        you wire the data at the start but the power and ground after the first led. why is that?

        Thank you again for the tutorials and the time
        Alexandros

        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: https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-use and search for “setBrightness()”. I used this functionality in my plugin (here: https://github.com/Nerdiyde/pxlBlck/blob/42e9987a61903b12edaa7c0fea2a954ca326e1ee/plugin/ESPEasy/_P205_pxlBlck.ino#L111) 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. 🙂 That's 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 distributed 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
          Fab

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

  12. Hello,
    First of all, thank you for the super great project 😀
    Unfortunately I have the following problems:

    1. The seconds LED is always on for 1 to 3 seconds and then jumps on. The suspicion was that the power pack (2A) was on its knees, replacing it was unsuccessful. Reducing the power consumption of the LEDs didn't help either.

    2. WLAN only works sporadically in the Easy Mega AP with my smartphone S20 5G FE, ie the pages are not loaded or are only partially loaded.

    Both looks very much like overloading the ESP? Could it be that this also occurs if the ESP does not reach the NTP?

    Do you have an idea how to fix the problem?

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

    LG
    Anke

    PS: Is there already a schedule when you integrate the RTC into the SW or present a config page to us disciples 😉

    1. Hi Anke 🙂
      thank you very much 🙂
      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. Does that mean you use ESPEasy as an access point and connect your cell phone directly to it? I have to admit that I don't have much experience with this. I have connected my ESPs to my WiFi at home and use it to access the ESPs. Have you tried this before? 🙂 If you run the ESP in this mode, the ESP (usually) cannot reach the NTP server either. Then you probably have a similar problem as in the first point with the delayed second hand update. The attempt to connect to the NTP server will probably also delay the process that delivers the website data to your connected cell phone. You could try (just for testing) to deactivate the NTP retrieval and then see if something changes/improves. 🙂

      About the RTC plugin:
      I just pushed this up a bit on my ToDo list. The plan is for me to finish things on it by the beginning of April. I hope it works. 🙂

      Best regards
      Fabian

      1. Hello Fabian,

        sorry that I'm only now replying.

        Of course you were right, it is due to the utilization of the ESP, the Wifi/NTP process with me 80% load if the WLAN connection does not come about or breaks off.
        This is also the problem with the mobile as the ESP is busy. Maybe the AP will also be reset? But it's just a guess, because I'm a beginner in programming and debugging SW.

        Regarding RTC plugins, I would like to say thank you for your great work 🙂

        LG
        Anke

  13. Hello Flo
    you write:
    > “Um die RTC in Kombination mit ESPEasy nutzen zu können,
    > I wrote another plugin.
    > I will soon describe its configuration in a separate article
    > und dann natürlich auch hier einfügen bzw. auf Nerdiy.de posten.”

    I can't find the module description anywhere. Unfortunately, the help pages of the module on the ESPEasy also point to nothing.

    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.

    Can you please write something about the configuration of the RTC 3231?

    Thank you very much.

    1. hey oliver,
      uh that's creepy good timing. 😀 I just wrote something on the subject in another comment.
      I'm trying to get the article ready by early April. The whole operation without WiFi is generally a bit problematic, but I try to solve that with the help of the plugin. 🙂
      Best regards
      Fabian

  14. Hello Flo,

    I just saw that Anke had already asked 🙂
    BTW: Wenn der NTP Server verfügbar ist, habe ich den “Sekundensprung” nicht, auch wenn die RTC aktiv ist.

    1. Hi Bjorn,
      actually exists. 😀
      The plugin is included in the last build in the pxlBlck repository. (Check it out if you want) I'm working on the documentary right now. Should (if everything works) go online this week. 🙂
      Best regards
      Fabian

  15. Hello.

    Great idea, what material and what print resolution did you use for the case?

    Blackster

    1. Hey blackster,
      I mostly print with PLA and if it should be a little prettier with 0.2mm layer thickness. 🙂
      Best regards
      Fabian

  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
      Fab

  17. Hello Fabian, in the absence of a 3D printer, I ordered a 60 LED ring from Ali to test it. The ring comes in 4 segments that need to be soldered together first. Honestly, no fun - the 3 contacts are relatively close together, but I managed to do it anyway.
    My first concern is how do I get the RingClock to look like the first 2 photos on this page? I've gone through the complete manual, searched the ESPeasy Configuration, but unfortunately I didn't find anything to even temporarily display such a rainbow. I would love to be able to display such a rainbow as a clock background and display the hands, for example, with the LEDs switched off!? Is the? In this context, I thought it would be useful to "simply" invert the face (with one command), perhaps temporarily or alternately, i.e. background = black, face = white -> change -> background = rainbow, face (invert) = black -> etc

    1. Hey Patrick,
      I think I know the ring. I've struggled with it before. 😀
      To be honest, this display option does not exist (yet). But I think the idea is cool (and I'm surprised that I haven't thought of it myself yet).
      I've only ever used the rainbow background for the start animation.
      It should be possible to invert the colors by configuring the rules accordingly. Have you ever worked with it?
      Best regards
      Fabian

  18. Hi Fabian,

    I also thought that it might be about the rules, but I can't figure it out yet. Do you think that you can also create the rainbow using the rules, or is that only possible by programming directly in the code? I'll see what I can do about the rules first.

    I also have an idea for a nice effect of the hands. Instead of simply jumping one LED further, it would be great if the hands would first make a quick lap around the entire dial before jumping to the next digit, the effect would be best observed with the second hand - it would also be great if you could could choose the direction of rotation of the orbit.

    Another effect would be if the second hand could slowly fill the dial (except for markers and other hands) with one revolution, which is only resolved again when jumping to second 1 - would probably look best without markers.

    Just a few ideas if you have the time and inclination. 🙂

    Best regards
    Patrick

    1. Hi Patrick,
      I temporarily implemented the rainbow animation recently. You can trigger them with the current firmware version and the pbani command. For this you have to use the animation ID 7. 🙂
      Thanks for your ideas. I'm not really getting around to working on it right now, but I've written it down. 🙂
      Best regards
      Fabian

  19. Hello Fabian,
    my acquaintance agreed to build the watch for me, since my manual skills with such difficult things are, let's say, catastrophic.
    Since I don't have a 3D printer, I was wondering if you could print me the parts I need and what it would cost?
    Can you tell me roughly how much all the parts needed together cost?

    Kind regards
    andy

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.