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


von Bastler (Gast)


Angehängte Dateien:

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.

von John P. (brushlesspower)


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.

von Bastler (Gast)


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?

von IchHabUrlaub (Gast)


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.

von nickm (Gast)


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

von IchHabUrlaub (Gast)


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.

von Bastler (Gast)


Angehängte Dateien:

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.

von Bastler (Gast)


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.

von John P. (brushlesspower)


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
von Vn N. (wefwef_s)


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.

von IchHabUrlaub (Gast)


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.

von IchHabUrlaub (Gast)


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.

von Bastler (Gast)


Lesenswert?

Hallo,

Das hat schon noch Zeit, kein Problem.

von Bastler (Gast)


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.

von Bastler (Gast)


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.

von Carl D. (jcw2)


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
von Bastler (Gast)


Angehängte Dateien:

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.

von Stefan F. (Gast)


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.

von Bastler (Gast)


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.

von Stefan F. (Gast)


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.

von Carl D. (jcw2)


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.

von Bastler (Gast)


Angehängte Dateien:

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.

von pegel (Gast)


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€.

von Dr. Sommer (Gast)


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ß.

von Bastler (Gast)


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)

von Bastler (Gast)


Angehängte Dateien:

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.

von Johnny B. (johnnyb)


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

von Dr. Sommer (Gast)


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.

von pegel (Gast)


Lesenswert?

Bastler schrieb:
> Auch steht auf dem Controller überhaupt nichts drauf.

Auf der Platine auch nicht?

von Johnny B. (johnnyb)


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
von Bastler (Gast)


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.

von Dr. Sommer (Gast)


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?

von Bastler (Gast)


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.

von Stefan F. (Gast)


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.

von Bastler (Gast)


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.

von Stefan F. (Gast)


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?

von Bastler (Gast)


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.

von Stefan F. (Gast)


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.

von Bastler (Gast)


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.

von Thomas Z. (usbman)


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

von Bastler (Gast)


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?

von Stefan F. (Gast)


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.

von Thomas Z. (usbman)


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
von Dennis H. (c-logic) Benutzerseite


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

von (Gast)


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.

von drm (Gast)


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.

von Bastler (Gast)


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.

von Frank (Gast)


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?

von Stefan F. (Gast)


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.

von Stefan F. (Gast)


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

von John P. (brushlesspower)


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)

von Frank (Gast)


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

von Max (Gast)


Angehängte Dateien:

Lesenswert?

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

von Bastler (Gast)


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.

von Max (Gast)


Angehängte Dateien:

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.

von Stefan F. (Gast)


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.

von John P. (brushlesspower)


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

von Dominik (Gast)


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.

von Stefan F. (Gast)


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.

von John P. (brushlesspower)


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

von Bastler (Gast)



Lesenswert?

Hallo,

Auch wenn der Controller die Geschwindigkeit von der ComBox vorgegeben 
kriegt, muss er sie irgendwo speichern. Denn: Wenn der Scooter entsperrt 
ist, und man nimmt ihm den Strom komplett weg, und entfernt die ComBox, 
startet der Controller trotzdem wenn man ihm wieder Strom gibt, und ist 
entsperrt. Der Controller scheint also den Zustand gesperrt ungesperrt 
zu speichern, undzwar permanent. Also muss doch irgendwo in dieser .Hex 
Datei stehen wie schnell das Ding fahren soll, auch wenn die Box Fehlt 
fährt der Roller 20 also tut der Controller wohl auch ohne die Box das 
was ihm die Box gesagt hat, als sie noch da war. Ich denke sogar, dass 
die ComBox den Speed vorgibt, immerhin will Lime in der Zukunft die 
Geschwindigkeit in bestimmten Zoenen begrenzen, was wohl nur über die 
Box geht weil nur die ein GPS Modul hat. Der Unterschied zwischen 
gesperrtem Scooter und ungesperrtem ist nur eine Zeile in der .hex, ihr 
könnt sie gut sehen wenn ihr sie in Notepad++ mit Compare vergleicht. 
Die beiden Dateien und ein Screenshot vom Unterschied sind im Anhang. 
Dass ich das heute so schlecht kann ist übrigens auch ein bisschen 
meiner Mutter geschuldet, die damals sagte "Neinnein das Kind braucht 
mit 10 Jahren noch nicht mit Computern in Kontakt kommen, das hat alles 
Zeit" Ich würde ja auch heute noch gerne leren wie man Controller 
programmiert, und vielleicht auch Software reverse engineert, aber da 
ich im generellen ein Praktiker bin der mit online Tutorials nicht 
klarkommt, bräuchte man jetzt wen der mir blödem Hund das beibringt, das 
wird aber wohl keiner tun, dazu hat schon garkeiner Zeit.

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> aber da ich im generellen ein Praktiker bin der mit online Tutorials
> nicht klarkommt, bräuchte man jetzt wen der mir blödem Hund das
> beibringt

Dann nimm Bücher, die sind eh besser. Wenn du dir das nicht selbst 
beibringen kannst, hast du praktisch verloren. Dir das von jemandem 
persönlich beibringen zu lassen dürfte ein Vermögen kosten.

Bastler schrieb:
> Also muss doch irgendwo in dieser .Hex Datei stehen wie schnell das Ding
> fahren soll

Kann sein. Da wir mangels Schaltplan komplett im Dunkeln tappen wird das 
schwierig herauszufinden. Da nur du die Hardware hast kannst nur du hier 
einen wesentlichen Schritt weiter helfen...

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Open Source Roller gibt
> es (Noch) nicht, weil kein Hersteller den Mum hat mal den Source Code zu
> veröffentlichen,

Ich bin mir sicher es gibt irgendwo freien Code für einen 3-Phasen 
Motorcontroller mit Hall-Sensoren. Schaltplan wäre halt mal hilfreich 
damit man sieht was wo angeschlossen ist damit man sowas dort zum Laufen 
bekommt.

Du kannst aber auch einfach den Motorcontroller komplett ausbauen und 
stattdessen einen generischen 0815 China-Controller einbauen, der kommt 
dann gleich mit Konfigurationstool um alle Parameter nach belieben 
einzustellen.

von John P. (brushlesspower)


Lesenswert?

Bastler schrieb:
> Der Controller scheint also den Zustand gesperrt ungesperrt
> zu speichern, undzwar permanent. Also muss doch irgendwo in dieser .Hex
> Datei stehen wie schnell das Ding fahren soll, auch wenn die Box Fehlt
> fährt der Roller 20 also tut der Controller wohl auch ohne die Box das
> was ihm die Box gesagt hat, als sie noch da war.

Dann brauchen wir ein Hex File aus einem 25khm Roller.

Oder jemand (Du?) findet heraus was zwischen ComBox und Motorcontroller 
so kommuniziert wird.

Dannn baut man fix eine fake ComBox und erzählt dem Motorcontroller das 
er entsperrt ist, schneller fahren soll, und was sonst noch alles toll 
wäre.

Deswegen ist es absolut wichtig zu wissen welche verbindungen zwischen 
Box und Motorcontroller bestehen, an welche Pins die gehen und welches 
Protokoll (Mitschnitt)


P.s. Trotzdem sehr interessant was der Motorcontroller alles dauerhaft 
speichert.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Hallo,

Die Leitung mit der die Combox mit dem Controller verbunden ist
Hat 2 Drähte und ist mit Rx und Tx auf der Platine beschriftet. 
Wahrscheinlich UART.
Die Frage ist ob es nicht einfacher wäre die Bluetooth Kommunikation 
zwischen Handy und Roller zu sniffen, einen Analyzer für UART habe ich 
leider nicht.

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> Die Frage ist ob es nicht einfacher wäre die Bluetooth Kommunikation
> zwischen Handy und Roller zu sniffen, einen Analyzer für UART habe ich
> leider nicht.

Der war gut. Ein "UART-Analyzer", d.h. ein USB-UART-Adapter, kostet 2€ 
oder so. Ein Spectrum Analyzer/Decoder für RF wie Bluetooth kostet so 
viel wie ein Sportwagen.

von Bastler (Gast)


Lesenswert?

Hallo

Ich habe einen bluefruit le sniffer, weiß jedoch nicht obs mit dem
geht. Ist ein low cost sniffer. Die frage ist ob man überhaupt irgendwas 
sniffen muss oder ob es nicht auch geht die daten die die app ans 
bluetooth modul vom handy sendet abzufangen.

von Bastler (Gast)


Lesenswert?

John P. schrieb:
> Bastler schrieb:
>> Der Controller scheint also den Zustand gesperrt ungesperrt
>> zu speichern, undzwar permanent. Also muss doch irgendwo in dieser .Hex
>> Datei stehen wie schnell das Ding fahren soll, auch wenn die Box Fehlt
>> fährt der Roller 20 also tut der Controller wohl auch ohne die Box das
>> was ihm die Box gesagt hat, als sie noch da war.
>
> Dann brauchen wir ein Hex File aus einem 25khm Roller.
>
> Oder jemand (Du?) findet heraus was zwischen ComBox und Motorcontroller
> so kommuniziert wird.
>
> Dannn baut man fix eine fake ComBox und erzählt dem Motorcontroller das
> er entsperrt ist, schneller fahren soll, und was sonst noch alles toll
> wäre.
>
> Deswegen ist es absolut wichtig zu wissen welche verbindungen zwischen
> Box und Motorcontroller bestehen, an welche Pins die gehen und welches
> Protokoll (Mitschnitt)
>
> P.s. Trotzdem sehr interessant was der Motorcontroller alles dauerhaft
> speichert.

Hallo,

Das versuche ich gerade aus Amerika zu bekommen. Kann es denn nicht 
sein, dass die Geschwindigkeit in dieser einen Zeile hinterlegt ist? Und 
was meinst du mit "Sonst noch alles speichert?

von A. B. (Gast)


Lesenswert?

Bernd K. schrieb:
> Ich bin mir sicher es gibt irgendwo freien Code für einen 3-Phasen
> Motorcontroller mit Hall-Sensoren. Schaltplan wäre halt mal hilfreich
> damit man sieht was wo angeschlossen ist damit man sowas dort zum Laufen
> bekommt.

Nun, bei ST gibt es angeblich auch den (kompletten) Source-Code:

https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-mcsdk-ful.html

Ob man den realistischerweise allerdings bekommt ...
Und Open Source ist's ja auch nicht.

von Bastler (Gast)


Lesenswert?

Hallo,

Der Motor hat keine Hallsesnoren, es scheint der Controller würde über 
hilfswicklungen die Position rausfinden. Wenn einer die Lime 
originalsoftware reverse engineeren könnte, wäre das klasse, ich denke 
mal die Scooter in privater Hand werden mehr werden, alleine schon die 
ganzen die kaputt gehen werden irgendwo immer mal ihren weg in private 
hand finden. Wenn Deutschland die Scooter wieder verbietet, wie von 
vielen gefordert, werden die massenhaft verkauft, dann lohnt es sich 
erst recht. Ich glaube mit ziemlicher Sicherheit, dass es rentabel ist, 
die .hex auseinander zu nehmen.

von John P. (brushlesspower)


Lesenswert?

Bastler schrieb:
> einen Analyzer für UART habe ich
> leider nicht

kaufen!
kostet 2-5€, ist morgen da und du kannst alle Daten am PC Empfangen.

Bastler schrieb:
> Ich habe einen bluefruit le sniffer, weiß jedoch nicht obs mit dem
> geht. Ist ein low cost sniffer.

Das ist schon OK, ich glaube aber das dein Problem/Vorhaben nicht in der 
BLE Ebene steckt.

Bastler schrieb:
> Kann es denn nicht
> sein, dass die Geschwindigkeit in dieser einen Zeile hinterlegt ist

Ja, kann sein. Weißt du an welcher Stelle?

Bastler schrieb:
> Und
> was meinst du mit "Sonst noch alles speichert

In dieser einen Zeile stehen 32Bytes. Keiner hier weiß was dort 
Hinterlegt ist
Vielleicht ein 32Byte Hash?
eventuell 16 Byte zum Entsperren, 2Byte Geschwindigkeit, vielleicht noch 
letzter standort?

Ich finde es sowieso komisch die Entsperrung im Motor controller zu 
hinterlegen, dauerhaft.

von Johnny B. (johnnyb)


Lesenswert?

Frank schrieb:
> Stefanus F. schrieb:
>> die ihr geistiges Eigentum vor Raubkopien schützen?
>
> Es gibt kein "geistiges Eigentum".

Im Grunde gibt es auch kein Materielles Eigentum; die Ressourcen des 
Planeten sollten doch allen Lebewesen gleichermassen gehören.

von Hugo H. (hugohurtig1)


Lesenswert?

Johnny B. schrieb:
> Im Grunde gibt es auch kein Materielles Eigentum;

Dir ist was Du verteidigen kannst - Hombre :-)

von Thomas Z. (usbman)


Lesenswert?

Du hast den Roller und willst an der FW rumpatchen. Da du das nicht 
selbst machen kannst suchst du Helfer. Das ist auch erst mal ok. Es ist 
aber deine Sache zu liefern.
Neben dem Hexfile gehört dazu auch ein Schaltplan. Oder erwartest du das 
wir uns hier so ein Teil beschaffen und den Plan für dich erstellen? Der 
Schaltplan muss noch nicht mal100% korrekt sein solange er die EAs 
zeugt.
Ohne Schaltplan wird's nur unnötig aufwändig zu reversen.
Es hilft nicht über die bösen Hersteller zu schimpfen, auch deine Mutter 
trägt keine Schuld. Du willst das Teil also musst du daran arbeiten.

Noch ein Literaturhinweis da du ja mit IDA arbeitest
<The IDA Pro Book> von Chris Eagle gibt's bei Amazon und bietet viele 
Hinweise zum reversen.

Thomas

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Der Motor hat keine Hallsesnoren, es scheint der Controller würde über
> hilfswicklungen die Position rausfinden.

Von Hilfswicklungen hab ich noch nie gehört. Es gibt aber welche die 
kommen ganz ohne Sensoren aus und verwenden direkt die 3 Motorwicklungen 
auch gleichzeitig als Sensor. Wozu aber dann Hilfswicklungen auf denen 
dann logischerweise auch nichts anderes zu messen wäre als auf den 
Hauptwicklungen selbst?

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Hallo,

Der Motor hat drei Phasenleitungen und drei kleinere Pins. Die kleineren
Pins sind aber nicht mit Hallsensoren verbunden. Sondern gehen an die 
Wicklungen. Ich weiß nicht wie der Controller die Position rausfindet, 
aber ich vermute er leitet durch diese Hilfspins strom und sieht dann 
was zurück kommt. Soweit ich mal gelesen habe verhält sich eine Spule 
mit einem Magneten davor anders als eine ohne weiß aber nicht ob das 
stimmt. Ich habe den Motor noch nicht geöffnet aber in einem 
amerikanischen Forum ein Bild gesehen, von einem geöffneten Motor. Ich 
weiß auch nicht warum der Controller die Entsperrung dauerhaft 
speichert. Für mich ist es auch unlogisch aber wie gesagt keine Ahnung. 
Der Motor kann nicht aus dem Stand anfahren aber ich denke nicht dass er 
eine Drehung braucht um seine Position zu finden, wenn man den Roller 
auch nur einen Millimeter bewegt (schiebt) , ist aus dem Motor ein 
leises "Klickern" zu hören, sieht aus als würde das was damit zu tun 
haben wie der Controller die Position findet. Lässt man den Roller dann 
stehen hört das Klickern nach einer Zeit ca 10 sek wieder auf. Am besten 
wäre es wenn ich einen weiteren Roller oder Controller hätte, dann 
könnte ich mit Heißluft alle Teile vom Board löten, und man sähe das 
Layout. Das Problem ist, die Dinger sind vergossen und das Entfernen der 
Vergussmasse habe ich bei meinem gemacht, Saublöde Arbeit mit 
angewärmtem Bremsenreiniger + Belüftung wegen Dämpfe + ewiges Prockeln 
mitm Schraubenzieher Fingernagel und allem weiten was ich noch dafür 
brauchbares Werkzeug gefunden habe. UART Adapter hole ich mir jetzt dann 
auch mal und ich werde mal versuchen an dieser Zeile einfach mal wahllos 
was zu ändern, vielleicht finde ich durch Zufall den Begrenzerwert. 
Natürlich muss man dann die Checksumme in der .hex neu berechnen und den 
Controller ans Labornetzteil hängen um im Falle eines durch Software 
verursachten Kurzschlusses eine Katastrophe zu vermeiden. Ich werde mir 
das IDA Buch mal ansehen aber arbeiten tu ich mit IDA nicht, höchstens 
rumpfuschen, arbeiten kann man das nicht nennen.

von Bastler (Gast)


Lesenswert?

Hallo,

Was mich auch interessiert, warum ist diese eine Zeile da wenn der 
Scooter gesperrt ist? Wenn der Scooter entsperrt ist, ist die Zeile leer 
(ffffff) wenn er gesperrt ist steht da 
"20F9400001008888010088880100888800008888000099998604AAAAFFFFFFFFFFFFFFF 
F5C"
wieso steht das da wenn das Teil gesperrt ist? Ich meine es wäre ja 
logisch, wenn die Zeile da wäre, wenn der Scooter entsperrt ist, und 
leer wäre wenn er gesperrt ist, warum ist es genau anders rum?

von Thomas Z. (usbman)


Lesenswert?

Bastler schrieb:
> Was mich auch interessiert, warum ist diese eine Zeile da wenn der
> Scooter gesperrt ist?

Weil der Programmierer das so gewollt hat natürlich. Wobei ich mir das 
sowieso nicht vorstellen kann da du ja was von einer Checksumme 
geschrieben hast....
Alles in allem wird das ganze mit jeder Post von dir seltsamer.
Dir ist schon klar, dass wenn das wirklich so wäre du damit beliebige 
Roller entsperren kannst.

Thomas

von Bastler (Gast)


Lesenswert?

Hallo,

Nein kannst du nicht, die Roller müsstest du erst öffnen, dann die 
Vergussmasse rausprockeln, dann die .hex auf den anderen Roller setzen, 
dann könnte es vielleicht gehen. Das ist ein riesen Aufwand, und 
Scooterdiebe lassen sich davon sicher nicht aufhalten, die bauen halt 
einfach einen anderen Controller ein. Auch habe ich mittlerweile von 
jemandem aus Amerika erfahren, dass sein Scooter auslesegeschützt war 
:-( Vielleicht war es von Lime gar nicht vorgesehen, dass sich die Teile 
auslesen lassen, und es war bei meinem nur ein Versehen dass der Schutz 
warum auch immer nicht aktiviert wurde. Auf jeden Fall haben wir damit 
die Möglichkeit ins innere der Software vn Lime zu schauen und könnten 
vielleicht wenn es denn jemand schaffen würde die Software zu zerlegen, 
alle möglichen Einstellungen vornehmen, Motorstrom höchstgeshwindigkeit 
usw. Ich glaube sowieso dass die Leihscooter bald wieder verschwinden 
werden, dafür passiert einfach zu viel, und ein Paar sehr mächtige 
Parteien ua. die Versicherungen arbeiten schon an einem Verbot. Ich weiß 
nur leider nicht ob das dann die Privatfahrzeuge dieser Art auch trifft. 
Ich würde die Software ja selber zerlegen, aber ich habe einbfach nciht 
das nötige Wissen und die Erfahrung. Ich bin ja schon zu blöd um zu 
verstehen warum die Zeile im Gesperrten Modus da steht und im 
ungesperrten nicht. Das ergibt für mich keinen Sinn.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> wieso steht das da wenn das Teil gesperrt ist

Vielleicht ist das eine Information, wer den Roller wann oder warum 
gesperrt hat. Und die 0 bedeutet in diesem Fall, dass er nicht gesperrt 
ist.

von Bastler (Gast)


Lesenswert?

Hallo,

Ich denke ma nicht, dass die ganze Sache weiterkommt, bis sich jemand 
findet, der Zeit und Interesse (und das nötige Wissen) hat um die 
Software zu reversen. Ich werde mal sehen dass ich einen UART Adapter 
kriege vielleicht kann man damit dann was lesen zwischen Box und Motor 
Controller.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Ich denke ma nicht, dass die ganze Sache weiterkommt...

Na endlich. Das ist der einzig vernünftige Schluss, auf den ich seit 2 
Wochen warte.

Beitrag #5987698 wurde von einem Moderator gelöscht.
von Bastler (Gast)


Lesenswert?

Hallo,

Nein auch ich muss die Vergussmasse entfernen, aber das wirst du bei 
einem Roller auf der Straße nicht jedes mal wenn du ihn leihen willst 
machen wollen. Auch glaube ich nciht dass für Lime Diebstahl eiun 
Problem ist, Diebstahl ist vielleicht 2% des Schadens, die Vandalen sind 
viel schlimmer, die die die Dinger in Flüsse werfen, sie einfach 
zerstören, usw. So ein Scooter ist recht unpraktisch sehr schwer und 
stabil aber daher auch nicht faltbar weil er kein Gelenk hat. Das wurde 
wegen der Stabilität weggelassen. Es gibt also wenige die so ein Gefährt 
klauen weil es nur wenige brauchen können. Aber es gibt viele die es 
einfach auf der Straße zerstören, und z.B. einfach hergehen, und mit 
einem Stein oben das Display einschlagen. Das ist für Lime ein viel 
größeres Problem. Also selbst wenn ich mit dieser Software ermöglih 
hätte, dass jemand den origial Controller entsperren kann, hätte sich 
für Lime nichts geändert.

von Rainer V. (a_zip)


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.

Auch wenn sich hier erfreulicherweise mal die "Sportler" angesprochen 
fühlen und schon in die Vollen gehen, würde mich zu allererst 
interessieren, warum die österreichische Original-Software nicht die 
österreichischen Geschwindigkeiten zuläßt! Entweder wird also je nach 
Modell (und vielleicht Land) einfach eine Konfigurationsdatei geladen 
und der TO hat eben keine österreichische erwischt oder es gibt einfach 
verschiedene Hex-Dateien mit verschiedenen Parametern. Dann würde es 
sich doch lohnen, weitere Hex-Dateien zu "suchen"! Immerhin ist der TO 
in der Lage, einen Hex-File in seinen Roller zu laden. Oder habe ich das 
falsch verstanden?
Gruß Rainer

von Bastler (Gast)


Lesenswert?

Hallo,

Das File stammt nicht von einem Roller aus Österreich, aber ein File aus 
Österreich kann ich auch vergessen, wie mir mittlerweile mehrere 
bestätigt haben, sind die Scooter im Normalfall Read out protected. 
Warum das auf meinen nicht zutrifft weiß ich nicht. Damit bleibt nur die 
.hex zu analysieren ich habe gesehen, dass die Datei oben einen großen 
Teil Daten hat und weiter unten nochmal einen kleineren, kann sein dass 
der kleinere die Konfiguration ist. Auch sind die roller in Deutschland 
immer etwas langsamer als 20 das ist ein trick von lime damit du etwas 
länger unterwegs bist also auch ein bisschen mehr zahlen must beim 
mieten.

von Bastler (Gast)


Lesenswert?

Hallo nochmal,

Was ich noch vergessen habe: Ich bin in Sachen Hardware gut, aber kenne 
mich nicht mit Software aus, oder sagen wir mal besser: Ich kenne mich 
nicht mit Programmieren aus. Das ist eines der wenigen Dinge was ich 
noch nie so richtig gemacht hab. Ich glaube jedenfalls nicht, dass diese 
.hex Datei so arg hoch kompliziert ist, da wäre Lime der erste. Irgendwo 
in dem Teil muss die Geschwindigkeit stehen, die Frage ist nur wie man 
drauf kommt wo, wenn man keine Datei zum Vergleichen hat. Ich verstehe 
auch nicht warum der Controller von meinem Lime nicht geschützt ist der 
von anderen aber schon. Lime wird mir langsam zum immer größeren Rätsel.

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> Irgendwo
> in dem Teil muss die Geschwindigkeit stehen

So einfach ist das nicht. Da kann genauso gut die Zeit stehen, die 
minimal zwischen den Pulsen des Motorfeedback (Hallsensor, Back-Emf, 
whatever) vergehen darf gemessen in Prozessor/Timer-takten o.ä. Das 
ganze mit entsprechendem Offset, oder nochmal verwurstet als 
Skalierungsfaktor in den Koeffizienten eines Regelalgorithmus. Diese 
können als Konstanten direkt im Flash stehen, oder als Immediates 
kodiert. Wenn sie schlau waren und solche Manipulationen verhinden 
wollen, könnte(n) die entsprechende Zahl(en) erst zur Laufzeit 
zusammengerechnet werden. Die Zahlen könnten verschlüsselt und redundant 
abgelegt sein. Da kann man nicht einfach nach "20 km/h" suchen. Und 
ändern kann man das ggf. auch nicht so einfach, weil da vielleicht eine 
Prüfsumme über das Image gemacht wird - da musst du dann den Algorithmus 
finden und die Prüfsumme auch nochmal lokalisieren, mit den gleichen 
Problemen wie beschrieben.

von Bastler (Gast)


Lesenswert?

Hallo,

Natürlich hätte Lime Tuning somit verhindern können, aber ich glaube 
nicht, dass sich die die Mühe gemacht haben, erstens ist der Prozessor 
bei anderen Rollern auslesegeschützt, du kommst normalerweise also eh 
nicht an die Werte, und zweitens ist der Roller eigentlich gar nicht auf 
Privatbesitz ausgelegt, also warum sollte ich mir die Mühe machen das 
alles zu verschlüsseln. Ich denke dass es ganz einfach gemacht ist, ich 
es nur nicht finde weil ich die Erfahrung nicht habe. Es gibt Typen die 
kriegen win 10 ARM auf dem Lumia950 zum laufen wofür man den 
Grafiktreiber der Adreno Grafik reverse engineeren muss. Wenn es Leute 
gibt, die sowas fertig kriegen, nüsste man doch auch einen finden, der 
mit dieser .hex Datei fertig wird, für den Xiaomi gibt es ja auch custom 
ROMs.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Wenn es Leute gibt, die sowas fertig kriegen, nüsste man
> doch auch einen finden, der mit dieser .hex Datei fertig wird,

Für Geld bekommt man fast alles. Insbesondere arbeitswillige Fachkräfte.

von Bastler (Gast)


Lesenswert?

Hallo,

Das WOA Projekt finanziert isch nicht durch Geld sondern durch Leute die 
Spaß dran haben. Ich hab meinen Spaß daran zu sehen was in diesen 
Rollern drinsteckt, Software wie Hardwaremäßig. Leider habe ich 
softwaremäßig nicht die Ahnung, also suche ich jemanden der sich dafür 
interessiert, sich da durchzuwühlen, solche Leute müsste es doch geben 
irgendwo? Immerhin gibt es ja sonst auch die irrsten Projekte wo sich 
keiner zu schade ist, die irrste Arbeit zum Teil auch ohne Geld auf sich 
zu nehmen.

von Stefan F. (Gast)


Lesenswert?

Solange ich keinen solchen Roller besitze, ist das für mich ziemlich 
uninteressant. Wenn die Firma pleite macht und die Fahrzeuge alle billig 
verramscht werden, könnte sich die Situation ändern.

von Thomas Z. (usbman)


Lesenswert?

Die gibt es sicher. Aber frag dich Mal selbst: Wieviele Leute gibt es 
wohl die deinen Roller haben UND Interesse haben UND Arm asm sprechen 
UND gut im reversen sind? Die Menge wird wohl klein sein.
Solange du kein einigermaßen vernünftiges Schaltbild zeigst werden es 
noch viel weniger sein.
Du musst erst Mal liefern.

Thomas

von Stephan (Gast)


Lesenswert?

Warum kauft man den Roller dann nicht in Östereich?

von Stefan F. (Gast)


Lesenswert?

Stephan schrieb:
> Warum kauft man den Roller dann nicht in Östereich?

Glaubst du wirklich, dass er den Roller gekauft hat? Wo denn?

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> Leider habe ich
> softwaremäßig nicht die Ahnung, also suche ich jemanden der sich dafür
> interessiert, sich da durchzuwühlen, solche Leute müsste es doch geben
> irgendwo?

"Ich suche jemanden mit einer seltenen und komplizierten Fähigkeit, der 
sich freiwillig für mich krumm macht anstatt sich diese woanders zu Gold 
zu machen, damit ich einen semi-legal beschafftes Gerät außerhalb seiner 
Spezifikation betreiben kann und am Ende damit auch noch Gesetze 
brechen, andere Verkehrsteilnehmer gefährden und meine 
Bewegungs-Faulheit unterstützen kann, während ich mich selbst noch 
nichtmal dazu herablassen kann, einen Schaltplan zu erstellen, was das 
Reversen vereinfachen würde, geschweige denn, mich in dieses Thema - wie 
alle anderen, die das können - selbst einzuarbeiten. Da muss es doch wen 
geben, der das total spannend findet!"

Generation Ich-Frag-Mal-Ein-Forum.

von Bernd K. (prof7bit)


Lesenswert?

Vielleicht kannst Du nen anderen Quarz einlöten und ihm so eine andere 
Zeitbasis für die Drehzahlmessung unterjubeln.

Du könntest dann den STM32 gegen einen binärkompatiblen GD32 tauschen, 
der geht bis 108MHz statt nur 72MHz beim STM32.

Dann fährt das Ding 30 statt 20. Das sollte dann wirklich schnell genug 
sein für so ein wackeliges Spielzeug.

von Bastler (Gast)


Lesenswert?

Hallo,

Ich habe den Roller wie weiter oben geschrieben von Lime bekommen, von 
denen wurde er dann auch entsperrt, es ist nämlich im Normalfall nicht 
möglich, den Roller zu entsperren ohne jede Minute zu bezahlen. Kann es 
eigentlich sein, dass beim dauerhaften Entsperren über Lime der 
Leseschutz aufgehoben wurde? Kann das Programm auf dem Prozessor das 
Schutzbyte kippen?
Alle Scooter die Leute aus einem Forum in Amerika unter die Lupe 
genommen haben, waren lesegeschützt.

Stefanus F. schrieb:
> Stephan schrieb:
>> Warum kauft man den Roller dann nicht in Östereich?
>
> Glaubst du wirklich, dass er den Roller gekauft hat? Wo denn?

Hallo,

Ich habe den Roller wie weiter oben geschrieben von Lime bekommen, von 
denen wurde er dann auch entsperrt, es ist nämlich im Normalfall nicht 
möglich, den Roller zu entsperren ohne jede Minute zu bezahlen. Kann es 
eigentlich sein, dass beim dauerhaften Entsperren über Lime der 
Leseschutz aufgehoben wurde? Kann das Programm auf dem Prozessor das 
Schutzbyte kippen?
Alle Scooter die Leute aus einem Forum in Amerika unter die Lupe 
genommen haben, waren lesegeschützt, die wurde aber nicht durch Lime 
dauerhaft entsperrt.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Kann das Programm auf dem Prozessor das Schutzbyte kippen?

Nein.

von Bastler (Gast)


Lesenswert?

> "Ich suche jemanden mit einer seltenen und komplizierten Fähigkeit, der
> sich freiwillig für mich krumm macht anstatt sich diese woanders zu Gold
> zu machen, damit ich einen semi-legal beschafftes Gerät außerhalb seiner
> Spezifikation betreiben kann und am Ende damit auch noch Gesetze
> brechen, andere Verkehrsteilnehmer gefährden und meine
> Bewegungs-Faulheit unterstützen kann
>
> Generation Ich-Frag-Mal-Ein-Forum.

Zunächst mal habe ich das Fahrzeug nicht semi-legal beschafft sondern 
von Lime bekommen (Nachweisbar) Auch will ich keine Gesetze brechen, 
Österreich 25kmh erlaubt, Österreich Lime g3 fahren 25 sind baugleich 
also kein Spezifikationsbruch. Verkehrsteilnehmer werden auch durch 
Skateboardfahrer, Fahrradfahrer Autos LKWs und sich selbst gefährdet, 
kann man so oder so sehen. Bewegungs faul bin ich nicht, ich habe ein 
Fahrrad (Ohne Akku) das schneller ist als der Scooter... Auch fahre ich 
manchmal noch meinen alten Micro Tretroller (Ohne E davor) auch fast 
schneller als der E Scooter. Ich würde auch gerne einen Schaltplan 
erstellen, aber ich habe nur den einen Controller und wenn der hin ist, 
ist auch der Scooter nicht mehr zu brauchen ein Controllerumbau 
funktioniert beim Lime nicht, wie ich aus amerikansichen Foren 
mittlerweile weiß, der Motor verträgt sich weder mit Sensor noch mit 
Sensorless Controllern. Warum das so ist weiß bisher keiner, vielleicht 
auch eine Maßnahme von Lime damit keiner die Roller klaut und einfach 
den gesperrten gegen einen China Controller tauschen kann. Auch bin ich 
gerne behilflich, wenn ihr mir sagt wie. Den Schaltplan kann ich nur 
erstellen wenn ich die Platine von ihren Bauteilen befreie, dann ist der 
Controller aber hin, wenn ich den Plan so mache, stimmt er nachher 
nicht, dann krieg ich auch wieder Ärger....

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Alle Scooter die Leute aus einem Forum in Amerika unter die Lupe
> genommen haben, waren lesegeschützt.

Wahrscheinlich haben sie sich vom Hersteller "noch schnell" ne 
Custom-Variante der Firmware erstellen lassen mit irgendwelchem 
Zusatzfirlefanz und dann hat der Hersteller einfach vergessen bei dieser 
Sonderserie die wahrscheinlich zwischen Tür und Angel von nem völlig 
überlasteten Entwickler "noch schnell" zusammengehackt und noch 3 mal 
kurz vorm Liefertermin nachgebessert werden musste standardmäßig den 
Ausleseschutz zu setzen (weil der Entwickler den zu Debuggingzwecken mal 
kurz rausgenommen hat und dann war plötzlich Wochenende), anders als bei 
den normalen Modellen wo der immer aktiviert ist. Totales Versehen und 
absoluter Glücksfall würd ich sagen.

Wahrscheinlich ist es ihm 2 Tage später siedend heiß eingefallen aber 
dann waren die schon im Container auf dem Schiff. Also wurde der Vorfall 
in Schweigen gehüllt.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Hallo,

Kann man denn den Takt vom schon vorhandenen Prozessor nicht mal nur so 
zum Spaß auf was niedrigeres stellen als 72mhz? Ich würde gerne mal 
wissen, was dann passiert, weiß aber nicht, wo ich den Takt mit dem der 
Prozessor laufen soll einstelle? Im Stlink habe ich nichts gefunden, in 
VisualProg auch nicht.

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> Den Schaltplan kann ich nur
> erstellen wenn ich die Platine von ihren Bauteilen befreie

Dann ist das ganze Vorhaben aussichtslos. Wenn man nichtmal die 
Pinbelegung weiß...

Bastler schrieb:
> Ich würde gerne mal
> wissen, was dann passiert, weiß aber nicht, wo ich den Takt mit dem der
> Prozessor laufen soll einstelle?

Im Programm selbst, in der PLL-Konfiguration via RCC.

Bastler schrieb:
> Ich würde gerne mal
> wissen, was dann passiert

Die Kommunikation per UART/CAN/... funktioniert nicht mehr und die 
Regelalgorithmen machen Blödsinn...

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> wo ich den Takt mit dem der
> Prozessor laufen soll einstelle?

Da wird kurz nach dem Einschalten ein Fetzen Code ausgeführt, irgendwo 
vergraben in dem Hexfile, der die Takterzeugung initialisiert.

Wenn da zum Beispiel ein 4MHz Quarz drauf ist wird die PLL und die 
ganzen Taktteiler entsprechend konfiguriert daß der gewünschte 
Systemtakt rauskommt.

Löte nen 3MHz Quarz drauf und es wird dann vermutlich langsamer fahren

Löte nen 5MHz Quarz drauf und es wird entweder gar nicht mehr 
funktionieren oder schneller fahren.

Wenn das Ding über asynchrone Schnittstellen mit anderen Komponenten 
(zum Beispiel dem Display oder dem BMS) kommuniziert mußt Du die dann 
aber alle ebenfalls im gleichem Maße langsamer oder schneller machen.

--

Ich vermute aber wenn Du damit irgendwann fertig bist wird es gar nicht 
mehr fahren. Ich würde es verkaufen bevor dieser Zustand eintritt und 
mir was mit passender Geschwindigkleit für Deinen Rechtsraum kaufen. 
Eventuell irgendwas chinesisches mit generischen Komponenten von dem 
bekannt ist wie man es frisiert wenn das unbedingt sein muß.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Hallo,

Einen Quarz gibt es nicht, der scheint einen internen zu haben.
Ich werde mal sehen ob ich einen totaldefekten Roller finde (In Fluss 
geworfen usw.) damit ich das Layout von der Platine ansehen kann. 
Aufzeichnen kann man den Controllerschaltplan ja dann mit EAGLE.

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> Einen Quarz gibt es nicht, der scheint einen internen zu haben.

Es gibt keine internen Quarze. Ohne gute Taktquelle dürfte so ein Gerät 
nicht funktionieren. Vielleicht ist es nur ein besonders unauffälliges 
kleines Exemplar, oder ein Keramikresonator, oder der Takt eines anderen 
Bauteils wird mitverwendet, ...

von Nop (Gast)


Lesenswert?

Dr. Sommer schrieb:

> Es gibt keine internen Quarze. Ohne gute Taktquelle dürfte so ein Gerät
> nicht funktionieren.

Doch. Zumindest bei ST hat ein Cortex-M4 einen internen Oszillator von 
16MHz, HSI genannt, mit dem er auch startet. Einen externen muß man 
erstmal aktivieren. Nachteil des internen ist die höhere Toleranz und 
Temperaturabhängigkeit.

von Dr. Sommer (Gast)


Lesenswert?

Nop schrieb:
> Doch. Zumindest bei ST hat ein Cortex-M4 einen internen Oszillator von
> 16MHz, HSI genannt, mit dem er auch startet

Das ist aber kein "interner Quarz", sondern ein oller RC-Oszillator mit 
3% Abweichung oder so. Und sowas haben praktisch alle Cortexe...

von Bastler (Gast)


Lesenswert?

Und wenn die einfach den für die Takterzeugung benutzt haben? Auch wenn 
diese
Scooter teuer aussehen das sind sie nicht, das wird alles eher einfach 
sein.

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> Und wenn die einfach den für die Takterzeugung benutzt haben

Dann kannst du die Frequenz nur über die PLL Konfiguration im Programm 
anpassen.

von Nop (Gast)


Lesenswert?

Dr. Sommer schrieb:

> Das ist aber kein "interner Quarz", sondern ein oller RC-Oszillator mit
> 3% Abweichung oder so. Und sowas haben praktisch alle Cortexe...

Es reicht aber, damit er auch ohne externen Quarz funktioniert.

von Bastler (Gast)


Lesenswert?

Na super und wo die PLL Konfiguration in dem Programm ist, weiß 
natürlich wieder keiner, dazu müsste man den Zeichensalat zerlegen und 
das ist schon wieder hochgradig aufwändig. Man was waren das für Zeiten 
als die einfach DC Motoren hatten da hieß es spannung + u - und das Teil 
lief... Aber die hatten eben auch nicht das Drehmoment einer 125er 
Benzinmaschine...

von Vorschlag (Gast)


Lesenswert?

Ich würde vielleicht mal ein paar Vorschläge einbringen, da ich in der 
Vergangenheit schon öfters mit BLDC Motoren was gemacht habe.

Ich selber kenne 4 verschiedene Verfahren zur Ansteuerung:
- Block-Kommutierung mit Hall-Sensor Feedback
- Block-Kommutierung mit Back-EMF sensing
- Field Oriented Control mit Single-Shunt
- Field Oriented Control mit mehreren Shunts (minimum 2).


Ob es sich um Block-Kommutierung oder Field Oriented Control handelt 
kann man relativ easy mit dem Scope herausfinden.

Bei Block-Kommutierung ist nämlich immer eine Halbbrücke auf High-Z, 
eine auf entweder high oder low und eine dritte Halbbrücke macht die PWM 
und dann rotieren diese drei Funktionen quasi "im Kreis". Ganz typisch 
für Block-Kommutierung auch dass man 6 Leitungen zwischen Gate-Treiber 
und uC's hat damit man jeden Mosfet einzeln steuern kann.

Hall-Feedback erkennt man meistens daran, dass aus dem Motor 5 
zusätzliche Leitungen kommen abgesehen von den 3 Phasen.


Bei Back-EMF wird die Selbstinduzierte Spannung des Motors zurückgelesen 
und zwar immer an der Halbbrücke, die grad auf High-Z ist und schaltet 
dann entsprechend wenn die selbstinduzierte Spannung einen gewissen 
Schwellwert passiert.


Für Field-Oriented-Control hat man meistens einen Current-Sense als 
Feedback und auch ganz typisch -> alle drei Halbbrücken machen 
durchgängig PWM ohne spezielle Fälle wie tri-state oder constant 
high/low clamping.

Dass aus dem Motor nochmal drei zusätzliche Kabel rausgehen könnte 
darauf hindeuten dass es evtl. Back-EMF ist.

Sind irgendwo dicke Shunts auf der Platine? -> Wenn ja dann könnte es 
evtl. FOC sein.


Das gute ist -> Block-Kommutierung (besonders mit Hall-Sensor) ist 
relativ easy zu implementieren und funktioniert im Notfall immer.

Man könnte also durchaus versuchen auf der PCB nachzuforschen welche 
Pins von dem uC an die Gate-Treiber gehen und sich die Firmware selber 
basteln in CubeMX.

von Tom B. (botas)


Lesenswert?

Auch wenn es dich kein Stück weiter bringt.....

Die "Zeile" die sich im Hex ändert ist wahrscheinlich die 
EEPROM-Emulation die man meistens von ST übernimmt. Da man Flash nicht 
einfach löschen kann wird im "EEPROM"-Bereich immer ein neu 
geschriebener Wert hinten angehängt. Ein Wert besteht dann aus dem Wert 
selbst und einer ID. Will man den Wert lesen sucht man von hinten nach 
vorne nach der ID und findet so den zuletzt geschrieben Wert.

In so fern kommt immer mehr hinzu mit der Zeit. Es ist kein Zahlen wenn 
entsperrt und keine Zahlen wenn gesperrt.

Näheres zu dem Verfahren: 
https://www.st.com/resource/en/application_note/cd00165693.pdf

von Carl D. (jcw2)


Lesenswert?

Bastler schrieb:
> Na super und wo die PLL Konfiguration in dem Programm ist, weiß
> natürlich wieder keiner, dazu müsste man den Zeichensalat zerlegen und
> das ist schon wieder hochgradig aufwändig. Man was waren das für Zeiten
> als die einfach DC Motoren hatten da hieß es spannung + u - und das Teil
> lief... Aber die hatten eben auch nicht das Drehmoment einer 125er
> Benzinmaschine...

Jeder, der sich schon mal ernsthaft mit einem der kleinen STM32 
beschäftigt hat, ahnt wo/wie die PLL-Einstellung funktioniert. Man kann 
sie auch leicht finden. In deiner Hex kurz nach der Adresse 0x08000E0C, 
der Startadresse laut Vektortabelle. Der Code ist macht auch nichts 
wirklich Kompliziertes, ein paar Bits in Registern setzen und 
gelegentlich darauf warten, daß die HW so weit ist. Und ARM/Thumb2 
Assembler ist nicht wirklich kryptisch.
Müsste man halt nur machen. Wenn man es denn braucht.

Ja, die Zeiten ohne BLDC, da gab es auch keine Möglichkeit andere 
anzumeckern, ohne eine dicke Lippe zu riskieren.

von Bastler (Gast)


Lesenswert?

Der Controller hat drei dicke 002 er Shunts ich tippe auf FOC evtl Space 
Vector Control das würde den doch recht potenten Prozessor erklären.

von Bastler (Gast)


Lesenswert?

> In so fern kommt immer mehr hinzu mit der Zeit. Es ist kein Zahlen wenn
> entsperrt und keine Zahlen wenn gesperrt.

Keine Zahlen wann? Entsperrt oder gesperrt? Und wenn da so ist müsste 
doch auch irgendwo noch ein EEPROM sein oder meinst du den im Prozessor 
integrierten speicher?

von Bastler (Gast)


Lesenswert?

> Ja, die Zeiten ohne BLDC, da gab es auch keine Möglichkeit andere
> anzumeckern, ohne eine dicke Lippe zu riskieren.

Naja so gewalttätig waren die Leute damals auch nicht, aber die Regler 
bei weitem einfacher, musste ja nur Spannung dran und dann lief das 
ganze, das Drehfeld kam vom Kommutator.

von Bastler (Gast)


Lesenswert?

Wenn ich da jetzt was verstelle, kann es dann sein dass der Prozessor 
auch mit dem STlink nichtmehr erreichbar ist danach, also "gebrickt" 
Natürlich solche Versuche nur Am Labornetzteil nicht dass mir der 
Prozessor noch über die MOSFets einen Kurzschluss baut. Kann man denn 
sehen auf welchen Takt der PLL aktuell gesetzt ist?

von Tom B. (botas)


Lesenswert?

Bastler schrieb:
>> In so fern kommt immer mehr hinzu mit der Zeit. Es ist kein Zahlen wenn
>> entsperrt und keine Zahlen wenn gesperrt.
>
> Keine Zahlen wann? Entsperrt oder gesperrt? Und wenn da so ist müsste
> doch auch irgendwo noch ein EEPROM sein oder meinst du den im Prozessor
> integrierten speicher?

1) Es gibt kein EEPROM im Stm32.
2) Es gibt eine EEPROM-Emulation.
3) Die Emulation nutzt einen Teil des Flashspeichers.
4) Die Emulation sieht wie im Link beschrieben aus.
5) Dein lime_unterschied_hex.jpg sieht danach aus.

In einem emulierten EEPROM können viele Werte gespeichert sein. Es kann 
auch mehrere EEPROMS geben aber nicht viele. Aus technischen Gründen 
(Flash löschen geht nur in großen Blöcken) aber nicht viele. Der STM hat 
meistens nur eine handvoll dieser Blöcke. Die ST-EEPROM-Emulation 
braucht 2 Blöcke für ein EEPROM.

Sorry, ich bin gerade zu mühde für ganze Sätze.

von Bastler (Gast)


Lesenswert?

Hallo,

Das mit den ganzen Sätzen macht nix, das passiert mir auch manchmal dass 
ich nicht weis was ich schreibe wegen Müdigkeit. Also ich habe davon 
jetzt verstanden:

Der STM32 hat kein EEPROM ->Gut.
Der STM 32 Emuliert ein EEPROM unter Nutzung des Flash Speichers -> 
Logisch, ist ja kein echtes EEPROM da.
Die Emulation sieht wie im Link beschrieben aus ->Hab ich gelesen, ob 
ichs verstanden habe weiß ich selber grad nicht.
Dein Lime Unterschied .hex sieht danach aus -> Das erklärt warum sich 
der Wert der in der Zeile steht immerwieder zufällig ändert. Warum aber 
entsperrt der Scooter wenn der Wert nicht da ist, ich verstehe den 
Zusammenhang nicht, und warum nutzt das Teil ein virtuelles EEPROM wenn 
es einen Flash gibt, warum mache ich den Aufwand so zu tun als wäre ein 
EEPROM da wenn ein Flash da ist? Mann ich hätte echt früher mit dem 
Programmieren anfangen sollen dann wäre ich jetzt nicht wegen 
fortschreitender Verblödung zu doof um zu kapieren wie der 2€ Prozessor 
eines Chinarollers funktioniert...

von Dr. Sommer (Gast)


Lesenswert?

Bastler schrieb:
> warum mache ich den Aufwand so zu tun als wäre ein EEPROM da wenn ein
> Flash da ist

Weil die Programmierer zu blöd sind die kompliziertere Benutzung des 
Flash direkt in die Software zu integrieren, und daher die EEPROM 
Emulation als Deppenadapter dazwischen schalten. Ist aber egal, das 
Ergebnis sieht gleich aus - wenn man Daten in Flash speichert, braucht 
man immer so eine Form von Wear Leveling.

Bastler schrieb:
> Mann ich hätte echt früher mit dem Programmieren anfangen sollen

Es gibt kein Maximal-Alter dafür. Geh in die lokale Bibliothek, such ein 
C-Buch und leg los, anstatt hier lange zu hadern! Ständiges lernen hält 
geistig fit und beugt mentaler Verkalkung vor (ist wirklich so).

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Wenn ich da jetzt was verstelle, kann es dann sein dass der Prozessor
> auch mit dem STlink nichtmehr erreichbar ist

Ist möglich, allerdings mit geringer Wahrscheinlichkeit.

> Kann man denn sehen auf welchen Takt der PLL aktuell gesetzt ist?

Mit einem Debugger kannst du die Konfiguration der PLL konfigurieren - 
wenn die Debugger Schnittstelle nicht durch die Firmware deaktiviert 
wurde.

von Stefan F. (Gast)


Lesenswert?

Tom B. schrieb:
> Es gibt kein EEPROM im Stm32.

Du meinst "in diesem STM32". Die STM32L0 Serie hat EEPROM.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Warum aber entsperrt der Scooter wenn der Wert nicht da ist,
> ich verstehe den Zusammenhang nicht

Weil der Wert womöglich die Sperre ist.

Ein Auto kann fahren, wenn keine Wegfahrsperre am Reifen hängt. Es ist 
blockiert, wenn die Wegfahrsperre angebracht wurde.

> warum nutzt das Teil ein virtuelles EEPROM wenn es einen Flash gibt,
> warum mache ich den Aufwand so zu tun als wäre ein
> EEPROM da wenn ein Flash da ist?

Das wurde doch schon mehrfach erklärt.

Inhalte im EEPROM kann man Byteweise ändern. Bei FLASH Speicher muss man 
immer einen sehr großen Block von mehreren Kilobytes löschen, bevor man 
ihn neu beschreiben kann.

Die Emulation ermöglicht es dem Anwendungsprogramms, den FLASH so 
ähnlich wie EEPROM zu benutzen. Genau so eine Emulation wird auch 
angewendet, wenn du eine SD Karte oder eine SSD benutzt.

von Da isser wieder (Gast)


Lesenswert?

Bastler schrieb:
> Ich werde mal sehen ob ich einen totaldefekten Roller finde

"Finden" nennt man sowas hutzutage?
Früher hies das "Vom LKW gefallen".

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Na super und wo die PLL Konfiguration in dem Programm ist, weiß
> natürlich wieder keiner,

Die Register die geschrieben werden und was deren Bits bedeuten sind 
aber wohlbekannt. Die Taktkonfiguration wird relativ früh im Resetvektor 
auftauchen, bis dahin kann man es Instruktion für Instruktion von Hand 
durchgehen, erst werden Speicher, globale und statische Variablen 
initialisiert und statische Konstruktoren aufgerufen, das sind eine 
Handvoll simple Schleifen die relativ einfach zu erkennen sein müssten, 
kaum mehr als ein Dutzend Instruktionen die man noch gut von Hand 
durchgehen kann (weil meist handgeklöppelter Assembler) und danach 
müsste dann schon sehr sehr zügig die Taktkonfiguration kommen, zu 
erkennen daran welche Register er da schreibt.

: Bearbeitet durch User
von John P. (brushlesspower)


Lesenswert?

Selbst wenn Ihr die PPL/Taktconfig sinnvoll ändert wird das nicht 
helfen.
Mindestens die UART müsste von der Baud Rate bestehen bleiben für die 
kommunikation. Was die restliche Peripherie macht, weiß keiner.

Ich denke damit schafft man sich nur nochmehr Probleme.


Erstmal die Kommunikation auf der UART mitlesen.
Wenn da die Geschwindigkeit gesetzt wird ist die ganze Hex. diskussion 
hinfällig.

und bevor irgendwas in asm ungebaut wird....da gehts wohl schneller mit 
Cube MX ein BLDC project zusammenklicken und die kommunikation 
nachbauen.
Aber auch dafür muss man wissen was da so auf der UART passiert.

von Bernd K. (prof7bit)


Lesenswert?

John P. schrieb:
> Selbst wenn Ihr die PPL/Taktconfig sinnvoll ändert wird das nicht
> helfen.
> Mindestens die UART müsste von der Baud Rate bestehen bleiben für die
> kommunikation. Was die restliche Peripherie macht, weiß keiner.

Auch die UART-Register für die Baudratenkonfiguration sind bekannt, man 
kann den Code der sie initialisiert finden und man kann errechnen welche 
Werte man reinschreiben muss damit es wieder passt.

von Bastler (Gast)


Lesenswert?

Da isser wieder schrieb:
> Bastler schrieb:
>> Ich werde mal sehen ob ich einen totaldefekten Roller finde
>
> "Finden" nennt man sowas hutzutage?
> Früher hies das "Vom LKW gefallen".

Na dann eher "Vom Schiff gefallen" Lime schifft die Dinger von Chinesien 
hier rüber...

von Tom B. (botas)


Lesenswert?

Wenn flashen schon geht... sollte ja auch der Debugger gehen.
In Atollic sind alle Register mit ihren Werten nett dargestellt und 
änderbar.
Da sollte man doch recht leicht finden können welcher Timer die 
Zeitbasis für den BLDC liefert und live am Prescaler rumspielen können 
um zu sehen ob es was verändert. Dann kann man nach der Adresse des 
Registers im hex suchen, gucken ob da in der Nähe der alte Prescaler 
steht und ihn ändern.
Die 20% Änderung (25 -> 30 km/h) werden den Regler schon nicht ausrasten 
lassen wenn man bedenkt mit wie unterschiedlichen Situationen der sonnst 
zurecht kommen muss.

von Bastler (Gast)


Lesenswert?

Hallo,

Was muss man denn in Atollic einstellen um die Debug funktion 
hinzukriegen?
Da kann man dann schauen was der Prozessor wann tut oder wie?

von Tom B. (botas)


Lesenswert?

Stefanus F. schrieb:
> Tom B. schrieb:
>> Es gibt kein EEPROM im Stm32.
>
> Du meinst "in diesem STM32". Die STM32L0 Serie hat EEPROM.

Danke. Gut zu wissen. Ich hatte bisher nur mit den größeren die mit F 
weitergehen zu tun.

von Tom B. (botas)


Lesenswert?

Bastler schrieb:
> Hallo,
>
> Was muss man denn in Atollic einstellen um die Debug funktion
> hinzukriegen?
> Da kann man dann schauen was der Prozessor wann tut oder wie?

Uff. Das ist etwas viel zu beschreiben. Aus dem Kopf von Null aus weiß 
ich es auch nicht. Im Prinzip ist es wahrscheinlich am einfachsten in 
CubeMX ein Dummy mit gleichem Controller anzulegen und dann in Atollic 
bei der Debugconfig das Flaschen rauszunehmen.
Dann debuggt man sagt Start und Pause. Dann sollten die Register da 
sein.

von Dr. Sommer (Gast)


Lesenswert?

Tom B. schrieb:
> Im Prinzip ist es wahrscheinlich am einfachsten in
> CubeMX ein Dummy mit gleichem Controller anzulegen und dann in Atollic
> bei der Debugconfig das Flaschen rauszunehmen.

Oder einfach das dekompilierte C-Programm nehmen!

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Hallo,
>
> Was muss man denn in Atollic einstellen um die Debug funktion
> hinzukriegen?
> Da kann man dann schauen was der Prozessor wann tut oder wie?

Au weia.

An diesem Punkt möchte ich vorschlagen daß Du erst mal Trockenübungen 
mit STM32 Demo-Boards machst bis Du mit dem Controller, den Hardware- 
und Softwaretools und deren Verwendung halbwegs vertraut bist bevor Du 
den Roller endgültig kaputt machst. Das kann schon mal so zwei, drei 
Jahre Zeit in Anspruch nehmen bis Du auf dem Level bist das Du für Dein 
Vorhaben  benötigst. Klingt komisch, ist aber so.

von Tom B. (botas)


Lesenswert?

Dr. Sommer schrieb:
> Tom B. schrieb:
>> Im Prinzip ist es wahrscheinlich am einfachsten in
>> CubeMX ein Dummy mit gleichem Controller anzulegen und dann in Atollic
>> bei der Debugconfig das Flaschen rauszunehmen.
>
> Oder einfach das dekompilierte C-Programm nehmen!

... ja... nein. Bis das compiliert....

Eher so: 
https://www.google.com/search?q=atollic+attach+to+running+target

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Was muss man denn in Atollic einstellen um die Debug funktion
> hinzukriegen?

Auf den Debug Button (Käfer) klicken. Aber erstmal die Anleitung lesen: 
http://blog.atollic.com/learn-serial-wire-viewer-debugging-on-cortex-m

> Da kann man dann schauen was der Prozessor wann tut oder wie?

Dazu musst du aber auch den Disassemblierten Code verstehen, sonst nützt 
das  Debuggen nicht viel.

von Tom B. (botas)


Lesenswert?

>
> Dazu musst du aber auch den Disassemblierten Code verstehen, sonst nützt
> das  Debuggen nicht viel.

Ginge dann ja nicht um debuggen sondern nur den richtigen Prescaler 
(Register) und seinen Wert zu finden. Vielleicht hat man ja auch Pech 
und der Motorregler bekommt seine Zeit nicht aus einem Timer. Wäre 
möglich falls der Regler z.B. am ADC-fertig-Interrupt hängt. Dann müsste 
man gucken ob man mit den ADC-Registern was ändern kann.

von Thomas Z. (usbman)


Lesenswert?

Das geht auch einfacher. Dazu muss man einfach die Register im 
Datenblatt raussuchen und die entsprechenden Namen in IDA eintragen. Die 
Register liegen ja im   0x400000 er Bereich. Das wäre sowieso das 
allererste was man in IDA eintragen würde. Dann wird der Code schonmal 
lesbarer. IDA kann auch h.files zusätzlich einlesen. Vielleicht reicht 
es schon ein passendes h File mit Register defs passend zum Controller 
einzulesen. Dann sollten sich schon mal Unterprogramme finden lassen die 
z.b das serial Handling und ähnliches machen.

Thomas

von Elias M. (Gast)


Lesenswert?

Hallo,

Es würde ja schon reichen die wie einer hier sagte "Ernährungstechnisch 
gleiche Pampe" zusammenzumanschen, die Software von Lime hat sowaieso 
noch ein Paar nennen wir es mal Fehler, hir mal was mir aufgefallen ist:

Gasgriff reagiert 3/4 kaum dann viel zu empfindlich

Fahrzeug bremst bergab aber nicht mit System um z.B, zu hohe 
Geschwindigkeit zu vermeiden, sondern ohne jede Vorwarnung mal dei 22 
kmh das nächste mal bei 30 und die Stärke der Bremsung ändert sich auch 
zufällig

Aus dem Stand anfahren ist nicht möglich, aber das war wohl von Lime 
Absicht.

Also weiß ich nicht, wer das programmiert hat, haben die da irgendeinen 
Jung-Asiaten rangehockt, oder was, da müsste auf jeden Fall mehr gehen, 
wenn ich nur alleine schon an sowas wie native Space Vector Control 
denke, wäre mit dem 32bit wohl möglich. Ich hoffe jetzt mal dass die 
Leihescooter wieder verboten werden, dann werden die von Lime verkauft, 
kommen unters Volk und es gibt genug Leute, die ein Interesse daran 
haben eine Custom ROM zu haben. Für den Xiaomi MI 365 gibt es ja auch 
eine, und die E Scooter in den Flüssen würden dann auch zwar nicht 
weniger aber wohl auch nicht mehr weiter mehr werden.

von Bernd K. (prof7bit)


Lesenswert?

Elias M. schrieb:
> Ich hoffe jetzt mal dass die
> Leihescooter wieder verboten werden

Das wäre das erste mal in der Geschichte der Bundesrepublik daß die 
Vermietung eines ansonsten völlig legalen Gegenstandes verboten wird.

von Bastler (Gast)


Lesenswert?

Kommt drauf an, wenn genug passiert ist, kann es auch sein dass sies nur 
mit Gesetzen zuballern wie sies damals ja auch bei den Drohnen gemacht 
haben. Spätestens dann wenn Lime die Entsorgung jedes defekten Rollers 
zahlen muss werden die sich aus Deutschland verziehen.

von magik mike (Gast)


Angehängte Dateien:

Lesenswert?

there you go! :)

von magik mike (Gast)


Angehängte Dateien:

Lesenswert?

and another one :)

von Alexander (alecxs)


Lesenswert?

Scheint voran zu gehen. Mich würde interessieren ob die ESP32 Variante 
auch mit der original Firmware läuft.

https://github.com/A-Emile/Lime_Gen3_IoT_Replacement

von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Der STM32 hat doch 1.8V bzw 3.3V Pegel. Kommuniziert wird aber in dem 
Falle mit 5V. Es gehen UART 5V rein und kommen 3.3V raus. Ich finde das 
ziemlich seltsam. Kann es sein dass sich die Chinesen hier nicht die 
Mühe gemacht haben einen Pegelwandler zu bestücken, oder kann jemand 
einen entdecken?

von Alexander (alecxs)


Lesenswert?

John P. schrieb:
> Dannn baut man fix eine fake ComBox und erzählt dem Motorcontroller das
> er entsperrt ist, schneller fahren soll, und was sonst noch alles toll
> wäre.

Das ist nun alles realisiert wurden, siehe Link. Nur gibt es eine neue 
Generation Controller die mit der alten fake Combox nicht kommuniziert, 
auch nicht mit der alten Firmware.

Wie realistisch ist es, dafür einen Schaltplan zu erstellen (vermutlich 
2-layer + GND) und ein eigenes Programm für den STM32 zu schreiben wenn 
man keine Ahnung hat?

https://simple-circuit.com/arduino-sensorless-bldc-motor-controller-esc

Ich hab nun einige Threads gelesen vom Bastler und seinen Geschichten, 
und muss sagen ihr wart sehr geduldig mit ihm. Ich kann ihn auf der 
einen Seite verstehen dass er sich Geschichten ausdenkt, um 
Grundsatzdiskussionen die sich um die Legalität drehen zu vermeiden. 
Aber für dumm verkaufen selbst immernoch nachdem er ertappt wurde geht 
natürlich gar nicht! Von daher kann ich auch verstehen dass sich die 
Begeisterung bei dem Thema in Grenzen hält, wenn da wieder so einer 
dahergelaufen kommt.

Dagegen den technischen Aspekt zu diskutieren spricht ja aber nichts, 
vorausgesetzt es sind sich alle einig Grundsatzdiskussionen außen vor zu 
lassen - es sollte jedem klar sein worum es geht.

Also Klartext ich habe Interesse und bin interessiert das Projekt 
fortzuführen, aber keine Ahnung von Elektronik und programmieren. Ich 
hab ein bisschen was gemacht, wer sich lange genug durchklickert kann 
alles finden bis zum Schaltplan und Gerber Daten, aber das Projekt ist 
nicht auf meinem Mist gewachsen. Und letztendlich verdanken wir es vor 
allem dem Bastler, der hier sehr viel Vorarbeit geleistet hat.

Das Projekt ist abgeschlossen (alter Controller), und ich hab nun noch 4 
Monate Freizeit die ich -vielleicht- der neuen Generation Controller 
widmen möchte. Das hängt aber sehr stark von der Resonanz hier im Forum 
ab.

Beitrag "Re: Ehemals defekter Lime Gen 3 reverse Engineering Motor Controller"

Es haben hier einige Experten geschrieben das Thema wäre durchaus 
interessant, wenn denn geliefert würde, daher frage ich einfach mal?

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Ich hab heut mal einen neuen Controller nackig gemacht - es ist genau 
der gleiche Controller. Es fehlt nur die Stiftleiste, ansonsten kein 
Unterschied zu erkennen. Trotzdem laufen die nicht mit der alten 
Firmware, wie kann das sein?

von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

So nun haben wir die Pins for den Motor, und außerdem vier Eingänge für 
das BackEMF. Kann mal jemand drüber gucken? Ich werde das laufend 
aktualisieren, daher hab ich es mal als Link angefügt.

https://www.mediafire.com/file/epvzktylpiw1dvt

Fehlt noch ein Eingang für das Poti, damit man die Geschwindigkeit 
regeln kann. Ihr habt doch alle sowas schon mal programmiert, hat jemand 
Lust seinen Code mit mir zu teilen?

von Alexander (alecxs)


Lesenswert?

Das sieht doch aus wie das was ich brauche. Selbst die Pinbelegung 
scheint zu passen. Wer hilft mir das auf den Controller zu kriegen? Der 
vierte Phasenstrom ist irgendwie alle drei Shunts parallel 
angeschlossen, weiß jemand wozu?

https://github.com/EBiCS/EBiCS_Firmware/wiki

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.