Inhaltsverzeichnis
Schlafphasenwecker
Für mein Schlafzimmer brauche ich eine Uhr, die ich ohne Brille ablesen kann. Jetzt wird eine gebaut. Das Ziffernblatt besteht aus 60 RGBW-NeoPixeln von Adafruit. Gesteuert wird die Uhr von einem Teensy 3.6. Die Uhr soll eine Weckfunktion bekommen, die den Weckzeitpunkt an meinen Schlafphasen orientiert. Wenn ich in einer Leichtschlafphase bin, soll der Wecker langsam die Helligkeit erhöhen und/oder angenehme Naturgeräusche abspielen. Die Schlafphasen werden mit einer IMU erfasst, die unter der Matratze angebracht ist.
Die Funktionen des Schlafphasenweckers in der Übersicht
- Uhr stellt sich über den Zeitzeichensender DCF77 selbst
- Real Time Clock wird bei Stromausfall von Stützbatterie mit Strom versorgt
- Anzeige der Uhrzeit über 60 NeoPixel (RGBW)
- Helligkeit der NeoPixel wird an Umgebungslicht angepasst
- Schlafphasenweckfunktion
- Weckfunktion mit Licht und/oder Naturgeräuschen
- Einschlaffunktion mit Naturgeräuschen
- Bedienung über kapazitiven Touchscreen
Perspektivisch sollen folgende Funktionen hinzukommen:
- Akustische Schlafüberwachung
- Schlafphasen werden werden auf interne SD-Karte geloggt
Elektrischer Aufbau
Mikrocontroller
Das Herz des Schlafphasenweckers ist ein Teensy 3.6. Leistungsmäßig ist der Teensy 3.6 völlig überdimensioniert, er hat aber ein paar Vorteile. Zum Beispiel ist er sehr kompakt und hat trotzdem haufenweise Ein- und Ausgänge. Außerdem ist eine Real Time Clock integriert und perspektivisch kann ein USB-Anschluss verwendet werden, um zum Beispiel Schlafphasen auf einen USB-Stick zu loggen. Der einzige Nachteil, den ich bisher erkennen kann, ist, dass die NeoPixel nicht direkt, sondern über einen 74HCT245 angesteuert werden müssen, der das 3,3-Volt-Signal in der notwendigen Qualität auf 5 Volt anhebt.
Forum:
Übersicht Pinouts: https://www.pjrc.com/teensy/pinout.html
Übersicht über die Verwendung der Pins (Achtung: sehr vorläufig! Es geht zunächst nur um die Übersicht!):
Hintergrundwissen zum I2C (SLC/SCA):
I2C am Teensy:
Der I2C-Bus muss über zwei 4,7 kOhm-Widerstände auf 3,3 Volt gelegt werden.
DHT22
- 3,3 Volt: VDD (Pin 1)
- GND: GND (Pin 4)
- Pin 4 (interner Pull-up muss aktiviert werden): DATA (Pin 2)
Ziffernblatt
Das „Ziffernblatt“ wird mit einem Ring aus 60 RGBW-NeoPixeln von Adafruit realisiert. Der Ring hat einen Außendurchmesser von 157mm und einen Innendurchmesser von 145mm. Alle GND-Pads und alle 5 Volt-Pads werden miteinander verbunden; die Signal-Pads in der 12-Uhr-Position bleiben unverbunden (siehe dazu: https://learn.adafruit.com/neopixel-60-ring-clock/circuit-diagram).
Wenngleich das Polulu Stepdown-Modul eine Softstart-Funktion hat, wird zur Vermeidung von Spannungsspitzen - wie im NeoPixel Überguide empfohlen - ein Elko (10 V, 1000 μF) parallel geschaltet.
Die NeoPixel werden mit 5 Volt betrieben. Diese Spannung muss auch an der Signalleitung anliegen (siehe dazu diese Diskussion im Adafruit-Forum). Weil der Teensy 3.6 jedoch nur 3,3 Volt ausgeben kann, muss der bus transceiver 74HCT245 zwischengeschaltet werden. Andere level shifter funktionieren nicht (siehe dazu diese Seite). Der Eingangspin des Octal bus transceiver 74HCT245 über einen 220 Ohm Widerstand an Pin 33 des Teensy angeschlossen.
Real Time Clock und DCF77-Modul
Die wichtigste Funktion des Schlafphasenweckers ist die Uhr. Der Teensy 3.6 ist mit einer Real Time Clock (RTC) ausgestattet. Damit die RTC auch bei Stromausfall weiter läuft, ist eine 3 Volt Stützbatterie angschlossen werden (Adafruit 20mm Coin Cell Breakout). Wie und wo das geht erklärt dieser Forenbeitrag.
Damit die Uhr immer die korrekte Zeit anzeigt, ist das DCF-Empfangsmodul DCF-2 von ELV verbaut. Das Modul kann an 3,3 Volt betrieben werden. Der Signalpin braucht einen Pull-up-Widerstand (ca. 1kΩ bis 500KΩ) zur Versorgungsspannung. Das kann im Sketch konfiguriert werden.)
Es ist möglichst weit von potenziellen Störeinflüssen entfernt, die Ausweichmöglichkeiten im Gehäuse sind aber begrenzt, und das DCF77-Modul reagiert sehr empfindlich auf Störungen. Um bei ungünstigen Empfangssituationen nicht auf die Synchronisation mit dem Zeitsignal verzichten zu müssen, kann außerdem ein externes DCF77-Modul angeschlossen werden.
Die Signalleitung des internen DCF77-Moduls ist an Pin 2 angeschlossen, die des externen Moduls an Pin 36. Der Wecker erkennt automatisch, wenn ein externes DCF77-Modul angeschlossen ist, weil an Pin 35 dann Masse anliegt. Für alle verwendeten Teensy-Pins (2, 35, 36) sind interne Pullups konfiguriert.
Das externe DCF77-Modul wird mit einem vierpoligen Klinkenstecker in der Gehäuserückseite mit dem Wecker verbunden. Der Stecker ist wie folgt belegt (angefangen bei dem Ring, der dem Kabel am nächsten ist):
- GND
- GND
- Signal
- 3,3 Volt
https://www.pjrc.com/teensy/td_libs_Time.html
Hilfreiche Infos zur Inbetriebnahme: https://www.issb.de/mw/index.php/Test_elektronischer_Funkuhren-Module_(DCF77)_am_Mikroconcroller
Kapazitiver Touchscreen
Der Schlafphasenwecker hat eine Menge Funktionen, die möglichst komfortabel zu bedienen sein sollen. Auf eine manuelle Möglichkeit, die Zeit und das Datum einzustellen kann aufgrund des DCF-Moduls verzichtet werden. Aber durch die übrigen Funktionen (Reset-Knopf (1 Taster), Lauter/Leiser (2 Taster), Heller/Dunkler (2 Taster), Wecker aus (1 Taster), Wecker stellen (mindestens 2 Taster), Programmmoduswähler (1 Taster)) kämen ein Haufen Taster zusammen, die untergebracht werden müssten. Diese ganzen Taster werden durch einen kapazitiven Touchscreen von Adafruit ersetzt.
Eine ausführliche Anleitung für den Touchscreen gibt es hier.
Das Display kann sowohl im 8-Bit-Modus als auch im SPI-Modus betrieben werden. Ich betreibe es im SPI-Modus. Für den Teensy gibt es eine optimierte Bibliothek. Diese muss verwendet werden, um den TFT-Screen gleichzeitig mit dem Audio Adaptor Board verwenden zu können. Ich nutze die optimierte Bibliothek ab Programmversion 0.6.
TFT Screen Pins (SPI Mode)
Die Jumper IM1, IM2 und IM3 müssen geschlossen werden. (Nicht IM0 schließen!) Weil das Audio Adaptor Board direkt auf den Teensy gelötet ist und daher die Belegung bestimmter Pins vorgibt, kann der TFT-Screen nicht mit der Standard-Pin-Belegung verwendet werden.1)
- Vin: 3,3 Volt am Teensy
- GND: GND am Teensy
- CLK: Pin 14 (SCK0) am Teensy
- MISO: Pin 12 (MISO0) am Teensy
- MOSI: Pin 7 (MISI0) am Teensy
- CS SPI Chip Select): Pin 21 am Teensy
- DC (SPI data/command select): Pin 20 am Teensy
Kapazitiver Touch-Sensor
Der kapazitive Touch-Sensor wird über den I2C-Bus (SDA Pin 18; SCL Pin 19) mit dem Teensy verbunden.
Backlight Control
Über Lite kann die Hintergrundbeleuchtung des Displays per PWM kontrolliert werden (Pin 4 am Teensy).
Lichtsensor
60 NeoPixel können verdammt hell sein - vor allem in der Nacht. Daher wird die Helligkeit der NeoPixel automatisch an das Umgebungslicht angepasst.2) Hierfür kommt der TSL2591 High Dynamic Range Digital Light Sensor (PDF) von Adafruit zum Einsatz. Der TSL2591 kommuniziert via I2C-Bus mit dem Teensy (SDA Pin 18; SCL Pin 19).
Audio Output
Der Schlafphasenwecker soll verschiedene Weckmodi haben. In Weckmodus 1 wird langsam die Helligkeit der NeoPixel erhöht, in Modus 2 werden Naturgeräusche (z.B. Vogelgezwitscher im Wald) abgespielt und Weckmodus 3 kombiniert die Modi 1 und 2. Die digitalen Ausgänge (DAC0 und DAC1) geben nur ein Signal mit 12 Bit Auflösung aus. Um bestmögliche Qualität zu erreichen wird das Audio Adaptor Board for Teensy 3.0 - 3.6 verwendet. Das Audio Adaptor Board muss direkt auf den Teensy gelötet werden. Bei Verwendung von Kabelverbindungen (siehe Foto) arbeitet das Audio Board unzuverlässig, was sich gelegentlich als nerviges Rauschen äußert.
Audio Adaptor Board
Das Audio Adaptor Board wird direkt auf den Teensy 3.6 gelötet. Daher entsprechen alle Anschlüsse der Standard-Konfiguration.
Anschlüsse:
- + 3,3 V: an 3,3 V
- LRCLK: Pin 23
- TX: Pin 22
- SCL: Pin 19 (SCL)
- SDA: Pin 18 (SDA)
- VOL: Pin 15
- SCLK: Pin 14
- RX: Pin 13
- MISO: Pin 12 (MISO)
- MCLK: Pin 11
- SDCS: Pin 10
- BCLK: Pin 9
- MOSI: Pin 7 (MOSI)
- MEM CS: Pin 6
- GND: an GND
Audio Amplifier TPA2016
Als Verstärker kommt der Stereo 2.8W Class D Audio Amplifier TPA2016 von Adafruit zum Einsatz. Eine genaue Beschreibung gibt es hier. Das Coole an diesem kleinen Verstärker ist, dass er nicht über Lötbrücken und Potenziometer konfiguriert wird, sondern über den I2C-Bus.
Anschlüsse:
- VDD: 5 Volt +
- GND: GND
- R-: GND am Audio Adaptor Board
- R+: Lineout R am Audio Adaptor Board
- L-: GND am Audio Adaptor Board
- L+: Lineout L am Audio Adaptor Board
- SLC: Pin 19 am Teensy
- SDA: Pin 18 am Teensy
- I2C Vcc: 3,3 Volt am Teensy
Musik
Auf der Micro-SD-Karte in dem Audio Adaptor Board werden Musikdateien gespeichert, die als Wecksignal und die Snoozle-Funktion verwendet werden können. Perspektivisch kann dieses „fest eingebaute“ Repertoire mit einem USB-Stick erweitert werden. (Gegenwärtig (Winter 2017) ist die Onboard-USB-Schnittstelle des Teensy 3.6 noch nicht nutzbar.) Eine Liste der verwendeten Musikdateien auf der Micro-SD-Karte gibt es hier.
Audio Input
Perspektivisch soll es möglich sein, den Schlaf über den Matratzensensor und außerdem auch akustisch überwachen zu können. Für die akustische Überwachung ist ein Mikrofon verbaut. Das https://www.adafruit.com/products/1713 hat am analogen Ausgang eine bias voltage von 1,23 Volt mit einer Amplitude von 2 Volt. Das Mikrofon ist an den Line-In des Audio Adaptor Boards angeschlossen.
In der Programmversion 1.0 wird diese Funktion noch nicht enthalten sein.
IMU
Um die Schlafphasen registrieren zu können, wird unter der Matratze ein Bewegungssensor platziert. Zum Einsatz kommt die Adafruit 9-DOF IMU. (Eine genaue Anleitung gibt es hier: https://learn.adafruit.com/adafruit-9-dof-imu-breakout)
Die Adafruit 9-DOF IMU wird mit 3,3 Volt betrieben, die Signalübtertragung läuft über den I2C-Bus (SDA Pin 18; SCL Pin 19). Der I2C-Bus ist recht robust, sodass längere Kabel (2 - 3 Meter) in der Regel kein Problem sind.
Der Matratzensensor wird mit einem vierpoligen Klinkenstecker in der Gehäuserückseite mit dem Wecker verbunden. Der Stecker ist wie folgt belegt (angefangen bei dem Ring, der dem Kabel am nächsten ist):
- GND
- SDA
- SCL
- 3,3 Volt
Die der Kontakt mit der Versorgungsspannung als erster gelöst wird, sollte es bein Ein- und Ausstecken im laufenden Betrieb keinen Probleme geben. Die 3,3 Volt werden außerdem nicht vom Teensy, sondern von einem Pololu bereitgestellt. Dennoch sollte der Sensor nur ein- oder ausgestöpselt werden, der Netzstecker gezogen ist.
DHT22
Wie auch bei meinem Bewässerungsautomat ist auch im Schlafphasenwecker der Temperatur- und Feuchtigkeitssensor DHT22 verbaut, um die Temperatur im Wecker im Auge zu behalten. Just for fun.
Der Signalpin des DHT22 ist am Teensy an Pin 4 angeschlossen. Der interne Pullup ist aktiviert. Die Versorgungsspannung ist 3,3 Volt.
Die Anschlüsse von links nach rechts:
- Pin 1: VDD
- Pin 2: Data
- Pin 4: GND
Mehr Infos hier: https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf
Stromversorgung
Der NeoPixelring kann bis zu 5 Ampere ziehen. Um die empfindliche Elektronik vor Überspannung und Verpolung zu schützen, wird der Pololu 5V, 6A Step-Down Voltage Regulator D24V60F5 vorgeschaltet. Die Eingangsspannung kann dann zwischen 6 und 30 Volt liegen. (Optimalerweise sollte die Eingangsspannung zwischen 6 und 12 liegen: Je höher die Eingangsspannung, desto schlechter der Wirkungsgrad.) Das Netzteil sollte etwa 15 Watt Leistung haben: Bei 6 Volt werden maximal 2 Ampere benötigt.
Am Teensy wurde die Lötbrücke (Vin/VUSB) auf der Unterseite durchtrennt.
USB-Anschluss für Speicherstick
Um Daten auf einen externen Speicherstick speichern zu können, wird der USB-Anschluss des Teensy nach Außen geführt.
Infos dazu: https://forum.pjrc.com/threads/38176-Several-questions-about-the-Teensy-3-5-amp-3-6-boards
Mechanischer Aufbau
Der Schlafphasenwecker wird in ein Plexiglasrohr mit 180 mm Außendurchmesser und 60 mm Länge eingebaut. Alle Komponenten des Weckers werden an einem gedruckten Chassis befestigt, das in das Rohr geklemmt wird.Das Ziffernblatt und einige elektronische Komponenten sind von vorne zugänglich. Wird die Rückwand entfernt, können alle elektrischen Komponenten (bis auf die NeoPixel) entnommen werden. In die Rückwand sind zwei kleine Lautsprecher eingebaut. …
Der Zuschnitt des Plexiglasrohrs erfolgte durch https://www.alles-aus-plexiglas.de. Der Zuschnitt der Plexiglasteile für die Front erfolgte durch http://www.acrylformen.de/shop/
Alle anderen Teile wurden mit dem Delta Printer Hexagon V2 aus PLA von Orbi-Tech gedruckt (Düse 250 °C, Heizbett 70°C/65°C).
GUI (oder: Bedienungsanleitung)
Alle Funktionen des Weckers werden über den kapazitiven Touchscreen bedient. Um Fehleingaben zu vermeiden, löst der Touchscreen immer erst beim Loslassen einen Befehl aus. Die Helligkeit der Hintergrundbeleuchtung des TFT wird nach einer einstellbaren Zeit langsam reduziert. Um die Anzeige zu reaktivieren, muss der Touchscreen einmal berührt werden. Erst danach reagiert das Menü auf Eingaben.3) Die automatische Abdunkelung wird in folgenden Situationen deaktiviert:
- Bei aktivierter Weckphase: Es wird ein Menü angezeigt, mit dem man den Alarm beenden oder die Schlummerfunktion (Snooze) aktivieren kann. Wenn der Alarm oder die Schlummerfunktion beendet wird, wird in das Hauptmenü gewechselt und die Hintergrundbeleuchtung abgeschaltet.
- Bei aktivierter Einschlaffunktion (Snoozle): Es wird ein Menü angezeigt, mit der sich die Einschlaffunktion beenden und die Lautstärke regulieren lässt. Nach Ablauf der eingestellten Snoozle-Zeit wird die Funktion automatisch beendet, in das Hauptmenü gewechselt und die Hintergrundbeleuchtung ausgeschaltet.
Uhrzeit
Nach dem Start zeigt der Wecker die Zeit der Real Time Clock (RTC) an. Diese hat pro Monat eine Abweichung von mehreren Sekunden. Sobald das DCF77-Modul ein gültiges Zeitsignal empfangen hat, wechselt das Antennen-Symbol im Hauptmenü die Farbe:
- Wurde innerhalb der letzten 60 Minuten ein gültiges Zeitsignal empfangen, wird das Symbol weiß dargestellt.
- Ist das zuletzt empfangene Zeitsignal älter als eine Stunde, aber jünger als 12 Stunden, wird es hellgrau dargestellt.
- Das Symbol wird dunkelgrau dargestellt, wenn das zuletzt vollständig empfangene Zeitsignal zwischen 12 und 24 Stunden alt ist.
- Wenn zuletzt vor mehr als 24 Stunden oder noch nie seit dem letzten Einschalten ein gültiges Zeitsignal empfangen wurde, wird kein Symbol angezeigt.
Der Wecker berechnet die Sonnenaufgangs- und Sonnenuntergangszeit und zeigt diese im Hauptmenü an. Die berechneten Werte gelten für Bielefeld. Eine Berechnung für andere Längen- und Breitengrade ist (noch) nicht programmiert.
Der Wecker berechnet, ob momentan Sommer- oder Winterzeit gilt. Diese Information wird zur korrekten Berechnung der Sonnenaufgangs- und Sonnenuntergangszeit benötigt.4) Die Berechnung der Sommer- oder Winterzeit funktioniert nur bis zum Jahr 2099.
Ziffernblatt
Das Ziffernblatt besteht aus 60 kreisförmig angeordneten NeoPixeln. Perspektivisch können verschiedene Ziffernblatteffekte ausgewählt werden. Momentan ist nur das Standardziffernblatt verfügbar. Es zeigt über drei weiße Balten die Stunden, Minuten und Sekunden an. Die Farbtemperatur wird in Abhängigkeit des Sonnenauf- und Sonnenuntergangs eingestellt.
Hauptmenü
Die oberste Menüebene erlaubt Zugriff auf die wichtigsten Funktionen des Schlafphasenweckers. Auf der linken Seite sind die Menüpunkte Snoozle, Ziffernblatt, Informationen und Einstellungen aufgelistet. Im restlichen Bereich wird die aktuelle Uhrzeit, die eingestellte Weckzeit und der Alarmmodus angezeigt. Eine Berührung in diesem Bereich führt zu dem Wecker-Menü, in dem die Alarmfunktion programmiert werden kann.
Weckmenü
Das Weckmenü ist auf zwei Seiten verteilt. Auf der ersten Seite wird die Weckzeit eingestellt, auf der zweiten Seite wird der Weckmodus eingestellt. Es stehen drei Weckmodi zur Auswahl:
- visueller Modus: Im visuellen Modus simulieren die NeoPixel einen Sonnenaufgang.
- auditiver Modus: Im auditiven Modus wird eine im Einstellungsmenü ausgewählte Musikdatei abgespielt.
- audiovisueller Modus: Der audiovisuelle Modus kombiniert die ersten beiden Modi.
Sobald ein Alarm ausgelöst wurde, wird eine Menüseite angezeigt, die das Beenden des Weckalarms ermöglicht oder erlaubt, die Snooze-Funktion zu aktivieren. Die Snooze-Zeit kann im Einstellungsmenü konfiguriert werden.
- Das Beenden des Alarm („Alarm aus“) führt zurück in das Hauptmenü.
- Das Betätigen der Snooze-Funktion unterbricht den Alarm. Nach Ablauf der konfigurierten Snooze-Zeit erfolgt ein akustischer Alarm.
Wenn im visuellen Weckmodus nach Ablauf der (im Einstellungsmenü eingestellten) Weckvorlaufzeit der Alarm noch nicht deaktiviert wurde, wird zusätzlich ein akustischer Alarm aktiviert.
Snoozle
Der Menüpunkt Snoozle führt in das Menü der Schlummerfunktion. Die Schlummerfunktion spielt beruhigende Naturgeräusche oder Entspannungsmusik ab. Die Musik kann in einem weiteren Untermenü ausgewählt werden. Es stehen folgende Aufnahmen zur Auswahl:
- Meeresrauschen (MEER01)
- Regenschauer (REGEN01)
- Gewitterschauer (REGEN02)
- geschloss. Fenster (REGEN03)
- offenes Fenster (REGEN04)
- leichter Regen (REGEN05)
- Voegel im Wald(VOEGEL01)
- Entspannung (RELAX02)
Die gewählte Aufnahme wird im EEPROM gespeichert und bleibt auch nach einer Trennung vom Netz erhalten.
Im Menüpunkt Snoozle wird die Dauer der Musikwiedergabe ausgewählt. Die Wiedergabe der konfigurierten Aufnahme beginnt sofort. Für die Dauer der Wiedergabe wird ein Menü eingeblendet, mit dem die Wiedergabe beendet und die Lautstärke justiert werden kann. Die eingestellte Lautstärke wird im EEPROM gespeichert bleibt auch nach einer Trennung vom Netz erhalten. Bei manueller Beendigung der Snoozle-Funktion („Snoozle aus“) wird das Hauptmenü aufgerufen. Bei automatischer Beendigung der Snoozle-Funktion wird die Wiedergabelautstärke langsam verringert. Schließlich wird das Hauptmenü aufgerufen.
Ziffernblatt
Im Menü ziffernblatt können perspektivisch verschiedene Ziffernblatteffekte ausgewählt werden. Momentan ist nur ein Ziffernblatteffekt programmiert.
Einstellungen
Das Einstellungsmenü verzweigt zu verschiedenen Einstelloptionen.
- Weckvorlaufzeit: Die Weckvorlaufzeit ist die Zeitspanne vor der eingestellten Weckzeit, ab der der Wecker den Matratzensensor auswertet. Es stehen die Optionen 15 Minuten, 30 Minuten und 45 Minuten zur Auswahl. 30 Minuten scheint ein guter Wert zu sein. Wird nun beispielsweise der Wecker auf 7:00 Uhr gestellt, wird ab 6:30 Uhr der Matratzensensor ausgewertet.
- Matratzensens.: Im Untermenü Matratzensens. kann die Empfindlichkeit eingestellt werden, mit der der matratzensensor auf Bewekungen reagiert. Damit kann der Sensor an verschiedene Matratzen-Lattenrostkombinationen angepasst werden. So lange das entsprechende Einstellungsmenü ausgewählt ist, werden Ereignisse auf den drei Achsen farblich kodiert auf dem NeoPixel-Ring visualisert. Die ausgewählten Schwellenwerte werden im EEPROM gespeichert.
Informationen
Im Menü Informationen können momentan Informationen über die verbauten Sensoren abgerufen werden.
Programmversionen
Das Programm für den Schlafphasenwecker wird Schritt für Schritt erweitert. Signifikante Änderungen werden durch eine neue Versionsnummer dokumentiert.
- Programmversion 0.1: Die RCT wird mit dem DCF77-Zeitsignal gestellt.
- Programmversion 0.2: Bindet den kapazitiven Touchscreen ein.
- Programmversion 0.3: Bindet weitere Sensoren ein.
- Programmversion 0.4: Das Menü funktioniert nun. Und wecken kann der Wecker nun!
- Programmversion 0.5: Macht aus einem ordinären Wecker einen Schlafphasenwecker.
- Programmversion 0.6: Einbindung des Teensy Audio Adaptor Boards
- Programmversion 0.7: Der NeoPixel-Ring wurde eingebunden.
- Programmversion 0.8: Sehr viele kleinere und größere Ergänzungen und Verbesserungen
- Programmversion 0.9: TV-Simmulator und viele kleine Verbesserungen
- Programmversion 0.10: Umstellung von DCF77 auf GPS