Prototypische Verwendung des TTGO T-Display als HaniMandl-Board

Bibliothek TFT_eSPI installieren und konfigurieren

Die Bibliothek TFT_eSPI über den Arduino-Bibliotheksmanager installiren. Nun ist leider die Konfiguration für denTTGO T-Display etwas komplizierter und ihr müsst die Bibliotheks-Dateien für den TTGO anpassen:

Das passiert in der Datei C:\Users\[your-username]\Documents\Arduino\libraries\TFT_eSPI\User_Setup_Select.h

die Zeile 22 auskommentieren

//#include <User_Setup.h>           // Default setup is root library folder

und dann das Kommentarzeichen in Zeile 53 entfernen:

#include <User_Setups/Setup25_TTGO_T_Display.h>    // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT

Die Datei abspeichern!

Bibliothek U8g2_for_TFT_eSPI installieren

Theoretisch könnten wir die lib oben nehmen, um die Display-Ausgabe des HaniMandl zu programmieren, dazu müssen aber große Teile des codes umgeschrieben werden. Einfacher ist es für erste proof of concept-Tests die Ausgabe weiter über die U8g2-lib laufen zu lassen. Es gibt nämlich vom gleichen Autor ein lib, die genau diese Zwischenschicht abbildet und Ausgaben für das monochrome OLED über die U8g2 an die TFT_Bibliothek weiterleitet. Also installieren wir diese “klassisch” per zip über die Arduino-IDE U8g2_for_TFT_eSPI-master.zip:

Anpassungen im HaniMandl-Code

[Stichpunkte, noch nicht vollständig, cg]

Einige Zeilen aus den example files übertragenden, Bibliotheken, Initialisierung,. …

u8g2.clearBuffer();
ersetzen durch
tft.fillScreen(TFT_BLACK);

u8g2.sendBuffer();
auskommentieren
//u8g2.sendBuffer();

ebenfalls auskommentieren:

//u8g2.drawLine
//u8g2.drawFrame
//u8g2.drawBox 

//u8g2.setBusClock
//u8g2.begin();
//u8g2.enableUTF8Print();
//u8g2.drawXBM

todo … oder komplett lassen!

Einiges funktioniert mit den Änderungen oben nicht (Startscreen, Fortschrittsbalken, …).

Die Ausgabe auf dem TTGO T-Display ist noch viel zu kein und man muss noch die font sizes anpassen. Weiter flimmert das Display noch erbärmlich wegen der tft.fillScreen(TFT_BLACK); also noch ein paar Sachen zu tun! @aholzhammer ist aber schon weiter!

Siehe auch interpret u8g2.clearBuffer(); as tft.fillScreen(TFT_BLACK) · Issue #1 · Bodmer/U8g2_for_TFT_eSPI · GitHub

Siehe auch die Einschätzung und Übersicht von @aholzhammer: