Flashen der LilyGo Firmware für LilyGo T-Display P4 AMOLED mit Keyboard K270

Das K270-Keyboard von LilyGo ist eine Tastatur-Erweiterung speziell für das T-Display P4 von LilyGo.
Die Hardware des T-Display P4 habe ich bereits in diesem Artikel vorgestellt.
Und alles über die Hardware der Tastatur-Erweiterung K270 könnt ihr hier nachlesen.
Für das Gespann, dass ich nachfolgend auch mal CyberDeck nennen werde, gibt es eine spezielle Firmware von LilyGo, um das T-Display P4 die K270 Tastatur und die darin verbauten Erweiterungen zu testen.
Die Firmware läuft ausschließlich auf dem P4-Bildschirmteil, das die zwei MCUs, nämlich ein ESP32-P4 fürs Rechnen und ein ESP32-C6 für den Funk enthält. Das Keyboard selbst enthält keine Mikrocontroller und kann und sollte während des Flashvorgangs abgetrennt sein.
Mein T-Display P4 kam mit einer reinen P4-Firmware, also nur für das Oberteil ohne Tastatur. Um dem P4 nun zu sagen, dass es ein K270 gibt, braucht es eine neue Firmware, die wir erst flashen müssen.
Das ist nicht ganz so einfach. Aber auch nicht sonderlich schwierig, wenn man weiß, auf was man achten muss. Hier die Schritte, die wir durchführen müssen, in Kürze:
- Spezielle Firmware zur C6-Aktualisierung über den USB-C-Port "P4.U" auf den ESP32-P4 laden. Erst damit können wir sicher den ESP32-C6 flashen
- Über den C6-UART-Port und einem separat gekauften FTDI-Adapter den ESP32-C6 flashen
- Der ESP32-P4 mit der Keyboard-und Test-Software über den USB-C-Port flashen
Firmware flashen mit dem Espressif ESP Flash Download Tool
Das Update der Firmwares werden wir mit dem Espressif ESP Flash Download Tool vornehmen. Eine ausführliche Anleitung (in englisch) von Espressif selbst findet ihr unter dem vorstehenden Link.Ein Beispiel zum Espressif Flash-Tool anhand Odroid Go ESP32 findet ihr hier. In dem Artikel habe ich auch beschrieben, auf was man unter Windows zu beachten hat wegen dem Serial Adapter usw.
Der Ablauf beim Flashen mit dem Tool ist eigentlich immer derselbe:
- zu flashendes Gerät einstecken (in diesem Fall zwischen USB und C6-UART Buchse wechseln)
- Mikrocontroller auswählen, hier ESP32-P4 bzw. ESP32-C6
- Firmware (.bin-Files) auswählen und Häkchen davor setzen. Startadresse angeben, in diesem Fall: 0x00
- COM-Port auswählen (ggf. in Geräte-Manager nachschauen, welcher der richtige ist) und bei einem guten Kabel 921600, bei einem schlechten 115200 auswählen
- sonstige Einstellungen: 40 MHz, DIO, DoNotChgBin anhaken
- Start anklicken
- Auf das "Finish" warten und Daumen drücken, dass es keinen Error gibt.
Firmware flashen: T-Display P4 Downloader für C6 Update
Damit das T-Display P4 mit dem brandneuen K270 Keyboard klarkommt und es erkennt, müsst ihr wahrscheinlich zuerst die Firmware für den ESP-C6 im P4 flashen, der die Kommunikation dafür übernimmt.Um den ESP32-C6 überhaupt flashen zu können - der ist ja nur Co-Prozessor, müssen wir eine spezielle C6-Update-Firmware auf den ESP32-P4 flashen, damit der sozusagen, den Weg freigibt: Diese downloaden wir und speichern sie lokal, wo wir sie wiederfinden. Dann das T-Display P4 in den Flash-, auch Download-Modus genannt versetzen. Beim ersten Mal erzeugt Windows für das neu erkannte Gerät einen neuen COM-Port.
- P4 ausschalten (0 bei 0/1)
- an der Seite Knopf P4/B halten und einschalten
- USB-C-Anschluss "P4U" mit Windows-PC verbinden
- Gerät wird durch Windows erkannt und ein COM-Port eingerichtet, hier COM63:

Dann das Espressif Tool starten und den ChipType ESP32-P4 sowie "Developer" auswählen:

Dann wie oben beschrieben, das Firmware-Image für die C6-Flash-Vorbereitung auswählen:

Nach einem Reset geht der ESP32-P4 jetzt in den C6-Download-Modus. Dabei zeigt er nichts an, der Bildschirm bleibt dunkel. Über den Serial Port können wir allesdings am USB-C-Port P4.U die Debug-Ausgaben verfolgen, wie das geschieht.
Doch Vorsicht! Hier gibt es eine Stolperfalle. Wenn man das falsche Terminalprogramm benutzt, das RTX/CTS als Flusskontrolle benutzt (was eigentlich normal ist), interpretiert das T-Display P4 das als Reset und wir enden in einer Endlos-Boot-Schleife, wo natürlich auch der Bildschirm schwarz bliebt. Böse Falle. Ich nehme das Terminal V1.93b Progrämmchen von Br@y++, damit habe ich DTR und RTS unter eigener Kontrolle.
Firmware flashen: ESP32-C6 im P4
So, nun ist der Weg frei zum ESP32-C6 im T-Display P4. Nun können wir diesen flashen. Das geschieht allerdings nicht über den USB-C-Port sondern über den kleinen QWIIC-Port namens C6-UART.
Das Pinout der C6-UART-Ports ist (orange unten, von links nach rechts): RX, TX, 3.3V, GND.
Ein Kabel liegt dem K270 bei. Wir brauchen aber noch einen Serial-Adapter, sei es mit FTDI oder CH340-Chip.
Benutzen wir das beiliegende Kabel, dann sollte GND grün sein und die RX und TX-Leitungen rot und schwarz. Die gelbe 3.3V Leitung brauchen wir nicht anzuschließen. Die Dupont-Kabel werden entsprechend in den FTDI-Adapter eingesteckt.
Mit C6.R können wir den C6 resetten. Dann sollte eine Ausgabe über den weiteren, von Windows für den FTDI-Adapter hinzugefügten COM-Port zu sehen sein. Falls das nicht der Fall sein sollte, einfach mal RX und TX vertauschen. Da herrscht sowieso ein ziemliches Durcheinander. Normaler sollte Sender-RX an Empfänger-TX und Sender-TX an Empfänger-RX, also über kreuz, aber manche labeln die Empfänger-Ports am Sender. Da nicht viel passieren kann, stecke ich inzwischen einfach irgendwie an und wenn es nicht funktioniert, um.
Jetzt versetzen wir den C6, und nur den C6 in den Flash/Download-Modus: C6.B halten, C6.R kurz drüpcken, C6.B loslassen. Eine entsprechende Meldung sollte auf dem C6-UART ausgegeben werden. Gut. Der C6 ist nun bereit zum Flashen. Also geben wir den Weg für das Espressif Flash-Tool frei, indem wir den C6 im Terminal disconnecten.
Dann starten wir wieder das Flash-Tool, wählen diesmal als ChipType aber ESP32-C6:

Danach flashen wir dann die C6-Firmware auf den ESP32-C6:

Gut. Unsere C6-Firmware sollte nun up-to-date sein. Jetzt können wir "richtige" Firmware auf unserer ESP32-P4 flashen.
Firmware flashen: LilyGo Test-Firmware auf P4
Zu allererst möchte ich die Testsoftware für Keyboard und LVGL von LilyGo flashen. Damit lässt sich die Hardware gut testen. Für meine AMOLED-Version des P4 benötige ich die [rm69a10]-Firmware; die [hi8561] ist für die TFT-Version.Wie gehen dafür wieder über den USB-C-Port P4.U und wählen wieder den ESP32-P4 im Flash-Tool aus:

Danach wählen wir die zuvor heruntergeladene Firmware aus und flashen sie:

Fertig. Nun können wir das T-Display P4 neu starten und die Firmware testen. Und es ist der Weg frei für andere Firmwares, wie zum Beispiel Meck-P4 für Meshcore. Links und Videos dazu findet ihr im Hauptartikel, der unterhalb unter Weiterlesen verlinkt ist.
Videos
Eine Vorstellung der Hardware des Gespanns aus T-Display P4 und K270 Keyboard findet ihr hier, inklusive einer Vorführung der LilyGo-eigenen Test-Firmware, die wir gerade geflasht haben:Weiterlesen...
Wer es noch nicht getan hat, sollte (eigentlich vor diesem Artikel) unbedingt noch einen Blick auf das T-Display P4 nebst K270 Keyboard selbst werfen:- Vorstellung der Hardware des LilyGo T-Display P4 AMOLED
- Vorstellung der Tastatur-Erweiterung K270 für das T-Display P4
Das P-Display P4 ist nichts für dich, zu groß oder zu teuer? Vielleicht findest du in meinen beiden anderen T-Display-Reviews ja das richtige:
- Vorstellung des LilyGo T-Display-S3 mit Gehäuse und ST7789 LCD (ohne Touch)
- Vorstellung des LilyGo T-Encoder Pro mit hochauflösendem AMOLED und Drehring
Quellen, Literaturverweise und weiterführende Links
- Beispiel zum Espressif Flash-Tool anhand Odroid Go ESP32
- Espressif ESP32 Chip Varianten im Vergleich
- Produktseite T-Display P4 im LilyGo-Shop

- T-Display P4 auf amazon.de
- Produktseite T-Display P4 Keyboard im LilyGo-Shop

- Produkt-Informationen, Firmwares und Code Examples zum T-Display P4 auf GitHub

- globalsources.com/: 4.1 Inch AMOLED Display Module with touch 280 cd/M2 568*1232 dots, MIPI interface RM69A10

- Espressif: Flash Download Tool User Guide

- LilyGo @ GitHub # firwware download: Use 0x00 as address for flashing

- Firmware für P4 zur Vorbereitung des Uploads der C-Firmware
- Testsoftware für Keyboard und LVGL von LilyGo
- C6-Firmware für T-Display P4

- Terminal V1.93b Progrämmchen von Br@y++
