mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BLDC Controller mit STM32F103C8T6 Geschwindigkeitsbegrenzer in der .hex


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

Ich wollte fragen, ob denn irgendwer hier in der Lage ist, rauszufinden,
wo in der angehängten .hex Datei der Wert für die 
Geschwindigkeitsbegrenzung liegt. Ich habe den Roller von dem das 
Readout stammt von Lime bekommen, in defektem Zustand, und ihn 
repariert. Da ich in Österreich viel unterwegs bin, dürfte ich 25 statt 
20 kmh fahren, und die Begrenzung für die Motorleistung dürfte ich auch 
aufheben, da in Österreich 600W erlaubt sind, und der Scooter eigentlich 
einen 500W Motor hat, der nur für Deutschland auf 250W abgeregelt wurde. 
Dazu muss man aber wissen, wo denn die Begrenzung in der .hex Datei 
hinterlegt ist. Dazu bin ich leider in Sachen µC´s nicht bewandert 
genug. Daher hoffe ich, dass einer hier mir vielleicht helfen kann.

Autor: John P. (brushlesspower)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bastler schrieb:
> Ich wollte fragen, ob denn irgendwer hier in der Lage ist, rauszufinden,
> wo in der angehängten .hex Datei der Wert für die
> Geschwindigkeitsbegrenzung liegt.

Niemand*

Das ist alles Maschienencode, das kann niemand lesen.

Du könntest hoffen das der Begrenzungswert in einem eigenen Flash 
Bereich geschrieben ist. Aber auch da wird du nicht sofort sehen was du 
ändern musst.

Du bräuchtest ein Hex File ohne Drosselung.

Ansonsten programmiere dir deine eigene Firmware. Geht vermutlich 
schneller.
Dann musst du nur noch herrausfinden welche Signale/Protokolle in den 
Regler rein und raus gehen.




* es sei denn der Ursprüngliche Programmierer ist hier anwesend.

Autor: Bastler (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

Was wäre denn wenn es mir gelingen würde, an eine .hex aus einem
österreichischen Roller zu kommen? Die laufen ja 24, also könnte man 
doch die beiden Dateien vergleichen, und so die Speicherstelle finden? 
Ich hätte das ganze auch noch als disassemblierte Datei aber ich denke 
nicht dass das helfen wird oder doch?

Autor: IchHabUrlaub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Disassemblieren kann man es ja mal.
Je nachdem kann man da ja schon was machen. Das Programm ist ja auch 
eher kurz ...

Vielleicht mache ich gleich mal wenn was größeres Baut ein disassembly 
via objdump.
Bitte bedenken Einzelbetriebserlaubnis bzw. was das bezüglich der 
allgemeinen Betriebserlaubnis bedeutet. Eine Einzelbetriebserlaubnis 
sollte halbwegs einfach zu bekommen sein ... ist hier aber 
wahrscheinlich gemessen am Wert des Fahrzeugs relativ kostenintensiv. 
Genaue Regelungen bezüglich Österreich kenne ich nicht.

Autor: nickm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Niemand*

*) Evtl. wird der Prozessor davon unterstützt: https://ghidra-sre.org/

Ist aber immer noch ein **Haufen** Arbeit.
Gidra ist ganz interessant. Hab es paarmal ausprobiert, aber nie mit 
etwas Sinnvollen[tm]

Gruß,
Nick

Autor: IchHabUrlaub (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Bastler schrieb:
> Was wäre denn wenn es mir gelingen würde, an eine .hex aus einem
> österreichischen Roller zu kommen? Die laufen ja 24, also könnte man
> doch die beiden Dateien vergleichen, und so die Speicherstelle finden?

Wenn du daran kommst, warum nicht einfach das Österreichische *.hex File 
aufspielen? Dann gibt's auch kein Tuning das den Roller abrauchen lässt.

Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ja das tolle an Österrecih, die brauchen nicht mal eine 
"Betriebserlaubnis" in dem Sinne, auch kein Kennzeichen, usw und gelten 
Als Fahrräder. Das einzige was se halt haben müssen ist Licht und 
bremse, usw, und sie dürfen nicht mehr als 600w und 25kmh, wobei mir 
auch schon einmal in Österrecih ein Polizist sagte "Ob 25 oder 28 kmh 
können und wollen wir jetzt auch nicht bei jedem dieser Dinger was hier 
rumfährt prüfen, aber wenn ich dich auf der Autobahn sehe gibts Ärger" 
Ich hab die disassemblierte Version mal angehängt, vielleicht kann man 
damit was anfangen, wurde mit Ghidra zerlegt. Ich muss auch mal sehen, 
ob ich in Österrecih vielleicht einen Roller mit Totalschaden finde, 
vielleicht könnte man sich von dessen Controller das .hex ziehen, ich 
weiß mittlerweile, dass Lime die Fahrzeuge auch beim kleinsten Defekt 
nicht repariert, weil das nicht lohnt, eigentlich ganz schön 
umweltschädlich, wenn man an den ganzen Schrott denkt der dadurch 
entsteht.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IchHabUrlaub schrieb:

>
> Wenn du daran kommst, warum nicht einfach das Österreichische *.hex File
> aufspielen? Dann gibt's auch kein Tuning das den Roller abrauchen lässt.

Dann läuft die Kiste aber nur reelle 23, das hat ein Bekannter schon mal 
in
Österreich ausprobiert, wenn man dann schon 25 fahren darf, wäre es gut 
wenn man es auch könnte.

Autor: John P. (brushlesspower)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Was wäre denn wenn es mir gelingen würde, an eine .hex aus einem
> österreichischen Roller zu kommen? Die laufen ja 24, also könnte man
> doch die beiden Dateien vergleichen, und so die Speicherstelle finden?

am einfachsten ist es die 24kmh.hex direkt flashen ohne bearbeiten.

Vergleichen kann man dann mal. Aber warscheinlich unterscheiden sich die 
beiden Hex Datein zu sehr.


Eventuell gibt es auf dem Board auch eine Serielle Schnittstelle zum 
configurieren?

: Bearbeitet durch User
Autor: vn n. (wefwef_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfacher wäre wohl, den Hersteller des Scooter herauszufinden. Für 
einige gibt es Tools um Parameter anzupassen, so z.B. für den Xiaomi 
M365, verwendet von Bird.

Autor: IchHabUrlaub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre auch eine Möglichkeit ...
Andernfalls schauen ob ein vielleicht ein Timer als Qudrature Encoder 
konfiguriert ist.

Das bedeutet Zugriffe in einem bestimmten Speicherberreich analysieren. 
Wenn man Glück hat, kann man vom Quadrature Wert dann im Assembly 
Rückwerts laufen.
Mehr Details zur Hardware wären schon noch gut ... aber ich hab eh die 
nächsten 2 Wochen keine Zeit -> schnell noch was fertig machen und dann 
ab in den Urlaub.

Autor: IchHabUrlaub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der "Code" ist mit ca. 32k auch etwas größer als gehofft.
Wenn das ganze noch 2 1/2 Wochen Zeit hat, würde ich mich mal 2-3 
Stunden dran probieren nach dem Urlaub.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Das hat schon noch Zeit, kein Problem.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vn n. schrieb:
> Einfacher wäre wohl, den Hersteller des Scooter herauszufinden.
> Für
> einige gibt es Tools um Parameter anzupassen, so z.B. für den Xiaomi
> M365, verwendet von Bird.

Das wird schwierig werden, das ist ein Lime gen 3, wird laut Lime 
Insidern
von Xiaomi gebaut, aber mit komplett Custom Firmware und Elektronik, 
also dürfte mit großer wahrscheinlichkeit keine Fw von einem Normalen 
Scooter drauf laufen. Es ist auch zwecklos zu versuchen, so einen 
Scooter ohne Lime zum fahren zu bringen, wenn die dir den nicht 
dauerhaft freischalten kriegst du den Controller nicht zum laufen, da 
gehen auch die Tricks der früheren Scootergenerationen nicht mehr.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
John P. schrieb:

> Eventuell gibt es auf dem Board auch eine Serielle Schnittstelle zum
> configurieren?

Hallo,

Auf dem Board des Controllers gibt es eine 4 Pin SWD Schnittstelle,
aber ich weiß nicht inwiefern das hilft, außer dass man die Steuerung 
damit mit einer .hex programmieren kann.

Autor: Carl D. (jcw2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> ...
> https://www.mikrocontroller.net/attachment/428740/Lime_Disassembled__2_.asm

Nicht alles was sich ARM nennt, versteht ARM-Befehle. Im konkreten Fall 
wäre ein Thumb2-Disassembler die bessere Lösung. Der wüßte dann auch, 
das am Anfang die Vector-Tabelle steht, mit Entrypoint bei Offset 4 und 
dem Start-SP bei Offset 0

: Bearbeitet durch User
Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habs mal nochmal hiermit:
https://onlinedisassembler.com/static/home/index.html
probiert, weiß aber nicht ob ich im online Disassembler alles richtig
eingestellt habe, die zerlegte Datei ist im Anhang.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bastler schrieb:
> Habs mal nochmal hiermit probiert

Und, kannst du mit dem Ergebnis etwas anfangen?

Ich nicht, es fehlt das rote X auf das man klicken muss.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Bastler schrieb:
>> Habs mal nochmal hiermit probiert
>
> Und, kannst du mit dem Ergebnis etwas anfangen?
>
> Ich nicht, es fehlt das rote X auf das man klicken muss.

Ich kann damit nichts anfangen, ich kann kein Assembler. Aber es gibt 
Leute die nicht so blöd sind wie ich, die können vielleicht einen Teil 
davon lesen, und wissen dann wo man was in diesem Zeichenhaufen findet. 
So entstehen auch die modifizierten Firmwares für die anderen Roller und 
Geräte. Nur da ist eben der Bedarf etwas größer, so viele Lime Roller in 
Privatbesitz gibt es in Deutschland nicht, in Amerika sieht das anders 
aus.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bastler schrieb:
> und wissen dann wo man was in diesem Zeichenhaufen findet.

Die wissen das nicht, sondern sie analysieren den Quelltext (in der 
Regel zusammen mit laufender Hardware und Debugger) in mühsamer 
Kleinarbeit. Das willst du sicher nicht finanzieren, da können mehrere 
Mann-Monate für drauf gehen.

Autor: Carl D. (jcw2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Stefanus F. schrieb:
>> Bastler schrieb:
>>> Habs mal nochmal hiermit probiert
>>
>> Und, kannst du mit dem Ergebnis etwas anfangen?
>>
>> Ich nicht, es fehlt das rote X auf das man klicken muss.
>
> Ich kann damit nichts anfangen, ich kann kein Assembler. Aber es gibt
> Leute die nicht so blöd sind wie ich, die können vielleicht einen Teil
> davon lesen, und wissen dann wo man was in diesem Zeichenhaufen findet.

Ich kann das zumindest soweit lesen, saß ich feststellen kann, daß auch 
dein Disassembler noch Verständnislücken hat. Viele Teile des Codes hat 
er schlicht als Hexdump dargestellt. Zumindest an den Stellen auf die 
die INT-Vektoren, muß Thumb2-Code stehen.

Wenn man das dann geschaft hat gilt es Funktionen zu erkennen. 
Allerdings kennt ARM/Thumb2 kein RET, sondern man muß dieses aus 
Ladeoperationen mit Ziel PC und einem Wert der beim Einsprung mal im 
Register LR stand.

Dann Parameterübergabe (R0..3 für die ersten 4 Parameter und Returnwert 
im R9) verstehen, usw, usw.

Und irgendwann versteht man wie das funktioniert, wobei das nicht selten 
länger dauert als Lebenzeit vorhanden wäre. Oder schlichter: nicht 
allzuviele schaffen das wirklich.

Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal die .hex mit IDA zerlegt, ob man daraus schlau wird, weiß 
ich nicht. Ich frage mich langsam warum manche Prozessoren eine Read out 
Protection haben, wenn man mit dem was man da ausließt ohne hundert 
Jahre Arbeit ja sowieso nichts, oder fast nichts anfangen kann.

Autor: pegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich musste mich Zwangsweise, wegen Defekt, mit den Controllern 
beschäftigen.
Fast jeder ist konfigurierbar und die Software gibt es von Hersteller.

Wie heißt denn dein Controller?

Notfalls gibt es Ersatz von 12-30€.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Ich frage mich langsam warum manche Prozessoren eine Read out
> Protection haben, wenn man mit dem was man da ausließt ohne hundert
> Jahre Arbeit ja sowieso nichts, oder fast nichts anfangen kann.

Naja das geht schon. Wenn man die Hardware und einen Debugger hat kann 
man sich da schon durchwühlen, braucht natürlich viel Geduld. Den 
ISR-Vektor sieht man auf jedenfall schon sehr schön, und wie IDA 
versucht die Adressen zu disassemblieren ;-)

Man könnte nach Interrupts oder Peripherie-Adressen suchen um Zugriffe 
auf die relevante Hardware zu finden und dann den Regelalgorithmus. 
Hätte man einen Controller mit FPU müsste man nur nach den FPU-Befehlen 
Ausschau halten. Man könnte die Software laufen lassen, Tracen, und die 
RAM-Werte visualisieren um Ablegeort für Drehzahl & Co zu finden. Aber 
so als Trockenübung nur mit dem ASM-Code macht das deutlich weniger 
Spaß.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pegel schrieb:
> Ich musste mich Zwangsweise, wegen Defekt, mit den Controllern
> beschäftigen.
> Fast jeder ist konfigurierbar und die Software gibt es von Hersteller.
>
> Wie heißt denn dein Controller?
>
> Notfalls gibt es Ersatz von 12-30€.

Hallo,

Leider nicht, der Hersteller baut diese Dinger nur für Lime. Auch steht 
auf dem Controller überhaupt nichts drauf. Sicher gibt es da was zum 
konfigurieren, aber da kommen wir nicht dran. Auch will ich den 
Controller ungerne tauschen, er ist von sehr guter Qualität, hat z.B. 
100A ST Mosfets drin, einen gescheiten 32 bit Prozessor, und kann wohl 
auch space Vector Control. Außerdem hat der Roller ein 2.8 Zoll 
Farbdisplay das nutzlos wird, wenn ich den Controller entferne. Wenn es 
irgendwelchen Chinesen möglich ist, die Steuerungssoftware von was weiß 
ich was für einer Atomrakete Amerikas zu zerlegen (Und zu klauen), muss 
es doch irgendwie möglich sein, dahinterzukommen, wie ein 32k großer 
Code funktioniert, (Ohne Milliarden dafür auszugeben, denke mal da liegt 
das Problem)

Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe das ganze mal mittels dem IDA Decompiler zerlegt, ist jetzt Pseudo 
C Code, der aber wahrscheinlich auch wieder nur aus Buchstabensuppe 
besteht, siehe Anhang.

Autor: Johnny B. (johnnyb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> ob ich in Österrecih vielleicht einen Roller mit Totalschaden finde

Das dürfte nicht sehr schwierig sein. Am besten in einer grossen Stadt 
mit Seeanstoss oder Fluss schauen und dort einen Roller herausfischen, 
welcher dort hineingeworfen wurde.

In Frankreich ist das Versenken von E-Rollern sogar zur 
Freizeitbeschäftigung von manchen Jugendlichen geworden.
https://www.n-tv.de/panorama/Wenn-der-E-Roller-im-Fluss-versinkt-article21219931.html

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> muss
> es doch irgendwie möglich sein, dahinterzukommen, wie ein 32k großer
> Code funktioniert

Ist es auch, aber das macht kein Forist hier mal eben in der 
Mittagspause ohne die Hardware zu haben... Ein guter Anhaltspunkt wäre 
jedenfalls auch ein Schaltplan.

Autor: pegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Auch steht auf dem Controller überhaupt nichts drauf.

Auf der Platine auch nicht?

Autor: Johnny B. (johnnyb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Dazu muss man aber wissen, wo denn die Begrenzung in der .hex Datei
> hinterlegt ist.

Bist Du eigentlich sicher, dass dies in der Software definiert wird? Die 
Limitierung könnte auch durch einen Jumper auf der Hardware aktiviert 
werden.

: Bearbeitet durch User
Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der Platine Steht leider nur "Lime Gen 2 blablabla nichts 
verwertbares.
Die werden schon irgndeinen anderen Controller genommen haben, und den 
modifizeirt haben, aber das wird wohl schwierig sein raus zu finden, 
welchen. Einen abgesoffenen Roller aus dem Fluss zu ziehen und in den 
rein zu schauen wird am einfachsten sein, die Frage ist, ob sich der 
Controller noch auslesen lässt, wenn der Roller mal unter Wasser war, 
aber da hilft wohl nur ausprobieren. In wien müsste es von den Rollern 
genug geben, wohl auch geschrottete. Schade dass man aus dem pseudo C 
code ncihts machen kann, aber da wird wohl wieder nichts verwertbares 
drinstehen.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Schade dass man aus dem pseudo C
> code ncihts machen kann, aber da wird wohl wieder nichts verwertbares
> drinstehen.

Die Funktion sub_80018BC ist spannend. Ist das so eine Art 
Look-Up-Table? Vielleicht autogeneriert (Matlab...)? Quasi ein Kennfeld?

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dr. Sommer schrieb:
> Bastler schrieb:
>> Schade dass man aus dem pseudo C
>> code ncihts machen kann, aber da wird wohl wieder nichts verwertbares
>> drinstehen.
>
> Die Funktion sub_80018BC ist spannend. Ist das so eine Art
> Look-Up-Table? Vielleicht autogeneriert (Matlab...)? Quasi ein Kennfeld?

Ich kann mir gut vorstellen, dass das Teil ein Kennfeld hat, die Frage 
ist nur für was ist das Kennfeld, wo fängt es an und wo hört es auf? Und 
wie kann man es verändern, wenn es wirklich eines ist. Was mir 
aufgefallen ist, ist dass der Scooter beim beschleunigen nicht linear 
beschleunigt, sondern die ersten 2/3 fast gar nicht gas gibt, es dich 
aber dafür wenn du mit dem Gas in den untersten Bereich kommst fast vom 
Scooter zieht, also wie Kickdown beim Auto, das könnte an einem 
unpräzisen Hallsensor im Gasgriff liegen, oder aber an einem Kennfeld, 
das so eingestellt ist. Auch hat der wohl wie ein LKW einen richtigen 
Begrenzer, der den Motor richtig ab und zuschaltet. Wenn du einen Berg 
runterfährst, rollt der der auch dreissig, wenn er dann wieder lagsamer 
wird, gibt es so bei 17 kmh laut Tacho einen Ruck, und er fängt wieder 
an zu schieben bis 19 da bleibt der Tacho dann. Vorher scheint der Motor 
wie bei einem Freilauf komplett aus zu sein. Nur wenn du die Bremse 
ziehst, bremst die Kiste erstmal elektronisch, bevoer die Trommelbremse 
vorne greift ob da noch Rekuperation dahintersteckt weiß ich nicht.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bastler schrieb:
> Ich frage mich langsam warum manche Prozessoren eine Read out
> Protection haben, wenn man mit dem was man da ausließt ohne hundert
> Jahre Arbeit ja sowieso nichts, oder fast nichts anfangen kann.

Weil man die Firmware 1:1 kopieren kann um damit gefälschte Produkte zu 
betreiben.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Aber wenn jemand sowas vorhat gibts doch genug Firmen die die Firmware 
gegen Geld trotzdem aus dem Prozessor kriegen? Ich meine immer die 
schädigen damit nur die Bastler weil die eben das Geld nicht haben um 
Firmen wie:
http://www.break-ic.com/
anzuheuern.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bastler schrieb:
> Ich meine immer die schädigen damit nur die Bastler

Wer schädigt die Bastler? Die Chiphersteller, die den Leseschutz als 
kostenloses optionales Feature anbieten? Oder die Hersteller von 
Geräten, die ihr geistiges Eigentum vor Raubkopien schützen?

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In diesem Falle sage ich wirklich mal den Herstellern die Schuld zu. Man 
kann den Leseschutz mit genug geldlichen Mitteln mühelos umgehen, und 
damit die Software trotzdem nutzen, nur ich als Bastler habe natürlich 
das Geld nicht, damit stehe in diesem Falle ich blöd da. Ich weiß sogar 
nicht mal, ob wenn man es rein rechtlich betrachtet ein gesperrter 
Prozessor an einem Gerät nicht sogar ein Rückgabegrund ist, da es in 
Deutschland erlaubt ist, die Software zu privaten Zwecken/Modifikationen 
zu reverse engineeren. Wenn das nun aber nicht oder nur mit für mich 
großem Aufwand geht, kann ich natürlich das Fahrzeug auch nicht 
anpassen, ich habs aber teuer gekauft, und damit gehört es mir. Wenn ich 
jetzt aber für mich damit nix anfangen kann, wegen Firmware nicht 
anpassbar, weiß nicht mal ob das nicht ein Mangel ist immerhin hat der 
Hersteller vorher nicht in der Beschreibung geschrieben 
"Prozessoren/MCUs auselsegeschützt" mitm guten Anwalt weiß ich nicht wer 
da gewinnen würde. Aber gut, selbst wenn du an die .hex kommst, man 
sieht ja wie schwirig es ist, da was zu lesen, auch wundert es mich, 
warum ausgerechnet Lime ihren Prozessor nicht geschützt hat, immerhin 
könnte wer rausfinden, wie das mit dem Sperren/Entsperren der Scooter 
funktioniert, und es hacken ob das Lime so gut gefällt weiß ich nicht.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Deine Logik ist für mich nicht nachvollziehbar.

Ein Hersteller, der seine Software vor Raubkopien beschützt ,schädigt 
also die Raubkopierer, weil reiche Leute sich das gewaltsame Auslesen 
leisten können?

Nach der Logik solltest du gleich heute Nacht einen Raubzug durch die 
Läger der Stadt machen. Hast ja ein gutes Argument, dass deinen 
Haftrichter überzeugen dürfte.

Oder nicht?

> es in Deutschland erlaubt ist, die Software zu privaten
> Zwecken/Modifikationen zu reverse engineeren.

Wo hast du denn das denn her? Ich bin sicher, dass du da etwas ganz grob 
missverstanden hast. Du darfst nicht einmal deine eigenen Musik CD's 
kopieren, wenn sie kopiergeschützt sind.

> Wenn das nun aber nicht oder nur mit für mich großem Aufwand
> geht, kann ich natürlich das Fahrzeug auch nicht anpassen

Dann musst du eben Open-Source Produkte kaufen.

> Wenn ich jetzt aber für mich damit nix anfangen kann,
> wegen Firmware nicht anpassbar

dann hast du schlicht das falsche Produkt gekauft. Ich kann mich auch 
nicht darüber beklagen, dass meine Spielkonsole keine Heizungssteuerung 
ist.

> weiß nicht mal ob das nicht ein Mangel ist immerhin hat der
> Hersteller vorher nicht in der Beschreibung geschrieben
> "Prozessoren/MCUs auselsegeschützt"

Es ist kein Mangel, denn der Händler hat Dir einen fahrbereiten 
Elektroroller verkauft. Nicht mehr und nicht weniger. Wenn du meinst, 
das sei ein programmierbares Ding mit Motor, dann bist du derjenige, der 
falsche Erwartungen gehegt hat.

Im Automotive Bereich haben viele programmierbare Geräte sogar einen 
Schreibschutz, damit keine komplizierten Haftungsfragen entstehen, wenn 
jemand die Firmware manipuliert.

Bei Geräten mit Funkschnittstelle gibt es gesetzliche Vorgaben, nach 
denen die Hersteller das Umprogrammieren unterbinden müssen.

: Bearbeitet durch User
Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Bastler sind idr keine Raubkopierer, weil sie nur versuchen Software zu 
privaten Zwecken zu modifizieren, wie eben bei dem Lime Roller, der in 
einem Land betrieben werden soll, wo man schneller fahren darf. 
Raubkopierer sind Leute die die Software nehmen, und sie zu Geld machen, 
wie auch immer. Wenn ich aber vorhabe sowas zu tun, werde ich auch 
bereit sein, das Geld auszugeben, um das Teil zu knacken. Mich hätte 
echt mal interessiert ob Break IC wirklich so einfach so einen Prozessor 
geknackt kriegt, und wie die das anstellen, fräsen die den Chip auf, und 
ziehen übers Gate die FW oder haben die da andere Tricks auf Lager, aber 
das weiß natürlich wieder keiner weil die das nicht sagen, sonst könnte 
es ja jeder.  Das schlimme ist: Als Bastler der nicht vor hat dem 
Hersteller Schaden anzurichten bekommst du die Software nicht raus. Als 
Raubkopierer der vor hat im großen Stil Geld zu machen kriegst du sie 
aber binnen zwei Wochen. Das ist das schlimme. Open Source Roller gibt 
es (Noch) nicht, weil kein Hersteller den Mum hat mal den Source Code zu 
veröffentlichen, auch wenn es eine Marktlücke wäre. Deutschland ist 
sowieso kein Land für E Scooter, viel zu viele Idioten in der Politik, 
250w, 20kmh, und dann brauchste noch Kennzeichen und Versicherung und 
sonst was, und wirst von jeder Dorfbullerei gefilzt weil sie Geld und 
Punkte machen wollen. In Österreich heizen sie mit 30 und 1000w rum und 
keiner sagt was. Erst jetzt hat mich einer in Österreich den Berg rauf 
überholt, das waren aber sicher keine 600w so wie der an mir vorbei ist. 
Ich trete noch mit damit ich mit ach und Krach da hoch komme, und der 
heizt da mit 20 hoch als ginge es bergab, war  auch wie mein Roller ein 
Direktdrive, also Motor ohne Getriebe im Rad.

Autor: Thomas Z. (Firma: Unaffiliated) (usbman)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Deine Rechtsauffassung ist etwas seltsam aber egal.

Worüber genau beklagst du dich denn? Der Controller ist doch gar nicht 
geschützt. Du hast ja den code ausgelesen. Gebratene Tauben fliegen auch 
in Ö nicht in den Mund. Du musst schon selbst den Code analysieren und 
dann die relevanten Stellen ändern.

> Dazu bin ich leider in Sachen µC´s nicht bewandert
> genug.

Das funktioniert natürlich nur wenn Du eine Ahnung hast. Ansonsten mußt 
du jemanden bezahlen der das für dich macht. Genau die gleiche Arbeit 
hättest du übrigens wenn du eine Fa mit dem Hacken des Controllers 
beauftragst. Da bekommst du auch nur ein hex file

Thomas

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meine mit dem gesperrten Prozessor nicht den Roller sondern einen 
anderen den ich teuer gekauft habe. Das mit dem Analysieren ist so eine 
Sache, ich bin dafür nicht bewandert genug auf dem Gebiet, und hier gibt 
es offenbar wenige/keinen der sich die Sauarbeit antun will, 
verständlicherweise. Ich weis dass das ne saublöde Arbeit ist, aber 
vielleicht findet sich ja jemand der sich das rein aus Hobby mal ansehen 
will. Was ich immernoch nicht verstehe, ist warum bitteschön ist bei 
einem Leihroller der gesamte Speicher auslesbar, aber bei einem 
gekauften nicht. Wenn jetzt einer rausfindet wie das mit dem Entsperren 
geht, wäre doch denen ihr gesamtes Geschäftsmodell hin oder nicht?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bastler schrieb:
> Ich weis dass das ne saublöde Arbeit ist, aber
> vielleicht findet sich ja jemand der sich das rein aus Hobby mal ansehen
> will.

Sicher nicht. Selbst wenn du mir deinen Roller schenken würdest, wäre 
das in meinen Augen reine Zeitverschwendung. Für die paar km/h stecke 
ich doch nicht ein halbes Jahr meiner ganzen Freizeit rein - ohne die 
Gewissheit auf Erfolg.

> Was ich immernoch nicht verstehe, ist warum bitteschön ist bei
> einem Leihroller der gesamte Speicher auslesbar, aber bei einem
> gekauften nicht.

Warum ist die Banane Krumm aber die Gurke gerade?
Frage doch solche Sachen bitte die Hersteller, nicht uns. Wir können 
darüber nur mutmaßen, das bringt niemanden weiter.

: Bearbeitet durch User
Autor: Thomas Z. (Firma: Unaffiliated) (usbman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Was ich immernoch nicht verstehe, ist warum bitteschön ist bei
> einem Leihroller der gesamte Speicher auslesbar, aber bei einem
> gekauften nicht

das ist doch vollkommen egal. Du kanst auch nichts damit anfangen wenn 
da nichts geschützt ist.

> Ich weis dass das ne saublöde Arbeit ist, aber
> vielleicht findet sich ja jemand der sich das rein aus Hobby mal ansehen
> will
soviel Arbeit ist das jetzt auch nicht. 32k ist nicht die Welt. Mit den 
richtigen Tools und Erfahrung geht das relativ zügig. Hobby setzt aber 
Interesse voraus. E Roller sind mit Sicherheit das letzte was mich 
interessiert. Schon alleine aus diesem Grund würde ich da nix machen. 
Ansonsten hast du recht es ist eine langweilige Arbeit. Arbeit muss auch 
nicht immer Spass machen, dafür gibts dann aber entsprechende 
Entlohnung.

Thomas

: Bearbeitet durch User
Autor: Dennis H. (c-logic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das mit IDA sieht mir aber sehr gescheitert aus. Hatteste da nicht 
Cortex-M3 ausgewählt ?

Das erste DWord ist der Stackpointer fürs Init. Das zweite der 
ResetPointer.
Danach folgt eine Interrupttabelle mit realen Adressen.
Flash ab 0x08000000.
RAM ab 0x20000000.
Und die Wahrscheinlichkeit ist durchaus gegeben, daß für 
unterschiedliche Versionen unterschiedliche Firmware mit anderen 
Konstanten genommen werden.
Dieser Cortex hat kein echtes EEPROM und müsste das dann über den Flash 
emulieren wenn kein externes gibt. Einfach ne angepasste Firmware 
erscheint mir einfacher.

Gruß Dennis

Autor: rµ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geh mit dem Ding in den nächsten Hackerspace.

Diese Roller-Motoren sind anscheinend recht beliebt um alles mögliche 
anzutreiben, ich bin schon auf einem 4KW Bobbycar gesessen, wirklich 
eine verrückte und nicht ungefährliche Sache.

Anscheinend gabs/gibts da eine richtige Modder-Szene, auf dem Bobbycar 
war  eine eigene Firmware auf dem Original-Controller bzw. 2 davon. 
Gesteuert hat man das alles über einen WII Nunchuk IIRC.

Autor: drm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/2f/99/76/bc/d3/5d/44/f0/DM00486148/files/DM00486148.pdf/jcr:content/translations/en.DM00486148.pdf

Pinbelegung rausfinden und für CubeMX einen eigene Firmware erstellen.
Lime hat bestimmt nicht das Rad neu erfunden wenn ST ein SDK dafür 
anbietet.

https://www.st.com/en/embedded-software/x-cube-mcsdk.html

Viel Spass beim Hacken a.k.a. Handbuch lesen und SDK durchklicken.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht ja nicht nur um die Paar kmh, auch Motorleistung und etliche 
weitere Dinge stecken da drin. Auch ist die Entwicklung einer eigenen 
Firmware nicht so einfach, der Roller hat drei Steuergeräte, eines für 
den Motor, eine Box zur Kommunikation die Bluetooth Lte wifi und weiß 
der Geier was noch alles unterstützt, dann noch ein Farbdisplay soagr 
mit lichteinfallgeregelter Helligkeit. Eine LED Leiste die aber nur grün 
gelb rot anzeigen kann. Und das alles quasselt miteinander.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> die ihr geistiges Eigentum vor Raubkopien schützen?

Es gibt kein "geistiges Eigentum". Es gibt nur Profitgier. Wieviel 
Wissen ist der Menschheit schon verloren gegangen wegen "geistigem 
Eigentum" und daraus resultierender Geheimhaltung?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Es geht ja nicht nur um die Paar kmh

So hatte ich dich aber verstanden. Du wolltest nur die 
Geschwindigkeitsbegrenzung ändern.

Wenn du jetzt auch noch weitere Funktionen ändern willst, kommst du mit 
Sicherheit nicht umhin, den Quelltext zu beschaffen und zu bearbeiten - 
oder alles neu zu schreiben.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:
> Es gibt kein "geistiges Eigentum".

Das hättest du wohl gerne so. Fakt ist, dass unsere gewählte Regierung 
bestimmt, was Recht und Unrecht ist.

Hier ist der Begriff erklärt, samt Verweise auf relevante Gesetzestexte: 
https://de.wikipedia.org/wiki/Geistiges_Eigentum

Autor: John P. (brushlesspower)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> der Roller hat drei Steuergeräte, eines für
> den Motor, eine Box zur Kommunikation die Bluetooth Lte wifi und weiß
> der Geier was noch alles unterstützt, dann noch ein Farbdisplay soagr
> mit lichteinfallgeregelter Helligkeit.

Hier würde ich als ersten ansetzen.

Welche Steuergeräte bestehen aus welchen Bauteilen.
#Wie sind sie verbunden (I2C, UART, CAN)? Welches Protokol?

Ich kann mir Vorstellen das die Begrenzung gar nicht im Motorcontroller 
hinterlegt ist.
Sondern das deine App oder die BLE Box einen Befehl sendet "Speed max 
20"
Den Standort gibts ganz leicht aus dem GPS.

Dann nutzt dir das anpassen des Motorcontrollers gar nichts.

Du (und nur du) muss dir erstmal im klaren sein was dein gesamt System 
macht.
Dann die richtige komponente ändern (enweder eigene Firmware, oder 
irgendwas hacken)

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Das hättest du wohl gerne so.

Allerdings.

Stefanus F. schrieb:
> Fakt ist, dass unsere gewählte Regierung bestimmt, was Recht und Unrecht
> ist

Nein. Die Regierung legt Gesetze fest. Die in den meisten Fällen weder 
mit Recht noch mit Gerechtigkeit irgendetwas zu tun haben. Siehe: 
https://www.misesde.org/?p=9068

Autor: Max (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Tabelle "dword_8007070" ist eine Lool-Up Tabelle für Sinus, die 
"word_8002AD8" ist am Anhang.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Sobald ich einen Bluetooth Sniffer habe (Ist bestellt) werde ich mal 
sehen was da zwischen Handy und Roller alles gesendet wird. Diese Look 
up Tabelle, mit was hast du die Kennlinie sichtbar gemacht? Kann man die 
auch ändern? Ich würde gerne mal wissen wie sich das auf den Motor 
auswirkt.

Autor: Max (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Tabelle könnte man auch mit Excel plotten. Die Funktion, die die 
Tabelle verwendet, iteriert und der Ergebnis ist int8. Komisch, was dort 
berechnet wird. Typischerweise ein BLDC-Motor Sinus und ATan für 
FOC-Regelung braucht (Park/Clark Transformation), es könnte hier auch 
sein, die Sinus-Tabelle liegt gleich daneben und ist sehr lang.
Generell, in dem Code wird ziemlich viel berechnend, mit Fix-Point 
Arithmetik, deswegen ständige Left/Right Shifts.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Stefanus F. schrieb:
> Fakt ist, dass unsere gewählte Regierung bestimmt, was Recht und Unrecht
> ist

Frank schrieb:
> Nein. Die Regierung legt Gesetze fest. Die in den meisten Fällen weder
> mit Recht noch mit Gerechtigkeit irgendetwas zu tun haben.

Dafür haben wir noch die Gerichte. Unsere aktuelle Groko legt sich 
gefühlt permanent mit dem Bundesverfassungsgericht an.

Diese Gerichte hatte ich mit einbezogen, als ich "unsere Regierung" 
schreibt. Aber du hast schon Recht, dass man das eigentlich getrennt 
betrachten soll. Denn wir wollen ja auch, dass die Gerichte unabhängig 
sind - nicht wie die Partien mit der Auto- und Pharma-Industrie.

Autor: John P. (brushlesspower)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Was mir
> aufgefallen ist, ist dass der Scooter beim beschleunigen nicht linear
> beschleunigt, sondern die ersten 2/3 fast gar nicht gas gibt, es dich
> aber dafür wenn du mit dem Gas in den untersten Bereich kommst fast vom
> Scooter zieht

Max schrieb:
> die
> "word_8002AD8" ist am Anhang.

Ich sehe da einen gewissen zusammenhang.
Man könnte mal die Lookuptable Linear machen (im Hex File umschreiben) 
und mal in den Scooter flashen

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal kurz reingeschaut:
Die Firmware besteht aus einem Bootloader und einer Applikation. Der 
Bootloader kommuniziert über USART1 mit einem anderen Controller(ggf. 
das Cellular Modem?) und startet anschließend die Applikation 
(Einsprungspunkt 0x0800388c).

Ab hier wird es etwas knifflig:
1) Die Applikation initialisiert die Peripherals (GPIOA, GPIOB, 
Watchdog, SCB, ADC1, DMA1, TIM1, ADC2)
2) Es werden einige Konstanten im RAM hinterlegt
3) Die Mainloop startet, hier gibt es ebenfalls wieder ein UART 
Protokoll (Statemachine)

XRefs zu den Timer-Peripherals:
0x0800405e : Scheint eine Stop-Funktion zu sein?)
0x08004128 : Das scheint die Momentenberechnung zu sein!

Zu mehr fehlt mir gerade die Zeit. Wenn ich raten müsste: Der Roller 
bekommt die Konfiguration (inkl. Maximalgeschwindigkeit) durch das 
UART-Protokoll.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde, ihr solltet dem TO keine falschen Hoffnungen machen. Er kann
es nie und nimmer und ihr wollte es sicher nicht für ihn machen - selbst
wenn ihr könntet.

Also ist das Vorhaben damit gestorben.

Autor: John P. (brushlesspower)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Ich finde, ihr solltet dem TO keine falschen Hoffnungen machen. Er kann
> es nie und nimmer und ihr wollte es sicher nicht für ihn machen - selbst
> wenn ihr könntet.
>
> Also ist das Vorhaben damit gestorben

Ich glaube es gibt hier genug die das Problem lösen wollen, oder mal so 
einen E-Scooter verstehen wollen.

Wenn der TO halbwegs versucht mitzumachen kann es für alle ein gewinn 
sein.
Wenn der TO sich wirklich als 0 Nummer raustellt wird der Thread schnell 
beendet sein.


Ich für meinen Teil fühle mich schonmal bestätigt: Die geschwindigkeit 
wird von außen vorgegeben. Ego wieder ein bisschen gestärkt lach

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.