SoFlow SO4 Pro versteckte "SpeedModes"

5 September 2021
31
76
E-Scooter
SoFlow SO4 Pro
Telegram
Override
Hallo zusammen,

bin gerade dabei mich etwas schlau zu machen, wie die SoFlow App funktioniert.

Nachdem ich mir das Bluetooth Protokoll angeschaut habe konnte ich herausfinden, wie die App die drei möglichen "SpeedModes" überträgt.

Erhöht man die Ziffer des gewünschten Modus, zeigt das Display auch statt den gängigen Modi (1, 2, 3) auch zwei weitere an (4 und 5).

Hier war meine Hoffnung natürlich groß, dass in diesen Modi die Geschwindigkeitsbegrenzung anders eingestellt ist. Dies war jedoch nicht der Fall.

Ich bleibe daran weitere Dinge auszuprobieren.

Grüße

Override
 
Kenne mich mit SoFlow Rollern 0 aus.
Aber kommt man nicht irgendwie an die Firmware ran? Da müsste doch was gehen.🤔
 
  • Hilfreich!
Reaktionen: Dr.One
Aber kommt man nicht irgendwie an die Firmware ran? Da müsste doch was gehen.🤔
Nicht alles hat eine Firmware, selbst Roller die Bluetooth haben, müssen nicht unbedingt auch eine Firmware auf dem Controller haben. 99% der Roller am Markt werden durch stumpf doofe Controller gesteuert mit Shunt-Widerstand. Sollten diese Roller Bluetooth haben, verschicken diese meist nur die Infos, die dem Dashboard zur Verfügung stehen, an die App welche damit zb. irgendwas errechnet.
 
  • Hilfreich!
Reaktionen: Shorty672
Wissen kann man es nur wenn man sich mal das Board vom Controller anschaut.
Override Override könnte ja mal paar Bilder von der controller Platine hochladen.
 
Nicht alles hat eine Firmware, selbst Roller die Bluetooth haben, müssen nicht unbedingt auch eine Firmware auf dem Controller haben. 99% der Roller am Markt werden durch stumpf doofe Controller gesteuert mit Shunt-Widerstand. Sollten diese Roller Bluetooth haben, verschicken diese meist nur die Infos, die dem Dashboard zur Verfügung stehen, an die App welche damit zb. irgendwas errechnet.
Kenne mich da leider auch nicht gut genug aus. Kannst du mir vielleicht folgende Fragen beantworten:

1. Bei der Bluetooth Schnittstelle handelt es sich um einen gängigen Bluetooth Low Engergy Nordic UART Service welcher über das GATT Protokoll kommuniziert.
Welche Komponente am Scooter wird diese BLE Modul haben? Ich vermute mal, dass es in der Display-Einheit verbaut ist.

2. Wenn zwei Scooter mit unterschiedlichen Maximalgeschwindigkeiten den gleichen Controller verwenden, muss der Controller doch irgendwie bescheid bekommen, wo die Grenze für die Maximalgeschwindigkeit liegt? Kommt das Signal dann ebenfalls von der Display-Einheit?

Wissen kann man es nur wenn man sich mal das Board vom Controller anschaut.
Override Override könnte ja mal paar Bilder von der controller Platine hochladen.
Mein Ziel ist es, weitere Bluetooth Funktionalitäten (sollte es sie geben) aufzudecken.
(Aktuell könnte ich z.B. jeden SoFlow SO4 Pro ohne den Account des Eigentümers entsperren)

Wie es aussieht, muss ich tatsächlich iegendwie an den Chip, der die Bluetooth Schnittstelle anbietet.
Sollte ich Hardwarekomponenten auseinandernehmen, kann ich gerne Fotos davon hochladen :)
 
  • Hilfreich!
Reaktionen: VooDooShamane
Kleines Update:

Habe am Wochenende mal das Display ausgebaut und geöffnet.

Erste Erkenntnis: die chinesische Beschriftung auf der Unterseite des Displays steht für "Bluetooth".
D.h. das Bluetooth Modul ist tatsächlich im Display verbaut.

Display.jpg

Ein Kabel führt durch die Lenkstange zum Kontroller, während die Restlichen alle im Lenker verschwinden.
(Wusste bisher nicht, dass die Scheibenbremsen auch verkabelt sind, es macht jedoch Sinn während des Bremsens, den Motor abzuschalten)

Bei dem Kabelhersteller handelt es sich um YILIANSHENG Connectors.
Leider ist die Pin-Belegung nicht wirklich dokumentiert, sodass ich mich an den (evtl. kompatiblen) Steckern von Julet Electric orientiert habe.
Pin-Belegung bei den Kabeln kann ich gerne noch mal mit einem Multimeter checken.

Display_Pins.png

Auf der Rückseite des PCB-Boards finden sich 4 Pins, die verdächtig nach einer Schnittstelle aussehen.
Eventuell kann man darüber die Firmware ziehen bzw, draufspielen.

Display_backside.png

Leider sind die interessanten Komponenten unter den LEDs verbaut.
Bevor ich kein Ersatzdisplay habe, traue ich mich nicht, dieses weiße Kunststoffteil zu entfernen.
Display_led.png

Falls jemand Tipps und Tricks kennt, wie ich hier weiter vorgehen kann, wäre ich sehr dankbar!
Grüße
 
Es schaut tatsächlich so aus als ob dieses Display/Bluetooth Modul eine eigenständige Firmware hat.
Du musst den Flash Chip ausfindig machen und identifizieren.
Kann ja nur unter dem weißen Plastik sein.
Das sollte recht einfach zu entfernen sein.
Das Display besteht ja anscheinend nur aus ein paar SMD LEDs und diesem weißen Reflektor Plastik Teil.
Wenn du ein Datenblatt zu dem Chip findest und die pinbelegung kennst, kannst du die Firmware ziehen.
Von da an muss man weiter schauen wie man die Bluetooth Firmware am besten reversen kann.
So würde ich vorgehen.
Post automatically merged:

Display_backside.png

Denke die anderen beiden via Löcher sind Daten zum lesen/schreiben der firmware.
Müsste ich durchmessen.
Mehr kann ich grad nicht an Hand der Bilder sagen.
 
Zuletzt bearbeitet:
Mein Ziel ist es, weitere Bluetooth Funktionalitäten (sollte es sie geben) aufzudecken.
(Aktuell könnte ich z.B. jeden SoFlow SO4 Pro ohne den Account des Eigentümers entsperren)
Hast du das nur bei deinem ausprobiert, oder auch bei anderen SO4 Pro.
Wenn das auch bei anderen Funktioniert, wird wohl keine Verschlüsselung verwendet.

Aber ich sehe kein SoFlow, der von Haus aus mehr als 20km/h Fährt. Haben die keine 25km/h Version für EU?

Interessant wäre es zu wissen, ob noch andere Hersteller dieses Dashboard verwenden.

Auf der Rückseite des PCB-Boards finden sich 4 Pins, die verdächtig nach einer Schnittstelle aussehen.
Eventuell kann man darüber die Firmware ziehen bzw, draufspielen.
Ich frage mich gerade was du mit der BLE machen willst, ist da die DRV vom Controller nicht viel Interessanter?

Wie Doragonnaito42 Doragonnaito42 aber schon sagte, würde es mich auch schwer wundern, wenn man diese einfach auslesen könnte.
 
Ich würde Mal stumpf von aktivierter "read-out-protection" ausgehen wie bei Ninebot. Wenn es da keine Updates per App für die Roller gibt, kommst an die Firmware nicht Ran.

Wäre natürlich möglich das er nen write protect pin hat der schwer zugänglich ist oder man ihn sogar in einer speziellen Art ansprechen muss um ihn in den vendor Mode zu bekommen.
Aber wenn da ein Chip mit Firmware auf dem Board ist, dann kann man den auch auslesen.
 
  • Hilfreich!
Reaktionen: Dr.One
Wäre natürlich möglich das er nen write protect pin hat der schwer zugänglich ist...
eigentlich ist es meisten eher ein bit was beim programmieren gesetzt wird, welches verhindert das du den internen Speicher auslesen kannst, ist ja ein Microcontroller.
WP Pins findet man eher auf eeproms oder flash bausteinen ohne eigenen Microcontroller.
 
  • Hilfreich!
Reaktionen: VooDooShamane
Hast du das nur bei deinem ausprobiert, oder auch bei anderen SO4 Pro.
Wenn das auch bei anderen Funktioniert, wird wohl keine Verschlüsselung verwendet.
Habe es bisher nur bei meinem probiert, kann aber bestätigen dass die kommunikation nicht verschlüsselt ist.
Falls jemand mit SoFlow So4 Pro Interesse hat es auszuprobieren, gerne melden.

Aber ich sehe kein SoFlow, der von Haus aus mehr als 20km/h Fährt. Haben die keine 25km/h Version für EU?

Interessant wäre es zu wissen, ob noch andere Hersteller dieses Dashboard verwenden.
Der SoFlow So4 Pro wird leider nur mit 20km/h Limit verkauft.
Das Dashbard wird tatsächlich noch von einigen anderen Herstellern verwendet (leider hat keiner dieser eine BT App).
The Urban xT1, der Carrera impel is-1 und wie VooDooShamane VooDooShamane festgestellt hat auch der eScooter H102 und der G4 Electric Scooter.

Ich frage mich gerade was du mit der BLE machen willst, ist da die DRV vom Controller nicht viel Interessanter?
Ja, der Controller wäre vermutlich einfacher zu modifizieren, ich jedoch mit einer Custom Firmware glücklicher.

Das sollte recht einfach zu entfernen sein.
Hab es mir noch mal genauer angeschaut. Das weiße Platikteil ist mit dem LED-PCB-Board verklebt und das Board auf das Display-Board gelötet.
Ohne Lötgerät komme ich da leider nicht ran.
Chips.webp
 
  • Hilfreich!
Reaktionen: VooDooShamane
Habe es bisher nur bei meinem probiert, kann aber bestätigen dass die kommunikation nicht verschlüsselt ist.
Woher kommt die Annahme? Ich gehe davon aus, du hast das Signal "gesnifft", und damit auch die eventuelle Verschlüsselung.

Wenn wirklich keine Verschlüsselung, kannst du ja eine App schreiben, die in der nähe jeden SoFlow sperrt.

Ja, der Controller wäre vermutlich einfacher zu modifizieren, ich jedoch mit einer Custom Firmware glücklicher.

Hab mich eventuell falsch ausgedrückt, auf dem Dashboard wird nicht die Firmware (DRV) sein, sondern die Software für das Dashboard (BLE).

Daher auch meine Fragen, was du mit der Dashboard Software willst, wäre es nicht Interessanter zu schauen, ob du am Controller die Firmware auslesen könntest.

Obwohl ich bezweifle, das jemand diese Lesen kann.
 
  • Hilfreich!
Reaktionen: VooDooShamane
Daher auch meine Fragen, was du mit der Dashboard Software willst, wäre es nicht Interessanter zu schauen, ob du am Controller die Firmware auslesen könntest.

Obwohl ich bezweifle, das jemand diese Lesen kann.
Das hatte ich zu Anfang auch gedacht.
Aber so wie ich Override Override verstanden habe, wollte er um versteckte Bluetooth Funktionen zu finden, die entsprechende Firmware untersuchen.

Ja, der Controller wäre vermutlich einfacher zu modifizieren, ich jedoch mit einer Custom Firmware glücklicher.
Ja was denn nun?🙃
Wenn du versteckte Bluetooth Funktionen finden möchtest wäre es natürlich
vorteilhaft die Firmware des Bluetooth Modul zu bekommen.
Wenn du aber mit CFW, Firmware basiertes leistungstuning meinst, dann brauchst du die Controller Firmware.


Hab es mir noch mal genauer angeschaut. Das weiße Platikteil ist mit dem LED-PCB-Board verklebt und das Board auf das Display-Board gelötet.
Ohne Lötgerät komme ich da leider nicht ran.
Anhang anzeigen 9830

Hatte mich schon gewundert was da für Pins hinten am PCB raus schauen.
Nun stellt sich also raus, das sind die für das Display.
Display_backside (1).png
 
  • Hilfreich!
Reaktionen: Dr.One
Ich gehe davon aus, du hast das Signal "gesnifft", und damit auch die eventuelle Verschlüsselung.

Wenn wirklich keine Verschlüsselung, kannst du ja eine App schreiben, die in der nähe jeden SoFlow sperrt.
So ähnlich. Die SoFlow App wurde in React native geschrieben, sodass die Bluetooth Commands (die dem Otto-Normal-Verbrauchenden zur Verfügung stehen) relativ leicht rauslesbar sind.

Immerhin lässt der Scooter nicht zu, während der Fahrt gesperrt zu werden.
Und des weiteren sollte man sich beim SoFlow So4 Pro auch nicht auf das Sperren verlassen, da die Bremsen rein mechanisch funktionieren und man damit also trotzdem weg rollen kann.
Hab mich eventuell falsch ausgedrückt, auf dem Dashboard wird nicht die Firmware (DRV) sein, sondern die Software für das Dashboard (BLE).
Ne, dann habe ich dich wohl nicht verstanden. Bin auf dem Thema totaler Anfänger. Hätte die Hoffnung, dass ich dem Controller über das BLE die Maximalgeschwindigkeit mitteilen kann (und das ggf. auch per Bluetooth).

Das ist wohl ausgeschlossen, oder?
Obwohl ich bezweifle, das jemand diese Lesen kann.
Da zu komplex? Oder technisch nicht abgreifbar?

Hatte mich schon gewundert was da für Pins hinten am PCB raus schauen.
Nun stellt sich also raus, das sind die für das Display.
Ja, war für eventuell auf den vorherigen Bildern schlecht zu erkennen. Habe zum Glück nicht versucht es mit Gewalt abzureißen 😆
 
  • Liebe zum Detail! (2 Punkte)
Reaktionen: Dr.One
So ähnlich. Die SoFlow App wurde in React native geschrieben, sodass die Bluetooth Commands (die dem Otto-Normal-Verbrauchenden zur Verfügung stehen) relativ leicht rauslesbar sind.
(y)

Immerhin lässt der Scooter nicht zu, während der Fahrt gesperrt zu werden.
Und des weiteren sollte man sich beim SoFlow So4 Pro auch nicht auf das Sperren verlassen, da die Bremsen rein mechanisch funktionieren und man damit also trotzdem weg rollen kann.
Auf einem SoFlow Treffen, hätte man aber bestimmt trotzdem Spaß.

Ne, dann habe ich dich wohl nicht verstanden. Bin auf dem Thema totaler Anfänger. Hätte die Hoffnung, dass ich dem Controller über das BLE die Maximalgeschwindigkeit mitteilen kann (und das ggf. auch per Bluetooth).

Das ist wohl ausgeschlossen, oder?
Die Scooter, die das können, haben unterschiedliche Regionen um die Geschwindigkeit dem Land anzupassen.

Die frage ist ja, warum sollte SoFlow sowas überhaupt bereitstellen, wenn die eh alle 20km/h Fahren.

Lass dich aber nicht entmutigen, nice job von dir.