- 19 August 2021
- 2.693
- 5.711
- E-Scooter
- mi Pro2/9bot F2 Pro
Zu diesem Beitrag bitte auch den Haftungsausschluss der Nutzungsbedingungen - Pkt.8 beachten!
Inhaltsverzeichnis
- Vorstellung 9bot-Flasher (Dieser Beitrag)
- Downgrade Anleitung
- AT32 Bootloader dumpen
- In eigener Sache (Job suche)
Vorstellung 9bot-Flasher
Hallo liebe RollerPlauscher!
Jetzt ist es soweit!
Mein neuer Downgrader ist fertig.
Somit ist dieser 9bot-Flasher nun neben der zuvor vom mir entwickelten Chip Swap Methode,
die einzig weitere Möglichkeit eine modifizierte Firmware auf solche ESC's (Controller) mit neuer Firmware zu flashen.
Solch einen Downgrader hat es bis dato in der Scooter Szene noch nicht gegeben!
Das besondere ist, das hier nicht nur erstmalig das Downgraden von dem AT32 Mikrocontroller möglich ist,
sondern auch das 9bot-Flasher ALLE Einstellungen von dem ESC (Controller) übernimmt.
Er ist sogar in der Lage den neuen v4 Motor (PADH122/PAAH122) zu erkennen welcher aktuell nur mit DRV184 und aufwärts funktioniert.
In dem Speicher des ESC gibt es nämlich einen speziellen Bereich wo Ninebot alle Konfigurationen ablegt.
9bot-Flasher liest diesen während dem automatischen Downgradevorgang aus und übernimmt ihn.
Diese Funktion habe ich mir zu Anfang selbst so sehr für meinen Scooter gewünscht gehabt,
das ich jetzt sogar etwas traurig bin das es das früher als ich mein Controller per ST-Link flashen musste noch nicht gab.
Jetzt habe ich sie kurzerhand für uns alle entwickelt und niemand muss mehr seine individuellen Controller-Daten verlieren.
Die wichtigsten der Controller Einstellungen werden während dem automatischen Downgrade in 9bot-Flashers Kopfzeile angezeigt.
Die Ähnlichkeit zu meinem bewährten MiDu-Flasher ist deswegen so groß, weil ich nun schnell eine Grundlage brauchte.
Möglicherweise wird das alles noch in späteren Updates zusammengeführt.
Jetzt ist erstmal das wichtigste das die Ninebot Controller der G30 und F-Serie Scooter mit Artery Chip (MCU) nun endlich downgraded werden können.
Denn das ist eine absolute Weltneuheit und wurde von mir eigens entwickelt.
Viele Stunden Datenblatt lesen und Programmieren haben sich ausgezahlt.
Einige werden sich wahrscheinlich gedacht haben, warum hat das denn so lange gedauert?
Nun, bei diesem Hack gab es 2 entscheidende Hürden.
1. Den Bootloader der Atery Chips zu extrahieren
2. Den Chip überhaupt neu zu beschreiben
Bootloader
Da die MCU's in unseren Scootern Firmwareseitig einen Ausleseschutz besitzen, war es bisher nicht möglich an den Bootloader zu kommen.
Denn dieser Ausleseschutz bewirkt das sich der gesamte FLASH Speicher in dem Chip selbst löscht sobald man mit einem debug Adapter (ST-Link) versucht ihn auszulesen.
Diese Funktion (RDP - Readout protection) ist ein in den Chip eingebautes Sicherheitsfeature welche sich Ninebot und Xiaomi zu nutze macht.
Um ihn also mit einem ST-Link zu downgraden (komplett neu beschreiben) brauchen wir sowohl DRV Firmware,
als auch den speziellen Bootloader welcher ja bei einem Löschvorgang des Flash Speicher verloren geht.
Die DRV Firmwares können wir aus offiziellen Ninebot Updates abfangen.
Aber der Bootloader fehlt.
Dieser spezielle Bootloader ist nur auf dem FLASH Speicher jedes ESC vorhanden und bekommt keine Updates.
Also habe ich ein Trick angewandt und eine DRV173 (G30) welche wir ja per SHU (ScooterHacking utility) flashen können umgeschrieben so das sie meinen Code ausführt.
Dieser von mir eingefügte Code, bewirkt das sie den Bootloader in den Zwischenspeicher (RAM) des Chip kopiert.
Denn der RAM ist von der RDP nicht betroffen.
Von hier können wir ihn nun ganz gemütlich per ST-Link auslesen obwohl der FLASH Speicher des Chip noch immer gesperrt ist.
(gesetzte RDP)
Chip beschreiben
Da die Mikrocontroller von Artery aber noch recht neu auf dem Markt sind, gab es noch eine weitere Hürde.
Nämlich das es bis dato kein Programm gab welches die Chips per ST-Link entsperren, und neu beschreiben (Flashen) konnte.
Also habe ich ein bisher bekanntes Programm genannt openOCD (on chip debugger) welches glücklicherweis open source ist,
umgeschrieben und an diesen speziellen Mikrocontroller angepasst.
Ab hier an hatte ich per ST-Link dann die volle Kontrolle.
Was kann 9bot-Flasher?
- Downgrade des Controller (ESC) via ST-Link ohne löten
- Erhalten der DRV Config bei einem ST-Link Flash
- Automatische Fehler Erkennung (Verbindungsabbrüche)
- Artery Bootloader extrahieren
Da hierbei nicht gelötet werden muss, kann das nun jeder selbst für sich und seinen Roller tun.
Das verlieren der Konfigurationen des ESC wie z.b. SerienNr., gefahrene Kilometer, totale Einschaltzeit, uvm... ist nun auch Geschichte.
9bot-Flasher ist in der Lage diese gesamte Konfiguration aus dem RAM Speicher der MCU zu extrahieren, auszuwerten und bei einem Downgrade zu übernehmen.
In diesem dauerhaft auf dem ESC gespeicherten Konfigurations-Speicher werden teilweise sogar uns noch unbekannte Einstellungen abgelegt.
Deshalb ist es sehr wichtig das diese Informationen bei einem Downgrade erhalten bleiben.
Bei bisherigen Flashvorgängen per ST-Link wurden diese Konfigurationen immer gelöscht.
Manche Programme haben lediglich die Möglichkeit geboten die SerienNr., UUID und damit verbundenen Aktivierung zurück zu schreiben.
Welche ESC's werden unterstützt?
In 9bot-Flasher direkt eingebaut habe ich die Unterstützung für folgende Scooter:
- G30 v1.1 mit Artery Chip
- F-Serie v0.9 mit Artery Chip
Die Unterstüzung für F-Serie v0.9 ESC's werde ich im nächsten Update nachreichen.
Momentan gibt es allerdings eh noch keine F-Serie Artery Chip kompatible DRV Firmware öffentlich als Download verfügbar.
Funktionsumfang (9bot-Flasher v1.0.2)
- Downgrade (G30 v1.1 ESC / F-Serie v0.9 ESC)
- Dump AT32 Bootloader (nur G30 ist aber F-Serie kompatibel)
- Backup DRV Config
- Write Flash (kommt im nächsten Update)
In den Downgrade-Vorgang habe ich verschiedenste kleine Kniffel und Tricks eingebaut.
Diese Schritte werden ausgeführt:
- Verbindung zum ESC aufbauen
- Dumpen der DRV Config
- Gedumpte DRV Config auswerten, abspeichern und anzeigen
- Flash-speicher zum schreiben vorbereiten (mass erase)
- AT32 Bootloader schreiben
- DRV Firmware schreiben
- Zuvor ausgelesene DRV Config zurück schreiben
Das ermöglicht es unter anderem den Downgrade durchzuführen ohne das man Löten muss.
Da hier nur für einen sehr kurzen Moment die Verbindung manuell gehalten werden muss.
Hierfür eignet sich ein Stecker mit Nadeln ganz gut. (mehr dazu in der Anleitung)
9bot-Flasher macht alles automatisch und gibt Feedback zu den einzelnen Schritten.
Selbst wenn zwischendurch mal die Verbindung abbricht, dann ist das auch kein großes Problem.
Weder während dem lesen oder Schreibvorgang.
Denn 9bot-Flasher bemerkt das alles von selbst, und wiederholt den jeweiligen fehlgeschlagenen Schritt dann direkt nach einem kurzen 5 Sekunden Timeout.
Dump Bootloader
Ist in 2 einzelne Schritte unterteilt.
1. Erstellen einer gepatchten DRV173
2. Dumpen des Bootloader von dem ESC via ST-Link
Dumpt mit hilfe einer zuvor gepatcht & geflashten DRV den Bootloader des Artery Chip.
Abgespeichert wird der Bootloader in dem Firmwares Ordner.
So das er bei einem nächsten Downgrade direkt verwendet werden kann.
Backup DRV Config
Erstellt ein Backup des kompletten RAM Speicherabbild,
dumped die DRV config raus und zeigt die wichtigsten Konfigurationen in der Kopfzeile von 9bot-Flasher an.
In dem DRV_Configs Ordner wird ein neuer Ordner angelegt der den Namen der UUID der MCU trägt aus dem das Backup gezogen wurde.
Folgende dinge werden darin gespeichert:
- RAM.bin (komplettes Speicherabbild des RAM)
- DRV_CONFIG.bin (komplette DRV Konfiguratin als Binärdatei)
- DRV_CONF_INFO.txt (wichtigste Konfigurationen in Textform)
Abgespeichert wird das Backup in folgendem Pfad:
Code:
Bitte verwende,
Anmelden
oder
Registrieren um den Inhalt der Codes anzuzeigen!
Write Flash(aktuell in 9bot Flasher v1.0.2 noch nicht implementiert)
Schreibt alle 3 Hauptkomponenten des Flash-Speicher einzeln.
- AT32 Bootloader
- DRV Firmware
- DRV Config (wird eine Auswahl und edit Funktion bekommen)
9bot-Flasher Download
Changelog:
Code:
Bitte verwende,
Anmelden
oder
Registrieren um den Inhalt der Codes anzuzeigen!
Bitte verwende,
Anmelden
oder
Registrieren
zum Anzeigen von URL-Inhalten!
An dieser Stelle noch einen ganz lieben Dank an GeoBot für das Testen, erstellen diverser Logos und Tutorial Bilder. ❤️
Ebenso geht ein Dank an das komplette ScooterHacking.org Team für das Bereitstellen diverser Firmware - Files und legendärer Pionierarbeit.
Wenn euch dieser Beitrag gefällt, denkt bitte darüber nach eine Spende für den RollerPlausch da zu lassen.
Unterstütze RollerPlausch.com!
Hier findest du Infos wie du RollerPlausch.com unterstützen kannst!
rollerplausch.com
Auch über ein Klick auf den Hilfreich Button freue ich mich jedes mal und spornt mich an weiter zu machen.
Danke ❤️
Zuletzt bearbeitet: