Launcher für Cheap Yellow Display (ESP32-2432S028) installieren für mehrere Firmwares auf einem Gerät
Vorweg: Wer das Cheap Yellow Display noch nicht kennt, der sollte sich zuerst ein wenig einlesen, denn dieser Artikel wendet sich an diejenigen, die sich mit dem CYD schon ein wenig auskennen und schon die eine oder andere Firmware darauf mit der einen oder anderen klassischen Methode auf das Gerät gebracht haben.Für die Anfänger: einen Einstieg in die Materie findet ihr in diesem Artikel, in dem: die Hardware und das Pinout des TouchScreen-ESP32 ESP32-2432S028R erklärt ist.
Ihr habt euch also ein Cheap Yellow Display gekauft. Nun gibt es ja unterschiedliche Arten, dieses mit Software zu bestücken. Da wären:
Die harte Tour: GitHub-Source-Code kompilieren
GitHub hat sich als quasi-Standard für Open-Software etabliert. Hier treffen sich die Autoren von freier Software und publizieren ihre Software und auch ihre Firmware für das Chip Yellow Display. Inzwischen gibt es eine ansehnliche Gemeinde, die für das CYD programmiert.Man ist also auf die entsprechende GitHub-Seite für die Firmware gekommen, vielleicht über einen Link unter einem YouTube-Video, in dem die Firmware vorgestellt wurde vom Autor. Hier kann man sich den kompletten Source-Code meistens als ZIP-File runterladen und dann zu Hause auf der Platte in ein Verzeichnis entpacken.
Das wiederum lädt man dann ins Arduino IDE oder auch in Visual Studio Code mit PlatformIO, was mein Favorit ist, und versucht es dann zu kompilieren. Wenn man Glück hat, kompiliert es ohne Fehler und man kann es direkt auf sein über USB angeschlossenes CYD hochladen und die Firmware funktioniert.
In den allermeisten Fällen geht es aber nicht so glatt aus und man hat mit irgendwelchen Compiler-Fehlern zu kämpfen, die einfacher oder komplexerer Natur sein können. Ein beliebter Stolperstein ist das Versionsdilemma, wenn der Entwickler die unterschiedlichen Versionen der unterschiedlichen Libraries nicht angegeben hat und dann die neuesten Libraries automatisch benutzt werden, die dann nicht mehr kompatibel sind zu den Libraries, die der Entwickler ursprünglich benutzt hat. Es regnet dann zahlreiche Compiler-Fehler und es dauert sehr viel Zeit, sich in den Code einzufuchsen und diese Fehler dann zu beseitigen. Manchmal kann es sogar sinnvoller sein, die Firmware selbst von Anfang an zu programmieren, weil man durch den Sourcecode des anderen nicht so einfach durchsteigt. Siehe auch mein Artikel Programmierung des CYD-Displays mit der TFT_eSPI-Library zum dem Thema Versions-Dilemma.
Kurzum, hat man viel Glück, dann kompiliert die heruntergeladene GitHub-Firmware sofort und lässt sich hochladen, das ChipYellow Display macht ein Reset und man kann die Firmware genießen. Aber das passiert leider nur in eher selteneren Fällen.
Die bequeme Tour: Web-Flasher
Viel bequemer für euch ist es, wenn der Autor sich die Mühe gemacht hat, seine Firmware mit einem Web-Flasher bereitzustellen. Ihr findet dann auf seiner Website einen Knopf, auf den ihr einfach nur klicken müsst. Voraussetzung ist allerdings, dass ihr einen Chrome-Browser oder einen Chromium-basierten Browser benutzt. Dann schließt ihr euer SHIP euer Display einfach an den USB-Port an, klickt diesen Knopf und der Rest erfolgt quasi automatisch. Die fertige Firmware wird über das Internet heruntergeladen und dann auf euer CYD gespielt. Das dauert keine zwei Minuten und nach dem Reset könnt ihr die Firmware auch schon genießen.Die Arbeit hat hier allerdings der Autor. Er muss für jede CYD-Version, es gibt welche mit USB-C-Port und es gibt welche nur mit Micro-USB-Port, also ohne USB-C-Port, die dann ein anderes Display benutzen, und für jedes einzelne Display muss der Autor dann eine extra Version bereitstellen, denn die Firmware ist ja schon fertig kompiliert und man kann nichts mehr ändern. Euer Vorteil, Ihr müsst euch mit keinem Sourcecode rumschlagen, der Nachteil, ihr könnt den Sourcecode natürlich auch nicht ändern. Aber das ist in den allermeisten Fällen der bequemsten Weg und eigentlich auch eine Garantie, dass es ohne großes Gefrickel in Arduino IDE oder VS Code gleich funktioniert.
Guckt euch als Beispiel mal meine Firmware mit MP3-Player und Web-Radio an, die ihr über einen Web-Flasher installieren könnt.
Für jede Firmware ein extra CYD?
Jetzt ist es normalerweise so, dass man für jede einzelne Firmware auch ein eigenes CYD braucht. Und wenn man die Firmware wechseln will, dann muss man es neu flashen.Jetzt kommt der Clou: das ist gar nicht nötig!
Bereits 2019 war jemand auf die pfiffige Idee gekommen, mehrere Firmwares auf einer µSD-Karte zu halten und diese mit dem ESP32 selbst zu flashen. Siehe mein Artikel Odroid Go (ESP32 Gameboy Clone): Dritt-Firmware installieren. Hier hab es eine "Master-Firmware" namens "Go-Play", mit der man die Spiele-Firmware für das Odroid Go nach Auswahl neu flashen konnte und so all seine Emulatoren und Spiele immer dabei hatte, auch ohne Internetanbindung.
Diese pfiffige Idee hat Bernardo Morcelli aufgegriffen und den Firmware Launcher for ESP32 boards like: M5Stack, Lilygo, Marauder and CYD devices programmiert.

Mit diesem empfehlenswerten Launcher von bmorcelli für das CYD kann man mehrere Firmware-Images auf die SD-Karte legen und jeweils eine als laufende Firmware auswählen. Sobald der Launcher per Web Flasher installiert ist, wird dieser immer zuerst gestartet.
Es wird dann der kurz der Launcher-Screen angezeigt. Man hat dann ein paar Sekunden Zeit, unten auf "Launchen" zu klicken, um ihn zu starten und eine andere Firmware auszusuchen, ansonsten startet die zuletzt gewählte.
Um nun eine Auswahl von Firmwares zu haben, müssen diese zuerst auf die µSD-Karte kommen. Das geht auf zwei Arten:

1. Über den PC in das "/downloads"-Verzeichnis auf der µSD-Karte kopieren:
Dazu braucht ihr die Firmware im kompilierte .bin-Format. Diese generiert euer Compiler in der Arduino IDE oder in VS Code/PlatformIO, denn das ist die Datei, die auch via Firmware-Upload via USB-Kabel von eurem PC auf das CYD geschoben wird. Sucht einfach danach auf eurer Festplatte.
Diese .bin-file dann einfach in das "/downloads"-Verzeichnis auf der µSD-Karte kopieren, die ihr dann in das Cheap Yellow Display steckt. Resettet das CYD und startet den Launcher und klickt dann auf "SD".

Ihr erhaltet dann eine Liste der auf der µSD-Karte befindlichen Firmwares und könnt mit Doppelklick oder mit "SEL" eine auswählen. Diese wird dann direkt von der SD-Karte geflasht und nach einem Reset benutzt ihr die neue Firmware. Ihr könnt dann jederzeit ohne Internet-Verbindung oder USB-Kabel die Firmware wechseln.
Nachdem ich jetzt von dem Launcher weiß, werde ich meine Firmwares auch als .bin-Files für den Launcher zum Download zur Verfügung stellen. Das habe ich für meine Firmware mit MP3-Player und Web-Radio bereits gemacht. Ihr findet das .bin-File auf der Seite unter dem Web-Flasher verlinkt.

2. Firmware Over the Air (OTA) installieren
Klickt ihr im Hauptmenü allerdings auf OTA, dann wird eine Internetverbindung zum Launcher-Server aufgebaut und er zeigt euch eine Liste von Firmwares an, die für eine CYD passend sind.
Hier könnt ihr eine auswählen und dann direkt als neue Standard-Firmware installieren. Oder was cleverer ist, auf die µSD-Karte kopieren lassen; dann habt ihr sie auch für den späteren Zugriff ohne Internet noch verfügbar.
Die Direkt-Installation ist nur sinnvoll, wenn ihr eurem CYD keine µSD-Karte gönnen wollt.
Video
Natürlich habe ich euch mal wieder ein kleines Video gemacht mit einer Anleitung, wie ihr den Launcher von bmorcelli per Web-Flasher installiert, ihn dann bedient und wie ihr die unterschiedlichsten Firmwares für das CYD herunterlädt und dann mit dem Launcher benutzt:Fazit
Der Launcher von bmorcelli ist eine Super Sache, um Geld und Gepäck zu sparen. Mit ihm braucht ihr nur noch ein CYD für alle Firmware und nicht mehr ein CYD für jede einzelne Firmware. Und er ist sehr einfach zu bedienen. Und kostenlos ist er obendrein!Von mir eine klare Empfehlung, ja fast schon ein Muss für jeden CYD-Besitzer.
Quellen, Literaturverweise und weiterführende Links
- ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - Vorstellung Hardware und Pinout
- ESP32-2432S028R
- Programmierung des CYD-Displays mit der TFT_eSPI-Library
- Meine CYD-Firmware mit MP3-Player und Web-Radio
- Odroid Go (ESP32 Gameboy Clone): Dritt-Firmware installieren
- bmorcelli's Firmware Launcher for ESP32 boards like: M5Stack, Lilygo, Marauder and CYD devices

- bmorcelli-Launcher per Web Flasher installieren
