Last Updated on 17. Oktober 2026 by sfambachLink-Status: OK
Die Ulanzi TC001 Smart Pixel Clock ist eine kleine Tischuhr mit einer Matrix aus 8 × 32 farbigen LEDs, gebaut vom chinesischen Zubehörhersteller Ulanzi. Im Inneren arbeitet ein gewöhnlicher ESP32 mit USB-Seriell-Wandler, dazu kommen Akku, Summer, drei Tasten, Echtzeituhr sowie Sensoren für Licht, Temperatur und Luftfeuchte. Ab Werk zeigt sie Uhrzeit, Datum, Follower-Zahlen und einen Pomodoro-Timer. Interessant wird sie durch freie Firmware wie AWTRIX, ESPHome oder eigenen Code: Dann wird sie zur Anzeige für Home Assistant, Benachrichtigungen oder beliebige Daten aus dem Netz. Weil sich der ESP32 einfach über USB-C flashen lässt, ist sie auch ein fertiges Gehäuse mit Display für eigene ESP32-Projekte.
Die Uhr habe ich zu meinem 50. Geburtstag geschenkt bekommen. Vielen Dank an dieser Stelle an Familie Gärtner!
Ansichten






Verpackung


Fakten
Alternative Bezeichnungen
| Bezeichnung | Beziehung | Hinweis |
|---|---|---|
Pinbelegung
| Pin | Signal | Farbe |
|---|---|---|
Ulanzi TC001 – ProduktseiteLink-Status: Unbekannt · AWTRIX NG – GitHubLink-Status: OK · TC001 – Hardware-DokuLink-Status: OK
Was man damit machen kann
- Original-Firmware: Uhr, Datum, Follower-Zähler (YouTube, Bilibili, Weibo), Pomodoro-Timer, Laufschrift; Steuerung per Ulanzi-App. Enthält zusätzlich einen AWTRIX-2-Simulator für einen AWTRIX-Host.
- AWTRIX 3: die bekannteste freie Firmware. Kein Cloud-Zwang, Steuerung per MQTT und HTTP, Home-Assistant-Discovery, Benachrichtigungen, eigene „Apps“ (Anzeigeseiten), animierte Icons, Melodien (RTTTL), Einstellungen am Gerät. Die Entwicklung ist beendet, das Repo archiviert.
- AWTRIX NG: Nachfolger von AWTRIX 3, neu geschrieben. Skripte in Berry laufen direkt auf der Uhr (Daten aus dem Netz holen, MQTT, Modbus), Effekte, Diagramme, Art-Net, Installation im Browser. Läuft auf TC001, TC002 und Eigenbauten mit ESP32/ESP32-S3.
- ESPHome (EspHoMaTriX v2): Uhr als ESPHome-Gerät direkt in Home Assistant; Lichtsensor und Akku werden laut Projekt nur eingeschränkt unterstützt.
- Eigene Firmware: Arduino IDE, PlatformIO oder ESP-IDF; die Pinbelegung ist von der Community dokumentiert. Damit wird die Uhr zum fertigen ESP32-Gehäuse mit LED-Matrix, Akku und Tasten.
- WLED: ein fertiges WLED-Image speziell für die TC001 habe ich nicht gefunden; Umweg: WLED sendet per Art-Net/DMX an AWTRIX.
- Wichtig vorher: Original-Firmware mit esptool sichern (gesamter Flash, 4 oder 8 MB), sonst gibt es keinen Weg zurück außer dem Update-Paket von Ulanzi.
Inbetriebnahme
Ulanzi empfiehlt, die Uhr nach dem Auspacken 3 bis 5 Stunden mit einem 5-V/2-A-Netzteil zu laden; Ladezeit etwa 3 Stunden, Akkulaufzeit etwa 5 Stunden.
Tasten und Anschlüsse
- Oben: Lichtsensor sowie die Tasten „Left“, „OK“ und „Right“
- Hinten bzw. unten: Summer, Kontroll-LED, USB-C-Ladebuchse und ein Reset-Loch
- Ein/Aus: „Left“ und „Right“ zusammen 3 Sekunden gedrückt halten
- Reset: mit einer Büroklammer in das Reset-Loch drücken und halten, bis die Anzeige neu startet
Original-Firmware
Ab Werk läuft die Firmware von Ulanzi (getestet: Version 1.7.1). Für die Einrichtung reicht laut Ulanzi ein Handy; eingerichtet wird sie über einen eigenen Hotspot, bedient über eine Weboberfläche und die drei Tasten.
Ins WLAN einbinden
- Uhr einschalten: „Left“ und „Right“ gleichzeitig gedrückt halten. Ohne WLAN-Verbindung startet die Uhr einen eigenen Access Point und zeigt im Wechsel „WiFi“, den Namen des Hotspots „U-CLOCK“ und die IP-Adresse „192.168.4.1“.
- Am Handy oder PC die WLAN-Einstellungen öffnen und mit dem Netz „U-CLOCK“ verbinden. Ein Passwort ist nicht nötig. Bei mir klappte das mit dem Handy nicht, mit dem PC auf Anhieb. Mögliche Ursache: Handys verlassen ein WLAN ohne Internet gern wieder und wechseln auf mobile Daten; dann hilft es, die mobilen Daten kurz auszuschalten (nicht geprüft). Vielleicht lag es auch am Firefox auf dem Handy.
- Das Handy öffnet meist von selbst die Einrichtungsseite „Ulanzi“. Falls nicht, im Browser
http://192.168.4.1aufrufen. - Das eigene WLAN aus der Liste wählen (oder die SSID eintippen), das Passwort eingeben und „Save“ drücken. Die Uhr unterstützt nur 2,4-GHz-Netze. Die Seite meldet dann „Wi-Fi data saved. Connecting clock to internet…“ und verweist auf
http://clock.local. - Bei Erfolg zeigt die Uhr „WiFi ✓“. Danach zeigt sie ihre neue IP-Adresse aus dem eigenen Netz an.
- Das Handy wieder mit dem Heimnetz verbinden und die angezeigte IP-Adresse im Browser öffnen (oder
http://clock.local). Dort liegen alle Einstellungen.

Wichtig: Nach jeder Änderung auf der Einstellungsseite „Save“ drücken, sonst wird sie nicht übernommen. Wer unter „Basic Setting“ die Anzeige der IP-Adresse abschaltet, sollte sich die Adresse vorher notieren; sonst hilft nur ein Reset.


Allgemeine Einstellungen
| Einstellung | Werte |
|---|---|
| Sprache | Chinesisch / Englisch |
| Helligkeit | manuell oder automatisch über den Lichtsensor, 0–100 % in 10er-Schritten |
| Helligkeit nachts | 0–100 %, mit Nachtmodus und einstellbarer Start- und Endzeit |
| Seitenwechsel | nie oder alle 10–60 Sekunden |
| Laufschrift-Tempo | Stufe einstellbar (Scroll Speed, nicht im Handbuch) |
| Zeitzone | automatisch (über worldtimeapi.org) oder GMT−12 bis GMT+12 |
| Zeit-/Datumsformat | HH:mm oder HH:mm:ss, MM/DD oder DD/MM |
| Wochentag | Anzeige ja/nein, Wochenbeginn Sonntag oder Montag |


Anzeigen auswählen
Unter „Common Setting“ (Button „Next“, im Handbuch „Basic Setting“) wird jede Anzeige einzeln ein- oder ausgeschaltet; das Zahnrad öffnet ihre Zusatzeinstellungen:
| Anzeige | Funktion / Bedienung |
|---|---|
| Uhrzeit, Datum | Wechselanzeige, Punktlinie unten zeigt den Wochentag |
| Wetter | Temperatur, Luftfeuchte, Luftdruck, Luftqualität; braucht den Stadtcode des chinesischen Wetterdienstes weather.com.cn |
| Innentemperatur | Temperatur und Luftfeuchte vom eingebauten Sensor |
| Follower | Bilibili, Weibo, YouTube (mit eigenem API-Key aus der Google Cloud) und TikTok/Douyin; jeweils die eigene User-ID eintragen |
| Spielstand | „Left“ Rot +1, „Right“ Blau +1, doppelt drücken −1, „OK“ setzt zurück |
| Stoppuhr | „OK“ Start/Stopp, „OK“ halten setzt zurück |
| Pomodoro | „OK“ startet 25 Minuten Arbeit, dann 5 Minuten Pause |
| Akku | grün 100–70 %, gelb (3 Felder) 75–50 %, gelb (2 Felder) 50–25 %, rot unter 29 % |
| Matrix-Effekt | nur Optik |
| AWTRIX-Simulator | Steuerung über einen AWTRIX-Host, laut Ulanzi nur für Bastler |
| Lokale IP | zeigt die IP-Adresse an |

Bedienung am Gerät: Mit „Left“/„Right“ durch die Anzeigen blättern, „OK“ öffnet eine Anzeige (ein Piepton), „OK“ lange drücken verlässt sie wieder (zwei Pieptöne). Der Summer lässt sich nicht abschalten.
Firmware-Update über den Browser
Auf der Einstellungsseite unten „About“ antippen. Dort stehen MAC-Adresse und Firmware-Version; „Update“ öffnet eine ElegantOTA-Seite, auf der eine .bin-Datei hochgeladen wird. Ulanzi warnt selbst, dass das riskant ist. Vorher also die Sicherung aus dem Abschnitt „Firmware“ anlegen.
Offizielle Firmware von Ulanzi
Ulanzi bietet die Werksfirmware auf der Produktseite zum Download an: UCLOCK 1.7.1 (Firmware-Update-Paket)Link-Status: OK, SHA-256 302b59c7c7d214cae65044b2f3cdc79dab2378637c3386ff4bb5603698eda671. Die Datei enthält nur die Anwendung, ohne Bootloader und Partitionstabelle. Solange diese noch original sind, sollte das Zurückflashen auf 0x10000 klappen (noch ungetestet):
esptool --port /dev/ttyUSB0 --baud 921600 write-flash 0x10000 UCLOCK_0107013834aa_1.7.1.bin
Die Datei lege ich bewusst nicht ins Repo: Sie enthält Ulanzis eigenen Code, und keine Lizenz erlaubt die Weitergabe. Stattdessen stehen Link und Prüfsumme im Repo.
Was in der Werksfirmware steckt
Ein Blick in die Klartexte der Firmware 1.7.1 (nur strings, keine Disassemblierung) zeigt:
- Basis: Arduino-ESP32-Core 1.0.x auf ESP-IDF 3.3.5, gebaut mit PlatformIO
- Grafik: eigene Engine „Dot2D 0.1.0“ im Stil von Cocos2d, öffentlich nicht auffindbar; LEDs über den RMT-Treiber des ESP32, eine bekannte Pixel-Bibliothek (FastLED, NeoPixel) ist nicht erkennbar
- WLAN-Einrichtung mit WiFiManager, Update-Seite mit ElegantOTA, dazu WebServer, lwIP, mbedTLS und FreeRTOS
- Datenquellen: Bilibili, YouTube, Weibo, Douyin und weather.com.cn, dazu ein AWTRIX-Simulator
- Keine Lizenz- oder Copyright-Texte im Binary
Eine Pflicht, den eigenen Code offenzulegen, ergibt sich daraus nicht: Der Arduino-Core steht unter LGPL-2.1, die nur einen Hinweis und die Austauschbarkeit des Cores verlangt; der Rest (MIT, BSD, Apache) erlaubt geschlossene Software. Ein fehlender LGPL-Hinweis wäre ein Versäumnis des Herstellers. Das ist meine Einschätzung, keine Rechtsberatung.
Firmware sichern und wechseln
Alle Tests liegen im Repo sfambach/ulanzi_pixel_clockLink-Status: OK, ein Ordner pro Test (Sicherung, eigene Firmware, AWTRIX NG, ESPHome).
Original-Firmware sichern
Vor jedem Flashen den kompletten Flash sichern (je nach Gerät 4 oder 8 MB; meine Uhr hat 4 MB, andere Quellen nennen 8 MB), darin stehen auch die eigenen Einstellungen. Unter Linux Mint/Debian nicht das esptool aus den Paketquellen nehmen: Dem Paket fehlt der „Stub-Flasher“, flash-id bricht mit FileNotFoundError … stub_flasher_32.json ab (getestet mit esptool 4.7.0 aus apt). Besser per pipx installieren; zur Not hilft bei der apt-Version der Schalter --no-stub, dann ist das Lesen aber deutlich langsamer. Taucht nach dem Einstecken kein /dev/ttyUSB0 auf, belegt unter Mint/Ubuntu oft das Paket brltty den CH340-Chip; sudo apt remove brltty hilft. Die Sicherung enthält auch das gespeicherte WLAN-Passwort, gehört also nicht ins Netz. Während die Uhr im Download-Modus hängt, pfeift der Summer, weil sein Pin (GPIO15) offen ist. Das ist harmlos. Ab- und Anstecken hilft wegen des Akkus nicht; Ruhe ist nach einem Druck mit der Büroklammer ins Reset-Loch auf der Rückseite oder nach einem erfolgreichen esptool-Befehl (z. B. chip_id), der die Uhr am Ende neu startet.
sudo apt install pipx
pipx install esptool
pipx ensurepath # danach neues Terminal
sudo usermod -aG dialout $USER # danach neu anmelden
esptool --port /dev/ttyUSB0 flash-id
esptool --port /dev/ttyUSB0 --baud 921600 read-flash 0 ALL tc001-original.bin
Bei meiner Uhr meldet flash-id einen ESP32-D0WD (Revision 1.1) mit 4 MB Flash. Das Sichern dauert etwa eine Minute: „Read 4194304 bytes from 0x00000000 in 52.4 seconds (640.7 kbit/s)“. Danach startet esptool die Uhr über den RTS-Pin automatisch neu. Zum Schluss mit sha256sum tc001-original.bin eine Prüfsumme bilden und notieren; damit lassen sich die Kopien später prüfen. Sie gilt nur für die eigene Sicherung, weil darin auch die eigenen Einstellungen stecken.

Zurückspielen:
esptool --port /dev/ttyUSB0 --baud 921600 write-flash 0x0 tc001-original.bin
Bibliotheken der Alternativen
- AWTRIX 3: FastLED, FastLED NeoMatrix, PubSubClient (MQTT), ArduinoJson, EasyButton, Adafruit SHT31/BME280/BMP280/HTU21DF, base64, MeanFilterLib, EspSoftwareSerial
- AWTRIX NG: FastLED 3.10, die gleichen Adafruit-Sensorbibliotheken, base64 und die Skriptsprache Berry
- EspHoMaTriX v2: baut auf den Display- und LED-Komponenten von ESPHome auf
AWTRIX NG
AWTRIX NG ist der Nachfolger von AWTRIX 3: keine Cloud, Steuerung per HTTP und MQTT, Home-Assistant-Anbindung und eigene Skript-Apps, die direkt auf der Uhr laufen.
Installation
Für den Wechsel auf AWTRIX NG gibt es zwei Wege. Vorher die Sicherung oben anlegen; „Fresh install“ bzw. das Schreiben ab Adresse 0 ersetzt die Werksfirmware vollständig.
Option 1: Web-Flasher im Browser
- Uhr mit einem USB-Datenkabel anschließen (reine Ladekabel tauchen nicht als serieller Port auf).
- Die Installationsseite von AWTRIX NGLink-Status: OK öffnen. Der Flasher braucht Web-Serial; bei mir lief sie in Firefox unter Linux ohne Probleme. Auch hier piept der Summer während des Flashens, das ist normal.
- „Fresh install“ wählen (löscht Einstellungen und WLAN), den Port
/dev/ttyUSB0auswählen und warten, bis „Done“ erscheint. „Update AWTRIX NG“ ist nur für Uhren, auf denen AWTRIX NG schon läuft.
Option 2: Image herunterladen und mit esptool flashen
Ohne Web-Serial geht es mit esptool. Das Release-Paket enthält fertige Images für verschiedene Flash-Größen; für die TC001 mit 4 MB passt usb-awtrix-ng-4mb.bin. Es ist ein komplettes Image und wird ab Adresse 0 geschrieben.
wget https://github.com/Blueforcer/awtrix-ng/releases/latest/download/usb-awtrix-ng.zip
unzip usb-awtrix-ng.zip usb-awtrix-ng-4mb.bin
esptool --chip esp32 --port /dev/ttyUSB0 --baud 460800 write-flash 0x0 usb-awtrix-ng-4mb.bin
Wichtig: mit 460800 Baud schreiben. Laut AWTRIX-Doku bricht das Schreiben auf der TC001 mit 921600 Baud mittendrin ab, danach startet die Uhr nicht mehr. Am Ende muss „Hash of data verified.“ stehen.
Erster Start
- Nach dem Flashen startet die Uhr neu, leuchtet im Einrichtungsmodus bunt und öffnet den Hotspot
awtrixng-xxxxxx(ohne Passwort; die Endung stammt aus der MAC-Adresse). - Mit dem PC in diesen Hotspot wechseln und
http://192.168.4.1im Browser öffnen. Oben steht „Setup mode: connect the clock to your Wi-Fi below.“ - Unter „Wi-Fi“ auf „Scan“ drücken, das eigene WLAN aus der Liste wählen (oder den Namen eintippen) und das Passwort eintragen. Optional einen Hostnamen vergeben, sonst wählt die Uhr einen automatisch.
- Unten „Save“ drücken, dann unter „Maintenance“ auf „Reboot“.
- Die Uhr verbindet sich mit dem WLAN und zeigt nach jedem Einschalten, direkt nach der Startanimation, für wenige Sekunden ihre IP-Adresse. Wer sie verpasst hat, zieht den Stecker kurz ab, öffnet
http://<hostname>.local(ohne eigenen Namenawtrixng-xxxxxx.local; unter Linux nur mit avahi-daemon) oder schaut in der Geräteliste des Routers nach. Bei mir bekam die Uhr dieselbe IP wie mit der Werksfirmware, weil der Router sie an der unveränderten MAC-Adresse wiedererkennt; auchhttp://clock.localfunktionierte. Steht stattdessen „AP MODE“ auf der Anzeige, hat die Verbindung nicht geklappt (falsches Passwort oder nur 5 GHz).


Anzeigen und Webinterface
Ab Werk (getestet mit AWTRIX NG 1.2.2) wechseln sich fünf Anzeigen ab: Uhrzeit mit Kalendersymbol und Wochentagsleiste, Datum, Temperatur, Luftfeuchte und Akkustand. Die Temperatur von 32 °C ist vermutlich zu hoch, weil der Sensor im Gehäuse neben ESP32 und Akku sitzt (meine Vermutung, nicht nachgemessen); AWTRIX NG kann dafür einen Korrekturwert tempOffset setzen.







Das Webinterface unter http://clock.local zeigt auf dem „Dashboard“ eine Live-Vorschau der Anzeige, Schalter für Helligkeit, automatische Helligkeit und Ein/Aus, Tasten zum Blättern durch die Apps sowie Akku (Prozent und Spannung), WLAN-Empfang, Lichtsensor, Temperatur, Luftfeuchte und Bildrate. Weitere Reiter: Apps, Scripts, Icons, Icon Editor, Audio, Palettes, Display, System und Log.

Icons und Icon-Editor
Ein Highlight ist der Reiter „Icon Editor“ im Webinterface. Er basiert auf dem freien Pixel-Editor Piskel und zeichnet Icons und Animationen in 8 × 8, 32 × 8 oder in voller Breite. Mit dem Schalter „Live“ erscheint das gerade gezeichnete Bild sofort auf der Uhr, Animationen laufen mit. Gespeichert wird als GIF im Ordner /ICONS der Uhr; danach kann jede App und jede Benachrichtigung das Icon über seinen Namen nutzen ("icon":"sonne"). Fertige Icons gibt es zu Tausenden im AWTRIX Hub, eigene lassen sich dort veröffentlichen. Im Reiter „Icons“ kann man außerdem GIF, PNG oder JPG hochladen; PNG und JPG wandelt die Uhr selbst in GIF um.
Töne
Der Summer der TC001 spielt Melodien im RTTTL-Format, dem Klingelton-Format alter Handys. Eigene Melodien lassen sich im Reiter „Audio“ ablegen; eine Benachrichtigung kann einen Ton mitbringen, die Lautstärke wird im gleichen Reiter eingestellt. MP3 und Sprache kann die TC001 nicht, das geht nur mit ESP32-S3 bzw. TC002.
curl -X POST http://clock.local/api/v1/audio/play -H 'Content-Type: application/json' -d '{"rtttl":"beep:d=4,o=5,b=120:c,e,g"}'
curl -X POST http://clock.local/api/v1/notifications -H 'Content-Type: application/json' -d '{"text":"Post ist da","icon":"sonne","sound":{"rtttl":"bell:d=4,o=5,b=100:e,c"}}'
Ein eigenes Icon habe ich mit dem Editor noch nicht entworfen.
Laufschrift
Ein Textfeld dafür hat das Webinterface nicht; Text kommt über die HTTP-API. Passt er nicht auf die Anzeige, läuft er von selbst durch. Eine Benachrichtigung erscheint einmal (repeat = Anzahl der Durchläufe), eine „pushed App“ bleibt bis zum nächsten Neustart in der Rotation. Tempo und Art lassen sich pro Text mit scroll festlegen: speed in Prozent der Grundgeschwindigkeit von 21 Pixel pro Sekunde (bis etwa 200 bleibt die Schrift scharf), mode wrap, loop, bounce oder static. Ohne scroll gilt der Wert aus den Einstellungen. Bei mir lief die Laufschrift auf Anhieb.
curl -X POST http://clock.local/api/v1/notifications -H 'Content-Type: application/json' -d '{"text":"Hallo von fambach.net","repeat":2}'
curl -X PUT http://clock.local/api/v1/apps/pushed/laufschrift -H 'Content-Type: application/json' -d '{"text":"Hallo von fambach.net","textColor":"#00AAFF"}'
curl -X PUT http://clock.local/api/v1/apps/pushed/laufschrift -H 'Content-Type: application/json' -d '{"text":"Hallo von fambach.net","scroll":{"mode":"loop","speed":50}}'
Weitere Funktionen
- AWTRIX Hub (awtrix.deLink-Status: OK): Hunderte fertige Skript-Apps (Spiele, Uhren, Live-Daten, Animationen), Flows für Home Assistant, Node-RED und andere sowie Tausende Icons; „Send to AWTRIX“ installiert direkt auf der Uhr
- Effekte: animierte Hintergründe, Regen und Schnee als Überlagerung, Wetter über allen Apps, Übergänge zwischen Apps
- Eigene Apps: Skripte in Berry im Reiter „Scripts“
- App per KI: Ein System-Prompt bzw. Agent-Skill aus der Doku bringt einem Chatbot die Skript-API bei; man beschreibt die App, die KI schreibt das Skript
- Spiegeln: mehrere Uhren zeigen dasselbe Bild
- Art-Net: Der PC setzt jede LED in Echtzeit
- Smart Home: Home Assistant (Discovery), MQTT, Modbus
- Handy-App „AWTRIX NG“: findet die Uhr, zeigt eine Live-Vorschau und den Hub
- Nicht auf der TC001: Internetradio, Gamepad und Sprachsteuerung (nur TC002 bzw. ESP32-S3)
Home Assistant und MQTT
Richtig sinnvoll wird die Uhr mit Home Assistant: Sie zeigt Ereignisse aus dem Haus an, zum Beispiel „Post ist da“, wenn ein Sensor am Briefkasten auslöst, oder „Wäsche fertig“, wenn die Waschmaschine laut Steckdose keinen Strom mehr zieht. AWTRIX NG spricht dafür nicht direkt mit Home Assistant, sondern über einen MQTT-Broker (z. B. Mosquitto).
Einrichten (braucht Home Assistant ab 2024.11 und die MQTT-Integration):
- Im Webinterface Reiter „System“, Bereich „MQTT“: „Enable MQTT“ einschalten, Adresse und Port des Brokers eintragen, bei Bedarf Benutzer und Passwort.
- „HA discovery“ einschalten, „HA prefix“ leer lassen.
- Speichern und „Reboot now“; die Broker-Daten liest die Uhr nur beim Start.
- Die Uhr erscheint in Home Assistant als Gerät mit Anzeige (Licht), Helligkeit, Lautstärke, Tasten und Sensoren (Akku, Licht, Temperatur, Luftfeuchte, die drei Tasten).
Nachrichten schicken: Eine eigene Benachrichtigungs-Entität gibt es nicht. Stattdessen veröffentlicht eine Automation per mqtt.publish auf das Thema <Präfix>/cmd/notify, mit demselben JSON wie bei der HTTP-API. Der Standard-Präfix ist awtrixNG. Beispiel für den Briefkasten (Name des Sensors anpassen):
automation:
- alias: Post im Briefkasten
triggers:
- trigger: state
entity_id: binary_sensor.briefkasten
to: "on"
actions:
- action: mqtt.publish
data:
topic: "awtrixNG/cmd/notify"
payload: '{"text":"Post ist da","icon":"brief","hold":true,"sound":{"rtttl":"bell:d=4,o=5,b=100:e,c"}}'
Mit "hold":true bleibt die Meldung stehen, bis man sie an der Uhr mit der mittleren Taste wegdrückt; ohne verschwindet sie nach 7 Sekunden (durationMs ändert das). Das Icon brief muss vorher im Icon-Editor gezeichnet oder aus dem Hub geholt werden. Für die Waschmaschine reicht ein Auslöser „Leistung der Steckdose länger als 2 Minuten unter 5 W“ und dieselbe Aktion mit „Wäsche fertig“. Ohne MQTT geht es auch per rest_command an http://clock.local/api/v1/notifications; im AWTRIX Hub gibt es außerdem fertige Blueprints.
An meinem Home Assistant habe ich die Benachrichtigungen noch nicht getestet; die Beispiele folgen der Dokumentation von AWTRIX NG.
Eigene Firmware
Für den Einstieg liegt im Repo ein kleines PlatformIO-Projekt (01_playgroundLink-Status: OK) mit FastLED, FastLED NeoMatrix und Adafruit GFX: Lauftext, Regenbogen und Rohwerte von Licht- und Akkusensor; die Tasten regeln Helligkeit und Modus. Auf der Uhr selbst habe ich es noch nicht getestet.
ESPHome
Noch nicht getestet. Geplant ist ESPHome mit EspHoMaTriX v2.
Weitere Firmwares (nicht getestet)
Kandidaten für spätere Tests; ausprobiert habe ich sie noch nicht.
- AWTRIX 3: Vorgänger von AWTRIX NG, weit verbreitet, viele Anleitungen und Home-Assistant-Beispiele. Die Entwicklung ist beendet, das Repo archiviert. Lizenz CC BY-NC-SA 4.0.
- PixelIt: freie Pixel-Firmware mit eigenem Build für die Ulanzi (
ESP32_ulanzi), Steuerung per MQTT, HTTP und Node-RED. Lizenz MIT. - WLED: bekannte LED-Firmware; ein fertiges Image speziell für die TC001 habe ich nicht gefunden.
Alternativen
Pixeluhren mit Laufschrift gibt es von mehreren Herstellern. Die Preise sind Momentaufnahmen aus Shops und schwanken stark mit Aktionen.
| Gerät | Pixel | Firmware | Preis (Stand 10/2026) | Bemerkung |
|---|---|---|---|---|
| Ulanzi TC001 (dieser Beitrag) | 32 × 8 | ESP32, freie Firmware (AWTRIX, ESPHome, eigene) | ca. 41 € (ulanzi.deLink-Status: Unbekannt, 06/2026) | Akku ca. 5 h |
| Ulanzi TC002 Pixbar | 52 × 16 (832 LEDs) | freie Firmware: nicht angegeben | ca. 140 USD (ulanzi.comLink-Status: Unbekannt) | Nachfolger mit Ladestation, Akku laut Hersteller bis 2 h bei voller Helligkeit |
| LaMetric Time | 37 × 8 | geschlossenes System mit App-Store | ca. 180 € (MediaMarktLink-Status: OK) | Plug-and-play, besserer Lautsprecher |
| Divoom Pixoo 64 / Times Gate | 64 × 64 bzw. fünf kleine Displays | Hersteller-App | Set ca. 218 € (divoom.comLink-Status: Unbekannt) | eher Pixel-Art-Rahmen als Laufschrift-Uhr |
| Tidbyt | 64 × 32 | Hersteller-App | nicht mehr erhältlich | Hardware-Verkauf eingestellt (Tidbyt-ForumLink-Status: OK) |
| Eigenbau | 32 × 8 (WS2812B-Matrix) | ESP32 oder D1 mini mit AWTRIX 3 oder AWTRIX NG | ca. 20–30 € (Schätzung) | ohne Gehäuse, Akku und Sensoren; die muss man selbst ergänzen |
Für Home Assistant und eigene Projekte ist die TC001 wegen des offenen ESP32 die günstigste fertige Lösung. LaMetric und Divoom sind ausgereifter, binden einen aber an die App des Herstellers.
Fazit
Die TC001 ist ein wirklich nettes Gerät: hübsches Design, bunt und ein bisschen flippig. Auf dem Schreibtisch eines YouTubers macht sie mit Abonnentenzähler sicher eine gute Figur. Die Werksfirmware ist allerdings stark auf China ausgerichtet (Wetter von weather.com.cn, Bilibili, Weibo, Douyin) und bei mir hakte schon die Einrichtung des WLANs.
Ihre eigentliche Stärke spielt sie mit freier Firmware aus. Mit AWTRIX NG war sie in wenigen Minuten direkt aus dem Browser geflasht, und über Home Assistant zeigt sie Ereignisse wie Post im Briefkasten oder eine fertige Waschmaschine an. Dafür ist sie gedacht, und dafür lohnt sie sich. Weil der ESP32 über USB-C erreichbar und die Pinbelegung offen dokumentiert ist, taugt sie außerdem als fertiges Gehäuse mit LED-Matrix, Akku, Tasten und Sensoren für eigene Projekte.
Den Akku mit etwa 5 Stunden Laufzeit finde ich wenig sinnvoll. Ohne Netzteil fällt mir kaum ein Einsatz ein, höchstens als Notstrom bei einem Stromausfall. Dann fehlen aber meist auch die Signale, die die Uhr anzeigen soll, weil Router und Home Assistant ebenfalls ausfallen. Der Temperatursensor misst im Gehäuse zu hoch, lässt sich unter AWTRIX NG aber korrigieren.
Über den Wert für andere zu urteilen, fällt mir schwer. Auch wenn ich die Uhr geschenkt bekommen habe, finde ich, dass sie ihr Geld wert ist. Ich habe noch ein paar nette Ideen damit und werde sicher noch viel Spaß an ihr haben.
Lizenz
- Lizenz Hardware: nicht offen; Pinbelegung und Bauteile von der Community dokumentiert (rroels/ulanzi_tc001_hardware)
- Lizenz Software/Firmware: Original-Firmware (Ulanzi): keine Lizenz angegeben, Quellcode nicht veröffentlicht; AWTRIX 3 CC BY-NC-SA 4.0; PixelIt MIT; AWTRIX NG PolyForm Noncommercial 1.0.0; EspHoMaTriX v2 MIT; ESPHome GPLv3/MIT
- Marken: Ulanzi ist eine Marke der Shenzhen Ulanzi Technology Co., Ltd.; ESP32 und ESP-IDF sind Marken von Espressif Systems; Home Assistant und ESPHome sind Marken ihrer Inhaber
Verwandte Beiträge
Quellen
- 01_playgroundLink-Status: OK
- AWTRIX 3 – DokumentationLink-Status: OK
- AWTRIX 3 – GitHubLink-Status: OK
- AWTRIX NG – GitHubLink-Status: OK
- awtrix.deLink-Status: OK
- divoom.comLink-Status: Unbekannt
- EspHoMaTriX v2 – ESPHome-KomponenteLink-Status: OK
- Installationsseite von AWTRIX NGLink-Status: OK
- MediaMarktLink-Status: OK
- New Atlas – Pixel-Uhr im Smart HomeLink-Status: OK
- PixelIt – GitHubLink-Status: OK
- sfambach/ulanzi_pixel_clockLink-Status: OK
- TC001 – Hardware-DokuLink-Status: OK
- Tidbyt-ForumLink-Status: OK
- Ulanzi Pixel Clock mit ESPHome (blakadder)Link-Status: OK
- Ulanzi TC001 Smart Pixel Clock – ProduktseiteLink-Status: Unbekannt
- Ulanzi – TC001 Review und Firmware-UpdateLink-Status: Unbekannt
- ulanzi.comLink-Status: Unbekannt
- ulanzi.deLink-Status: Unbekannt
Logbuch
| Datum | Änderung | Autor |
|---|---|---|
| 17.10.2026 | Beitrag veröffentlicht, ersetzt das Preview Offene Punkte als „noch nicht getestet“ formuliert Fakten aus dem Taxonomy Modeller (Mikrocontroller-Boards) Abschnitt Alternativen ergänzt Fazit geschrieben Dank an Familie Gärtner ergänzt Verpackungsbilder untereinander Ansichten: lange Bilder untereinander, Seitenansichten in eigener kleiner Galerie Verpackungsfotos (Vorder- und Rückseite) ergänzt | sfambach |
| 16.10.2026 | Galerie Ansichten: zweite Seitenansicht ergänzt Beitrag erstellt | sfambach |