Die Ulanzi TC001 ist eine der günstigeren Pixeluhren. Herz und Gehirn der Uhr ist ein ESP32.
Die custom Firmware der Wahl ist Awtrix. Nach einem kleinen Upsi beim Flashen war die Pixeluhr jedoch gebrickt und hat nur einen Pfeifton von sich gegeben. Da sich das Gerät nicht mal mehr per USB am Computer angemeldet hat, war die Diagnose recht schnell klar.
Indem man GPIO0 und GPIO2 auf GND zieht, kann das verbaute WROOM ESP32D Modul in den sogenannten “ROM serial bootloader” Modus versetzt werden.
Dadurch ist es möglich den gesamten Flashspeicher mit beispielsweise esptool.py
zu überschreiben.
Nachdem der Plan stand, musste das Gerät geöffnet werden.
Zuerst mit Heißluft den Kleber des Frontglases erwärmen und dann vorsichtig aufhebeln
Anschließend verbergen sich kleine Kreuzschlitzschrauben hinter der Diffusorfolie. Hierbei empfiehlt es sich, mit einem scharfen Messer oder Skalpell die Folie anzuschneiden, dadurch kann das Einreißen des Diffusors verhindert werden.
Es ist ein wenig Feingefühl geboten. Ein defekter Diffusor würde später die Optik der Pixeluhr beeinträchtigen.
Unter dem Diffusor befindet sich die LED Matrix. Diese lässt sich nun auch einfach anheben.
Sicherheitshalber den Stecker des verbauten Akkus abziehen sowie die LED-Matrix ausstecken.
Die beiden GPIO0 und GPIO2 mit dem GND Pin verbinden. Der Einfachheit wegen hierfür an die Pins ein Kabel anlöten, das senkt die Anzahl benötigter Hände drastisch.
Durch Drücken der beiden äußeren Knöpfe auf der Oberseite der Pixeluhr bootet der ESP32 und meldet sich als USB-Gerät am Computer an. Nun befindet der ESP32 sich im korrekten BOOT Mode und kann neu geflasht werden.
Der USB-Port, beispielsweise /dev/ttyUSB1
, wird für esptool
benötigt und muss gegebenenfalls angepasst werden.
Das neueste Awtrix Binary (in unserem Fall ulanzi_TC001_0.96.bin
) kann hier heruntergeladen werden: awtrix3 Releases auf Github
Außerdem wird noch bootloader.bin
, partitions.bin
und boot_app0.bin
benötigt. Diese Binaries befinden sich ebenfalls im Repository von Awtrix: firmware Vezeichnis auf Github
Mit folgendem Kommando wird der ESP32 neu geflasht. Dies dauert einige Sekunden.
sudo esptool --chip esp32 \
--port /dev/ttyUSB1 \
--baud 921600 \
--no-stub \
--before default_reset \
--after hard_reset write_flash \
-z \
--flash_mode dio \
--flash_freq 40m \
--flash_size 4MB \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0xe000 boot_app0.bin \
0x10000 ulanzi_TC001_0.96.bin
Anschließend das USB-Kabel wieder ausstecken und die Kabel von den gebrückten GPIO Pins ablöten.
Testweise die LED-Matrix anschließen und über USB mit Strom versorgen, dann wieder anschalten und überprüfen, ob das Flashen der Firmware erfolgreich war.
Der Zusammenbau erfolgt in umgekehrter Reihenfolge.
Nachdem die LED-Matrix und der Diffusor verschraubt sind, kann das Frontglas erneut eingeklebt werden.