- 26 Dezember 2021
- 357
- 449
- E-Scooter
- Xiaomi 1s / Pro 2
!! ACHTUNG !!
AUS GEGEBENEN ANLASS DIESE VERSION BITTE NICHT AUSFÜHREN!
Hallo zusammen,
ich möchte euch heute mein kleines Projekt „XiaoDeaDia - unbrick & recover“ vorstellen.
Warum ich das Projekt XiaoDeaDia genannt habe ist schnell erklärt; „Xiao“ dürfte jedem ein Begriff sein und „Dea Dia“ steht für Wachstum, benannt nach einer römischen Göttin.
Was kann XiaoDeaDia - unbrick & recover; mit dieser Anleitung könnt ihr von einem funktionierenden ESC (1s und pro2) eine recover_ESC.bin oder eine recover_DRV.bin erstellen und natürlich auch wieder auf das ESC flashen.
WICHTIG;
Die recover_ESC/DRV ist nur zum persönlichen Gebrauch. Jede Firmware ist Eigentum der Herstellers.
Bitte auch das lesen; Nutzungsbedingungen, 8. Haftungsausschluss - Benutzeranleitungen / Guides / Tutorials & sonstige Rollerplausch Dienste
Die recover_ESC.bin enthält den gesamten Spreicher des ESC während die recover_DRV.bin nur die tatsächliche DRV Version darstellt. Solltet ihr mal irrtümlich eine falsche DRV auf das ESC geflasht haben, empfehle ich zum unbrick die recover_ESC.bin zu flashen.
Was ihr braucht ist einen ST-Link (Amazon/ST-Link) und einen PC oder Laptop.
Zum Betriebssystem; die aktuelle Anleitung ist für Linux, von mir an meinem pro2 getestet. Da überwiegend Windows verwendet wird, bekommt ihr noch hierfür nachträglich einen Anleitung.
Selbstverständlich darf jeder von euch mich unterstützen, es ist ein Projekt und für jeden/jede offen.
Für Linux müsste ihr nur OpenOCD installieren;
~$ sudo apt install openocd -y
Einen Treiber für den ST-Link wird in der Regel nicht benötigt, da die meisten Disto‘s diesen erkennen. Nachdem ihr den ST-Link angeschlossen habt, könnt ihr mit ‚~$ lsusb‘ die Port‘s abfragen. Für diesen Vorgang muss der ST-Link noch nicht an das ESC angelötet sein.
Es gibt noch andere Beiträge bezüglich verlöten und unbrick aber halt ohne recover (hier).
Wenn alles soweit läuft, müsst ihr den ST-Link mit dem ESC verlöten. Sicherlich gibt es auch die Möglichkeit mit Klebeband die Kabel zu befestigen aber davon rate ich ab (aber möglich).
Dann öffnet ihr zwei Terminal und platziert diese nebeneinander, so das sie sich nicht gegenseitig verdecken und los geht es;
Um eine recover_ESC.bin oder recover_DRV.bin zu erstellen, geht ihr wie folgt vor;
# Terminal 1 ~/
~$ sudo openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
# Terminal 2 ~/
# Terminal im ~/ öffen, da dort dann auch die recover_ESC.bin oder recover_DRV.bin gespeichert wird
# Terminal 2 ~/ telnet starten, damit kommt ihr dann auf die Befehlszeile für den stm32f1x (>>)
~$ telnet localhost 4444
# stm32f1x anhalten
>> reset halt
# stm32f1x schreibschutz deaktivieren
>> stm32f1x unlock 0
# Wenn ihr wollt, könnt ihr jetzt eine Speicherabfrage durchführen, raus kommt Offset und Größe oder ihr überspringt diesen Schritt
>> flash banks
# als erstes die recover_ESC.bin erstellen
>> dump_image recover_ESC.bin.bin 0x08000000 0x00020000
# als zweites die recover_DRV.bin erstellen, kann natürlich auch eine VLT sein
>> dump_image recover_DRV.bin 0x08001000 0x00006FFF
# beenden
>> reset
FERTIG!
Um die recover_ESC oder recover_DRV zu flashen, geht ihr wie folgt vor;
# Terminal 1 ~/
~$ sudo openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
# Terminal 2 ~/
# Terminal im ~/ öffen, da dort dann auch die recover_ESC.bin oder recover_DRV.bin gespeichert wird
# Terminal 2 ~/ telnet starten, damit kommt ihr dann auf die Befehlszeile für den stm32f1x (>>)
~$ telnet localhost 4444
# stm32f1x anhalten
>> reset halt
# stm32f1x schreibschutz deaktivieren
>> stm32f1x unlock 0
# recover_ESC.bin schreiben
>> flash write_image erase unlock recover_ESC.bin 0x08000000 bin
ODER
# recover_DRV.bin schreiben (ihr könnt hier auch eine ander DRV/VLT flashen, diese muss aber im ~/ liegen)
>> flash write_image erase unlock recover_DRV.bin 0x08001000 bin
# beenden
reset
FERTIG!
Bitte immer als erstes eine recover_ESC/DRV erstellen und diese bitte mit einem HexEditor, unter Linux verwende ich gerne Ghex (~$ sudo apt install ghex -y), unbedingt PRÜFEN.
Ein herzlichen Dankeschön geht an nandtek, Mentor und Unterstützer wie auch an VooDooShamane.
Gruß, Daniel
AUS GEGEBENEN ANLASS DIESE VERSION BITTE NICHT AUSFÜHREN!
ich möchte euch heute mein kleines Projekt „XiaoDeaDia - unbrick & recover“ vorstellen.
Warum ich das Projekt XiaoDeaDia genannt habe ist schnell erklärt; „Xiao“ dürfte jedem ein Begriff sein und „Dea Dia“ steht für Wachstum, benannt nach einer römischen Göttin.
Was kann XiaoDeaDia - unbrick & recover; mit dieser Anleitung könnt ihr von einem funktionierenden ESC (1s und pro2) eine recover_ESC.bin oder eine recover_DRV.bin erstellen und natürlich auch wieder auf das ESC flashen.
WICHTIG;
Die recover_ESC/DRV ist nur zum persönlichen Gebrauch. Jede Firmware ist Eigentum der Herstellers.
Bitte auch das lesen; Nutzungsbedingungen, 8. Haftungsausschluss - Benutzeranleitungen / Guides / Tutorials & sonstige Rollerplausch Dienste
Die recover_ESC.bin enthält den gesamten Spreicher des ESC während die recover_DRV.bin nur die tatsächliche DRV Version darstellt. Solltet ihr mal irrtümlich eine falsche DRV auf das ESC geflasht haben, empfehle ich zum unbrick die recover_ESC.bin zu flashen.
Was ihr braucht ist einen ST-Link (Amazon/ST-Link) und einen PC oder Laptop.
Zum Betriebssystem; die aktuelle Anleitung ist für Linux, von mir an meinem pro2 getestet. Da überwiegend Windows verwendet wird, bekommt ihr noch hierfür nachträglich einen Anleitung.
Selbstverständlich darf jeder von euch mich unterstützen, es ist ein Projekt und für jeden/jede offen.
Für Linux müsste ihr nur OpenOCD installieren;
~$ sudo apt install openocd -y
Einen Treiber für den ST-Link wird in der Regel nicht benötigt, da die meisten Disto‘s diesen erkennen. Nachdem ihr den ST-Link angeschlossen habt, könnt ihr mit ‚~$ lsusb‘ die Port‘s abfragen. Für diesen Vorgang muss der ST-Link noch nicht an das ESC angelötet sein.
Wenn alles soweit läuft, müsst ihr den ST-Link mit dem ESC verlöten. Sicherlich gibt es auch die Möglichkeit mit Klebeband die Kabel zu befestigen aber davon rate ich ab (aber möglich).
Dann öffnet ihr zwei Terminal und platziert diese nebeneinander, so das sie sich nicht gegenseitig verdecken und los geht es;
Um eine recover_ESC.bin oder recover_DRV.bin zu erstellen, geht ihr wie folgt vor;
# Terminal 1 ~/
~$ sudo openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
# Terminal 2 ~/
# Terminal im ~/ öffen, da dort dann auch die recover_ESC.bin oder recover_DRV.bin gespeichert wird
# Terminal 2 ~/ telnet starten, damit kommt ihr dann auf die Befehlszeile für den stm32f1x (>>)
~$ telnet localhost 4444
# stm32f1x anhalten
>> reset halt
# stm32f1x schreibschutz deaktivieren
>> stm32f1x unlock 0
# Wenn ihr wollt, könnt ihr jetzt eine Speicherabfrage durchführen, raus kommt Offset und Größe oder ihr überspringt diesen Schritt
>> flash banks
# als erstes die recover_ESC.bin erstellen
>> dump_image recover_ESC.bin.bin 0x08000000 0x00020000
# als zweites die recover_DRV.bin erstellen, kann natürlich auch eine VLT sein
>> dump_image recover_DRV.bin 0x08001000 0x00006FFF
# beenden
>> reset
FERTIG!
Um die recover_ESC oder recover_DRV zu flashen, geht ihr wie folgt vor;
# Terminal 1 ~/
~$ sudo openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
# Terminal 2 ~/
# Terminal im ~/ öffen, da dort dann auch die recover_ESC.bin oder recover_DRV.bin gespeichert wird
# Terminal 2 ~/ telnet starten, damit kommt ihr dann auf die Befehlszeile für den stm32f1x (>>)
~$ telnet localhost 4444
# stm32f1x anhalten
>> reset halt
# stm32f1x schreibschutz deaktivieren
>> stm32f1x unlock 0
# recover_ESC.bin schreiben
>> flash write_image erase unlock recover_ESC.bin 0x08000000 bin
ODER
# recover_DRV.bin schreiben (ihr könnt hier auch eine ander DRV/VLT flashen, diese muss aber im ~/ liegen)
>> flash write_image erase unlock recover_DRV.bin 0x08001000 bin
# beenden
reset
FERTIG!
Bitte immer als erstes eine recover_ESC/DRV erstellen und diese bitte mit einem HexEditor, unter Linux verwende ich gerne Ghex (~$ sudo apt install ghex -y), unbedingt PRÜFEN.
Ein herzlichen Dankeschön geht an nandtek, Mentor und Unterstützer wie auch an VooDooShamane.
Gruß, Daniel
Zuletzt bearbeitet: