Xiaomi 4 pro 1st gen auf DE-Version flashen

28 August 2026
9
5
E-Scooter
Xiaomi 4 Pro
Hallo zusammen,

ich habe vor ein paar Wochen einen defekten 4 pro 1st gen von einem Kumpel bekommen und wollte ihn für meine Tochter reparieren.
Relativ schnell war klar, dass der Controller wegen eines Wasserschadens das zeitliche gesegnet hatte.
Habe darauf mit meiner Unwissenheit im Thema e-Scooter einen Ersatzcontroller aus China bestellt.
Die Freude, dass die Reparatur geglückt ist war nur von kurzer Dauer, da ich feststellen musste, dass er nun 25 km/h fährt.
Da er ja wie gesagt für meine Tochter sein soll, möchte ich ihn ihr erst überlassen wenn er deutschen Regularien entspricht.
Also habe ich mich auf die Suche nach einer Möglichkeit gemacht dies zu erreichen und bin dabei auf dieses Forum gestoßen.
Ich habe hier inzwischen viel Zeit mit Suchen und Lesen verbracht, aber komme einfach nicht weiter.

IST-Stand / was habe ich bisher gemacht?

Mit einem ST-Link V2 habe ich versucht den verbauten Geehy APM32 auszulesen. Wegen Schreibschutz war dies aber nicht möglich.
Daher habe ich ihn formatiert und wollte eine DE-Firmware flashen, aber ich habe nur einfach nichts passendes gefunden.
Dabei bin ich über die VLT-Firmwares gestoßen, welche ich sehr interessant finde (v-max 22 km/h und andere Tweaks)
Aber auch hier komme ich einfach nicht weiter; entweder bin ich zu blöd zum Suchen oder es gibt für den 4 pro 1st gen nichts in der Richtung.
Ich habe auch auf GitHub etwas von CamiAlfa gefunden, aber auch hier komme ich nicht weiter. Auslesen des APM32 klappt nur mit Fehlermeldung und flashen klappt gar nicht.

Wäre jemand so nett und greift mir etwas unter die Arme?

VG Timo
 
Herzlich willkommen beim RP!

Du hast dir leider den falschen Scooter ausgesucht. Steht zwar Xiaomi drauf, wird aber nicht von Xiaomi produziert. Du kannst dem Ding maximal mit ST Link zu Leibe rücken wie in diesem Video erklärt.
Ich würd das Ding verwerten/verkaufen und in einen gebrauchten G30 oder 1S/Pro2 investieren, da sind +- 200 Kröten besser aufgehoben.
 
Vielen Dank ph3x,

auch vielen Dank für deinen schnellen Beitrag!

Leider hilft mir das nicht weiter.
Das Video behandelt das Toolset von CamiAlfa, welches ich ja auch schon ausprobiert hatte. (APM32 auslesen geht, flashen nicht, auch nach mehreren Versuchen nicht).
Ich befürchte auch, dass ich dann wieder bei v-max 25 km/h lande, was nicht mein Ziel ist (20 bzw 22 km/h sollen es sein).

Bezahlt habe ich für den 4 pro übrigens nicht einen Cent, ausser jetzt für die Reparatur; Controller und ST-Link haben zusammen rund 30 Kröten gekostet.

Welche Vorteile hätte es dann wenn den 4 pro veräußere und in einen G30 oder 1S/Pro2 investiere?

VG Timo
 
ok, das sind gute Argumente. Ich werde drüber nachdenken.

bis dahin wäre es schön wenn sich doch noch jemand finden würde, der mir ggf etwas mehr zu meinem aktuellen Problem sagen kann 🙈
 
ok, das sind gute Argumente. Ich werde drüber nachdenken.

bis dahin wäre es schön wenn sich doch noch jemand finden würde, der mir ggf etwas mehr zu meinem aktuellen Problem sagen kann 🙈
Da gibt's nicht mehr viel zu sagen, ausser daß du hier viel durcheinander schmeißt, da weiß man gar nicht, wo man anfangen soll...
- wie kommst du darauf, dass VLT bei der 4er Serie von Xiaomi funktioniert?
- wie kommst du darauf, es gäbe eine "deutsche Firmware"?

Die Region und somit die Geschwindigkeit wird ausschließlich über die Seriennummer festgelegt, die mit 35806 anfängt und auch an deinem Scooter steht.

Das CamiAlfa Script ist der einzige Weg für dein Modell - dass es nicht funktioniert, wundert mich nicht, wenn du vorher da "irgendwas formatierst".

Ich würde sagen, neuen Controller kaufen und direkt nach der CamiAlfa Anleitung vorgehen. Sicherstellen, dass die neuesten Treiber installiert sind und die Bezeichnung auf dem Gehäuse auch mit denen auf der Platine des St-Link übereinstimmen.

Bekommst du das nicht hin, verkauf das Ding und hol dir was Vernünftiges, wie bereits gesagt wurde.
 
hallo Olli_69,

ich bin noch ganz frisch im Thema e-Scooter. Sieh es mir bitte nach, wenn ich Begrifflichkeiten durcheinander bringe oder falsch verwende.

Zu VLT habe ich nur geschrieben, dass ich es Interessant finde. Das es bei meinem 4 pro funktioniert war lediglich nur Hoffnung.
Dazu gibt es übrigens hier im Forum einen Beitrag: VLT-Firmware von VooDooShamane für 4 Pro ...

Mit deutscher Firmware meine ich tatsächlich die Codierung über die Seriennummer. Das hatte ich beim Erstellen dieses Beitrags leider nicht mehr richtig im Kopf.
Die Sortierung des vielen Inputs der letzten Tage im Kopf brauch etwas Zeit, tut mir leid.

Was ich formatiert habe hatte ich doch geschrieben?! Den APM32! "full chip erase" heißt es im STM32CubeProgrammer.
Warum ich das getan habe hatte ich ja auch geschrieben. War mit meinem begrenzten Wissen ein logischer Schritt. Ich hätte aber wohl lieber vorher hier mal fragen sollen 🙈
Hinterher ist man immer schlauer 🤷‍♂️

Neuste Treiber sind selbstverständlich installiert und Bezeichnungen stimmen, sonst hätte ich den APM32 ja nicht auslesen (daher die Info zum Schreibschutz) und formatieren können, oder ist das zu einfach gedacht?

Vielleicht hat ja jemand noch einen heissen Tipp, der mir weiterhelfen könnte, oder ggf mag mir jemand die Funktionsweise von CamiAlfa's Skript näher bringen?
 
hallo Olli_69,

ich bin noch ganz frisch im Thema e-Scooter. Sieh es mir bitte nach, wenn ich Begrifflichkeiten durcheinander bringe oder falsch verwende.
Alles gut.

Zu VLT habe ich nur geschrieben, dass ich es Interessant finde. Das es bei meinem 4 pro funktioniert war lediglich nur Hoffnung.
Dazu gibt es übrigens hier im Forum einen Beitrag: VLT-Firmware von VooDooShamane für 4 Pro ...
Natürlich kenne ich den Thread (ich bin so bekloppt und kenne alle Threads), aber er ist 2 Jahre alt, es ging nie weiter und Voodoo hat sich leider fast komplett zurück gezogen aufgrund des "real life".

Mit deutscher Firmware meine ich tatsächlich die Codierung über die Seriennummer. Das hatte ich beim Erstellen dieses Beitrags leider nicht mehr richtig im Kopf.
Die Sortierung des vielen Inputs der letzten Tage im Kopf brauch etwas Zeit, tut mir leid.

Was ich formatiert habe hatte ich doch geschrieben?! Den APM32! "full chip erase" heißt es im STM32CubeProgrammer.
Warum ich das getan habe hatte ich ja auch geschrieben. War mit meinem begrenzten Wissen ein logischer Schritt. Ich hätte aber wohl lieber vorher hier mal fragen sollen 🙈
Hinterher ist man immer schlauer 🤷‍♂️
👍

Neuste Treiber sind selbstverständlich installiert und Bezeichnungen stimmen, sonst hätte ich den APM32 ja nicht auslesen (daher die Info zum Schreibschutz) und formatieren können, oder ist das zu einfach gedacht?
Korrekt, war nur vorsorglich erwähnt.

Vielleicht hat ja jemand noch einen heissen Tipp, der mir weiterhelfen könnte, oder ggf mag mir jemand die Funktionsweise von CamiAlfa's Skript näher bringen?
Durch das Formatieren/löschen hast es versaut, man bräuchte einen fulldump und den gibt es nicht.
Ansonsten kennst du deine Möglichkeiten, wurde alles dazu gesagt.
 
sehr ernüchternd, aber trotzdem danke für die Info

nur nochmal zum Verständnis ...

wenn ich nun einen Controller mit funktionierender Firmware hätte, dann könnte ich das Skript von CamiAlfa verwenden, um das Serialpräfix auf 35806 zu setzen?!
oder geht das auch wieder nur unter bestimmten Voraussetzungen?
 
sehr ernüchternd, aber trotzdem danke für die Info

nur nochmal zum Verständnis ...

wenn ich nun einen Controller mit funktionierender Firmware hätte, dann könnte ich das Skript von CamiAlfa verwenden, um das Serialpräfix auf 35806 zu setzen?!
oder geht das auch wieder nur unter bestimmten Voraussetzungen?
Liest du etwas Gegenteiliges aus der Anleitung oder siehst du irgendwelche Voraussetzungen?
Na also.
Das/die Script(e) brauchen eine Firmware, diese wird ausgelesen und entsprechend gepatcht. Wenn du die Firmware vorher im Eigenversuch komplett löscht, womit sollte es dann arbeiten können ....
 
zieh dich warm an Olli_69, aber ich habe geschafft was du nicht für möglich hälst.

ich habe mich mit dem Skript von CamiAlfa beschäftigt und dabei die Funktionsweise, zumindest in Teilen, für mich entschlüsselt.
den APM32 habe ich darauf mit den Firmwaredateien, welche CamiAlfa mitliefert, geflasht.
dann habe ich das Skript ein wenig angepasst und war schließlich in der Lage es fehlerfrei auszuführen.
was soll ich sagen ... der Roller lebt wieder! ich habe noch keine Probefahrt gemacht, aber Gas wird angenommen (D=15km/h, S=20km/h), Licht geht und die Xiaomi App verbindet sich auch. Für mich ein voller Erfolg!

was lernen wir daraus?
hast du keine Ahnung, such dir Hilfe. Aber stelle auch mal etwas in Frage und bleib hartnäckig. dann wirst du auch gerne mal belohnt!
 
  • Hilfreich!
Reaktionen: Olli_69
Freut mich, allerdings - nichts für ungut:
erst schreibst du mehrfach
flashen geht nicht, auch nach mehreren Versuchen nicht).
Dann liest du die Scripte (ohne etwas anzupassen) ,um sie zu verstehen und wie ein Wunder für dich:
den APM32 habe ich darauf mit den Firmwaredateien, welche CamiAlfa mitliefert, geflasht.
Anschließend hast du dann "irgendwas angepasst"
dann habe ich das Skript ein wenig angepasst und war schließlich in der Lage es fehlerfrei auszuführen.
Das ist genau das, was in der Anleitung steht, du hast die korrekte Seriennummer eingetragen ?! Also bist du, wie ich das sehe, einfach genau nach Anleitung vorgegangen.... 🤦
 
lieber Olli_69,

ganz offensichtlich hast du meine Ausführungen missverstanden, aber ich versuche das mal aufzuklären ...

Wie zuvor aber schonmal erwähnt bitte ich nochmals um Verständnis falls ich etwas nicht so ganz sauber beschreibe.
Ich habe wirklich viel Zeit mit rumprobieren verbracht und kann inzwischen u.U. nicht mehr jeden Schritt 100%ig erklären.
Alles was ich in meinen bisherigen Beiträgen geschrieben habe basierte immer exakt auf dem zu der Zeit vorhandenem Wissensstand meinerseits.

Ja, ich habe mich an die Anleitung von CamiAlfa gehalten, allerdings bereits von Anfang an.
D.h. ich hatte vor der ersten Ausführung seines Skripts bereits meine Seriennummer samt deutschem Präfix gemäß Vorgabe eingetragen.
Zu diesem Zeitpunkt hatte ich noch gar keine Ahnung wie seine Skripte arbeiten, die (teilweise) Erleuchtung kam erst später.

Die Ausführung erfolgt ja in zwei Schritten ... mit der Batchdatei wird per OpenOCD die Kommunikation zum Chip geöffnet und dann mit dem Skript geflasht/programmiert.
Bei mir meldete schon die Batchdatei einen Fehler und somit konnte das Skript auch nicht funktionieren.

Ursache war der Umstand, dass das Skript auf den STM32 ausgelegt ist und nicht auf dem APM32.
Hier kam dann später meine "Anpassung" ins Spiel, nämlich die Anpassung der von Skript erwarteten Kennung des Chips.

Zuvor hatte ich ja aber den Chip bereits formatiert, "full chip erase" mit STM32CubeProgrammer, da ich mir dachte:
ich kann mir ja einfach einen flashdump besorgen und den dann auf den Chip flashen um ans Ziel zu kommen.
was sich wiederrum schwieriger gestaltete als ich erwartet hatte; du hattest mich dann ja auch später drauf hingewiesen.

Durch das Formatieren/löschen hast es versaut, man bräuchte einen fulldump und den gibt es nicht. Ansonsten kennst du deine Möglichkeiten, wurde alles dazu gesagt.
Das kann ich allerdings so nicht bestätigen, da ich ja inzwischen mit den von CamiAlfa bereitgestellten Dateien (Paket "m365-Electric-Scooter-4-Pro-stlink-main")
meinen, per flash erase auf 0 gesetzten APM32, wieder Leben einhauchen konnte.
Dazu habe ich mir die unmodifizierte Firmware aus dem Archiv von CamiAlfa genommen und per telnet geflasht.
Anschließend das Skript mit der o.g. Anpassung ausgeführt, um die Firmware zu patchen bzw Seriennummer samt Präfix zu korrigieren ... mit Erfolg!
Du hattest mir ja zuvor mit deinem Kommentar suggeriert, dass dies nicht möglich sei. Wie bist du darauf gekommen?

Ich möchte dir trotzdem nochmal für deine Beiträge danken, auch wenn deine sehr direkte Art etwas gewöhnungsbedürftig ist.
... und trau Neulingen wie mir ruhig mal etwas mehr zu!
Das ist genau das, was in der Anleitung steht, du hast die korrekte Seriennummer eingetragen ?! Also bist du, wie ich das sehe, einfach genau nach Anleitung vorgegangen.... 🤦
klingt so, als ob du mich für zu blöd hälst eine Anleitung zu befolgen, oder was wollest du mir damit schlussendlich sagen?

Da ich ja aber mein Ziel erreicht habe, spielt der Weg dahin jetzt keine Rolle mehr und vielleicht hilft meine Erkenntnis jemand anderem hier im Forum weiter.
 
Du hattest mir ja zuvor mit deinem Kommentar suggeriert, dass dies nicht möglich sei. Wie bist du darauf gekommen?
Diese Scripte modifizieren im Normalfall die vorhandene Firmware und bringen keinen fulldump mit - scheint hier anders zu sein.


Ursache war der Umstand, dass das Skript auf den STM32 ausgelegt ist und nicht auf dem APM32.
Da das Script schon lange existiert und es bisher hier keine Rückmeldungen gab, dass es nicht funktioniert oder das es bei dem Modell zwei verschiedene Prozessoren gibt, war bisher dieser Umstand einfach nicht bekannt.


klingt so, als ob du mich für zu blöd hälst eine Anleitung zu befolgen, oder was wollest du mir damit schlussendlich sagen?
Da du meine "gewöhnungsbedürftige Art" ja schon angesprochen hast - darfst du mir glauben: hätte ich dich für zu blöd gehalten, hätte ich dir das direkt gesagt 🙃.
Ich hatte anhand deiner ungenauen Beschreibung (was auch schwierig ist für Neulinge) lediglich keinen Unterschied zur Anleitung erkennen können - das Missverständnis hast du ja jetzt detailliert aufgeklärt 👍.

Super und perfekt für alle, die mitlesen/irgendwann davon einmal betroffen sind, wäre es, wenn du zu diesem Punkt:
Hier kam dann später meine "Anpassung" ins Spiel, nämlich die Anpassung der von Skript erwarteten Kennung des Chips.
noch eben erklären könntest, was du genau an welcher Stelle in welcher Datei geändert hast.
Die meisten stecken nicht so tief in der Materie und können "nachmachen", aber nicht selber Werte eruieren und anpassen. Vielen Dank.
 
noch eben erklären könntest, was du genau an welcher Stelle in welcher Datei geändert hast.
Die meisten stecken nicht so tief in der Materie und können "nachmachen", aber nicht selber Werte eruieren und anpassen. Vielen Dank.
aber gerne doch ...

bei der Ausführung des ersten Teils aus CamiAlfa's Paket (die "start_ocd_STLINKV2.bat) erhielt ich die Rückmeldung, dass die ausgelesene ID meines Chips (APM32) nicht mit der erwarteten ID (offenkundig STM32) übereinstimmt, was wiederrum zu einem Abbruch führte. Dies soll wohl sicherstellen, dass nur für diesen Vorgang geeignete Chips beschrieben werden.
Meine Recherchen hatten ergeben, dass der APM32 kein 1:1 Klon des STM32 ist und in Teilen eine andere Struktur aufweist. Da ich ja aber nichts zu verlieren hatte, entschloss ich mich diese Abfrage zu umgehen bzw für meinen Chip anzupassen. Da ja freundlicherweise die ID meines Chips in der Rückmeldung der Batchdatei angezeigt wurde, hatte ich sie schon zur Hand und musste nur noch eine Option an den Befehl hängen, damit meine ID übergeben bzw erzwungen wird. Das sah dann bei mir so aus:

cd openocd-0.10.0/bin-x64/
openocd -f interface/stlink-v2.cfg -c "transport select hla_swd" -c "set CPUTAPID 0x2ba01477" -f target/stm32f1x.cfg
pause

Mit dieser Anpassung gab es dann keinen Abbruch mehr und ich konnte das eigentliche Skript ausführen, um meine ursprüngliche Seriennummer und das gewünschte Präfix für Deutschland in den Chip zu flashen.

Ich hoffe das hilft dem ein oder anderen weiter :)

Eine Probefahrt steht leider immernoch aus und da ich den Roller ja nach deutschen Regularien betreiben möchte, werde ich auch noch das OTA-Update per App probieren.
Dazu werde ich dann natürlich noch hier berichten ...
 
  • Liebe zum Detail! (2 Punkte)
Reaktionen: ph3x und Olli_69
Update:

fährt sich wie erwartet mit D=15km/h und S=20km/h

OTA-Update per App lieferte die Rückmeldung, dass bereits die aktuelle Version installiert sei; die angezeigte Versionsnummer muss ich vorläufig schuldig bleiben 🙈

Licht funktioniert, Bremsleuchte nicht
Laut Beschreibung hat er eine blinkende Bremsleuchte, oder trifft das nur auf die 2nd Gen zu? Kann da jemand etwas zu sagen?
 
Update:

fährt sich wie erwartet mit D=15km/h und S=20km/h

OTA-Update per App lieferte die Rückmeldung, dass bereits die aktuelle Version installiert sei; die angezeigte Versionsnummer muss ich vorläufig schuldig bleiben 🙈

Licht funktioniert, Bremsleuchte nicht
Laut Beschreibung hat er eine blinkende Bremsleuchte, oder trifft das nur auf die 2nd Gen zu? Kann da jemand etwas zu sagen?
Eine blinkende Bremsleuchte garantiert nicht, das ist in Deutschland verboten und da gibt es auch keine Ausnahmegenehmigung bei E-Scootern.
Hier handelt es sich um eine falsche Übernahme/Übersetzung der internationalen Seite.
Ob das deutsche Modell nur ein Rücklicht hat oder ein statisches Bremslicht, kann ich dir nicht sagen.