Vorstellung des LilyGo T-Encoder Pro mit hochauflösendem AMOLED und Drehring

Der LilyGo T-Encoder Pro ist ein ESP32-S3-Board der neuen ESP32-Familie von Espressif, das ein rundes Display mit Touchscreen bereits eingebaut hat. Den Touchscreen umschmiegt ein Ring mit Drehgeber (englisch Encoder), der zur weiteren Steuerung gedreht und niedergedrückt werden kann.
Der T-Encoder Pro ist dabei kleiner, als man ihn zunächst einschätzt, denn er hat nur einen Durchmesser von 43.5mm und eine Höhe von 27.5mm. Das macht den 1.2-Zoll-Screen mit seinen 390x390 Pixeln extrem hochauflösend.
Die Größe des Displays sollte man nicht überschätzen, auch wenn das auf Fotos anders aussehen mag. Sie ist nur ein wenig größer als ein Zwei-Euro-Stück.
Eckdaten des LilyGo T-Encoder Pro

Kurz abgerissen hat der LilyGo T-Encoder Pro folgende Eigenschaften:
- ESP32-S3 MCU im "Speicher-Vollausbau" mit 16 MB Flash und 8 MB PSRAM
- damit also auch WLAN und Bluetooth 5.0 bereits eingebaut
- 390x390 Pixel 1.2" AMOLED Touch-Display mit SH8601A Controller (von TFT_eSPI nicht unterstützt, Arduino_GFX Library verwenden) und CHSC5816 Touch-Controller über I2C.
- ein Drehring-Encoder, der das Display umgibt für links/rechts (GPIO 1 und 2), außerdem kann das Display mittig heruntergedrückt werden (GPIO 0, auch Boot).
- 4-poliger UART Kommunikationsanschluss: RX (GPIO 44), TX (GPIO 43), 5V, GND
- 4-poliger I2C Kommunikationsanschluss: GND, 3.3V, SDA (GPIO 16), SCL (GPIO 15)
- USB-C Anschluss für Stromversorgung und Programmierung
- eingebauter Buzzer (GPIO 17)
- relativ klein mit 43.5mm Durchmesser und 27.5 mm Höhe
Das Gerät kommt in einer stabilen Verpackung, wie man es lobenswerterweise von LilyGo gewohnt ist. Leider werden keine Kabel für die Kommunikationsanschlüsse mitgeliefert.
Die Crux mit dem schwarzen Drehring

Den LiliGo T-Encoder Pro gibt es in drei Ausführungen für den Drehring: Einmal gibt es einen etwas dickeren Drehring in orange und dann noch zwei dünne Drehringe in schwarz und gelb.
Ich habe mich aus optischen Gründen für den schwarzen Drehring entschieden, was ein Fehler war. Ich kann nur dringend dazu raten, die Version mit dem dickeren, orangenen Drehring zu bestellen, die fast genauso viel kostet. Denn sonst wird das Drehen schwierig.
Wer unbedingt die Farbe Schwarz haben will, sollte sich trotzdem den Gefallenen tun und den orangenen Ring für schmales Geld dazu bestellen.
Die drei Ringe bestehen aus Gummi bzw. Silikon und sind dehnbar. Gedehnt werden sie von oben über das Display gestülpt und finden dann ihren Platz in einer 10mm hohen Einkerbung rund um und unter dem Display.

Das Problem mit dem schwarzen Drehring ist es, dass dieser zu dünn ist und nicht über den Displayrand hinausragt. Dadurch will man beim Drehen immer den Displayrand mit drehen, was aber nicht geht. So bekommt man keine schöne Drehbewegung hin, es sei denn, man hält die drehende Hand sehr unnatürlich, etwa so, als wollte man ein Hühnerei von oben greifen.
Der orange Drehring ist dicker und steht mehr über, deshalb sollte hier das Drehen mit zwei Fingern leichter von der Hand gehen.
Meine Überlegungen zur Abhilfe dieses Problems, dass ein Drehen sehr umständlich macht, gingen dahin, dass ich mir mit meinem 3D-Drucker selbst einen dickeren Ring drucke und den dann aufsetze. Das allerdings scheitert daran, dass man das Gehäuse oberhalb wohl nicht zerstörungsfrei aufbekommen kann. Der obere Teil mit dem Display ist an sechs Stellen in den unteren Teil eingeklipst. Man müsste an allen sechs Stellen gleichzeitig mit einem sehr feinen Schraubenzieher bzw. mit sechs Schraubenziehern und sechs Händen die Clip-Tabs leicht umbiegen, um den oberen Teil mit dem Display abnehmen zu können. Gleichzeitig ist zu beachten, dass das Display in dem Mainboard im aufschraubbaren unteren Teil mit einem dünnen, flexiblen (und empfindlichen) Flachbandkabel eingesteckt ist. Hier müsste man es also auch zuerst lösen. Ein Wahnsinns-Aufwand!
Die Frage stellt sich aber gar nicht, da man ohne Spezialwerkzeug wohl nicht den oberen Teil mit dem Display abnehmen kann. Ich bin darum den Weg gegangen, um den schwarzen Gummiring einen ein Millimeter starken Silikonklebebandstreifen mit zehn Millimeter Höhe zu kleben und dann passgenau mit einem Innendurchmesser von 40.8 Millimeter einen Ring aus PLA mit dem 3D-Drucker zu drucken und diesen dann auf dem nun breit genug gewordenen Wulst rundum und unter dem Display aufzuschieben.

Ich hatte Glück und bereits die erste gedruckte Version passte sehr genau auf diesen Wulst und hielt so gut, dass er nicht der Drehring nicht durchdreht, sondern genügend Haftung hat, um den Drehgeber auszulösen. Das liegt sicher auch daran, dass der schwarze Gummiring und das darauf befindliche Silikonklebeband weich sind und nachgeben und dass die Innenseite des Drehrings nicht hundertprozentig rund, sondern eher ein Vieleck mit 90 Kanten ist. Dadurch presst sich das Silikonklebeband sozusagen in die Kanten des Rings und hält ihn so fest. Trotzdem könnte ich den Ring noch abnehmen und austauschen, er ist nicht festgeklebt.
Über das Problem mit dem schwarzen Ring und meine Lösung aus dem 3D-Drucker habe ich ein kleines Video gemacht, das die Umstände genauer zeigen kann, als ich sie mit Worte beschreiben könnte:
Technische Daten und Pinout
Die Beschaltung des T-Encoder Pro sieht wie folgt aus:
Und wie man rechts sieht, ist das AMOLED mit einer Breite von 4 Bit angeschlossen, von LCD_SDIO0 (Pin 11) bis LCD_SDIO3 (Pin 48). Insgesamt braucht das LCD 8 GPIO-Pins. Ich hoffe, dass das Display trotz seiner 4-Bit-Anbindung schnell genug ist.
Das Herunterdrücken des Displays löst einen Taster an GPIO 0 aus, der auch Boot-Taster dient, falls man eine neue Firmware aufspielen möchte. Der Reset-Taster befindet sich an der Unterseite des Gerätes. Es ist ein kleiner Buzzer (an GPIO 17 angeschlossen) eingebaut, um Töne erzeugen zu können.
Die Kommunikation zur Außenwelt übernimmt ein USB-C-Port sowie zwei Kommunikationsports mit vierpoligen kleinen Buchsen (4-polige Qwiic JST-SH 1.0mm): einmal für I2C (GND, 3.3V, SDA (GPIO 16), SCL (GPIO 15)) und einmal für UART (RX (GPIO 44), TX (GPIO 43), 5V, GND), also serielle Kommunikation. Leider liegen hier keine passenden Kabel bei. Man muss sich die entsprechenden 4-poligen Qwiic JST-SH 1.0mm Kabel also selbst besorgen, möchte man hier etwas anschließen.
Mehr Pins sind nicht herausgeführt und auch nicht verfügbar.
Die Konstellation mit den Anschlüssen auf der Unterseite macht es gerade wegen des dann herausstehenden USB-Kabels sehr schwierig, das Gerät so wie es ist auf der Unterseite stehend zu betreiben, möchte man keine Löcher in die Tischplatte bohren. Es wird also eine Plastikeinschalung, vielleicht aus dem 3D-Drucker, nötig, damit das Gerät auf dem Tisch stehen kann. Mir schwebt eine Base vor, die das Gerät so hält, dass das Display in einem Winkel von 45 bis 60 Grad zum Benutzer zeigt und bei der man den Drehring natürlich frei bewegen kann.
Die mitgelieferte Firmware

Die auf dem Gerät installierte Firmware läuft gleich nach dem Einschalten ohne weiteres Zutun. Man muss lediglich ein paar Sekunden warten. Ich habe die Firmware schon in meinem Mailbag #151 ab Minute 20 angetestet:
Sie besteht durch sechs im Kreis angeordnete Icons mit "Home" in der Mitte: Clock, Meter, Color Wheel, E-Mail, Test und Settings. Man kann die einzelnen Elemente entweder durch Klick auf den Touchscreen auswählen oder durch Drehen des Drehgebers und Herunterdrücken des Displays, wobei sich das Herunterdrücken des Displays in der Mitte mit der Touchscreen-Bedienung beißt. Da man das Display eh nur gescheit herunterdrücken kann, wenn man genau in die Mitte drückt - ja, das Display ist ein wenig wackelig - würde ich davon absehen, Bedienelemente in die Mitte des Screens zu positionieren, wie hier den Home-Button, denn so beißen sich die beiden Bedienkonzepte Touchscreen und Drehregler gegenseitig. Die Mitte sollte nicht mit touchsensitiven Elementen belegt werden, damit die Herunterdrück-Funktion ungestört bleibt.
Das soll uns aber nicht weiter stören. Als Demo taugt die installierte Firmware schon und wir werden später sowieso unsere eigene Software für das Display entwickeln. Die Demo zeigt sowieso meist nur fertige LVGL-Elemente und das Color Wheel ist sogar ein wenig irreführend, weil gar keine RGB-LED verbaut ist und zudem das Color Wheel nicht mit dem Drehring bedient werden kann, wobei das ja eigentlich die intuitive Bedienweise wäre.
Unter Test kann man unter anderem die Helligkeit des OLEDs einstellen und bemerkt dann, wie hell, ja sogar blendend, das OLED sein kann. Der OLED Display Color Test zeigt dann die Brillanz der Farben des AMOLED Displays, die schon fast unnatürlich bunt wirken.
Und im Touch- und Encoder-Test fällt auf, dass beim Drehen am Drehring manchmal eine Position übersprungen wird, gerade wenn man schneller am Ring dreht. Das kann aber auch mit der Software zusammenhängen und ist eventuell korrigierbar.
Ich hatte mich ja schon mal ausführlich mit der nicht ganz trivialen Schritt-Messung bei Drehgebern im Artikel Das Multi Function Shield mit einem Drehgeber erweitern beschäftigt und dort eine exakte Zählweise programmiert. Das sollte mir auch hier wieder gelingen.
Insgesamt reicht der Umfang der Tests in der mitgelieferten Firmware und gibt einen guten Überblick über das, was das Gerät leisten kann, wenn auch eher an einigen Stellen, wie zum Beispiel dem WS2812-Dialog, irritiert, denn es sind gar keine RGB-LEDs verbaut. Auch fehlt ein Test des Buzzers.
Hier habe ich noch ein YouTube-Video für Euch, in denen ich euch noch einmal die Hardware des T-Encoder Pro vorstelle und euch etwas ausführlicher die mitgelieferte und vorinstallierte Firmware zeige:
Weitere verfügbare Firmwares
Smartwatch Demo

"nikthedfix" hat im Juni 2024 eine SmartWatch-Demo für die Arduino IDE auf GitHub publiziert und zwar genauer gesagt für die Arduino IDE Version V2.3.2. Er benutzt die ESP32_Arduino boards package version 3.0.1 und die LVGL Library in Version 8.3.11 sowie einen eigenen SH8601 display driver für das Projekt, anders als das LilyGo-Standard-Projekt, das ich oben vorgestellt habe.
Kamran Aghlami hat dann das SmartWatch-Projekt auf PlatformIO portiert und auf GitHub gestellt. Da ich ja PlatformIO benutze, habe ich diese Version genommen. Sie ließ sich gleich ohne Compiler-Fehler kompilieren und hochladen und demonstriert, was für Anzeigen auf einer Smartwatch möglich wären.
Die Animationen sind wirklich sehr gelungen und auch das hochauflösende Display trägt zu einer gelungenen Präsentation bei. Allerdings sind die angezeigten Daten alle erfunden und stimmen nicht mit der Realität überein. Weder die Uhrzeit, noch das Datum, noch das Wetter. Aber das könnte man durchaus selbst programmieren und dann entsprechend in die Software einbinden, wenn man wollte. Der Sourcecode liegt ja vor.
Allerdings wird es kein Spaß, den dann doch etwas dickeren LilyGo T-Encoder-Pro am Handgelenk zu tragen ;)
Hier ein Video über die SmartWatch-Demo-Firmware:
Weiterlesen
Dieses und andere Boards, die auf den neuen ESP-Varianten ESP-Sx, ESP-Cx, ESP-Px basieren findet ihr in dieser Auflistung gegenübergestellt.Einen Vergleich der Eckdaten der neuen Espressif ESP-Varianten wie ESP32-S2, ESP-S3 oder ESP32-C3 und ESP32-C6 findet ihr unter diesem Link.
Und eine Auflistung der auf den neuen ESP-Varianten ESP-Sx, ESP-Cx, ESP-Px basierenden Boards sind hier zu finden.
Quellen, Literaturverweise und weiterführende Links
- Die neuen espressif ESP32 Chip Varianten im Vergleich
- Das Multi Function Shield mit einem Drehgeber erweitern
- Taugt Visual Studio Code mit Platform IO als Ersatz für die die Arduino IDE?
- T-Encoder Pro im LilyGo Shop / Beschreibung

- T-Encoder Pro im Amazon Shop / Rezensionen
- T-Encoder Pro bei GitHub / Sources und Anleitungen

- SmartWatch-Demo von nikthedfix für Arduino IDE

- Von Kamran Aghlami auf PlatformIO portiertes SmartWatch-Projekt
