- 19 August 2021
- 2.717
- 5.757
- E-Scooter
- mi Pro2/9bot F2 Pro
Motor Start Speed:
Xiaomi Mi Pro 2 DRV236Von mir getestet, funktioniert!
Code:
Offset 0x00006254
0-Kmh
40 F2 BD 62 ändern zu 40 F2 00 02
1-Kmh
40 F2 BD 62 ändern zu 40 F2 59 12
2-Kmh
40 F2 BD 62 ändern zu 40 F2 B2 22
3-Kmh
40 F2 BD 62 ändern zu 40 F2 0B 42
Aktuell noch ungetestet!!!
Code:
Offset 0x0000627C
0-Kmh
40 F2 BD 62 ändern zu 40 F2 00 02
1-Kmh
40 F2 BD 62 ändern zu 40 F2 59 12
2-Kmh
40 F2 BD 62 ändern zu 40 F2 B2 22
3-Kmh
40 F2 BD 62 ändern zu 40 F2 0B 42
Standard ist 5-Kmh. (0-Kmh braucht trotzdem einen winzigen stubser damit der Motor los geht)
-------------------------------------
Kleine Erklärung für den es interessiert:
Die Firmware der Xiaomi Roller ist mit einer little-endian Byte-Reihenfolge für einen ARM Prozessor codiert.
Wer genau hin schaut bei den Hex Werten für die Geschwindigkeiten erkennt ein Muster.
Der ARM Opcode des standard (5-Kmh) schaut so aus:
40 F2 BD 62 movw r2, #0x6bd
Hex Werte Assembler Code Werte im Assembler Code
Hier wird mit dem movw Befehl ein Registerwert gefüllt (variable).
Das Register heißt hier 2 und der wert mit dem es befüllt wird ist 6BD.
Wenn wir jetzt den Hex Code uns an schauen finden wir das dort wieder.
BD 62 Grün ist der Registername (2) und Rot unser Wert, nur in little-endian Byte-Reihenfolge.
Einfach gesagt dreht little-endian alles um, also aus dem wert BD 6 wird 6BD.
Hex=6BD ist 1725 in Dezimal und für jedes Kmh das wir abziehen wollen,
müssen wir den Wert Minus Hex=159 (Dezimal 345) rechnen und
dann wieder in die richtige Byte-Reihenfolge bringen.
Also 6BD-159=564 (4-Kmh)
In der Richtigen Byte-Reihenfolge, schaut das dann so aus.
40 F2 64 52
Auf diese Art können wir uns jeden beliebigen Motor start Speed setzen.

Zuletzt bearbeitet: