RP ✔️ Neuer Controller V3.1 bei aktuellen Xiaomi Rollern: Brickgefahr bei DRV Downgrade / Vorgehen

Status
Für weitere Antworten geschlossen.
Hallo, steige da nicht so ganz durch. Mein Arbeitskollege hat einen Pro2, haben bereits ein altes Dashboard verbaut. Ist der Roller nun flashbar? Ist dies mit SHU bereits möglich? Oder muss der Controller per ST Link gedowngraded werden?
Das ist kein "altes" Dashboard, sondern ein Clone Board, erkennbar an der nicht originalen BLE 9.1.0.

ALLES weitere dazu ist hier nachzulesen:

 
  • Hilfreich!
Reaktionen: Rockaflo und GeoBot
I'm trying to flash my Pro 2 with 3.1 controller and nextgen FW. After following the VLT instructions and downloading the DRV247, pasting Xiaotea etc. I am unable to create a file in the nextgen FW.

When I try, I get the following message: "Some of the patches could not be applied. Please select an unmodified input file."

What am I doing wrong?
 
Alle Xiaomi Roller, die nach Dezember 2021 produziert worden sind, kommen mit der neuen Controller (ESC) Version 3.1.
Diese Controller Version besitzt einen anderen Mikrocontroller, wie in diesem Thread gezeigt. Vielen Dank an leelt für die dort bereitgestellten Informationen.

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

Achtung: Bespielt/Flasht man diesen Controller mit älteren Firmware Dateien, also macht z.B. ein DRV Downgrade, dann führt das unweigerlich zum BRICK!
Anhang anzeigen 17113
Update 06.01.23: Das neue open-source , welches in neuen SHU Versionen bereits zum Einsatz kommt, garantiert, dass nur Firmware Dateien aufgespielt werden können, die zum jeweiligen Controller gehören. Um einen Brick zu verhindern, empfiehlt sich daher das Flashen mit einer neuen SHU Version (wie z.B. 2.1.1) - und nicht das Legacy Zip Format zu verwenden!

Der neue Controller wird mit zwei unterschiedlichen MCUs geliefert und je nach MCU ist der Brick mehr oder weniger tragisch: Bei Controller mit GD32E MCU (Typ 1) erhält man nach dem Flashversuch abwechselnd die Fehler 27 und 35. Der Controller lässt sich dann nur noch per ST-Link über ein spezielles gd32rec Skript retten (siehe Abschnitt unten). Bei Controllern mit GD32F MCU (Typ 2) gibt es keinen irreversiblen Brick, sondern lediglich ein Fehlverhalten vom Dashboard / ESC (z.B. Roller schaltet sich automatisch wieder ein), was sich aber durch ein Flashen der aktuellen DRVs beheben lässt.

Update 27.06.22: Neben dem ESC kommt auch das BMS Board inzwischen mit einer neuen MCU (Cortex-M statt STM8L), Infos dazu siehe hier. Ist die BMS Version vierstellig, so darf diese nicht gedowngraded werden, ansonsten wird es zu einem BMS Brick kommen!

Neuen Roller gekauft: Aktivieren
Um die Authenzität des Rollers in der deutschen Region sicherzustellen, ist die Erstverbindung des Rollers mit der offiziellen MiHome App notwendig. D.h. den Roller auswählen und verbinden: sobald der Roller erfolgreich in der App angelegt wurde, ist die Erstverbindung abgeschlossen und die Funktion des Rollers mit der offiziellen MiHome App sichergestellt.

Die Aktivierung des Rollers kann nun wahlweise per MiHome App oder durch Drittanbieter Apps wie m365 downG oder SHU durchgeführt werden (der Vorgang unterscheidet sich nicht). Da inzwischen alle Roller mit der aktuellen Firmware ausgeliefert werden, spielt das keine Rolle und man aktiviert den Roller wie gewohnt in der MiHome App.

Die MiHome App kann nach der Erstverbindung / Aktivierung wieder deinstalliert werden. Bitte vorher drauf achten, den Roller aus dem Account zu löschen, für den Fall, dass man das Passwort vergisst oder falls jemand anders den Roller später übernimmt. Es geht bei der Aktivierung nicht darum, den Roller am Account gebunden zu haben, sondern den Aktivierungsschlüssel zwischen Xiaomi Server und Roller zu synchronisieren.

Hintergrund: Der Roller bekommt von der MiHome App einen einizartigen Aktivierungsschlüssel ("BLTID") zugewiesen, der beim Registrieren auf Xiaomi Servern hinterlegt wird und anhand dessen die Authenzität des Roller geprüft werden kann. Verbindet man den Roller nicht zuerst über die offizielle App, so lässt sich der Roller später nicht mehr mit dieser verbinden (Fehler -28 / -29). Damit die Verbindung mit der MiHome App wieder klappt und um den Auslieferungszustand wiederherzustellen, müssen dann extra Schritte unternommen werden.
--> Anleitung: Fehler -28 / -29 beheben

Controller Version feststellen
Wer die DRV flashen möchte, sich aber keinen Brick holen will, kann wiefolgt vorgehen:
  1. Die App "m365 downG" downloaden, dort unter Tools die UUID nachschauen
    1. Enthält die UUID nicht die Zeichen FF, handelt es sich um den neuen Controller: Flashen von alter DRV* führt zu Brick!!
    2. Enthält die UUID die Zeichen FF, handelt es sich um den alten Controller: Flashen unproblematisch
  2. Weiterhin im Hauptfenster von downG die BLE Version nachschauen
    1. BLE Version >= 155: Flashen von CFW ist blockiert (ECDSA PK Kryptographie)
    2. BLE Version < 155: Flashen der DRV möglich**
  3. Zuletzt in downG die BMS Version prüfen:
    1. BMS Version >= 1000: BMS Downgrade führt zu Brick!
    2. BMS Version < 1000: BMS Downgrade unproblematisch
*: Nur alte DRVs sind inkompatibel, neuere DRVs funktionieren einwandfrei. Mehr dazu im nächsten Abschnitt.
**: Bei neueren DRVs, z.B. DRV016 (=DRV316 in downG) beim Mi3, wird das Flashen durch die dahingehend blockiert, dass nur DRVs mit der korrekten Scooter Kennung geflasht werden können. Um eine CFW zu flashen, kann z.B. zuerst eine ältere Vanilla DRV geflasht werden, sofern diese die o.g. Kriterien erfüllt und nicht zum Brick führt. Die öffentliche Version der m365 Plus App bietet Möglichkeiten für höhere DRV Versionen.

Controller Version / Typ herausfinden
Die HomeMi bzw. m365 Plus App kann genutzt werden, um den genauen Controller-Typ herauszufinden (siehe "Details zum Controller"). Das Öffnen des Rollers, um die Beschriftung auf dem Controller abzulesen ist damit vollkommen unnötig. Die App ist außerdem für diejenigen interessant, die die grundsätzlichen Roller Funktionen steuern, aber die offizielle App nicht nutzen möchten (Datenschutz, Updates, etc.).

Lässt sich Controller V3.1 flashen?
Ja! Egal welcher Controller drin ist, man kann in jedem Fall eine aktuelle DRV flashen - auf die Roller bezogen können also DRVs ab folgenden Versionsnummern geflasht werden:
  • 1S: min. DRV319
  • Pro2: min. DRV247
  • Lite/Essential: min. DRV242
  • Mi3: min. DRV015
Alle Versionen, die darunter liegen, führen zu Problemen (Typ 2: GD32F) oder gar zum Brick (Typ 1: GD32E).

Welche CFWs gibt es für Controller V3.1?
Derzeit verfügbare CFWs für den Controller V3.1 sind:
Bemerkenswert: Zum aktuellen Zeitpunkt ist keine andere CFW ist mit dem neuen Controller kompatibel, auch nicht XiaoDash! Mods / Offsets für diese DRVs habe ich im März zuerst im VLT Thread veröffentlicht. Damit ist VLT die erste CFW, die mit dem neuen Controller funktioniert hat, gefolgt von NGFW.
Wahrscheinlich ist, dass die SHFW bald ebenso für den Controller V3.1 verfügbar ist: diese wird auf Basis der DRV247 aufgesetzt mit erweiterter Größe auf 128kB.

Controller V3.1 nach einem Brick retten
Zunächst muss man herausfinden, welchen Controller Typ man hat. Dafür muss entweder die Beschriftung auf dem Chip untersucht werden oder alternativ nutzt man hierfür die HomeMi bzw. m365 Plus App.

Besitzer des Controller Typ 1 (GD32E) müssen zur Wiederherstellung über ST-Link flashen. Dafür kann man das von Conejo am 23.5. veröffentlichte Programm "gd32rec" nutzen. Dieses ist ursprünglich für den Mi3 gedacht, kann aber leicht für den Pro2 (DRV247) / 1S (DRV319) angepasst werden.
--> Anleitung: "gd32rec"

Besitzer des Controller Typ 2 (GD32F) können zur Wiederherstellung ebenfalls gd32rec nutzen, aber in diesem Fall kann die aktuelle DRV auch über SHU oder downG geflasht werden! Denn: Das Flashen über Bluetooth funktioniert bei diesem Controller Typ 2 (GD32F) in der Regel noch, bei Controller Typ 1 (GD32E) aber nicht.

Update 15.08.
(Ungetestet) Eventuell ist es möglich, den Controller auch ohne ST-Link zu retten. Die Methode wurde erstmalig hier von hydrocoter veröffentlicht. Dafür wird ein USB-UART Adapter und das benötigt.

Details zum Controller / Chip (MCU)
Alle Xiaomi Controller bis einschließlich V3.0 verwenden die STM32F103CBT6 MCU. Beim Controller V3.1 wird die GD32E103CBT6 MCU eingesetzt.
Update 11-06-2022: Die Firmware kennt noch eine zweite neue MCU, diese wurde hier als GD32F103CBT6 identifiziert (Danke an VooDooShamane VooDooShamane für das Teilen der Info) und hier bestätigt (Danke an Donthorto).

Hauptunterschied ist ein anderer Prozessor mit anderer Taktrate und die RAM-Größe.
TypMCUProzessorTaktrateFlashRAMPreis p. Stück (ca.)
0STM32F103CBT6ARM Cortex-M372 mHz128 kB20 kB> 5 USD
1GD32E103CBT6ARM Cortex-M4108 mHz128 kB32 kB2-3 USD
2GD32F103CBT6ARM Cortex-M3108 mHz128 kB32 kB2-3 USD

Laut sind alle Chips untereinander PIN-kompatibel, d.h. man kann den einen Chip durch den anderen Austauschen ohne etwas am PCB Layout zu verändern. Der ARM Cortex-M4 unterstützt alle ARM Cortex-M3 Instruktionen, beide nutzen dieselbe ARMV7M Architektur. Einziger Unterschied ist, dass der Cortex-M4 Kern eine DSP (Digital Signal Prozessing) Erweiterung und eine zusätzliche FPU (Floating Point Unit) an Bord hat - Infos siehe .

Im ARM Compiler (armcc) lässt sich , mit welchen Kernen / Architekturen die Firmware kompatibel sein soll, d.h. es wird beim Zeitpunkt der Erstellung der Firmware festgelegt, ob Cortex-M3 oder Cortex-M4 oder beides unterstützt werden soll.

(Meine Annahme: Die DRV321 bzw. DRV248 wurde mit Cortex-M3 und Cortex-M4 (neuer Chip) Kompatibilität kompiliert, die Firmwares davor allerdings nur für Cortex-M3! Das würde erklären, wieso keine separaten Firmware Files über die offizielle App verteilt werden: die App prüft, so hatte ich nach langer Recherche herausgefunden, für den Abruf der Files lediglich das Modell (1S, Pro2, ...), welches über eine Produkt Kennung (pid) in den Service Daten des BLE hinterlegt ist.) --> Inzwischen bestätigt

Zusammenfassung
Anhang anzeigen 18031
(Gerne teilen, feel free to share!)


Update 16.05.
Es sollte möglich sein anhand der UID / UUID zu prüfen, ob es sich um einen V3.1 Controller handelt. Enthält die UID nicht die Zeichen FF, ist dies ein Hinweis auf den neuen GD32 Chip! Um die UID auszulesen, kann man entweder downG oder SHU nutzen. In downG geht man dafür auf Tools und bekommt dann die "UUID" direkt angezeigt. In SHU muss man auf das Menü oben rechts und dann "Copy UID" anklicken und diese dann irgendwo hinkopieren.
Dies aber bitte aufgrund fehlender Daten nicht als einiziges Indiz nutzen, stattdessen wie hier beschrieben physisch kontrollieren, ob der V3.1 Controller verbaut ist, bevor geflasht wird!

Update 25.05.
Erste Bestätigung
der Korellation UID und Controller Version dank Pepe_DVC von Seiten der spanischen Roller Community. Kommentar: In Spanien sind vor allem die "Mi Essential" (Lite) Modelle betroffen, es werden also mit Sicherheit nicht nur die Pro2 Modelle mit dem neuen Controller ausgestattet. Es ist zu erwarten, dass alle Xiaomi Roller mit Produktionsdatum 2022 den neuen Controller besitzen. Den Titel des Threads habe ich vorsorglich angepasst.

Update 05.06
Infos zum Controller und Firmware sowie Flow-Chart hinzugefügt.

Update 07.06
GD32 Dump inkl. Unlock Skript wurde von Conejo am 23.5. im XiaoDash Kanal veröffentlicht. Recovery ist damit nun möglich!

Update 09.06
Eindeutige Feststellung des Controller Typen per App.

Update 11.06
Infos zur zweiten Variante.

Update 24.06
Beide MCU Typen sind kompatibel mit der DRV247 (wie eingangs angenommen), danke leelt und Ignatius für die Bestätigung!

Update 27.06
Release Tutorial zur Wiederherstellung von gebricktem Xiaomi Mi3, Pro2, 1S, Lite

Update 06.07
Release NextGen Firmware: erste Firmware weltweit mit Unterstützung von V3.1 Controller für alle Xiaomi Roller

Update 22.07
Hinweise und Anleitung zur Aktivierung hinzugefügt
Hallo

SH kann CFW flashen :( er startet, und nach ca. 2% bricht er es am - Controller Hardware 3.1 GD32F im SH und in downG zeigt eine DRV von 317 an

falls jemand ne Idee bzw. n Weg weiß - immer raus damit =)

Grüße Jörg
 

Anhänge

  • 1688081968894.webp
    1688081968894.webp
    34,5 KB · Aufrufe: 90
  • 1688081968901.webp
    1688081968901.webp
    27 KB · Aufrufe: 63
  • 1688081968915.webp
    1688081968915.webp
    28,7 KB · Aufrufe: 77
  • Screenshot_2023-06-29-23-44-08-797_sh.cfw.utility.webp
    Screenshot_2023-06-29-23-44-08-797_sh.cfw.utility.webp
    29,1 KB · Aufrufe: 97
Habe zwar nen Mi3, aber die selbe DRV 317 drauf gehabt. Bei mir wars das gleiche Problem. Musste vorher die DRV 016 über die M365Plus App als Zwischenschritt flashen, bevor er eine andere DRV akzeptiert hat. Kann sein, dass das bei dir auch so ist. Aber warte lieber mal, was die Profis dazu sagen, bevor du das machst.
 
Hi Leute,

ich habe mich vor ein paar Tagen hier angemeldet nach dem ich mit gefährlichem Halbwissen meinen Controller 3.1 gebrickt hatte. Heute habe ich dann nach etwa 8 Stunden wieder einen fahrbaren Roller. Hierfür erstmal ein herzliches Dankeschön an nandtek. Ich konnte den Controller retten und mit dem NextGen FW den Roller doch so modifizieren wie ich es mir gewünscht hatte. Nur zwei Problem sind neu und die bekomme ich irgendwie nicht behoben einmal die Fehlermeldung 42. und das piepen ab erreichen der neuen Höchstgeschwindigkeit. Ein eher nicht so wichtiger Punkt ist, dass der KM Stand sich verändert hat. Kann diese Information wieder einpflegen?

Habt Ihr zu diesen beiden Problemen Lösungsvorschläge?

Hier die Rollerdaten:
Xiaomi Scooter Mi3
BLE: 1.5.2
DRV: GD32E | 0.1.6
BMS: 1.1.0.2
 
Herzlich willkommen im RollerPlausch Showdown58 Showdown58

Schön das du deinen Controller wieder hin bekommen hast.
Die Informationen hier in diesem Thread von NandTek der mittlerweile hier leider auch gebannt ist sind aber leider sehr veraltet.
Ja, sie funktionieren noch, aber es gibt mittlerweile wesentlich bessere und effektivere Wege um die neuen v3.1 Controller zu ST-Linken.
Unter anderem die neue Version des Reflasher von Scooterhacking.org.
Ich würde dir jetzt empfehlen via eine BLE134 von einem 1s auf dein Dashboard zu flashen.
Damit solltest du den Fehler 42 Los werden.

Wenn das erledigt ist, kannst du entweder eine VLT-Firmware auf deinen Controller flashen oder du nimmst die neue SHFW.
VLT-Firmware findest du hier:
Die SHFW (ScooterHacking Firmware) hier:

Wünsche weiterhin noch viel Spaß beim stöbern hier bei uns im RP Forum und anschließendem tunen deines Scooter.(y)
 
Herzlich willkommen im RollerPlausch Showdown58 Showdown58

Schön das du deinen Controller wieder hin bekommen hast.
Die Informationen hier in diesem Thread von NandTek der mittlerweile hier leider auch gebannt ist sind aber leider sehr veraltet.
Ja, sie funktionieren noch, aber es gibt mittlerweile wesentlich bessere und effektivere Wege um die neuen v3.1 Controller zu ST-Linken.
Unter anderem die neue Version des Reflasher von Scooterhacking.org.
Ich würde dir jetzt empfehlen via eine BLE134 von einem 1s auf dein Dashboard zu flashen.
Damit solltest du den Fehler 42 Los werden.

Wenn das erledigt ist, kannst du entweder eine VLT-Firmware auf deinen Controller flashen oder du nimmst die neue SHFW.
VLT-Firmware findest du hier:
Die SHFW (ScooterHacking Firmware) hier:

Wünsche weiterhin noch viel Spaß beim stöbern hier bei uns im RP Forum und anschließendem tunen deines Scooter.(y)
Vielen Dank für die Rückmeldung.
Mit dem BLE-Flash ist die Fehlermeldung verschwunden. Danke.
Sobald ich die aktuelle SHFW flashe, bleibt der Scooter jedoch im Lademodus hängen und Zeigt auf dem Dashboard nur den Akkustand an.
 
Das ist nicht korrekt. Lies bitte die Anleitung zur SHFW.
 
Naja leider finde ich den Fehler nicht. Ich habe jetzt die BLE aus dem Post von VoodooShamane und eine NGFW für die Mi 3 erstellt. So tut der Roller erst einmal was er soll. Auch wenn SHFW wirklich interessante Zusatzfunktionen liefert die ich gerne ausprobieren wollen würde.
 
Das ist nicht korrekt. Lies bitte die Anleitung zur SHFW.
Hat alles geklappt. War einfach zu lange mit dem Roller beschäftigt. Danke nochmal :)
 
Status
Für weitere Antworten geschlossen.