Austria Clock – eine österreichische Hommage an die Qlock2

Einführung

Es gibt im Internet mehrere Nachbauten der Designer-Uhr Qlock2 von Biegert & Funk zu fnden – ich habe die Uhr mal in der Schweiz in Schwyzerdütsch gesehen (vermute, das war auch ein Nachbar) und war sofort begeistert – so etwas musste ich auch einmal haben. Leider spielt das Original mit rund 1000 EUR nicht ganz in meiner Preisklasse – somit beschloss ich, mir selbst eine zu bauen.
Um etwaige patentrechtliche Komplikationen zu vermeiden: Ich halte fest, dass ich dies schlicht nur für den Eigenbedarf tue und keinerlei geschäftliches Interesse habe. Den Aufbau der echten Qlock2 kann ich so auch nicht mal ansatzweise nachbauen – das Original verwendet eine Printplatte mit ca. 40 x 40 cm, deren Herstellung bei allen von mir gefundenen Printplattenherstellern – auch in China – alleine rund 500-600 EUR zu Buche schlagen würde – auf der Homepage des Originalherstellers gibt es ein tolles Video, auf dem man sehen kann, wie die Printplatte hergestellt wird.

Ich habe etwas gesurft, um mich zu orientieren und gleich mehrere Nachbauten im Internet gefunden. So z.B. hier:

Word Clock
Wortuhr
Textuhr
Clocktwo zum Selberbauen
Mikrokontroller.net Blog
A Word Clock
Arduino Word Clock
Matrix & Sprite Libraries

Design-Ansatz

All diese Lösungen haben ihre Reize und Schwächen. So gibt es mehrere Wege, die LEDs über ein Arduino-Board (die Systementscheidung zugunsten eines Arduino Nano oder Uno

max-7219
MAX 7219 Baustein mit 8×8 Display

fiel bei mir von vornherein) anzusteuern – es gibt z.B 74xx Multiplexer-Bausteine, die man verwenden kann, neuerdings gibt es eine eigene Multiplexer-Bibliothek für den Arduino (vielleicht würde ich mich aus heutiger Sicht für diese entscheiden) – ich habe mich damals aber für die MAX 7219 Bausteine entschieden, da diese sehr günstig sind und wenig zusätzliche Beschaltung benötigen. In Ebay sind solche Bausteine (Suchbegriff „MAX7219 8×8 Punkt-Matrix LED Modul 3mm für Arduino Raspberry“) um rund 1,60 EUR zu finden, das darin enthaltene Matrix LED Modul benötige ich hierbei nicht. Da mit dem MAX 7219 8×8 = 64 Stk. LED angesteuert werden können, meine Textuhr aber 11×10+4 = 114 LED beinhaltet, benötige ich 2 Stk. MAX 7219 Controller.
Weiters verfügen sowohl die Original Qlock2-Uhr als auch einige der Derivate über eine DCF 77-Funkuhr-Anbindung zum Synchronisieren der jeweils aktuellen Zeit, andere verwenden ein RTC (Real Time Clock)-Modul. Ich war mit der DCF 77 noch nie sonderlich glücklich – in Österreich ist der Empfang aufgrund der größeren Entfernung nicht so gut wie in Deutschland, in gut abgeschirmten Räumen oder Räumen mit viel Elektro-Smog funktionieren die DCF 77-Uhren schlecht bis gar nicht – somit entschied ich mich für eine

esp
ESP-8266-01 Wifi Modul

Wifi-Anbindung. Ich habe mich rund 2 Jahre (!!!) mit dem CC3000-Wifi-Modul von Sparkfun, Arduino und anderen Nachbauten davon beschäftigt – ich habe letztendlich aufgegeben bzw. eine Zwangspause eingelegt, da ich das Board schlicht und einfach nicht stabil bekommen habe – auch nicht mit allen möglichen Software-Reset und Hardware-Reset-Versuchen – bis ich auf den ESP 8266 (ich verwende den ESP 8266-01) gestoßen bin. Diesen habe ich ebenfalls in Ebay um 1,73 EUR/Stk. beim freundlichen Chinesen (Suchbegriff „ESP8266 ESP-01 Serial Wifi Wireless Transceiver Wireless Module“) gefunden.

 

Funktionen

Meine Uhr beherrscht folgende Funktionen:

  • Wifi-Anbindung zur periodischen Zeitsynchronisation
  • LED-Helligkeits-Einstellung für Tag/Nacht abhängig vom astronomischen Sonnenstand (hell ab Sonnenaufgang, dunkel ab Sonnenuntergang)
  • Berücksichtigung der Zeitzone
  • Automatische Sommer-/Winterzeit-Umschaltung
  • Anzeige der Zeit in österreichischem Dialekt in 2 Varianten (Wien-Modus – z.B: „viertl zwa“ für 1:15 Uhr und Rest-Österreich-Modus – z.B. „viertl nach ans“ für 1:15 Uhr)
  • Anzeige von „Uhr“ nach der Zeit ein/aus

 

Mechanischer Aufbau

Mein Ziel war, dass die Uhr möglichst schlank = dünn sein sollte. Sie besteht bei mir aus folgenden Teilen (von hinten nach vorne), die mir ein Freund mit einer 3D-Fräse freundlicherweise anfertigte (die Autocad-Zeichnungen übermittle ich auf Wunsch gerne):

  • 01: 4 mm MDF-Rückplatte mit 4 Bohrungen zum Verschrauben mit dem Hauptkörper der Uhr –> Plan der Rückplatte
  • 02: Abstandsplatte „MDF Plate 3“ aus 10 mm MDF. Im durch diese Platte entstehenden Abstand wird die Verdrahtung aller LEDs durchgeführt.
  • 03: LED-Halte-Platte „MDF Plate 2“ aus 4 mm dickem MDF mit den Bohrungen zum Halten der (bei mir weißen) 5 mm LEDs
  • 04: Hauptkörper-Platte „MDF Plate 1“ aus 18 mm dickem MDF mit den Haupt-LED-Trichtern
  • 05: Weiße Acryl-Folie, möglichst dünn – diese dient nur zum Unsichtbarmachen der LEDs, gleichzeitig scheinen die eingeschalteten LEDs durch diese Folie durch.
  • 06: Schwarze 2-3 mm Acryl-Platte als Frontplatte der Uhr (die weiße Folie ist ebenfalls auf dieser Zeichnung dargestellt).

Nach dem Zusammenleimen der Teile 02 bis 04 und anschließendem Schleifen der Seiten kann die ganze Uhr seitlich schwarz lackiert werden (umso sorgfältiger das Schleifen, desto schöner die Oberfläche) – innen habe ich für die Uhr aus Reflektionsgründen weiß gewählt (In der Autocad-Zeichnung fehlen die Verbindungen zwischen den rechteckigen Ausnehmungen, diese habe ich einfach mit einer Bohrmaschine und einem Fräser hinzugefügt, weiters gibt es seitlich rechts noch 2 Bohrungen von einer meiner früheren Austria Clock-Versionen – diese wurden noch mit Tastern eingestellt – diese Bohrungen werden nicht benötigt)

back
Zusammengeleimte Teile 02-04
37
Foto der Front Acryl-Platte mit dahinter aufgeklebter weißer Acryl-Folie

Elektronik

Elektronikteile-Liste (Gesamtkosten rund 40 EUR):

  • 2 Stk. Printplatten inkl. MAX 7219 Module (Quelle: Ebay, Suchbegriff „MAX7219 8×8 Punkt-Matrix LED Modul 3mm für Arduino Raspberry“) Kosten ca. 1,60 EUR
  • 1 Stk. Arduino Nano (ca. 3 EUR in Ebay) oder Arduino Uno (ca. 4,70 EUR in Ebay)
  • Ca. 110 LEDs mit 5 mm Durchmesser, in Ebay gibts 100 Stk.-Säckchen um wenige EUR.
  • 1 Stk. Widerstand abhängig vom gewählten LED Typ, bei mir 22 kOhm / 0,125 Watt
  • Isolierter Elektronik-Draht (ich habe Flachbandkabel verwendet und einzelne Drähte abgeschnitten), z.B. 0,1 qmm
  • 1 Stk. ESP 8266-Modul (ca. 1,73 EUR in Ebay, (Suchbegriff „ESP8266 ESP-01 Serial Wifi Wireless Transceiver Wireless Module“)
  • 1 Stk. Netzteil – ich empfehle min. 12 VDC und 1000 mA – bei Netzteilen welche für kleinere Spannungen und Ströme ausgelegt waren, hatte ich Probleme mit den Arduinos bzw. Funktion des ESP 8266-Moduls. Ich habe ein LED-Netzteil mit 12 VDC und 1000 mA erworben, das flach genug war, um innen in einem der rechteckigen Ausschnitte der Uhr montiert zu werden, Kosten ca. 23 EUR

 

Zusammenbau

Einbau der LEDs

Am besten beginnt man mit dem Einbau der LEDs. Von der Hinterseite der Uhr einstecken und am besten mit Heißkleber (ein kleiner Punkt reicht) fixieren.

Wie im Bild unten ersichtlich, werden 64 Stk. LEDs vom 1. MAX 7219 (orange markiert), alle restlichen LEDs vom 2. MAX 7219 angesteuert (grün markiert) – die Ansicht ist von der Vorderseite der Uhr aus gesehen zu verstehen:

led-array

iu
LED-Anschlussbelegung

Obige Matrix ist hierbei so zu interpretieren, dass:

beim 1. MAX 7219 (orange markiert):

  • Alle Kathoden (- = die gekerbte Seite) der 8 LEDs in der mit Dig0 beschrifteten Reihe (nur orange markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 8 LEDs in der mit Dig1 beschrifteten Reihe (nur orange markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • etc. – bis zur 8. Reihe (Dig7) – zwischen den Reihen (z.B. zwischen Reihe 1 und 2) gibt es keine elektrische Verbindung der Kathoden.
  • Alle Anoden (+ = nicht gekerbte Seite) der 8 LEDs in Spalte 1 (SegDP, nur orange markierter Bereich in obiger Matrix) sind miteinander elektrisch verbunden
  • Alle Anoden in Spalte 1 (SegA, nur orange markierter Bereich in obiger Matrix) sind miteinander elektrisch verbunden
  • etc. – bis zur 8. Spalte = SegG) – zwischen den Spalten (z.B. zwischen Spalte 1 und 2) gibt es keine elektrische Verbindung

beim 2. MAX 7219 (grün markiert):

  • Alle Kathoden der 8 LEDs in der mit Dig0 beschrifteten Reihe (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 8 LEDs in der mit Dig1 beschrifteten Reihe (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 7 LEDs (inkl. der Minuten-LED 1) in den mit Dig2 beschrifteten Reihen (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 7 LEDs (inkl. der Minuten-LED 2) in den mit Dig3 beschrifteten Reihen (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 7 LEDs (inkl. der Minuten-LED 3) in den mit Dig4 beschrifteten Reihen (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 7 LEDs (inkl. der Minuten-LED 4) in den mit Dig5 beschrifteten Reihen (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • Alle Kathoden der 6 LEDs in den mit Dig6 beschrifteten Reihen (nur grün markierter Bereich in obiger Matrix) sind jeweils elektrisch miteinander verbunden
  • etc. – bis zur 8. Reihe (Dig7) – zwischen den Reihen (z.B. zwischen Reihe 1 und 2) gibt es keine elektrische Verbindung der Kathoden.
  • Alle Anoden der LEDs in den mit SegDP markierten Spalten (nur grün markierter Bereich in obiger Matrix) sind miteinander elektrisch verbunden – ACHTUNG: Im rechten Bereich der Uhr (bei den äusseren 3 Spalten) sind immer die Anoden aller ungeraden (Reihen 1, 3, 5, 7, 9) und die Anoden aller geraden Zeilen (Reihen 2, 4, 6, 8, 10) miteinander verbunden d.h. jede 2. Zeile wird übersprungen.
  • Alle Anoden der LEDs in den mit SegA markierten Spalten (nur grün markierter Bereich in obiger Matrix) sind miteinander elektrisch verbunden
  • Alle Anoden der LEDs in den mit SegB markierten Spalten (nur grün markierter Bereich in obiger Matrix) sind miteinander elektrisch verbunden
  • etc. – bis zu SegG.
75
Verdrahrung der LEDs (Rückansicht der Uhr bei abgenommener Rückplatte) – wie man sieht, sind einige LEDs (die die bei der Zeitanzeige nicht benötigt werden) nicht installiert – das ist aber eine Geschmacksfrage

Aufbau und Verdrahtung MAX 7219 Module

Es gibt fix fertig aufgebaute und auch MAX 7219 Module zu kaufen, die erst zusammengelötet werden müssen – der Aufbau ist sehr einfach und für jemanden mit einer ruhigen Hand kein Problem. Das Display-Modul muss für unsere Zwecke entfernt werden.

ACHTUNG: Je nach verwendeten LEDs muss der Widerstand auf der MAX 7219 Platine entsprechend ausgewählt werden – ansonsten können die LEDs überlastet werden und nach einiger Zeit defekt sein: Auswahl des MAX 7219 Platinen Widerstandes. Bei meinen LEDs mit 3V und 20 mA war ein 24,5 kOhm Widerstand notwendig – ich habe den 22 kOhm Widerstand ausgewählt und dafür die Helligkeit in der Software etwas heruntergedimmt.

Um den MAX 7219 Baustein nicht mit elektrostatischen Aufladungen zu zerstören, wird der MAX 7219 Baustein am besten erst nach Abschluss aller Lötarbeiten auf den IC Sockel gesteckt.max-7219

Die 2 MAX 7219 Platinen können einfach zusammengelötet werden – da die Datenübertragung seriell ist, können beide MAX 7219 per Software separat adressiert werden. Als nächstes werden die zuvor verdrahteten LEDs mit den MAX 7219 Bausteinen verbunden. Am besten lötet man zuerst an alle Reihen (z.B. Dig0) und Spalten (z.B. SegDP) Drähte mit genügend Überlänge an, die dann gebündelt und durch den Hauptkörper der Uhr geführt wird – am Foto unten sieht man die entsprechenden Bündel – getrennt für den 1. und den 2. MAX 7219:

74

Als nächstes werden die einzelnen Drähte mit den jeweiligen MAX 7219 Pins lt. den folgenden 2 Bildern verlötet – dies ist aufgrund der geringen Pin-Abstände auf den MAX-Platinen eine anspruchsvollere Arbeit (die Bilder unterscheiden sich etwas, da es sich nicht um dieselbe Uhr handelt):

max
Pinbelegung der MAX 7219-Platinen
MaxPin.jpg
Tabelle für die Verdrahtung der MAX 7219-Platinen
max1
Fertig verdrahtete MAX 7219-Platinen

Verbindung MAX 7219 Module mit Arduino

Als nächstes müssen die MAX 7219 Module mit dem Arduino Modul verbunden werden – Schaltplan hier anhand eines Arduino Nano – bei einem Arduino Uno ist das ganze analog.

nano1

Und so sieht das ganze dann mit mit installierten MAX 7219 Modulen und Arduino Nano aus:

Nano2.jpg

An dieser Stelle und vor dem Anschluss des ESP 8266-01 (Wifi) Moduls ist es an der Zeit, mal die ganze Verdrahtung auf richtige Funktion zu überprüfen. Zu diesem Zweck habe ich einen Arduino-Testsketch geschrieben, mit dem eine Überprüfung leichter fällt. Nach Upload des MAX 7219 Testcode in den Arduino Nano (Auswahl des Arduino Nano im Arduino Software nicht vergessen) wandern Diagonalen auf der Uhr von links nach rechts – man kann somit herausfinden, ob die 2 MAX 7219 richtig funktionieren und die LEDs richtig installiert sind.

ACHTUNG: Die oben referenzierte Testcode-Datei liegt im Word Format vor (da die Arduino *.ino Endung in WordPress nicht unterstützt wird), sie muss somit erst gespeichert, die Dateiendung muss dann von *.doc auf *.ino umgeändert werden.

Für den Code wurden bereits Routinen von Maxim (dem Hersteller des MAX 7219) verwendet, mit denen sich der Baustein so richtig ausreizen lässt – dieselben Routinen zum Ansprechen der MAX 7219 Bausteine werden dann später auch in meiner Uhren-Software verwendet.

Hinweis: Mit der zum Zeitpunkt der Erstellung dieses Textes aktuellen auf arduino.cc herunterladbaren Software (1.8.1) kompiliert das ganze ohne Fehler.

<< to be continued >>

3 Gedanken zu “Austria Clock – eine österreichische Hommage an die Qlock2

  1. Hey,

    als Erstes ein großes Kompliment zu dem Bau der Uhr! Sieht super aus! Meine Freundin und ich stehen total auf diese Uhren. Ich würde ihr gerne eine zu Weihnachten bauen. Könntest du mir vielleicht die CAD-Dateien übermitteln ?

    Gruß Jan

    Like

Hinterlasse einen Kommentar