Odroid Go (ESP32 Gameboy Clone): alternative Über-Firmware installieren

Neulich stieß ich im Internet auf den Odroid Go, den der Hersteller Hardkernel aus Südkorea von etwa einem Jahr auf den Markt gebracht hat. Eigentlich beschäftigt sich die Firma ja eher mit ESP32 und anderen Entwicklungsboards für Mikrocontroller, aber zum Zehnten Jubiläum hat man den Odroid Pro aus Do It yourself-Kit herausgebracht.

Da der Odroid nicht nur so etwas wie ein handlicher Gameboy ist, sondern gleichzeitig auch eine Plattform für Mikrocontroller-Bastelprojekte, war das genau das richtige Spielzeug für mich und ich legte mir einen zu. Allerdings war es gar nicht so einfach, an einen heranzukommen. Bei amazon war er gerade ausverkauft, bei Pollin stand er zwar im (Papier)-Katalog, war aber zur Zeit nicht lieferbar. Und bei eBay gingen die Preise teilweise bis 100 Euro. Das Teil schien also sehr gefragt zu sein. Ich ging das Risiko einer Wartezeit ein und bestellte bei Pollin um 40 Euro und bekam den Odroid dann doch erfreulicherweise schnell nach etwas über einer Woche. Glück gehabt.


Über die Hardware und den Zusammenbau des Do-it-yourself-Kits habe ich bereits einen Artikel geschrieben. Dort wird auch beschrieben, wie man darauf seine alten Gameboy-Spiele zum Laufen bekommt.

Auch wie man mit der installierten Über-Firmware eine Drittfirmware, oder alternative Spiele, flasht, habe ich bereits erklärt. In dem Artikel wird auch beschrieben, was eine Firmware überhaupt ist.

Heute soll es darum gehen, die Über-Firmware gegen eine andere Version auszutauschen.

Es gibt nämlich eine Version der Über-Firmware, mit der man nicht nur mit "B halten, einschalten" Firmwares flashen kann, nein, mit der Über-Firmware von ducalex kann man statt einer mehrere Firmwares im Flashspeicher der Odroid-Go ablegen und mit "A halten, einschalten" schnell zwischen diesen umschalten, ohne jedesmal neu zu flashen.

Es können soviele Firmwares nebeneinander im Flash-Speicher gehalten werden, bis dieser voll ist. Das ist je nach Modell bei 8 oder 16 MB der Fall. Eine tolle Lösung, um mehrere Firmwares quasi-parallel zu betreiben und das EEPROM zu schonen, denn das Flash nutzt sich bei jedem Schreibzyklus etwas ab und nach einigen tausend geflashten Firmwares geht dann nichts mehr.

Die Multi-Firmware besorgen

Die Über-Firmware wird ganz traditionell über den seriellen Port geflasht. Zuerst besorgen wir uns das *.img-File der Über-Firmware, in diesem Fall die Multi-Firmware von ducalex.

Diese finden wir unter https://github.com/ducalex/odroid-go-firmware-multi/releases. Hier nehmen wir die Version, die uns am meisten zusagt. Das wird im Normal die neueste sein, in meinem Fall die odroid-go-firmware-20190901.zip.

Wenn wir diese entpacken, finden wir das Über-Firmware-Image odroid-go-firmware-20190901.img. Wo wir das auf der PC-Platte speichern, merken wir uns, denn gleich brauchen wir diese Datei.

Espresif Flash Download Tool besorgen

Um die Über-Firmware auf unseren Odroid-Go zu bringen brauchen wir ein Tool, das Flash Download Tool. Wir finden es unter https://www.espressif.com/en/support/download/other-tools. Hier wird immer die neueste Windows-Version zum Download angeboten. In meinem Fall war es die Version 3.6.8.

Nach dem Download entpacken wir das .zip-File und starten die in den Unterverzeichnissen vergrabene flash_download_tools_v3.6.8.exe.

Odroid-Go an USB anschließen

Nun stecken wir unseren Odroid-Go an einen USB-Port unseres Windows-PCs. Im Gerätemanager (Windows + Pause drücken) sollte sich nun unter Anschlüsse der entsprechende Ser-Port (bei mir COM28) ablesen lassen:



Diesen Port notieren wir uns.

Sollte hier kein entsprechenden Eintrag sein, sondern (ggf. an anderer Stelle) ein Ausrufezeichen, dann muss erst noch der Ser-Treiber für den Odroid-Go installiert werden. Es handelt sich dabei um den Silicon Labs CP210x USB to UART Bridge und ist hier zu finden: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.

Über-Firmware mit Tool flashen

Das flash_download_tools_v3.6.8.exe hatten wir ja bereits gestartet. Hier werden wir als erstes gefragt, welches Unter-Download-Tool wir starten wollen. Wir wählen ESP32 DownloadTool, weil der Odroid-Go auf einem ESP 32 basiert.

Jetzt nur nicht verwirren lassen. Im Espressif-Jargon ist ein Download das Hochladen einer Firmware auf den Odroid-Go, die Sichtweise ist also vom ESP32 aus - dieser lädt sich sozusagen die Firmware vom PC herunter. Da das Tool aber eh nur uploaden (im herkömmlichen Sinne) kann, ist es aber ziemlich egal, wie das hier bezeichnet wird.

Zuerst müssen wir erst einmal den Flashspeicher löschen, damit Platz für was neues ist. Dafür gibt es die Option ERASE. Wichtig sind dabei auch die eingestellen Parameter. Diese sollten wie folgt sein:



Unten rechts wählen wir den nortierten Port aus (bei mir COM28) und als Baudrate 921600. Wenn es mit dieser hohen Übertragungsrate zu Fehlern kommt, kann man auch runter gehen, dann dauert es allerdings länger. Also am besten kein ultralanges USB-Kabel verwenden.

Ist alles korrekt eingestellt, schalten wir den Odroid-Go ein und klicken auf ERASE. Jetzt sollte die grüne Anzeige unten links von IDLE zuerst auf SYNC und dann auf Download und dann FINISH springen. Der Bildschirm des Odroid wird dabei gelöscht.

Als nächstes wählen wir durch Klick auf die drei Pünktchen neben dem ersten Textfeld unser Image odroid-go-firmware-20190901.img aus. Damit das klappt rechts *.img auswählen. Als Adresse hinter dem @ geben wir 0x00 - sprich Anfang des Speicherbereiches, ein. Das Häkchen vor dem Dateinamen nicht vergessen, sonst wird nichts geflasht.

Der Rest der Einstellungen bleibt gleich. Das sollte dann so aussehen.



Alles noch einmal überprüfen und dann auf START klicken. Die Anzeige sollte erst auf SYNC, dann auf DOWNLOAD und schließlich auf FINISH wechseln. Bleibt sie grün, ist alles glatt gelaufen.

Wenn die Anzeige unten links auf STOP oder FAIL springt, ist etwas schiefgelaufen. Im schwarzen Kommandofenster, in dem das Python-Flash-Script abläuft kann man dann anhand der Fehlermeldung herausfinden, woran das lag. Zum Beispiel mag das Flashtool keine deutschen Umlaute im Dateipfad zum Image.

Nach dem Trennen vom USB-Port und dem Aus- und Wiedereinschalten sollte uns die neue Über-Firmware mit dem Hinweis "No apps have been flashed yet!" begrüßen. Fertig!

Es bleiben uns mit der neuen Überfirmware 15 MB für Dritt-Firmwares, die wir gleichzeitig im Flash halten können und zwischen denen wir schnell hin- und herschalten können. Wie das genau funktioniert, zeige ich in diesem Video: