IV11 VFD-Uhr

vom 11.03.2017

Nachdem ich im Online-Shop von Ulrich Radig diese schicken VFD-Röhren vom Typ IV-11 entdeckt habe, habe ich eine Uhr aus selbigen gebaut.

Zum Einsatz kommt ein ESP8266-Board vom Typ nodeMCU1.0 (ESP-12E, 4 MByte ROM) als Hauptprozessor und WLAN-Modul.

Zum Treiben der VFD-Röhren werkelt ein MAX6921 in dieser Uhr. Ein überaus praktischer Chip, mit 20 Push-Pull Ausgängen, welche der Chip auf eine beliebige Eingangsspannung (bis 76 Volt) hochziehen kann. Steuerbar via SPI, daher kann man mittels HW-Peripherals vom Mikrocontroller des Vertrauens sehr flott die Daten einspeisen. Das einzige Manko ist der Preis sowie die Verfügbarkeit dieser Chips.

Der ESP8266 wurde mit der Arduino-Toolchain programmiert. Damit werden mir unliebsame Aufgaben wie das NTP-Handling, Zeitzonen und DST-Umstellungen abgenommen. Lediglich der MAX6921-Treiber musste selbst entwickelt werden, da es zu meinem Erstaunen noch keine Bibliothek dafür gab.

Der MAX6921 erwartet eigentlich 20 Bits, welche via SPI eingegeben werden. Etwas problematisch ist, dass die SPI-Schnittstelle des ESP8266 (zumindest mit der Arduino-Lib) nur 8 Bit Transfers unterstützt, ich also keine 20 Bits zustande bekomme. Glücklicherweise hat der Chip nichts dagegen, wenn man Ihm 24 Bits (3 Bytes) übergibt, die ersten und überschüssigen 4 Bit werden dann schlicht am DOUT-Pin wieder ausgegeben.

Die VFD-Röhren benötigen 2 Spannungen, einmal 25V DC für die Anoden und Gitter, sowie 1.5V für die Heizung. Glücklicherweise lassen sich beide Spannungen mittels LM2587-Step-Up bzw. Step-Down Modulen aus Fernost einfach, genau und effizient erzeugen.

Der ESP8266 macht jede Stunde einen NTP-Sync von einem konfigurierbaren Zeitserver. Im Code können mehrere Paare aus SSID und PSK für verschiedene WLAN-Netze hinterlegt werden. Der Controller sucht sich automatisch die stärkste SSID raus.