Und wieder eine NIXIE-Uhr, diesmal No. 5!
Der Anlass - meine Tochter studiert in den Den Haag, Niederlande. Sie hat dort einen Niederländer kennen gelernt. Beide waren zu Weihnachten bei uns zu Gast. Byron - so heißt er - fand die Nixieuhr No.4 sehr ansprechend und sagte: "Wenn ich mal eine eigene Wohnung habe, hätte ich auch gerne so eine Uhr" bzw. "Als ik ooit een eigen appartement heb, zou ik ook wel zo'n horloge willen hebben". Nun ist genau das eingetroffen - anlässlich des Zusammenzugs meiner Tochter mit Byron habe ich den beiden eine gebaut. Sie bekommen sie zu Ostern 2022 bei einem gemeinsamen Wochenende in einer Waldhütte in der schönen Rhön.
Nixieuhr No.5
Jede Einzelne meiner Nixie-Uhren ist anders. Die No.5 ist bestückt mit einer kreisrunden, gebrauchten und regenerierten IN-4 - Röhre (Kathodenvergiftung bei NIXIE-Röhren rückgängig machen), in Kombination mit einem originalen Sekundenpunkt INS-1. Angesteuert werden die Ziffern von einem Raspberry Pi Zero W. Der holt die Internetzeit und ein Python-Script besorgt die Ansteuerung der Röhrenziffern.
Leider bin ich nicht an Fassungen für die IN-4 Röhre gekommen - jedenfalls nicht für normales Geld, darum habe ich selbst eine konstruiert mit dem Layout-Programm Sprint Layout6. Die Pins kann habe ich bei Ebay bestellt. Hier findet ihr die Layout-6-Datei (rechte Maustaste - runterladen). Auf der Platine kann man die IN-4 gut stecken. Im Bild von links nach rechts die Pins, die bestückte Platine mit der IN-4-Röhre gesteckt und den Nixiepunkt INS-1:
Die fertige Uhr:
Wie man sieht sind die Drähte goldfarben. Sie sind diesmal aus Messing und nicht mehr aus versilbertem Kupfer wie bei Nixieuhr No.4 . Messing ist viel härter als Kupfer, das erhöht die Stabilität enorm, Messing ist aber leider auch deutlich schwerer zu löten als versilberte Kupferdrähte. Links zu sehen ist übrigens Nixieuhr III die unser Wohnzimmer ziert.
Neuerungen
Erstmals habe ich in Raspbian das neue Overlay-Filesystem eingesetzt. Dieses verringert Schreibzugriffe auf die SD-Karte und lässt diese dadurch länger leben. Es bildet im RAM eine Kopie des Filesystems ab und lenkt alle Datenzugriffe darauf um. Auf die SD-Karte wird nur noch selten geschrieben, das schützt sie. Allerdings sind Änderungen oder Datenbankeinträge fort, wenn der Raspberry heruntergefahren wird. Das spielt hier aber keine Rolle. Allerdings gilt die Umleitung auch für Updates, dazu später mehr.
Man sollte sein System auf einem normalen Raspbian-Linux entwickeln (z.B. die Scripte programmieren) und erst wenn alles funktioniert auf das Overlay-Dateisystem umschalten. Wie das Umschalten geht steht weiter unten. Wenn man später Änderungen vornehmen möchte, kann man wieder auf "Normal" schalten usw.
Das Overlay-Dateisystem ist eine große Hilfe um die anfälligen µSD-Karten zu schützen. Trotzdem bleibt es sinnvoll, den Raspberry Pi nicht einfach auszuschalten. Besser ist es ihn herunterzufahren. Wenn man nicht immer eine Konsole dafür öffnen möchte (z.B. mit putty), kann man dem Raspberry auch einen Webserver spendieren bzw. ein PHP-Script, das nach Aufruf den Raspi herunterfährt. Bei Nixieuhr IV ist beschrieben wie das geht.
Bei dieser Uhr bin ich einen anderen Weg gegangen: Ich habe ein Reed-Relais angelötet, welches bei Betätigung durch einen Magneten den Raspberry geordnet und sicher herunterfährt: Sobald die grüne LED auf dem Raspberry Pi erlischt (1/2 Minute kann das dauern), kann man ihn gefahrlos abschalten.
Das Reed-Relais;
Wie funktioniert das? Sobald ein Magnet in die Nähe des Reed-Relais kommt schält es ein. Dadurch wird Pin #40 (rechter Pin in Blickrichtung) durch das Relais auf Ground (Pin gegenüber) geschaltet. Dieses Script wertet das aus und fährt den Raspberry Pi geordnet herunter. Das Script muss dazu im Hintergrund laufen, also beim Start des Raspberry gestartet werden.
Wie startet man Scripte unter Linux automatisch?
Automatischer Start der Uhr und der Reedrelaisabfrage
Das Script für die Nixieuhr und der Reedrelaisabfrage müssen automatisch mit dem Raspberry gestartet werden. Es gibt unter Linux dafür zwei Möglichkeiten. Zum Einen die Datei
/etc/rc.local
sie stellt - ähnlich zu MS-Windows - eine Art "Autostart" dar und
/etc/crontab
Eine Datei die sich zeitlich wiederholende Vorgänge auslöst, aber auch beim Booten und Rebooten zum Einsatz kommt. Editiert wird sie als Admin mit
sudo crontab -e
In der Nixieuhr No.5 habe ich zur Demonstration beide benutzt.
zunächst rc.local. Dort wird die grüne LED des Raspberry abgeschaltet und die Uhr gestartet. WICHIG - "exit 0" muss der letzte Eintrag sein:
Bei jedem Neustart und Reboot wird das Script reedrelais.py gestartet, welches den Pin des Relais abfragt und bei Betätigung durch einen Magneten den Raspberry herunterfährt:
Die Datei /etc/crontab wird über
sudo crontab -e
editiert.
Die Scripte und das Umschalten des Overlay-Dateisystems
Das Uhrenscript ist speziell auf diese Uhrenversion angepasst, sie läuft nicht auf den anderen Uhren.
Die Abfrage des Reedrelais ist in den älteren Uhren nicht implementiert. Sie läuft auch nicht unverändert auf Raspberry I und II.
Beim Klick auf die Script-Links öffnet sich ein neues Fenster und zeigt den Quelltext an. Die Dateien enden auf ".py.txt", damit sie im Browser angezeigt werden können. Wenn man die Scripte auf dem Raspberry Pi verwenden möchte, müssen sie auf ".py" enden und ausführbar gemacht werden. Das ist in Nixieuhr III beschrieben.
Als Betriebssystem verwende ich bislang immer Raspbian. Dort gibt es ein Tool namens "raspi-config", das die Einstellung des Overlay-Filesystem ein- und ausschalten kann
sudo raspi-config
im Tool auf "Performance Options" gehen:
Vorsicht Stolperfalle! Auch Updates, Upgrades, Dist-Upgrades werden umgeleitet.
sudo apt-get update
führt zu einer Fehlermeldung:
Ihr müsst das Overlay File System abschalten, wenn Ihr euer Raspbian auf den neuesten Stand bringen wollt, und danach wieder aktivieren.
Die WiFi-Einstellungen automatisch beim Booten erledigen
Da diese Uhr in die Niederlande geht und Den Haag von Hochdorf leider nicht vom örtlichen ÖPNV angefahren wird kann ich nicht kurz mal hinfahren. Für Nicht-Linuxer ist es nicht trivial, WiFi-Daten anzupassen, wenn z.B. das Passwort oder die SSID am Router geändert wurde.
Doch es gibt einfache Wege: Raspberry Pi - WiFi-Einstellungen beim Booten einlesen
Glücklicherweise braucht man dazu das Overlay-File-System nicht abzuschalten.
Fertig.
Hier ein paar Eindrücke:
Beim Bau
..und fertig:
Lieve Anne, lieve Byron, veel plezier en geniet van het horloge.
Een film van Anne en Byron uit The Hague Clock:
.