ePF-1 Tuning ohne extra Controller

vinceeeeent

Aktiv dabei
Registriert
31 Juli 2020
Beiträge
80
Reaktion
19
eScooter
epf-1
Ich erstelle diesen Thread, damit falls es in Zukunft eine Möglichkeit geben sollte, den ePF-1 per App ohne einen extra Controller zu tunen, diese Lösung hier reingeschrieben wird.
 
Es ist mit ein paar Tricks möglich, die Firmware des "Hiboy S2" auf den ePF-1 zu flashen, dadurch wird die Original-Funktion des Controllers wiederhergestellt. Wer dies tut und damit im Straßenverkehr unterwegs ist, tut dies jedoch illegal und 100 % auf eigene Verantwortung.
 
Wäre es dann möglich in der App die Geschwindigkeit einzustellen wie ich es mir wünsche nach dem flashen?
 
Es wird eine Mischung aus ePowerFun-App und Uniscooter werden, sowie Register fummeln mit nRF Connect. Das liegt daran, dass das ePowerFun Display eine andere Adresse für Prozessdaten wie Geschwindigkeiten pro Fahrstufe, aktuelle km-Zahl etc. benutzt als Uniscooter erwartet. die ePF-App lässt Dich nur bis 22 km/h einstellen. Mit nRF-Connect und ein paar speziellen Befehlen kann man das aber umgehen. Solltest Du einen Modchip haben, der genau das tut funktioniert der dann wahrscheinlich mit der Hiboy-Firmware. Die ePF-Firmware limitiert alle Geschwindigkeitseinstellungen gesetzeskonform auf 22 km/h.
 
Ich stelle hier aber einmal die grundsätzliche Vorgehensweise vor, werde aber die kommenden Tage die genauen Adressen und Befehle in nRF-Connect mitveröffentlichen.

Das wichtigste vorweg: Es handelt sich um einen Austausch der Firmware. Dadurch entspricht das Fahrzeug nicht mehr der Zulassung und ihr seid auf eigene Verantwortung illegal unterwegs, solltet ihr Euch damit im öffentlichen Straßenverkehr bewegen und auffällig werden. Ich enthalte mich hiermit der Verantwortung für dadurch entstehende Sach- und Personenschäden und nehme von Garantieansprüchen Abstand. Dies ist eine rein theoretische Anleitung die demonstriert, welche Schwachstellen momentan in der verbauten Software vorhanden sind.
Kurz: Nachmachen auf eigene Gefahr und auf eigene Verantwortung!

Alle hierfür verwendeten Apps "Uni scooter" (1.2.8), "Hiboy S2" (1.0.7) und "ePowerFun" (1.2.6) sind im Play store frei erhältlich und nicht illegal. Bei nRF Connect handelt es sich um ein Engineering Tool, was für Datenanalyse von Bluetooth-Low Energy Geräten konzipiert ist. Es ist ein Werkzeug und kein illegales Hacking-Tool.

Der Hack nutzt mehrere Schwachstellen der Apps und der Firmware des Displays aus, die keinerlei Sicherheitsfeatures bieten. Das Bluetooth-Passwort wird nicht benötigt, um Änderungen des Bluetooth-Namens durchzuführen. Ebenfalls wird kein Passwort benötigt, um das Display in den UF-Modus zu bringen. Der UF-Modus dient eigentlich nur zum Upgrade der Firmware oder der Einstellung erweiterter Parameter. Hierbei spricht man direkt mit dem Controller, das Display arbeitet als transparente Schnittstelle. Auch hier wird keine Sicherheit umgangen; die Schnittstelle ist komplett offen.

Bei der Verwendung von nRF Connect zur Kommunikation wird eine Abwandlung des Modbus Protokolls verwendet, wo zum Teil sehr lange Byte-Folgen von Hand eingegeben werden müssen. Man kann in nRF Connect diese als Makros speichern. Damit sich der Roller nicht mittendrin ausschaltet und ihr von vorn anfaangen müsst, immer mal wieder das Licht am Roller ein- und ausschalten.

Statt nRF Connect kann auch mein eigenes Tool zur Datenanalyse aus dem Reverse Engineering Thread verwendet werden. Dies ist allerdings KEINE nutzerfreundliche Software, sie hat diverse Bugs und ist ein reines, schnell gewachsenes Bastel-Tool.

Die Freischaltung funktioniert wie folgt:
  1. ePowerFun: Screenshot des Modellnamens und der Hardwareversion
  2. nRF: Umbenennen des Scooters (Bluetooth-Anzeigename) auf HW_[irgendwas] (ermöglicht anderen Apps die Verbindung mit dem Scooter)
  3. nRF: Schalten des Displays in den "UF" Modus um direkt mit dem Controller zu sprechen
  4. nRF: Umschreiben des Modellnamens auf "SC_FOC_DRIVER " (mit 3 Leerzeichen am Ende)
  5. nRF: Umschreiben der Hardwareversion auf "HW9027_V1.1 " (mit 5 Leerzeichen am Ende)
  6. nRF: Verlassen des "UF"-Modus
  7. Hiboy: In der Hiboy App den Roller verbinden und das Firmware Upgrade auf die vorgeschlagene Version machen
  8. Der Roller ist jetzt vom Controller her ein Hiboy S2. Es gibt jetzt nur noch zwei Geschwindigkeitsstufen, 15 und 25 km/h (standardmäßig). Die Geschwindigkeiten können über die Hiboy App nicht eingestellt werden, da das Display leicht anders funktioniert als beim originalen Hiboy S2.
    Der Tempomat ist jetzt aktiv. Die Nutzung ist illegal.
    Der Stand-Start ist jetzt ggf. aktiv, passt auf beim Betätigen der Gastaste.
    Das Bremslicht ist jetzt aktiv. Bei ausgeschalteter Hauptbeleuchtung leuchtet das Rücklicht einzeln beim Bremsen auf. Bei eingeschalteter Hauptbeleuchtung blinkkt die Rückleuchte beim Bremsen. Dies ist möglicherweise illegal.Manche firmwares stellen das Display auf Mph um. Dies kann später korrigiert werden.
  9. Uni Scooter: Anheben des globalen Limiters auf 30 km/h und Bremse sanfter einstellen in den erweiterten Einstellungen.
  10. nRF: Anheben der maximalen Geschwindigkeit der beiden Fahrstufen auf z.B. 22 und 30 km/h.
  11. ePowerFun: Zusätzliche Konfiguration durchführen (Kickstart an/aus, mph/kmh Anzeige)
    Wichtig: die ePF-App erlaubt eine Einstellung der Fahrstufen auf max. 22 km/h. Sollte die Geschwindigkeit verstellt werden, muss sie mit nRF Connect neu eingestellt werden.
Der Hack kann rückgängig gemacht werden, indem das Scooter-Modell und die Hardwareversion auf die Originalwerte zurückgeschrieben werden. Die Adressen dafür sind allerdings andere als in der Original ePF-Firmware. Nach der Umbenennung kann aus der ePF-App die Originalfirmware zurückgeschrieben werden.

Wichtig: Die Änderung der Firmware und das Fahren mit erhöhter Geschwindigkeit hätte diese Folgen:
-Verschleiß steigt
-Akku wird stärker strapaziert
-Motor wird stärker strapaziert
-Reichweite sinkt
-Versicherungsschutz erlischt

Die kommenden Tage mache ich die Anleitung noch etwas detaillierter.

Grüße,
Nils
 
Super vielen Dank für deine Mühe.
Wäre sehr schön wenn du ein Video machen würdest, auch gerne über WhatsApp😉✌️.
Nicht dringend, irgendwann..

Gruß Lisij
 
OK kein Problem, wenn die Beschreibung einigermaßen verständlich ist, werde ich es versuchen.
 
Stark! Ich freue mich schon drauf. Ich habe mir mal die nRF App mal angeschaut, aber bekomme keine gescheite Verbindung hin. Der will sich mit dem Roller gar nicht erst Verkoppeln. Naja, ich warte dann mal geduldig. Ich habe mir vorhin schon einen neuen Controller bestellt, aber nach dem ich den Thread hier entdeckt & gemerkt habe, dass es recht "simpel" scheint, direkt den Controller storniert.
 
Hi Nils @Ennar , warte schon auf die Details der Adressen um die Werte zu setzen.
Würde mich dann auch direkt daran versuchen.

Gruß
Peter
 
Moin,

habe derzeit sehr viel um die Ohren und muss einen Tag Zeit finden, das einmal ordentlich zu machen.

Grüße,
Nils
 
So, wie versprochen eine Schritt für Schritt-Anleitung.

Bitte lest auch unbedingt den vorhergehenden Post BEVOR ihr anfangt, damit die Reihenfolge und die damit verbundenen Risiken klar werden: https://www.escooter-treff.de/threads/epf-1-tuning-ohne-extra-controller.2394/post-227748

Der Rooller muss während der gesamten Zeit eingeschaltet bleiben, da sonst wieder von vorn begonnen werden muss. Einzige Ausnahme ist das automatische Ausschalten nach dem Firmware Upgrade.
Die hier angegebenen Bytefolgen müssen exakt eingegeben werden, da das Verfahren sonst nicht funktioniert. Die Änderung der Namen für Hardwareversion und Controllerversion sind lediglich im RAM, sollte der Roller sich ausschalten oder man sich vertippt haben, kann der Vorgang durch Ausschalten und wiedereinschalten neu begonnen werden.

In nRF Connect den Scooter finden und mit Druck auf CONNECT verbinden:
1670695520414.png

Nach Herstellen der Verbindung sieht das Ganze so aus:
1670695569195.png
Hier die beiden "Unknown Service" F2F0 (für Bluetooth-Name) und F1F0 (für Kommunikation mit dem Controller) erweitern.


Für die Umbenennung des Scooters in Service F2F0 die Characteristic F2F1 verwenden. Dazu auf den kleinen "Upload"-Pfeil tippen.

nRF: Umbenennen des Scooters (Bluetooth-Anzeigename) auf HW_[irgendwas] (ermöglicht anderen Apps die Verbindung mit dem Scooter)
Befehl in nRF Connect auf Characteristic ...f2f1 als Format TEXT (UTF-8):
AT+NAME[HW_EPF1]
1670695643534.png1670695703932.png
Es kann sein, dass danach der Scooter erneut in nRF-Connect gefunden und verbunden werden muss.

nRF: Schalten des Displays in den "UF" Modus um direkt mit dem Controller zu sprechen
Befehl in nRF Connect auf Characteristic ...f1f1:
a500ff000000005a
1670695777528.png1670695793492.png

nRF: Umschreiben des Modellnamens auf "SC_FOC_DRIVER " (mit 3 Leerzeichen am Ende)
Ich gehe hier davon aus, dass der ePF noch mit seiner original-Firmware läuft. Die Speicherstelle ist dadurch genau festgelegt: 011e...0125
Befehl in nRF Connect auf Characteristic ...f1f1:
01170116000801160008104353465f434f445f4952455620522020c1eb

nRF: Umschreiben der Hardwareversion auf "HW9027_V1.1 " (mit 5 Leerzeichen am Ende)
Ich gehe hier davon aus, dass der ePF noch mit seiner original-Firmware läuft. Die Speicherstelle ist dadurch genau festgelegt: 011e...0125
Befehl in nRF Connect auf Characteristic ...f1f1:
0117011e0008011e000810574830393732565f2e3120312020202065f0

nRF: Verlassen des "UF"-Modus
Befehl in nRF Connect auf Characteristic ...f1f1:
a5ff00000000005a

jetzt die Verbindung in nRF Connect trennen und nRF beenden.

Jetzt mit einem beliebigen Programm die Firmware-Datenbank aus der Hiboy App (liegt im Verzeichnis Android/data/com.zydtech.hiboys2/files/database) an Uni-Scooter senden. Ich habe sie mir der Einfachheit halber einfach selbst auf Telegram geschickt.

1670696100623.png

Uni-Scooter fragt, ob man die Firmwaredatenbank ersetzen möchte. Dies bitte bestätigen.
1670696145314.png

Wie gewohnt das Firmware upgrade durchführen.
1670696186314.png1670696214338.png
Auf meinem Beispielbild wurde das Upgrade bereits durchgeführt. Der Roller schaltet sich aus. Den Roller wieder einschalten und erneut mit Uni Scooter verbinden.

Jetzt in den erweiterten Einstellungen den globalen Limiter auf 31 km/h anheben.
1670696257815.png1670696294819.png

Jetzt Uni Scooter beenden und wieder nRF starten, den Roller verbinden.

nRF: Anheben der maximalen Geschwindigkeit der beiden Fahrstufen auf z.B. 22 und 30 km/h.
Befehl in nRF Connect auf Characteristic ...f1f1:
af000a820305161eecaa

nRF wieder trennen und beenden.

Jetzt geht's mit der ePF-App weiter. Den Scooter auf Fahrstufe 2 einstellen (grünes S), damit die schnellere Fahrstufe nicht auf 22 km/h zurückgeschrieben wird. Die Einstellungen nach eigenem Belieben einstellen.
1670696615048.png1670696693872.png

Die Funktion der Taste am Roller ist jetzt etwas verändert.

Das Einschalten geschieht jetzt unverzüglich ohne Halten der Taste.
1x drücken: Licht an/aus
2x drücken: Fahrstufe 2 (grünes S) oder 3 (rotes S) wählen
3x drücken: Tempomat aktivieren (2 beeps) oder deaktivieren (1 beep)

Ich übernehme keine Gewähr oder Haftung, dass dieser Mod funktioniert.

Grüße,
Nils
 
Danke für das detaillierte Tutorial, jedoch habe ich schon das erste Problem. nRF will keine konstante Verbindung herstellen. Er verbindet sich zwar mit dem Roller, aber bricht immer recht schnell die Verbindung ab...
Manchmal wirftt er mir auch einen "Error 133 (0x85): GATT ERROR raus der "Connection terminated by peer (status 19)"
Auch an die anderen: Nehmt euch ein Android Handy, was am Besten zwischen Android 5 und 10 läuft.Screenshot_20221211-141713.png
 
Zuletzt bearbeitet:
Ich möchte extra ein ganz großes Dankeschön an Ennar hier hinterlassen. Seine Forschung und Implementation der Erkenntnisse über die Scooter-Software ist erstklassige Arbeit, ein sehr wertvoller Beitrag für alle an Rollern und Software interessierten Teilnehmern. Danke für die Dokumentation deiner Ergebnisse auf github und im Forum und dann sogar noch die Anleitung dazu!
 
Zurück
Oben