SoFlow SO4 Pro versteckte "SpeedModes"

Hallo zusammen,

habe es heute gewagt und das LED-Board abgelötet.

Board_top.webp

Bei dem Herzstück handelt es sich um einen STM8S005K6T6C Microcontroller der leider (wie schon befürchtet) über eine Read-out protection verfügt, die angeblich beim Lese-Versuch zur Sicherheit die Firmware löscht 😪. Ich vermute mal, dass SAMA-Kit auch so schlau war und die ROP aktiviert hat.

Hier der Auszug aus dem Datenblatt:
Read-out protection (ROP)
The read-out protection blocks reading and writing the Flash program memory and data
EEPROM memory in ICP mode (and debug mode). Once the read-out protection is
activated, any attempt to toggle its status triggers a global erase of the program and data
memory. Even if no protection can be considered as totally unbreakable, the feature
provides a very high level of protection for a general purpose microcontroller.

Der VINKA VK1S66C scheint nur für die LED Steuerung zuständig zu sein. Bei dem Hersteller Shenzhen Vinka Electronic findet man dazu leider kein Datenblatt. (Wobei der Microcontroller für mich auch nicht so interessant ist).

Und zum Schluss noch das Bluetooth Modul Lierda E66. Hier findet man einige Dokumente bei der FCC. Aber auch dieses Modul ist für mich nicht besonders interessant.

Hat jemand von euch schon Erfahrungen mit dem STM8?
Bzw. kennt jemand vielleicht einen Weg die red-out protection zu deaktivieren? 😄
 
  • Hilfreich!
Reaktionen: Mätzchen
kennt jemand vielleicht einen Weg die red-out protection zu deaktivieren? 😄
Schau mal hier:
STM8 ROP glitch

Also wenn du wirklich den Aufwand machen möchtest und das ding glitch Attacken willst um an die Firmware zu kommen, würde ich dir empfehlen einen baugleichen Mikrocontroller auf aliexpress zu holen. (Z.b. hier)
Den kannst du mit Daten beschreiben, das rop Byte setzen und damit den glitch hack machen.
Erst wenn du den glitch erfolgreich an deinem testexemplar durchgeführt hast würde ich den mit der firmware glitchen die du haben willst.

Es ist halt echt die Frage wie diese "sama-kit" Dinger bestehend aus Controller, akku/bms und Dashboard funktionieren.
Gut möglich das die Geschwindigkeit Begrenzung genau in dieser stm8 Firmware sitzt.
Denkbar und fast wahrscheinlicher wäre aber auch das sie in einem weiteren Mikrocontroller auf dem Controller pcb sitzt.

Aber insgesamt ist es ein sehr cooles Projekt.
Außerdem werden diese Sama-kit Kombination anscheinend sehr viel verbaut.
In e-bikes, diversen Rollern usw...
Wäre schon sehr nice wenn man einen Weg kennt um alle diese sachen zu modifizieren.
 
Zuletzt bearbeitet:

Danke, das habe ich tatsächlich auch schon gesehen; und jetzt Mal eine Hand voll Chips bestellt. 🥴

Mal schauen, ob ich das reproduzieren kann.


Gut möglich das die Geschwindigkeit Begrenzung genau in dieser stm8 Firmware sitzt.
Denkbar und fast wahrscheinlicher wäre aber auch das sie in einem weiteren Mikrocontroller auf dem Controller pcb sitzt.
Ich vermute auch fast, dass die Begrenzung in einem Chip im Motor sitzt und dort einfach die maximale RPM hardkodiert ist.

Vielleicht schaue ich mir die Teile auch Mal genauer an. Der Controller ist leider gut versteckt und unter der Gummimatte verklebt. Und beim Motor hab ich bisher noch nicht näher hingeschaut.
 
Kurzes Update:
Habe nun tatsächlich ein Dump der Display Firmware. Mache mich jetzt ans Disassemblen.

Bevor ich dann eine modifizierte Version testen kann, benötige ich jedoch vermutlich ein neues Display 🥴

Habe inzwischen herausgefunden, dass der Controller doch leichter zugänglich ist als erwartet. Dort ist ein STM32-Fake names "CKS32F 031C6T6 NMG8Q" von CKS verbaut. Ich schaue Mal, ob ich diese Firmware auch besorgen kann.
 
Jetzt wird es richtig interessant.
Glückwunsch zum erfolgreichen dump. (y)

Was ist mit deinem Display?
Warum braucht du ein neues?
Danke, hatte tatsächlich Glück bei dem Chip, da er nicht read out protected war.
Bei den 4 Pins handelt es sich um ein SWIM Interface worüber sich die Firmware und der EEPROM auslesen lässt.

Hab den hex Dump jetzt mit naken-asm annotieren lassen und versuche jetzt Mal nachzuvollziehen was der Code macht.

Hast du vielleicht schon Erfahrungen mit STM8 Assembler Code bzw. kennst du jemanden?

Habe bei meinem Display eine Leiterbahn zu den LEDs beschädigt. Schaue Mal, ob ich die wieder hinbekomme.

Des Weiteren hat mein Scooter, nachdem ich den Controller und Motor ausgebaut und zerlegt hatte, das Gas nicht mehr angenommen. Bin gerade auf der Suche woran das genau liegt 😬
 
Zuletzt bearbeitet:
  • Hilfreich!
Reaktionen: Dr.One
Nein, ich habe leider keine Erfahrung mit stm8 dumps.

Kommst du denn voran mit dem naken-asm de/Compiler?
Den kenne ich nämlich auch nicht.
Würde da mit IDA pro ran gehen.

Lg
 
Ja, bin einen kleinen, aber entscheiden Schritt weiter:

Habe die Leiterbahn auf dem Display gefixt und und das LED-PCB wieder drauf gesteckt.

Über naken_asm konnte ich den hex dump in besser lesbaren Assembler code umwandeln. Parallel kann ich mich mit OpenOCD auf den Chip schalten und zur Laufzeit durch den Assembler Code debuggen.

Ich hoffe dadurch den Assembler Code schneller zu verstehen.

Grüße
 
Hallo zusammen, da hier ja schon ein paar von euch an der Elektronik rumbasteln hier meine Frage. In dem Display erscheint Fehlercode 2, irgendwas mit der Bremse. Ich habe mir dann 2 neue Bremshebel bestellt, der Fehlercode erscheint aber immer noch. Ist das nun ein Fall für den Elektroschrott?
 
Fehlercode 02 ist der Gashebel. Wenn ich den beim Einschalten drücke, kommt derselbe Fehler, bei den Bremshebeln kommt die Fehlermeldung 05
 
G Gambler.ch laut Anleitung hat picea recht:

Fehlermeldung:
  • E1: Kommunikationsausfall
  • E2: Fehler mit der Bremsehebel
  • E3: Fehler mit dem Gashebel
  • E4: Fehler mit dem Hallsensor
  • E5: Fehler mit der Steuerung

Soweit ich weiß, speichert sich der SoFlow So4 Pro die Fehlermeldungen nicht. D.h. mit neuen Bremsen sollte der Fehler auch verschwinden.

Blöde Frage: P picea du hast die Kabel der Bremsen schon wieder an die Displayeinheit angeschlossen, oder?
 
G Gambler.ch laut Anleitung hat picea recht:

Fehlermeldung:
  • E1: Kommunikationsausfall
  • E2: Fehler mit der Bremsehebel
  • E3: Fehler mit dem Gashebel
  • E4: Fehler mit dem Hallsensor
  • E5: Fehler mit der Steuerung

Soweit ich weiß, speichert sich der SoFlow So4 Pro die Fehlermeldungen nicht. D.h. mit neuen Bremsen sollte der Fehler auch verschwinden.

Blöde Frage: P picea du hast die Kabel der Bremsen schon wieder an die Displayeinheit angeschlossen, oder?
Hey Override,

ich hab den Lenker komplett auseinandergenommen. Ich hab natürlich die neuen Bremshebel mit dem Display verbunden :). Hilft alles nix, Fehlercode 2 will nicht verschwinden.
Post automatically merged:

Fehlercode 02 ist der Gashebel. Wenn ich den beim Einschalten drücke, kommt derselbe Fehler, bei den Bremshebeln kommt die Fehlermeldung 05
Ich würde mir auch noch einen neuen Gashebel gönnen. Weisst du wo man einen herbekommt?
 
Die Anleitung zeigt zwar die Ferhlermeldungen, wie sie Override beschrieben hat. Aber wenn ich bei meinem SoFlow S04 Pro direkt mit dem Einschalten den Gashebel herunterdrücke, kommt die Fehlermeldung 2 auf dem Display. Wenn ich beim Einschalten die Bremsen betätige, kommt die Fehlermeldung 5 auf dem Display. Vielleicht ein China-Deutsch Übersetzungsfehler in der Anleitung ;-)
 
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.

Anhang anzeigen 9798

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.

Anhang anzeigen 9795
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.

Anhang anzeigen 9796

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

Falls jemand Tipps und Tricks kennt, wie ich hier weiter vorgehen kann, wäre ich sehr dankbar!
Grüße
Hallo,

Mich würde die Pinbelegung vom Daumengas interessieren.

Mein Daumengas ist defekt, Ersatz muss her
 
Ja, bin einen kleinen, aber entscheiden Schritt weiter:

Habe die Leiterbahn auf dem Display gefixt und und das LED-PCB wieder drauf gesteckt.

Über naken_asm konnte ich den hex dump in besser lesbaren Assembler code umwandeln. Parallel kann ich mich mit OpenOCD auf den Chip schalten und zur Laufzeit durch den Assembler Code debuggen.

Ich hoffe dadurch den Assembler Code schneller zu verstehen.

Grüße

Servus,

habe gerade diesen Thread entdeckt und da die letzte Info ja schon etwas älter ist, wollte ich mal nachhaken, ob sich mittlerweile was neues ergeben hat.
Wollte meinen neuen So4 Pro (Gen.2) in Zukunft auch gerne mit in den Urlaub nehmen und da wäre die Möglichkeit zum Entriegeln der VMax natürlich erste Sahne (gibt ja außerhalb von DE wohl doch noch einige Plätze, wo die Gesetzgebung etwas weniger streng ist).
 
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.


Ich frage mich gerade was du mit der BLE machen willst, ist da die DRV vom Controller nicht viel Interessanter?

Wie Doragonnaito42 aber schon sagte, würde es mich auch schwer wundern, wenn man diese einfach auslesen könnte.
Urban xr1 besitzt das selbe Board!
Gleiche Stecker, selbes Dashboard!
 
Im is n transistor mit zwei cube magneten
... Hatte mal alles zerlegt ging auch kein Gas mehr... War halt schlampig beim Zusammenbau.. Nochmal zusammengebaut viola
Post automatically merged:

Wenn ich die drei hauptlizen im Controller verstaerke drückt der dann auch bergauf mit 20kmh?