1 Punkte von GN⁺ 2026-02-10 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Projekt, das eine günstige analoge Quarzuhr mit einem ESP8266-Modul und einem Arduino-Sketch steuert und mit Internetzeit synchronisiert
  • Die Uhr bezieht alle 15 Minuten die Zeit von einem NTP-Server, um die Genauigkeit zu erhalten, und enthält eine automatische Sommerzeit-Anpassung
  • Die Lavet-Schrittmotorspule der Uhr wird vom Quarzoszillator getrennt und so umgebaut, dass sie vom ESP8266 gesteuert werden kann; ein EERAM-Chip speichert außerdem bei Stromausfall die Position von Stunden-, Minuten- und Sekundenzeiger
  • Bei der Ersteinrichtung wird die Zeigerposition über eine vom ESP8266 bereitgestellte Webseiten-Oberfläche festgelegt; danach visualisiert eine Statusseite den Zustand der Uhr per SVG oder HTML Canvas
  • Ein Open-Source-Beispiel dafür, wie sich mit günstiger Hardware eine präzise netzwerksynchronisierte Uhr bauen lässt, und eine praktische Anwendung von Embedded-IoT-Steuerungstechnik

Projektüberblick

  • ESP8266 WiFi Analog Clock ist ein System, das mit einem WEMOS D1 Mini ESP8266-Modul und einem Arduino-Sketch automatisch die lokale Zeit von einem NTP(Network Time Protocol)-Server abruft und anzeigt
    • Es verbindet sich alle 15 Minuten erneut mit dem NTP-Server, um die Genauigkeit der Uhr zu erhalten
    • Enthält eine automatische Anpassung an die Sommerzeit (Daylight Saving Time)
  • Das Projekt basiert auf einer günstigen analogen Quarzuhr und kombiniert Hardware-Umbau mit Softwaresteuerung

Hardware-Aufbau

  • Verwendet wurde eine analoge Quarzuhr, die bei Walmart für 3,88 Dollar gekauft wurde
  • Das Quarzwerk der Uhr wird geöffnet, die interne Lavet-Schrittmotorspule vom Quarzoszillator getrennt und an jede Anschlussleitung ein Draht zur Verbindung mit dem ESP8266 angelötet
    • Die meisten Uhrwerke sind als Schnappkonstruktion ohne Schrauben montiert
    • Die Spulendrähte sind dünner als ein Haar und müssen daher äußerst vorsichtig behandelt werden
  • Die fertige Schaltung wurde mit einem EERAM-IC und weiteren Bauteilen auf einer Lochrasterplatine (perfboard) aufgebaut

Funktionsweise der Software

  • Der Sketch AnalogClock.ino lässt den ESP8266 zehnmal pro Sekunde die tatsächliche Zeit mit der angezeigten Uhrzeit vergleichen
    • Wenn die Uhr nachgeht, wird der Sekundenzeiger zur Synchronisierung beschleunigt
    • Wenn die Uhr vorgeht, wartet das System, bis die reale Zeit wieder aufgeschlossen hat
  • Die Bewegung des Sekundenzeigers erfolgt durch einen bipolaren Puls (bipolar pulse) an der Lavet-Motorspule
    • Je nach Motoreigenschaften muss die Konstante PULSETIME angepasst werden; experimentell erwiesen sich 30 ms als geeignet
  • Bei günstigen Uhren fehlt eine Rückmeldung über die Zeigerposition, sodass diese Information bei einem Stromausfall verloren geht
    • Zur Lösung wird Microchip 47L04 Serial EERAM (4Kbit SRAM + EEPROM-Backup) verwendet
    • Die Position von Stunden-, Minuten- und Sekundenzeiger wird jede Sekunde gespeichert und nach dem Wiedereinschalten wiederhergestellt

Ersteinrichtung und Web-Oberfläche

  • Beim ersten Ausführen des Sketches stellt der ESP8266 eine einfache Webseite bereit, über die der Nutzer die anfängliche Position der Uhrzeiger festlegt
  • Danach merkt sich der ESP8266 die Zeigerposition anhand der in EERAM gespeicherten Daten
  • Während des Betriebs stellt er außerdem eine Statusseite (status page) bereit, die drei Anzeigemodi unterstützt
    • Grafische Zifferblattanzeige auf SVG-Basis
    • Zifferblattanzeige auf Basis von HTML Canvas
    • Reine Text-Statusanzeige

Lizenz und technische Informationen

  • Das Projekt wird unter der MIT-Lizenz veröffentlicht
  • Die wichtigsten verwendeten Sprachen sind C++ 64,1 % und C 35,9 %
  • Das GitHub-Repository hat 252 Stars und 2 Forks
  • Zugehörige Themen-Tags: arduino, esp8266, clock, analog-clock, ntp, hardware-construction

Bedeutung

  • Ein praktisches Beispiel dafür, wie sich eine günstige Uhr in eine Wi-Fi-synchronisierte smarte Uhr verwandeln lässt
  • Ein Beispiel für die Umsetzung von präziser Zeitsteuerung und webbasierten Oberflächen mit ESP8266 und der Arduino-Umgebung
  • Open-Source-Referenzmaterial zum Lernen über IoT-Hardware-Umbauten und Firmware-Synchronisierungstechniken

1 Kommentare

 
GN⁺ 2026-02-10
Hacker-News-Kommentare
  • Wirklich ein großartiges Projekt
    Besonders interessant fand ich den Chip mit „SRAM with EEPROM backup“
    Er ermöglicht es, die Position der Uhrzeiger bei jeder Bewegung dauerhaft zu speichern, ohne wie gewöhnliches EEPROM die Schreib-Lebensdauer zu verbrauchen
    Mit einem Stückpreis von unter 1 Dollar ist das auch für Hobby- oder kleine Projekte ein nützliches Bauteil
    • Ich denke, das Funktionsprinzip dieses Chips lässt sich so zusammenfassen
      SRAM und EEPROM sitzen zusammen mit einem Controller in einem einzigen Gehäuse, dazu kommt in der Nähe ein kleiner Kondensator (4,7µF)
      SRAM behält Daten, solange Strom anliegt, und EEPROM speichert Daten dauerhaft auch ohne Strom, hat aber eine begrenzte Anzahl an Schreibzyklen
      Der Controller erkennt einen Spannungsabfall und kippt den Inhalt des SRAM sofort ins EEPROM
      Der Kondensator liefert in diesem Moment die Energie, damit die Daten noch ins EEPROM geschrieben werden können
      Wenn die Stromversorgung zurückkehrt, werden die Daten aus dem EEPROM wieder ins SRAM kopiert
      Der Nachteil ist die geringe Kapazität von 4 Kilobit, aber wenn sich so ein Problem für 1 Dollar lösen lässt, ist das absolut lohnenswert
    • Ich bin nicht sicher, ob das eine ähnliche Technik ist, aber auch der Produktlink von Adafruit ist interessant
    • Ich mag für solche Zwecke auch FRAM
      Besonders praktisch ist es, Debug-Logs als Ringpuffer zu speichern, weil man so Crash-Logs eines Embedded-Systems behalten kann, selbst wenn es nicht mit einem Entwicklungs-PC verbunden ist
  • Der Preis bei Walmart wird zwar mit $3.88 angezeigt, aber wegen dynamischer Preisgestaltung je nach Region und Nutzer werden bei mir $5.92 angezeigt
    Produktlink
  • Bei uns zu Hause steht eine Seiko-Atomuhr, die ihre Zeit automatisch per WWVB-Signal korrigieren soll
    An meinem jetzigen Wohnort ist das Signal aber so schwach, dass die manuelle Einstellung sehr mühsam ist
    Deshalb habe ich selbst Arduino-Code geschrieben, der mit ESP32 und einem NTP-Server Atomuhrsignale aus aller Welt emuliert
    Es ist auch ziemlich interessant, sich die Geschichte und Unterschiede der Atomuhr-Funksignale verschiedener Länder anzusehen
    • Man sollte allerdings aufpassen, denn das Senden auf derselben Frequenz wie WWVB ist möglicherweise illegal
  • Ich würde gern sehen, wie jemand so eine Projektionsuhr modifiziert
    Die rote Projektionshelligkeit ist nachts genau richtig, aber ohne Wi‑Fi-Synchronisierung lässt sich die Zeit nicht per NTP oder GPS abgleichen
    Der Projektorteil ist per Flachbandkabel mit dem Hauptgerät verbunden, daher könnte Reverse Engineering daran ziemlich spannend sein
    Idealerweise könnte eine LED-Matrix an der Decke neben der Uhrzeit auch andere Informationen anzeigen
    Solche Produkte gibt es zwar, sind aber wie bei buyfrixos.com extrem teuer
    • Ich habe einmal selbst eine Version mit geringerer Helligkeit gebaut
      Link zu meinem Projektbericht
    • Das verlinkte Produkt hat offenbar eine Funktion namens „Atomic Time“ und synchronisiert sich daher wohl per WWVB-Signal
      Ich nutze selbst mehrere solcher günstigen Wanduhren, und sie gehen fast gar nicht falsch
      Ich glaube sogar, dass sie weniger Jitter haben könnten als NTP
    • Ich mag WWV/WWVB-Uhren auch
      Man muss sie nie stellen, und sie stimmen selbst mit NTP-Uhren auf weniger als 1 Sekunde überein
      Nur die Uhren an Ofen und Mikrowelle würde ich am liebsten ausschalten
    • Wenn man solche Umbauten wirklich macht, kommt man wegen der Teilekosten und der investierten Zeit am Ende oft zu dem Schluss, dass der Preis eines Fertigprodukts durchaus vernünftig ist
    • Ich habe ein paar Digitaluhren von Temu, bei denen die Zeit allmählich vorläuft
      Nach einem Monat gehen sie etwa 1 Minute vor, daher wäre eine Wi‑Fi-Synchronisierung schön
  • Ich liebe genau dieses Hacker-Gefühl
    Während Produkte heute immer geschlossener werden, vermisse ich es, einfache und hackbare Dinge selbst zu bauen
    Wenn ich irgendwann nicht mehr für meinen Lebensunterhalt arbeiten müsste, würde ich gern einfache, zuverlässige und hackerfreundliche Haushaltsgeräte selbst entwickeln
    Solche Projekte finde ich wirklich bewundernswert
  • Wenn man sich die Hände weniger schmutzig machen will, empfehle ich Crazy Clock
    Ich habe sie für meine Tochter gekauft, aber das unregelmäßige Ticken war beim Lernen störend, deshalb liegt sie gerade still
    Trotzdem war es eine ziemlich unterhaltsame Erfahrung
    • Der Modus „Early clock“ hält die Uhr 0 bis 10 Minuten vor und ist damit gut geeignet, um Verspätungen zu vermeiden
      Wenn man allerdings mehrere Uhren im Haus hat, muss man sich wirklich vornehmen, nur diese eine zu benutzen, damit es wirkt
  • Mit etwas mehr Budget gibt es auch große Uhren, die alle 30 Sekunden ein „Klunk“ von sich geben
    Vorstellung der Gents Turret Movement
    Ich habe damit eine elektromechanische Uhr auf Basis einer Stimmgabel gebaut
    Sie läuft nicht mit einer präzisen Zeitquelle, sondern mit einer Stimmgabel und 74xx-Logik
    • Solche Stimmgabeluhren sind wirklich großartig
      Ich frage mich, warum Accutron so etwas nicht immer noch baut
      Die Nutzung einer Resonanzfrequenz ist Quarzuhren ähnlich, aber optisch deutlich reizvoller
  • Beim Entwurf einer H-Brücke für einen Schrittmotor sollte man Rückstrom unbedingt berücksichtigen
    Sonst kann es durch Spannungsspitzen zu Fehlfunktionen kommen oder der Mikrocontroller wird beschädigt
    Ideal ist es, die Gate-Spannung mit einem Optotransistor zu entkoppeln und den Motor separat zu versorgen
  • Ich habe ein YouTube-Video gesehen mit dem Titel „Aus 0-Euro-Müll ein 400-Euro-Videoschnitt-Deck bauen“
    Dazu gibt es auch ein GitHub-Projekt
    • Die Idee, einen VCR-Controller als digitales Eingabegerät wiederzuverwenden, ist hervorragend
      Alte Decks oder LANC-Controller gibt es noch reichlich, also hat das wirklich Potenzial
  • Das Projekt ist toll, aber es scheint möglich, dass es zu Zeitdrift kommt
    Selbst wenn die Uhr die korrekte Zeit kennt, kann sich ein kleiner Fehler in der tatsächlichen Ansteuerungsgeschwindigkeit mit der Zeit aufaddieren
    Besonders wenn die PULSETIME-Konstante nur um 1 ms falsch eingestellt ist, kann schon nach einem Tag eine Abweichung entstehen
    Zwar hält ein Lavet-Schrittmotor theoretisch konstante frequenzbasierte Schritte, aber durch Verschleiß oder Rauschen könnte eine Verzerrung entstehen
    Für eine Wanduhr könnte dieser Fehler allerdings vernachlässigbar sein
    • Bei einem Lavet-Schrittmotor wird die Bewegung über die Anzahl der Pulse gesteuert, daher ist eher die Anzahl als die Pulsbreite entscheidend
      Mit der Wikipedia-Erklärung wird das leicht verständlich
    • pulsetime ist einfach nur die Zeit, die für einen einzelnen Schritt angelegt wird
      Solange keine Schritte verloren gehen, entsteht keine kumulative Abweichung
      Es reicht also, die Schrittzahl exakt beizubehalten