In der Zeitschrift c’t habe ich in der Ausgabe 24/2023 einen Artikel über das Ulanzi Display TC001 gefunden, das mit Hilfe der alternativen Open Source Firmware Awtrix 3 (früher Awtrix Light) per MQTT oder http steuerbar wird.
Das Diplay besteht aus 8×32 Pixeln, d.h. 256 Pixeln mit jeweils 5 mm Kantenlänge, die einzeln per RGB ansteuerbar sind. Die Gesamtgröße des Displays beträgt 20×7 cm mit 3 cm Tiefe. Es wird per USB-C mit Strom versorgt und hat einen Akku, der ca. 5 Stunden lang halten soll. Oben gibt es drei Tasten zur Steuerung, die alle per MQTT abgefragt werden können und einen Helligkeitssensor.
Gekauft habe ich das Display dann bei ulanzi.de, wobei man sich nicht täuschen lassen darf: Trotz der deutschen Domain sitzt die Firma selbst in China, Support gibt es nur per Mail (Servicezeiten GMT+8). Es gibt aber wohl ein deutsches Lager, jedenfalls betrug die Lieferzeit des Displays annehmbare 10 Tage.
Gut verpackt sieht das Display auch solide verarbeitet aus und startet (nach Lesen der englischsprachigen Anleitung) durch gleichzeitiges Drücken der oberen linken und rechten Taste für drei Sekunden mit der Anzeige „Ulanzi“.
Das Einrichten des Displays mit der Original-Firmware klappt wie bei ESP32 gewohnt, indem man ein neues WLAN sucht (hier „U-CLOCK“), sich dort ohne Passwort anmeldet, per Webbrowser auf die IP 192.168.4.1 geht, dort das interne WLAN inkl. Passwort eingibt und dann auf dem Display selbst die neue IP-Adresse des Displays im internen Netz angezeigt bekommt. Per Browser kann man dann diverse Einstellungen ändern, wobei man das chinesische Menue durch Ändern des ersten Eintrags quasi blind auf englisch umstellt. Zum Speichern dieser Einstellung drückt man dann den rechten Knopf unten. Danach wird sofort auf englisch umgeschaltet.
Ich habe mich mit der mitgelieferten Firmware aber nicht weiter befasst, sondern gleich AWTRIX 3 geflasht.
Dazu schließt man das Display am PC an, startet mit Chrome den Online Flasher (https://blueforcer.github.io/awtrix3/#/flasher), wählt die gefundene USB/COM-Schnittstelle aus und flasht die neue Firmware. Ich musste das Ulanzi TC001 kurz vor dem Flashen noch resetten, indem ich mit einer Büroklammer den in der Anleitung beschriebenen Reset-Knopf gedrückt hatte. Daraufhin startete der Flashvorgang sofort:
Nach dem Neustart zeigt sich das Display deutlich farbenfroher und mit schönen Regenbogeneffekten, die die Vorfreude auf tolle Anzeigen steigen lassen.
Hier wird die Einbindung ins interne WLAN durch Anmelden im WLAN „Awtrix-xxxxx“ mit dem Passwort „12345678“ gestartet, dann wieder auf die 192.168.4.1 gewechselt und hier gleich die Daten für das interne WLAN eingegeben.
Anschließend wird einmalig die per DHCP erhaltene IP-Adresse angezeigt, danach laufen die Standard Module in einer Dauerschleife durch: Temperatur, Luftfeuchtigkeit, Batterieladezustand und Uhrzeit.
In den Web-Einstellungen wird der MQTT-Broker und das gewünschte Topic (im folgenden [Prefix] genannt) angegeben, dann kann man das Display auch darüber steuern und bedienen.
Für die Ansteuerung per MQTT sei die ausführliche Anleitung unter https://blueforcer.github.io/awtrix3/#/api ans Herz gelegt.
Man kann die standardmäßig angezeigten Module im Onscreen-Menue deaktivieren.
Mit dem Abschicken eines JSON-Objektes an das MQTT-Topic „[prefix]/custom/modulname“
{
"text": "Hello World!",
"rainbow": true,
"duration": 5,
"icon": 6881
}
wird ein neues Modul namens „modulname“ (dieser Name ist frei wählbar, muss aber bei Änderungen an Text oder Einstellungen wieder verwendet werden) für das Display erzeugt und neben den anderen Modulen in einer Dauerschleife angezeigt, bis es gelöscht oder durch ein weiteres JSON-Objekt an das gleiche Topic aktualisiert wird.
Das Icon mit dieser Nummer muss vorher im Webinterface heruntergeladen und gespeichert worden sein.
Alternativ lassen sich auch Hinweise verschicken, die nur einmalig angezeigt werden, optional durch Drücken einer Taste aber erst bestätigt werden müssen, bevor sie verschwinden.
Ich lasse mir z.B. per Telegram einen Text schicken, wenn es in der Gegend regnet. Diesen Text habe ich angepasst und schicke ihn jetzt per MQTT an das Topic [prefix]/notify parallel auch auf das Display:
{
"text": "Es regnet in der Gegend!",
"rainbow": true,
"duration": 10,
"wakeup": true,
"icon": 3361,
"rtttl": "MahnaMahna:d=16,o=6,b=125:c#,c.,b5,8a#.5,8f.,4g#,a#,g.,4d#,8p,c#,c.,b5,8a#.5,8f.,g#.,8a#.,4g,8p,c#,c.,b5,8a#.5,8f.,4g#,f,g.,8d#.,f,g.,8d#.,f,8g,8d#.,f,8g,d#,8c,a#5,8d#.,8d#.,4d#,8d#."
}
Mit dem internen Buzzer können mit Hilfe der RTTTL-Syntax auch Songs abgespielt werden, aber die Qualität ist nicht gerade berauschend. Nach einigen wenigen Regen-Hinweisen habe ich obiges Lied wieder deaktiviert.
Ich starte demnächst einen Test mit einem Raspi Zero, der Node-RED, einen DHCP-Server und einen Mosquitto MQTT-Broker installiert hat, um auch unterwegs (z.B. bei Partys) das Ulanzi Display mit einem Smartphone zu befüllen. „Wie heißt Du?“ – „xxxxx“ – Display: „Herzlich willkommen, xxxxxx! Wir wünschen Dir viel Spaß bei ….!“