RP ✔️ MiDu-Flasher 🔌 ST-Link Downgrade & Unbrick

Moin zusammen dank der Hilfe von Olli_69 und VooDooshamane läuft das Dashboard wieder. 👍
Jetzt ne andere Frage bezüglich 1S. Das Board hat auch einen 3.0 Controller. Kann man da auch die 3.19 drv Flashen oder ist diese nur mit 3.1 kompatibel ?
Jetziger Stand:
BLE 1.57
DRV 321
Auch den Flash mit m365plus durchführen BLE und DRV?
 
Klar, die neuen Firmware sind abwärtskompatibel, nur umgekehrt gehts nicht, also alte Firmware auf neuen Controller ist pfui 😇
 
Hey Leute, ich bin am überlegen mir einen Xaiomi 1S zu kaufen und würde den natürlich gerne mit cfw versehen.
Ich hab jetzt versucht mich da viel drüber zu erkundigen, aber ich finde das als einsteiger in das Thema doch alles sehr verwirrend und viele widersprüchliche Infos die aber wahrscheinlich am alter der ganzen threads liegen.

Bin über viele Threads jetzt hier bei diesem gelandet und wollte mich jetzt einmal versichern das ich das richtig verstehe. Kann ich mit diesem midu flasher alle aktuellen Firmwares mit cfw flashen (beim Xiaomi 1S) oder gibt es da beschränkungen oder bestimmte vorraussetzungen? Ich würde mir einen neuen 1S kaufen und da weiß ich natürlich im vorraus nicht welche Firmware dort drauf ist, ich vermute jetzt einmal mal die aller letzte wird dort ausgeliefert.

Der letzte Thread den ich gelesen hatte war über einen backup/dump wo der Chip sich aber selber löscht, thread war schon geschlossen, kann man hiermit dann auch ein vollständiges Backup erstellen bevor man etwas flashed? Der thread hat mich da aber etwas verunsichert ob das jetzt bei diesen neuen Chips garnicht mehr möglich ist. weder backup noch flashen.
 
Hey Leute, ich bin am überlegen mir einen Xaiomi 1S zu kaufen und würde den natürlich gerne mit cfw versehen.
Ich hab jetzt versucht mich da viel drüber zu erkundigen, aber ich finde das als einsteiger in das Thema doch alles sehr verwirrend und viele widersprüchliche Infos die aber wahrscheinlich am alter der ganzen threads liegen.

Bin über viele Threads jetzt hier bei diesem gelandet und wollte mich jetzt einmal versichern das ich das richtig verstehe. Kann ich mit diesem midu flasher alle aktuellen Firmwares mit cfw flashen (beim Xiaomi 1S) oder gibt es da beschränkungen oder bestimmte vorraussetzungen? Ich würde mir einen neuen 1S kaufen und da weiß ich natürlich im vorraus nicht welche Firmware dort drauf ist, ich vermute jetzt einmal mal die aller letzte wird dort ausgeliefert.

Der letzte Thread den ich gelesen hatte war über einen backup/dump wo der Chip sich aber selber löscht, thread war schon geschlossen, kann man hiermit dann auch ein vollständiges Backup erstellen bevor man etwas flashed? Der thread hat mich da aber etwas verunsichert ob das jetzt bei diesen neuen Chips garnicht mehr möglich ist. weder backup noch flashen.
Entweder bin ich zu doof oder ich kann den Beitrag nicht mehr editieren, also zitier ich mich mal selbst.
Ich wollte einmal schildern wie ich es aktuell verstanden habe, vllt kann das ja jemand bestätigen oder korrigieren.

1. Mit dem midu flasher in verbindung mit dem ST-Link kann man alle Firmware und Chip varianten Flashen bzw. downgraden und dann flashen. auch firmware 1.5.x und neuer.
Ohne den ST-Link kann man nur flashen wenn es vor firmware 1.5.x ist, was bei neuen rollern nicht der fall sein wird da sie alle neuer sind. Backups sollten dann denke ich auch funktionieren.

2. Alternative kann man ohne ST-Link nur flashen wenn man ein Clone Display kauft, kann da aber sein das man ein falschen chip erwischt und trotzdem den ST-Link braucht zum Downgraden oder ein anderes clone Display kaufen muss.

Wenn option 1 korrekt ist sehe ich an dieser Lösung kein nachteil zumal der ST-Link nur rund 10€ kostet. Warum sollte man dann für bis zu 30€ ein Clone display kaufen??? Da muss doch etwas sein was ich noch nicht verstehe oder?
 
Entweder bin ich zu doof oder ich kann den Beitrag nicht mehr editieren, also zitier ich mich mal selbst.
Ich wollte einmal schildern wie ich es aktuell verstanden habe, vllt kann das ja jemand bestätigen oder korrigieren.

1. Mit dem midu flasher in verbindung mit dem ST-Link kann man alle Firmware und Chip varianten Flashen bzw. downgraden und dann flashen. auch firmware 1.5.x und neuer.
Ohne den ST-Link kann man nur flashen wenn es vor firmware 1.5.x ist, was bei neuen rollern nicht der fall sein wird da sie alle neuer sind. Backups sollten dann denke ich auch funktionieren.

2. Alternative kann man ohne ST-Link nur flashen wenn man ein Clone Display kauft, kann da aber sein das man ein falschen chip erwischt und trotzdem den ST-Link braucht zum Downgraden oder ein anderes clone Display kaufen muss.

Wenn option 1 korrekt ist sehe ich an dieser Lösung kein nachteil zumal der ST-Link nur rund 10€ kostet. Warum sollte man dann für bis zu 30€ ein Clone display kaufen??? Da muss doch etwas sein was ich noch nicht verstehe oder?
Erst einmal verwechselst du Firmware (DRV) mit BLE (Bluetooth).

Die BLE verhindert ab Version 155 ein Flashen der Firmware =DRV und muss mit ST-Link auf eine ältere Version gebracht werden. Danach kann man erst per App eine neue Firmware flashen.

Von einem Dump/Backup bei Xiaomi habe ich noch nie etwas gehört, das scheinst Du mit Ninebot zu verwechseln.

Da viele such nicht an den MiDu-Flasher rantrauen und auch das Dashboard nicht zu quasi "unbekannten Leuten" schicken möchten (Vertrauen muss man schon haben), weichen diese auf ein Clone Dashboard aus in der Meinung, daß es einfacher ist - aber vergessen oder nicht wissen, dass diese noch mehr Probleme machen können. Nicht jeder liest so fleißig mit wie du 👍
 
  • Hilfreich!
Reaktionen: xF4m3
Erst einmal verwechselst du Firmware (DRV) mit BLE (Bluetooth).

Die BLE verhindert ab Version 155 ein Flashen der Firmware =DRV und muss mit ST-Link auf eine ältere Version gebracht werden. Danach kann man erst per App eine neue Firmware flashen.

Von einem Dump/Backup bei Xiaomi habe ich noch nie etwas gehört, das scheinst Du mit Ninebot zu verwechseln.

Da viele such nicht an den MiDu-Flasher rantrauen und auch das Dashboard nicht zu quasi "unbekannten Leuten" schicken möchten (Vertrauen muss man schon haben), weichen diese auf ein Clone Dashboard aus in der Meinung, daß es einfacher ist - aber vergessen oder nicht wissen, dass diese noch mehr Probleme machen können. Nicht jeder liest so fleißig mit wie du 👍
Ja sich die ganzen abkürzungen in einem neuen Thema zu merken ist nicht so einfach :D
Aber die Firmware auf dem Display (BLE) ist doch trotzdem eine Firmware richtig? Nicht die Firmware von der Hauptplatine, aber die des Displays (nur zum verständniss).
DRV ist dann die Abkürzung/Name für die Firmware auf der Hauptplatine. Ich werde versuchen das in Zukunft alles richtig zu benennen :D

Das ist gut zu wissen, das es keine Backups bei Xiaomi's gibt, ich hatte das jetzt angenommen, weil es in einem Thread erwähnt wurde (kann sehr gut sein das es um Ninebot ging) und ich das aus anderen Foren bzgl. Flashen von Handy/Tablet Firmware so kenne das man erstmal alles sichert. Better Safe then sorry :D

Stimmt da hab ich natürlich nicht so richtig dran gedacht das es dem ein oder anderen doch etwas angst macht wenn es um das flashen geht, gerade wenn man dafür Hardware braucht. Also gibt es da keinen Hacken, sondern es ist wirklich einfach günstiger direkt mit dem ST-Link an die Sache zu gehen.

Eine Frage habe ich noch zu dem ganzen was ich nicht ganz verstehe, und zwar muss ein neuer Scooter erstmal über die offizielle "Mi Home App" (glaube das war der name) Freigeschaltet werden, allerdings gibt es ja da das zwangs update und etwas mit Drosselung. Sollte bei einem neuen Scooter mit der (sehr wahrscheinlich) neusten Firmware von BLE/DRV/BMS bereits installiert sein, bzw da ich sowieso den ST-Link verwende egal sein richtig? Oder sollte das dann trotzdem mit einer anderen App freigeschaltet werden um mir Arbeit/Probleme in irgendeiner hinsicht zu ersparen?
 
Ja sich die ganzen abkürzungen in einem neuen Thema zu merken ist nicht so einfach :D
Aber die Firmware auf dem Display (BLE) ist doch trotzdem eine Firmware richtig? Nicht die Firmware von der Hauptplatine, aber die des Displays (nur zum verständniss).
DRV ist dann die Abkürzung/Name für die Firmware auf der Hauptplatine. Ich werde versuchen das in Zukunft alles richtig zu benennen :D
Die BLE ist keine Firmware im eigentlichen Sinn, eher eine Art Bluetooth - und Grafiktreiber. Mit Firmware ist immer nur die DRV gemeint.
Eine Frage habe ich noch zu dem ganzen was ich nicht ganz verstehe, und zwar muss ein neuer Scooter erstmal über die offizielle "Mi Home App" (glaube das war der name) Freigeschaltet werden, allerdings gibt es ja da das zwangs update und etwas mit Drosselung. Sollte bei einem neuen Scooter mit der (sehr wahrscheinlich) neusten Firmware von BLE/DRV/BMS bereits installiert sein, bzw da ich sowieso den ST-Link verwende egal sein richtig? Oder sollte das dann trotzdem mit einer anderen App freigeschaltet werden um mir Arbeit/Probleme in irgendeiner hinsicht zu ersparen?
Bei neuer BLE >155 ist es egal, womit du den aktivierst, ist dann eh zu spät 😊
 
  • Hilfreich!
Reaktionen: xF4m3
Also muss ich mir einen St Link bestellen damit ich dein Programm verwenden und den Scooter downgraden will?
 
Also muss ich mir einen St Link bestellen damit ich dein Programm verwenden und den Scooter downgraden will?
A) es ist nicht mein Programm
B) da du keinen Scooter hast, brauchst du auch keinen ST-Link

Screenshot_20230613_213640_Samsung Internet.webp
 
  • Liebe zum Detail! (2 Punkte)
Reaktionen: Rodcruiser
Anhang anzeigen 17800

Inhaltsverzeichnis

Vorstellung MiDu-Flasher
Hallo liebe RollerPlauscher!

Heute kann ich euch mit Stolz mein neues Programm vorstellen.
Den MiDu-Flasher.

Was kann MiDu-Flasher?
  • Downgrade ohne löten und Ausbau des Dashboard
  • Debug Exploit durchführen, um Ausleseschutz zu umgehen
  • Firmware spoofing
  • Automatische Fehler Erkennung (Verbindungsabbrüche)
Dadurch vereinfacht MiDu-Flasher den Prozess des Downgraden und Unbricken aller 3 Komponenten (Dashboard, Controller, BMS) in unseren Scootern enorm.
In der aktuellen Version 1.0.5 wird erstmal "nur" das Dashboard unterstützt.
Ich habe MiDu-Flasher aber so designt, das ich später den Funktionsumfang erweitern kann.
Selbst die neuen v3.1 Controller mit GD32E Mikrocontrollern werden eine Möglichkeit zum Flashen bekommen.
Die Voraussetzungen dafür habe ich schon geschaffen.

Welche Scooter werden unterstützt?
In MiDu-Flasher direkt eingebaut habe ich die Unterstützung für folgende Scooter:
  • mi m365 classic
  • mi Pro
  • mi 1s
  • mi Pro 2
  • Mi3 (seit v1.0.2)
Im Grunde werden aber alle Scooter unterstützt die den gleichen Mikrocontroller verbaut haben.
Bei dem Dashboard sind das 2 verschiedene.
Soweit mir bekannt, ist der N51822x in allen original Dashboards verbaut.
Der N51802x wird vorwiegend in den Clone Dashboards verbaut die man z.b. von Aliexpress kaufen kann.
Wenn man sich nicht sicher ist, welchen Mikrocontroller sein Dashboard verbaut hat,
kann man einfach die Aufschrift darauf ablesen.


Dashboard Funktionsumfang (MiDu-Flasher v1.0.5)
Für das Dashboard gibt es aktuell 3 Funktionen in MiDu-Flasher:
  • Downgrade (Pro2 / 1s / Mi3)
  • Dump Flash (Alle mi Scooter)
  • Write Flash (m365 / Pro / 1s / Pro2 / Mi3)
Downgrade
In den Downgrade-Vorgang habe ich verschiedenste kleine Kniffel und Tricks eingebaut.
Diese Schritte werden ausgeführt:
  1. Verbindung zum Dashboard aufbauen
  2. Dumpen des UICR und FICR Flash Speicher Bereich
  3. Gedumpten UICR Bereich auswerten (prüfen ob Ausleseschutz gesetzt wurde) (Standard bei BLE157)
  4. Wenn Ausleseschutz gesetzt, dump des app config Bereich via Debug-Exploit (app cofig = blt id, login Token, Scooter-Name usw...)
  5. Flash-speicher zum schreiben vorbereiten (mass erase)
  6. Softdevice schreiben (Mikrocontroller Hersteller Bibliothek welche die BLE Firmware benötigt) ( )
  7. BLE Firmware mit oder ohne spoofing schreiben (je nach vorheriger Auswahl)
  8. Zuvor ausgelesenen app config Bereich schreiben
  9. Bootloader schreiben
  10. UICR schreiben (deaktivierter ausleseschutz)
MiDu-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 des Dashboard durchzuführen ohne das man es vorher ausbauen, und/oder Löten muss.
Man muss nur oben die Dashboard-Abdeckung ab nehmen, und den ST-Link an die 3 Kontakte halten.
Nichtmal der c2 Kondensator muss entfernt, oder dessen Leiterbahn gekappt werden.
Denn MiDu-Flasher zählt die fehlgeschlagenen Verbindungen, und schraubt automatisch die Geschwindigkeit runter.
Wenn der Ausleseschutz des Flash-speicher gesetzt wurde, wird ein spezieller Debug-Exploit für das Auslesen verwendet. ( ) (danke Lutscher für den Hinweis)
MiDu-Flasher macht alles automatisch und gibt Feedback zu den einzelnen Schritten.
Dieses Feedback wird außer in dem Programm selbst, noch als Sound ausgegeben.
Somit kann man ganz in Ruhe sich darauf konzentrieren eine Verbindung zwischen ST-Link und Dashboard zu bekommen.
Beispielsweise bekommt man ein Audio Feedback wenn die Verbindung steht, oder gestört wurde.
Selbst wenn zwischendurch mal die Verbindung abbricht, dann ist das auch kein großes Problem.
Weder während dem lesen oder Schreibvorgang.
Denn MiDu-Flasher bemerkt das alles von selbst, und wiederholt den jeweiligen fehlgeschlagenen Schritt dann direkt nach einem kurzen 5 Sekunden Timeout.


Dump Flash
Macht genau das wie es heißt, es dumpt den kompletten Flash-Speicher. 😁
Abgespeichert wird der Dump in dem Hauptverzeichnis von MiDu-Flasher.
Hier macht sich MiDu-Flasher auch den Debug-Exploit zu nutze, sollte der Speicher einen gesetzten Ausleseschutz haben.

Write Flash
Schreibt alle 3 Hauptkomponenten des Flash-Speicher einzeln.
  • Softdevice (m365 & Pro = S110 / Pro2, 1s & Mi3 = S130)
  • App aka BLE
  • Bootloader
Somit kann man also wählen, welche BLE Version geflasht werden soll.
Und muss nicht immer eine komplette .rec Datei aufspielen.
Dadurch erhöht sich auch die Geschwindigkeit des Flash-vorgang.
Da ja hier nur die benötigten Bereiche geschrieben werden, und nicht 1x alles drüber gebügelt wird.

Wenn man eine eigene BLE Version flashen möchte, kann man diese einfach in dem entsprechenden Ordner,
unter MiDu-Flasher\Resource\files\BLE\App\N51822x\(Scooter)\App.bin ablegen.
Wenn MiDu-Flasher dort eine App.bin findet, nimmt er diese als Basis für die "Write Flash" oder "Downgrade" Funktion.
Somit kann man auch einen Downgrade auf eine eigene BLE version durchführen.
Sogar das Spoofen der eigenen BLE sollte funktionieren.
Da MiDu-Flasher nach einem bestimmten Byte-Muster sucht, um die richtige Stelle in der App.bin zum spoofen zu finden.

Das ist die komplette Ordnerstruktur von MiDu-Flasher:
Code:
MiDu-Flasher
│
│   MiDu-Flasher.lnk
│
└───Resource
    │   MiDu-Flasher.bat
    │   MiDu.log
    │
    ├───bin
    │   │   curl.exe
    │   │   PlaySound.exe
    │   │   sfk.exe
    │   │
    │   └───OpenOCD
    │       ├───bin
    │       │       libgcc_s_sjlj-1.dll
    │       │       libhidapi-0.dll
    │       │       libusb-1.0.dll
    │       │       libwinpthread-1.dll
    │       │       openocd.exe
    │       │
    │       └───share
    │           └───openocd
    │               └───scripts
    │                   ├───interface
    │                   │       stlink.cfg
    │                   │
    │                   └───target
    │                           nrf51_S100.cfg
    │                           nrf51_S1000.cfg
    │                           nrf51_S400.cfg
    │                           stm32f1x_S1000.cfg
    │                           swj-dp.tcl
    │
    └───files
        ├───Audio
        │       connected.wav
        │       done.wav
        │       error.wav
        │       reading.wav
        │       writing.wav
        │
        ├───BLE
        │   ├───App
        │   │   ├───N51802x
        │   │   │   ├───1s
        │   │   │   ├───m365
        │   │   │   ├───Pro
        │   │   │   └───Pro2
        │   │   └───N51822x
        │   │       ├───1s
        │   │       │       App.bin
        │   │       │
        │   │       ├───m365
        │   │       │       App.bin
        │   │       │
        │   │       ├───Pro
        │   │       │       App.bin
        │   │       │
        │   │       └───Pro2
        │   │               App.bin
        │   │
        │   ├───Bootloader
        │   │       Bootloader_1s_Pro2.bin
        │   │       Bootloader_m365_Pro.hex
        │   │       UICR_1s_Pro2.hex
        │   │       UICR_m365_Pro.hex
        │   │
        │   └───Softdevice
        │           s110_nrf51_8.0.0_softdevice.hex
        │           s120_nrf51_2.1.0_softdevice.hex
        │           s130_nrf51_2.0.1_softdevice.hex
        │
        ├───BMS
        └───ESC
            ├───GD32E1x
            │   ├───1s
            │   ├───Bootloader
            │   ├───m365_Classic
            │   ├───Pro
            │   └───Pro2
            └───STM32f1x
                ├───1s
                ├───Bootloader
                ├───m365_Classic
                ├───Pro
                └───Pro2

MiDu-Flasher Download



Update 15.07.2022 (v1.0.5)
Changelog:
Code:
15.07.2022 (v1.0.5)
-Windows 7 fix (curl)
-no blt-id detection

--------
03.06.2022 (v1.0.4)
-md5sum check 4 Bootloader & App download added
-colorized feedback output
-lowered timeout to start initial downgrade process to 30 seconds
-lowered error counter to 5 to slow down adapter speed (400)
-some bug fixes

--------

02.06.2022 (v1.0.3)
-Write permission check added

--------

31.05.2022 (v1.0.2)
-Added Mi3 Scooter Support
-Added Spoofing to BLE155 (Mi3)
-Some code improvements

--------

31.05.2022 (v1.0.1)
-Win 32 Bit fix
-Documentary added
-USB driver added
-ST-Link upgrade added

--------

27.05.2022 (v1.0.0)
-Initial release



Einfach die Zip entpacken, und die Verknüpfung im Hauptverzeichnis starten.
Die Firmware Files die für den Flash benötigt werden, wird MiDu-Flasher dann runterladen.
Natürlich erst, nachdem ihr dem Herunterladen zugestimmt habt.

Hiermit möchte ich mich recht herzlich für dieses Tool MiDu bedanken,
ich habe soeben ein Dashboard durch das Downgrade zum flashen wiederbelebt =)

das hat zwar geklappt, jedoch lies sich von SH keine 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 ;)
 

Anhänge

  • 1688081968894.webp
    1688081968894.webp
    34,5 KB · Aufrufe: 36
  • 1688081968901.webp
    1688081968901.webp
    27 KB · Aufrufe: 38
  • 1688081968915.webp
    1688081968915.webp
    28,7 KB · Aufrufe: 39
  • 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: 42