RP ✔️ 9bot-Flasher G30 v1.1 ESC & F-Serie v0.9 ESC Artery Downgrader

VooDooShamane

Moderator
Teammitglied
19 August 2021
2.693
5.711
E-Scooter
mi Pro2/9bot F2 Pro
AT32 Downgrader GeoBot_sm full.png

Zu diesem Beitrag bitte auch den Haftungsausschluss der Nutzungsbedingungen - Pkt.8 beachten!

Inhaltsverzeichnis

Vorstellung 9bot-Flasher

1674741602920.png


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.

1674743156722.png


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
Durch die automatische Fehlererkennung von Verbindungsabbrüchen wird der ST-Link Downgrade quasi zum Kinderspiel.
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
In der aktuellen Version (v1.0.2) des 9bot-Flasher wird vorerst nur der G30 v1.1 ESC unterstüzt.
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)
Downgrade
In den Downgrade-Vorgang habe ich verschiedenste kleine Kniffel und Tricks eingebaut.
Diese Schritte werden ausgeführt:
  1. Verbindung zum ESC aufbauen
  2. Dumpen der DRV Config
  3. Gedumpte DRV Config auswerten, abspeichern und anzeigen
  4. Flash-speicher zum schreiben vorbereiten (mass erase)
  5. AT32 Bootloader schreiben
  6. DRV Firmware schreiben
  7. Zuvor ausgelesene DRV Config zurück schreiben
9bot-Flasher überprüft bei jedem Schritt ob er auch erfolgreich war, und wiederholt diesen wenn z.b. ein Verbindungs-Fehler aufgetreten ist.
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 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.
Das Geld geht nicht an mich, aber ihr unterstützt damit diese wundervolle Plattform.
Auch über ein Klick auf den Hilfreich Button freue ich mich jedes mal und spornt mich an weiter zu machen.
Danke ❤️
 
Zuletzt bearbeitet:

VooDooShamane

Moderator
Teammitglied
19 August 2021
2.693
5.711
E-Scooter
mi Pro2/9bot F2 Pro

VooDooShamane

Moderator
Teammitglied
19 August 2021
2.693
5.711
E-Scooter
mi Pro2/9bot F2 Pro
AT32 Bootloader dumpen

Zu diesem Beitrag bitte auch den Haftungsausschluss der Nutzungsbedingungen - Pkt.8 beachten!

⚠️Zum dumpen des Artery Bootloader via 9bot-Flasher wird ein G30 v1.1 Controller mit DRV Firmware 1.7.3 oder niedriger benötigt⚠️

Schritt 1 (Erstellen der Bootloader dumper DRV173)

Vanilla DRV173 (G30) downloaden und in 9bot-Flasher integrieren.
Bitte verwende, Anmelden oder Registrieren zum Anzeigen von URL-Inhalten!


In dieses Verzeichnis muss die Date rein:
Code:
Bitte verwende, Anmelden oder Registrieren um den Inhalt der Codes anzuzeigen!

Als nächstes 9bot-Flasher starten und als Controller (ESC) den G30 v1.1 auswählen. (1 drücken)

BTLDR_Step01.png


Danach wählen wir logischerweise "Dump AT32 Bootloader". (4 drücken)

BTLDR_Step01_b.png


Nun landen wir hier und wählen 1 für "create patched DRV173" aus damit 9bot-Flasher die vanilla DRV173 entsprechend patcht.

BTLDR_Step01_c.png


Im nächsten Fenster sehen wir das 9bot-Flasher die vanilla DRV173 die wir zuvor runtergeladen haben gefunden, und auf md5 Summe überprüft hat.
Wenn alles richtig ist, wird das mit der grün gefärbten md5 summe quittiert.
7000da123a7310d90cde2a10bf2029e4 (vanilla DRV173)

Gleich darauf folgt der Patchvorgang.
wenn auch dieser erfolgreich war wird es erneut durch eine grün gefärbte md5 summe signalisiert.
35e830b2e3562117eba1e71d3e24763e (patched DRV173)

BTLDR_Step01_d.png


Die fertige gepatchte DRV173_BTLD2RAM.bin Datei hat 9bot-Flasher im Hauptverzeichnis abgelegt.

BTLDR_Step01_e.png


Nun gehen wir auf die neue ScooterHacking zipv3 packer Seite um daraus eine zip Datei zum Flashen via SHU erstellen zu können.
Bitte verwende, Anmelden oder Registrieren zum Anzeigen von URL-Inhalten!

Hier geht ihr oben auf den "Durchsuchen" Button und wählt die zuvor erstellte DRV173_BTLD2RAM.bin aus.
Alle weiteren Einstellung genau so vornehmen wie in dem Bild und auf "Pack" klicken.

1674873430802.png


Die zip Datei die ihr nun bekommt, schiebt ihr am besten per USB auf euer Handy.
Auf dem Handy startet ihr die SHU (ScooterHacking utility) App,
verbindet euch mit dem G30 Scooter der den v1.1 Artery Controller hat und geht auf den Flashing Tab.
Dort angekommen wählt ihr die DRV173_BTLD2RAM.zip Datei unter "LOAD FROM FILE" aus und startet den Flashvorgang.

BTLDR_Step01_f.png


Schritt 2 (Controller ausbauen)

Um an den Controller zu kommen, muss nun die Bodenplatte des G30 abgeschraubt werden.
Diese ist mit 18 Sicherheits-Torx schrauben befestigt.
Um sie zu lösen wird ein 15er Bit Aufsatz benötigt.

Wenn die Bodenplatte erstmal ab ist, findet ihr den Controller im hinteren Teil des Trittbrett.
Dieser ist seitlich links und recht mit 2 inbus Schrauben befestigt.

Controller_ausbauen.png



Schritt 3 (Bootloader via ST-Link dumpen)

Ist der Controller erstmal ausgebaut, muss die schwarze Plastikabdeckung entfernt werden.
Sie ist mit 2 kleinen Clips links und rechts auf beiden Seiten befestigt.

ESC_Gehäuse.png


Wenn alles soweit vorbereitet ist, starten wir wieder den 9bot-Flasher.
Wir wählen wieder 1 für G30 v1.1 Controller aus, und 4 für "Dump AT32 Bootloader".
Nur im nächsten Schritt wählen wir diesmal [2] für "Dump Bootloader using ST-Link" aus.

BTLDR_Step03_a.png


Im nächsten Fenster sagt uns 9bot-Flasher nochmal das er gleich mit dem dumpen des Bootloader via ST-Link beginnen möchte.
Um das tun zu können, muss nun logischerweise der ST-Link angeschlossen werden.
Solltet ihr die Treber dafür noch nicht installiert haben, tut das jetzt.
( 9bot-Flasher_v1.0.1\Driver\ST-LINK_USB_V2_1_Driver\stlink_winusb_install.bat )

1674876863314.png


Die Stromversorgung (5v u. GND) sollttet ihr nun wie folgt an den 7 poligen Dashboard Connector anschließen.

Stromer.png


Nach dem bestätigen der Meldung in 9bot-Flasher beginnt der finale 30 Sekunden Countdown.
Diese Zeit kann nun genutzt werden um SWDIO und SWCLK an den Controller anzuschließen.

SWDIO-CLK.png


Wenn das erfolgreich war, signalisiert 9bot-Flasher es erneut mit einer grün gefärbten md5 summe.
d5324fa75fc3303578740ee85526811a (Artery Bootloader)

1674877773073.png


Der Bootloader wurde nun erfolgreich extrahiert und in "9bot-Flasher_v1.0.1\res\firmwares\AT32_BOOTLOADER.bin" abgelegt.
✅Fertig!
 
Zuletzt bearbeitet:

VooDooShamane

Moderator
Teammitglied
19 August 2021
2.693
5.711
E-Scooter
mi Pro2/9bot F2 Pro
In eigener Sache

Ja ich gebe zu es ist eine etwas merkwürdige Art sich zu bewerben.
Aber vielleicht mal etwas neues.
Ich möchte mein e-Scooter Hobby gerne zum Beruf machen und suche aktuell in Berlin eine geeignete Stelle.
Wenn ihr Betreiber oder Angestellter eines solchen Betrieb seid, könnt ihr mich gerne per privater Nachricht kontaktieren.
Dann können wir ganz in Ruhe alle Details besprechen.

Vielen dank fürs Lesen.
 

GeoBot

Moderator
Teammitglied
16 Juli 2021
2.264
3.197
Liebe zum Escooter
E-Scooter
G30D II, MAX G2
Telegram
@Geo_Bot_RP
Danke für deine großartige Arbeit und deine Zeit. Ich durfte diese im Hintergrund unterstützen, wofür ich dir sehr dankbar bin.
Das Tool funktioniert einwandfrei und gibt auch bereits eine kleine Vorschau, was demnächst damit noch möglich sein wird. Danke, danke, danke!!!!
 

LittlePsycho

Content-Creator
20 April 2022
1.700
1.566
E-Scooter
Möhre joyor s5 PRO
Ich habe keinen G30D, aber ich finds trotzdem Waaaaahnsinn 🤩🤩. Allein die Idee, an den Bootloader zu kommen, genial 👍👍

Bitte etwas ähnliches dann in Zukunft für die Xiaomi's in den MiDu-Flasher integrieren 😇😇😇😇
*duck&wegrenn* 🤣
Seh ich genau so....
Zack zack für Xiaomi.

*Olli warte auf mich... nicht so schnell rennen😁 *
 
30 Juli 2020
389
275
E-Scooter
Max G2D & G2 Master
VooDooShamane VooDooShamane Auch von mir an dieser Stelle, ganz großes Danke für Deine "Ehrenamtliche-" Arbeit für uns Rollerplauscher 💪 Drück Dir die Daumen das es klappt mit dem Traum-Job in Bärlin 👍
 
15 November 2022
49
10
E-Scooter
Xiaomi Mi Pro 2

Inhaltsverzeichnis

Vorstellung 9bot-Flasher

Anhang anzeigen 44299

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 zu erkennen welcher aktuell nur mit DRV187 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.

Anhang anzeigen 44301

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
Durch die automatische Fehlererkennung von Verbindungsabbrüchen wird der ST-Link Downgrade quasi zum Kinderspiel.
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
In der aktuellen Version (v1.0.1) des 9bot-Flasher wird vorerst nur der G30 v1.1 ESC unterstüzt.
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.1)
  • Downgrade (G30 v1.1 ESC / F-Serie v0.9 ESC)
  • Dump AT32 Bootloader (nur G30 ist aber F-Serie kompatibel)
  • Backup DRV Config (kommt im nächsten Update)
  • Write Flash (kommt im nächsten Update)
Downgrade
In den Downgrade-Vorgang habe ich verschiedenste kleine Kniffel und Tricks eingebaut.
Diese Schritte werden ausgeführt:
  1. Verbindung zum ESC aufbauen
  2. Dumpen der DRV Config
  3. Gedumpte DRV Config auswerten, abspeichern und anzeigen
  4. Flash-speicher zum schreiben vorbereiten (mass erase)
  5. AT32 Bootloader schreiben
  6. DRV Firmware schreiben
  7. Zuvor ausgelesene DRV Config zurück schreiben
9bot-Flasher überprüft bei jedem Schritt ob er auch erfolgreich war, und wiederholt diesen wenn z.b. ein Verbindungs-Fehler aufgetreten ist.
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.

Write Flash(aktuell in 9bot Flasher v1.0.1 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 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.
Wahnsinn!!!! Respekt 🔥👍
 
27 November 2022
20
17
Hannover
E-Scooter
F40 d 2 / G30 Max d2
VooDooShamane VooDooShamane :
Unglaublich was du für Arbeit machst und leistest. Da habe ich echt Respekt vor. Vielen Dank dafür!
Wenn ich es soweit richtig gelesen habe, werde ich - bzw. diejenigen mit einem F40, noch bis zum Update warten müssen.
Eine Frage habe ich an dieser Stelle.
Aktuell ist es ja noch so (wie in meinem Thread beschrieben -

Ninebot f40d II - SHU - Kompatibilität​

das mit dem Update der SHU App auf 2.1.1 mein F40 zwar gefunden wird, er aber nicht verbunden wird.
Und die SHU App brauche ich ja spätestens nach dem Einsatz des 9Bot Flashers...oder ist die Lösung hierfür auch im 9Bot Flasher enthalten?

An dieser Stelle noch einmal vielen Dank für deine Großartige Arbeit.
Es ist echt Spannend👍🏻
 

VooDooShamane

Moderator
Teammitglied
19 August 2021
2.693
5.711
E-Scooter
mi Pro2/9bot F2 Pro
Danke euch allen ❤️

Ich werde gleich noch die Schritt für Schritt Anleitung zum Bootloader dumpen und Downgraden schreiben.
Hatte gestern leider keine Zeit mehr.
Damit werden dann auch alle Fragen die S Schranzpanz hatte beantwortet.
Die 2 Beiträge von ihm werde ich dann löschen da sie nur durch fehlende Kenntnis/Anleitung wie man vorgehen sollte entstanden sind.

Wenn ich es soweit richtig gelesen habe, werde ich - bzw. diejenigen mit einem F40, noch bis zum Update warten müssen.
Das einzige Problem ist leider wie gesagt das es noch keine Artery kompatible DRV Firmware für die F-Serie online zu finden gibt.

das mit dem Update der SHU App auf 2.1.1 mein F40 zwar gefunden wird, er aber nicht verbunden wird.
Und die SHU App brauche ich ja spätestens nach dem Einsatz des 9Bot Flashers...oder ist die Lösung hierfür auch im 9Bot Flasher enthalten?
Ja final wäre es natürlich schon wünschenswert das du dich per SHU verbinden und auch flashen kannst.
Allerdings wäre es durchaus möglich auf den Controller auch per 9bot-Flasher einfach eine modifizierte DRV drauf zu flashen und so das "Dashboard Problem" zu umgehen.


EDIT:
AT32 Bootloader dumpen



Schritt 1 (Erstellen der Bootloader dumper DRV173)

Vanilla DRV173 (G30) downloaden und in 9bot-Flasher integrieren.
Bitte verwende, Anmelden oder Registrieren zum Anzeigen von URL-Inhalten!


In dieses Verzeichnis muss die Date rein:
Code:
Bitte verwende, Anmelden oder Registrieren um den Inhalt der Codes anzuzeigen!

Als nächstes 9bot-Flasher starten und als Controller (ESC) den G30 v1.1 auswählen. (1 drücken)

Anhang anzeigen 44337

Danach wählen wir logischerweise "Dump AT32 Bootloader". (4 drücken)

Anhang anzeigen 44338

Nun landen wir hier und wählen 1 für "create patched DRV173" aus damit 9bot-Flasher die vanilla DRV173 entsprechend patcht.

Anhang anzeigen 44339

Im nächsten Fenster sehen wir das 9bot-Flasher die vanilla DRV173 die wir zuvor in runtergeladen haben gefunden, und auf md5 Summe überprüft hat.
Wenn alles richtig ist, wird das mit der grün gefärbten md5 summe quittiert.
7000da123a7310d90cde2a10bf2029e4 (vanilla DRV173)

Gleich darauf folgt der Patchvorgang.
wenn auch dieser erfolgreich war wird es erneut durch eine grün gefärbte md5 summe signalisiert.
35e830b2e3562117eba1e71d3e24763e (patched DRV173)

Anhang anzeigen 44340

Die fertige gepatchte DRV173_BTLD2RAM.bin Datei hat 9bot-Flasher im Hauptverzeichnis abgelegt.

Anhang anzeigen 44342

Nun gehen wir auf die neue ScooterHacking Seite um daraus eine zip Datei zum Flashen via SHU erstellen können.
Bitte verwende, Anmelden oder Registrieren zum Anzeigen von URL-Inhalten!

Hier geht ihr oben auf den "Durchsuchen" Button und wählt die zuvor erstellte DRV173_BTLD2RAM.bin aus.
Alle weiteren Einstellung genau so vornehmen wie in dem Bild und auf "Pack" klicken.

Anhang anzeigen 44343

Die zip Datei die ihr nun bekommt schiebt ihr am besten per USB auf euer Handy.
Auf dem Handy startet ihr die SHU (ScooterHacking utility) App,
verbindet euch mit dem G30 der den v1.1 Artery Controller hat und geht auf den Flashing Tab.
Dort angekommen wählt ihr die DRV173_BTLD2RAM.zip Datei unter "LOAD FROM FILE" aus und startet den Flashvorgang.

Anhang anzeigen 44344

Schritt 2 (Controller ausbauen)

Um an den Controller zu kommen muss nun die Bodenplatte des G30 abgeschraubt werden.
Der ist mit 18 Sicherheits-Torx schrauben befestigt.
Um diese zu lösen braucht ihr einen 15er Bit Aufsatz.

Wenn die Bodenplatte erstmal ab ist, findet ihr den Controller im hinteren Teil des Trittbrett.
Dieser ist seitlich links und recht mit 2 inbus Schrauben befestigt.

Anhang anzeigen 44345


Schritt 3 (Bootloade via ST-Link dumpen)

Ist der Controller erstmal ausgebaut, muss die schwarze Plastikabdeckung entfernt werden.
Diese ist mit 2 kleinen Clips links und rechts befestigt.

Anhang anzeigen 44348

Wenn alles soweit vorbereitet ist, starten wir wieder den 9bot-Flasher.
Wir wählen wieder 1 für G30 v1.1 Controller aus und 4 für "Dump AT32 Bootloader".
Nur im nächsten Schritt wählen wir nun 2 für "Dump Bootloader using ST-Link".

Anhang anzeigen 44349

Im nächsten Fenster sagt uns 9bot-Flasher nochmal das er gleich mit dem dumpen des Bootloader via ST-Link beginnen möchte.
Um das tun zu können muss nun logischerweise der ST-Link angeschlossen werden.
Solltet ihr die Treber dafür noch nicht installiert haben, tut das jetzt.
( 9bot-Flasher_v1.0.1\Driver\ST-LINK_USB_V2_1_Driver\stlink_winusb_install.bat )

Anhang anzeigen 44350

Die Stromversorgung (5v u. GND) sollttet ihr nun wie folgt an den 7 poligen Dashboard Connector anschließen.

Anhang anzeigen 44351

Nach dem bestätigen der Meldung in 9bot-Flasher beginnt der finale 30 Sekunden Countdown.
Diese Zeit kann nun genutzt werden um SWDIO und SWCLK an den Controller anzuschließen.

Anhang anzeigen 44352

Wenn das erfolgreich war signalisiert 9bot-Flasher es erneut mit der grün gefärbten md5 summe.
d5324fa75fc3303578740ee85526811a (Artery Bootloader)

Anhang anzeigen 44353

Der Bootloader wurde nun erfolgreich extrahiert und in "9bot-Flasher_v1.0.1\res\firmwares\AT32_BOOTLOADER.bin" abgelegt.
Fertig!
Bootloader dump Anleitung hinzugefügt.⬆️
Wenn jemand den Bootloader hier anonym verlinkt, nehme ich den Link mit in den ersten Post auf. ;)
(bitte nicht als Anhang im Forum hochladen)

PS:
Hab mal ein paar Beiträge die durch das fehlen der Bootloader dump Anleitung entstanden sind entfernt.
 
Zuletzt bearbeitet:

Olli_69

Content-Creator
21 Juli 2021
5.955
5.764
E-Scooter
Xiaomi Pro 2
Allerdings wäre es durchaus möglich auf den Controller auch per 9bot-Flasher einfach eine modifizierte DRV drauf zu flashen und so das "Dashboard Problem" zu umgehen.
Da fällt mir grad ein, dass ich schon oft gedacht habe, wie schwer es für jemanden ist, der sich nicht so gut auskennt, gleich seine Wunsch-DRV per ST-Link flashen zu können.

Irgendwie gibt's da weder bei Ninebot noch Xiaomi so eine einfache Lösung, wie es dein MiDu-Flasher für die BLE anbietet-Datei in den vorgegebenen Ordner, flashen, zack, fertig 😊
 
  • Hilfreich!
Reaktionen: VooDooShamane

GeoBot

Moderator
Teammitglied
16 Juli 2021
2.264
3.197
Liebe zum Escooter
E-Scooter
G30D II, MAX G2
Telegram
@Geo_Bot_RP
Ganz genau so ist es. Der Speicher des Microchips wird dabei zuerst komplett gelöscht und dann mit den neuen Daten beschrieben. Ganz egal ob da eine falsche Firmware drauf war oder eine hohe Version einer DRV.
 
  • Hilfreich!
Reaktionen: VooDooShamane
18 Dezember 2022
2
0
E-Scooter
G30D2/48v
Ganz genau so ist es. Der Speicher des Microchips wird dabei zuerst komplett gelöscht und dann mit den neuen Daten beschrieben. Ganz egal ob da eine falsche Firmware drauf war oder eine hohe Version einer DRV.
Ok danke. Ich dachte das nur weil das Programm mich nach einem AT32 Bootloader gefragt hat, wenn ich downgraden will. Aber in der Anleitung steht, dass man DRV173 (ich habe 183) oder niedriger braucht um den Bootloader zu dumpen. Was genau verstehe ich da falsch? Danke schonmal im voraus.
 

GeoBot

Moderator
Teammitglied
16 Juli 2021
2.264
3.197
Liebe zum Escooter
E-Scooter
G30D II, MAX G2
Telegram
@Geo_Bot_RP
Ok danke. Ich dachte das nur weil das Programm mich nach einem AT32 Bootloader gefragt hat, wenn ich downgraden will. Aber in der Anleitung steht, dass man DRV173 (ich habe 183) oder niedriger braucht um den Bootloader zu dumpen. Was genau verstehe ich da falsch? Danke schonmal im voraus.
Lies die überaus gute und detaillierte Anleitung. Dann verstehst du sicherlich, wozu du die DRV1.7.3 benötigst. Du benötigst in jedem Fall einen ESC, bei dem man die gepatchte DRV1.7.3 noch per SHU flashen kann, also <DRV1.7.3. Der Bootloader funktioniert dann universell auf allen AT32-ESC's mit identischem Chip.