Forum: Mikrocontroller und Digitale Elektronik Ehemals defekter Lime Gen 3 reverse Engineering Motor Controller


von Bastler (Gast)


Lesenswert?

Hallo

Ich würde gerne wissen, wie der Lime Gen3 Motor Controller funktioniert. 
Hier mal ein Dropbox Link darin ist alles was ich über den Scooter weiß:

https://www.dropbox.com/sh/mvplcn1fswp5w3n/AABxi8ZPnCXO2xXToxQAOpHOa?dl=0

Ich habe den Scooter mit Genehmigung von Lime im Defektzustand von der 
Straße aufgelesen, und repariert. Das Problem ist nur, dass ich gerne 
wüsste, wie die Software in dem Scooter funktioniert, aber kein 
Disassembly lesen kann, da ich dafür nicht das nötige Wissen habe, und 
in absehbarer Zeit auch nicht haben werde. Daher wollte ich mal bitten 
ob sich das jemand der mehr damit zu tun hat ansehen kann, ich bin eher 
im Bereich Hardware angesiedelt, für mich war Software leider immer ein 
Buch mit 7 Siegeln, vor allem Reverse Engineering, von dem ich garnichts 
verstehe.

von ein Profi (Gast)


Lesenswert?

Bastler schrieb:
> Daher wollte ich mal bitten ob sich das jemand der mehr damit zu tun hat
> ansehen kann, ich bin eher im Bereich Hardware angesiedelt, für mich war
> Software leider immer ein Buch mit 7 Siegeln,

Der typische Hardware-Entwickler... Oh man.

1. Die Funktion des Scooters wird durch Software definiert. Die 
Regelungstechnik, Safety und Security wird dir keiner nach einem 
Disassembly in 3 Tagen erläutern können.

2. Mit dem Inhalt des Flashspeichers ist der Mikroprozessor ein riesiges 
sequentielles Schaltnetz, oder auch ein Automat. Begreife, dass Software 
ein Teil deiner Hardware ist.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Da drin werkelt also zumindest ein STM32F103. Du wirst nicht umhin 
kommen, einen Portplan zu erstellen, in dem jedes Beinchen des MC seiner 
Funktion im Motor-Controller zugeordnet wird.
Erst dann ist es sinnvoll, mal einen symbolischen Disassembler über das 
File zu jagen. Allerdings ist das immer noch selbst für Experten ein 
mühseliges Unterfangen.

Hat man keinen Zugang zu Quellen, sollte man besser selber neu 
schreiben.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Das Problem ist, dass Lime den Sourcecode selber nicht hat, den hat 
irgendeine >chinesische Softwarewurschtelei, die das zusammengekloppt 
hat. Dazu kommt noch, dass es ein 32bit Prozessor ist, deren Code ist 
laut Experten noch schwerer zu lesen, als der von 8 oder 16 bit, weiß 
aber nicht ob das stimmt. Warum ist es eigentlich fürs reverse 
engineering so wichtig, dass man die Pinverbindungen Prozessor >< Board 
kennt? Ich weiß selber, dass ich über kurz oder lang programmieren 
lernen muss, aber leider ist das eben nicht gerade mal einfach, schon 
garnicht, wenn dus dann mit C++ versuchen willst. Ich bin jemand der am 
besten durch Trial und Error lernt. Jemand den ich gut kenne und der 
mich sehr gut kennt, aber keine Zeit mir das beizubringen hat mal gesagt 
"Schau dir fertigen Quellcode der Geräte die du später mal selber 
schreiben willst (Microprozessoren wie z.B. in dem Scooter) an, und 
schau wie das gemacht ist, dann verstehst du es" WIE DENN, dank diesen 
Sch... Chinasfirmen, die alles klauen sind die Firmen die Fertigen 
Quellcode besitzen was die Frage angeht "Kann ich den haben" allesamt 
mittlerweile so verdammt hochagressiv, dass du da schon gar nicht zu 
Ende fragen kannst bevor sie dir die Tür vor der Nase zuschlagen. Ich 
würde ja alles vom Board ablöten, aber dann habe ich zwar das Layout von 
dem Scooter Controller, aber keinen Controller mehr mit dem ich das Teil 
betreiben könnte. Ich bräuchte einen zweiten Controller von einem Lime 
G3 die Frage ist nur, woher nehmen? Einen Scooter aus dem Wasser fischen 
würde gehen, aber dazu bräuchte man Tauchausrüstung, und müsste tauchen 
können, so tief wie die Gewässer sind, in die die Dinger haufenweise 
geschmissen werden. Ich kann euch schon sagen, was von unserer 
Zivilisation übrig bleibt: Ein E Scooter, versteiner im Schlamm wird in 
32.000 Jahren in irgendeinem Museum einer fernen Zivilisation stehen, 
und jeder Wird sich fragen, was das denn mal war. Aber die werden dann 
wohl auch nicht an den Code kommen, weils für den Prozessor bis dahin 
garkeine Lesegeräte mehr gibt (;-

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bastler schrieb:
> Warum ist es eigentlich fürs reverse
> engineering so wichtig, dass man die Pinverbindungen Prozessor >< Board
> kennt?

Weil du sonst überhaupt keine Ahnung hast, welche Ressourcen des MC für 
welchen Zweck benutzt werden. Wenn das ein Projekt werden soll, versteht 
es sich praktisch von selbst, das du den Schaltplan der Steuerung 
aufnimmst.
Und es versteht sich auch, das du mindestens 2-3 Exemplare der Platine 
hast.

Möchtest du das nur als Spass, dann rate ich dir, erstmal mit was 
anderem anzufangen, z.B. einem der Discovery Boards. Auf dem VL 
Discovery ist ein STM32F100, der dem o.a. recht ähnlich ist. Da kann man 
programmieren lernen, ohne das sich alles in Rauch auflöst.

Ach, mach doch bitte mal Lücken in deinem Text. Das ist fast nicht zu 
lesen.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Ich werde nach Möglichkeit mal noch nach weiteren defekten Rollern 
ausschau
halten, liegen ja genug rum, die Vandalen in der Hand hatten, aber das 
dauert halt. Ich würde gerne selber wissen, wie das Board funktioniert, 
aber wie geschrieben kann ich das erst machen, wenn ich einen weiteren 
habe, dann werde ich mal alles ablöten, und sehen wie das nackte Board 
aussieht.

Dass ein E Scooter keine gute Übungsplattform ist, weiß ich, daher hatte 
ich auch vor, mit was ungefährlicherem anzufangen, was keine 
Lithiumbatterie mit 36V und 16Ah dahinter hat, die dir alles zerschießt 
wenn da was schief läuft. Frag mich immer, wie eigentlich diese ganzen 
Option ROMs z.B. für den Xiaomi M365 oder wie der heißt E Scooter 
entstehen.

Wie gesagt, ich hab das Problem dass Profis zu mir sagen, lerne das 
durch lesen von vorhandenem Quellcode, das ist der beste Weg. Aber an 
den kommt man halt nicht dran, die Firmen sind da in der heutigen Zeit 
wo alles geklaut wird, so in Panik, dass die dir nichts mehr geben, und 
schon garkeinen Quellcode. Sonst hätte ich mir schon lange ein kleines 
Gerät besorgt, und den Quellcode von der Firma, und dann gesehen, was 
warum wie und unter welchen Umständen dasunddas tut.So hab ich alles 
gelernt was ich heute in der Technik weiß, durch ausprobieren, und 
zerlegen, geht halt bei Software nicht, wie man hier sieht...

von Nop (Gast)


Lesenswert?

Der wievielte Thread ist das jetzt eigentlich, in dem Du kostenlos Leute 
suchst, die Dir das Disassembly abnehmen sollen? Ich komme auf drei 
Threads. Wenn sich bislang noch keiner gemedlet hat, wird das auch 
keiner mehr tun.

von Traubensaft .. (increasingcurrant)


Lesenswert?

Bastler schrieb:
> Wie gesagt, ich hab das Problem dass Profis zu mir sagen, lerne das
> durch lesen von vorhandenem Quellcode, das ist der beste Weg. Aber an
> den kommt man halt nicht dran

Das ist doch kein Problem. Es gibt auch opensource-Projekte, deren Code 
auf kommerziellem Standard ist (und das sogar für BLDC-Controller!). 
Gute Beispiele sind ODrive und die VESC:

https://github.com/vedderb/bldc (C Code)

https://github.com/madcowswe/ODrive (C++)

Sogar beide basieren auf STM32-Prozessoren. Ich denke diese Projekte 
könnten ein guter Einstieg für dich sein.



Mal so aus Interesse gefragt: wie bekommt man von Lime die Genehmigung 
deren defekte Roller zu zerspielen? Hin und wieder sieht man schon so 
ein ramponiertes Ding herumliegen, aber warum haben die keine 
Werkstätten um wenigstens durch Teiletauschen was zu retten?
Hast du den Supoort angemailt, oder wie läuft das ab?

von JJ (Gast)


Lesenswert?

Hast du denn schonmal veruscht dich an die UART Schnittstelle zu hängen 
zu schauen was kommt?

von JJ (Gast)


Lesenswert?

Ansonsten ein paar Ideen:

- Du solltest den chinesicher Hersteller und das Modell identifizieren. 
Mit den Infos kann man weitersuchen.
- Du kannst versuchen die Handbücher oder die Programmiersoftware vom 
chinesichen Hersteller zu bekommen.
- Welche Chips sind verbaut und wofür sind sie gut.
- Erstelle ein Block-Diagramm der Hardware - welche Komponenten sind wie 
miteinander verbunden und welche Funktion könnten sie im Roller haben.
- Es ist nicht ganz unwahrscheinlich, dass das BT Modul einfach nur den 
UART per Funk weiterleitet.
- Probiere sämtliche Interfaces aus und was man damit anstellen könnte.

Erst danach würde ich anfangen über RE der Firmware nachzudenken.

von Nick M. (Gast)


Lesenswert?

JJ schrieb:
> Erst danach würde ich anfangen über RE der Firmware nachzudenken.

Das Ding soll aber übernächste Woche wieder laufen!

Wieder ein Grund warum ich die Dinger blöd find. Zum Glück wird man hier 
auf dem Land von denen weitgehend verschohnt.

von JJ (Gast)


Lesenswert?

Nick M. schrieb:
> Das Ding soll aber übernächste Woche wieder laufen!

Ach so, ja dann wegwerfen und neu kaufen.

von Bastler (Gast)


Lesenswert?

Traubensaft .. schrieb:
> Mal so aus Interesse gefragt: wie bekommt man von Lime die Genehmigung
> deren defekte Roller zu zerspielen?

Weil sich reaprieren nicht lohnt, weils zu teuer wäre, und Lime daher 
die Dinger in den meisten Fällen einfach liegen lässt. Ich hab die 
damals so lange per Mail gernevt, bis sie aufgegeben haben, und gesagt 
haben "Gut, bevor du hier noch 100 Mails schreibst, wenn du einen 
kaputten findest..."
Lime kauft die ganz billig zu 10.000 Stück ein in China, die dinger sind 
keine 200€ wert, das lohnt bei einem Defekt nicht mal eine 
Arbeitsstunde, bei den löhnen in Deutschland. Dazu kommt noch der Platz 
den wie Werkstatt bräuchte, usw, usf. Ich würde eben gerne wissen, was 
genau DIESES Programm macht. Leider ist eben das Lesen von Software so 
ein Ding was ich nicht kann, und die die es können, sagen zu 
kompliziert, zu viel Arbeit. Sind denn das wirklich 2 Monate Arbeit bis 
man da mal durch die 16kb Code durchsteigt?
Ich kenne die open Source lösungen, aber die originale ist eben deutlich 
besser, da schon genau auf diesen Motor super abgestimmt, und wenn man 
den Schlüssel von dem Scooter über Bluetooth hätte, könnte man ihn z.B. 
mit einer APP auf der Apple Watch freischalten...
Dazu kommt z.B. dass die Scooter einen 500W Motor drin haben, aber in 
Deutschland strommäßig auf 250W gedrosselt sind. Jetzt würde mich 
natürlich interessieren, wie diese Strombegrenzung funktioniert. Sicher 
wird jetzt wieder einer meckern, warum ich denn die 500W ausschöpfen 
will, ganz einfach: Wenn du in einer Gegend lebst wo 15-20% Steigung zum 
Alltag gehören, bist du um jedes Watt froh was der Motor mehr hat.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bastler schrieb:
> Leider ist eben das Lesen von Software so
> ein Ding was ich nicht kann, und die die es können, sagen zu
> kompliziert, zu viel Arbeit. Sind denn das wirklich 2 Monate Arbeit bis
> man da mal durch die 16kb Code durchsteigt?

Es hat meistens wenig Sinn, die Software zu durchblicken, wenn man die 
Hardware nicht kennt.
Ich re-engineere gerade ein Messgerät mit STM32F429 (komplexe Kiste mit 
LCD, Touch, etc. pp.) und kann nach einer Woche schon eigene Software 
drauf laufen lassen, nachdem ich die Pinbelegung des F4 zurückverfolgt 
habe (was bei 176 Pins ein einziger Spaß ist).
Die originale Software ist etwa 1MB gross und es wäre völlig irre, sie 
ohne prof. Disassembler (IDA o.ä.) verstehen zu wollen.

Dein kleiner Controller ist vermutlich in 2-3 Tagen abgefrühstückt. 
Weiss man die Pinbelegung, kann man mit Datenblatt des MC meist auch 
schnell begreifen, was die Erschaffer sich gedacht haben. (Alternate 
Functions und so).

von Elias M. (Gast)


Lesenswert?

Hallo,

Das Problem ist, dass ich nicht mal sehe ob das Disassembly brauchbar 
ist, oder der Disassembler nur Mist erzeugt hat. Wenn es wirklich nur 
2-3 Tage dauert, dahinter zu kommen, wie diese Software funktioniert, 
müsste sich doch einer finden lassen, der sich das mal über ein Paar 
Wochen ansieht?
Ich würds ja selber machen, aber wie gesagt, ich KANN es nicht. Sonst 
würde ich hier ja nicht fragen, immerhin war ich mir jetzt auch nicht zu 
schade, 3 Tage damit zu verbringen, irgednwelche Leitungen 
durchzumessen, um hinter die Pinbelegung der Stecker an dem Roller zu 
kommen. Wegen der Zeit ist es mir  nicht aber ich habe eben einfach 
nicht das Wissen von Software um da was zu machen. Aber wie hier alle 
schon sageten, wird es wohl absolut zwecklos sein, zu versuchen, die 
Software zu reversen, ohne das Layout des Controllers zu haben, habe ich 
wenigstens das richtig verstanden?

von John P. (brushlesspower)


Lesenswert?

JJ schrieb:
> Hast du denn schonmal veruscht dich an die UART Schnittstelle zu
> hängen
> zu schauen was kommt?

Das habe ich dem TE schon vor Monaten geraten.
Aber er ist absolut beratungsresistent.

von Bernd K. (prof7bit)


Lesenswert?

Du hast 3 Möglichkeiten:

* Ausschlachten und wegwerfen was Du nicht mehr brauchst, den Rest 
einlagern und in 2 Jahren ebenfalls wegwerfen wenn Deine Frau den 
Lagerplatz requiriert.

* Schmeiß die komplette Elektronik raus und kaufe einen fertigen 
generischen Motorcontroller aus China (ebenfalls Black-Box aber diesmal 
wenigstens mit Bedienungsanleitung und/oder Konfigurationstool)

* Reverse die Hardware, lerne wie so ein Motor üblicherweise angesteuert 
wird und dann schreibe selbst eine eigene Firmware für das existierende 
Board from scratch.

--

Ich würde spontan Möglichkeit 1 wählen, ich bin aber auch schon zu alt 
für so einen Käse, von daher vielleicht nicht repräsentativ. 2 ist 
relativ langweilig, dafür braucht man keine besonderen Skills. 3 wäre 
extrem anspruchsvoll und zeitraubend aber es würde von allen 3 Varianten 
Deinen Wissensstand am stärksten nach vorn katapultieren und Dir das 
größte Erfolgserlebnis verschaffen und wenn Du alles sauber 
dokumentierst und veröffentlichst wirst Du in einschlägigen Kreisen 
gottähnlichen Status erhalten und Dein Name wird auf allen Webseiten 
gepriesen werden die sich mit diesem Thema beschäftigen. Wenn Du also 
viel Zeit totzuschlagen hast und viel Durchhaltevermögen um extrem harte 
Nüsse zu knacken ohne sie kaputt zu machen dann verbringe die nächsten 5 
bis 8 Jahre mit diesem Projekt, diese Art von Beschäftigung ist allemal 
sinnvoller als das meiste andere womit die meisten anderen ihre Zeit 
totschlagen wenn sie nichts sinnvolles zu tun haben.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Elias M. schrieb:
> Ich würds ja selber machen, aber wie gesagt, ich KANN es nicht.

Dann ist es schon vorbei. Denn du bist ja derjenige, der daran Interesse 
hat, bei uns anderen hält sich das in sehr engen Grenzen, wie du bemerkt 
hast. Tipps können wir geben, aber erarbeiten musst du es.

von Anselm 6. (anselm68)


Lesenswert?

Der TO versteht die Komplexität den ASM Code sinnvoll zu interpretieren 
einfach nicht.
Aber so einen defekten LIME würde ich mir ja auch mal gerne zerlegen 
;)))

von Hugo H. (hugohurtig1)


Lesenswert?

Anselm 6. schrieb:
> Aber so einen defekten LIME würde ich mir ja auch mal gerne zerlegen
> ;)))

Die stehen an jeder Ecke und lt. TO definierst Du, was kaputt ist:

Bastler schrieb:
> "Gut, bevor du hier noch 100 Mails schreibst, wenn du einen
> kaputten findest..."

Hier (WI) haben die eine eigene Werkstatt und nach deren Bekunden wird 
auch repariert (durch Fachpersonal). Wäre interessant, wo der TO seinen 
kaputten e-Scooter gefunden hat.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Hallo

Ganz so einfach war das mit dem Scooter dann doch nicht. Es braucht 
schon ganz viel Arbeit bis sich so eine Firma dazu durchringt, dir so 
einen Scooter zu überlassen, aber glaubt mir, wenn ich etwas kann dann 
ist es nervig sein, wie ihr ja hier auch schon gesehen habt.

Ich definiere nicht, was kaputt ist, das macht schon noch Lime.


Was für eine Werkstatt ist das? So weit ich weiß, werden die Scooter 
nicht repariert, kann sich aber auch schon wieder geändert haben, ich 
habe meinen vor über einem halben Jahr gekriegt, als die in Deutschland 
noch ganz neu waren, er hatte einen Schaden an der Elektronik der mich 
insgesamt 9 Stunden Zeit gekostet hat, ihn zu finden und zu beheben.

Wenn ich drei Möglichkeiten habe, würde ich die Nr3 nehmen. Aber wenn 
ich damit dann fertig wäre, würde ich wohl genau das selbe sagen wie ihr 
hier alle: Ich hab keine Lust einen popligen E Scooter zu reversen, wenn 
ich mit dem selben Wissen auch was interessanteres reversen kann, viel 
dürfte in diesen Dingern nicht an Software drin sein. Ich hab eben 
gedacht, dass sich das mal schnell einer ansehen kann, aber gut, hat 
sich soweit erledigt, ich werd mal nochmal ein paar mal Lime nerven, 
vielleicht geben die ein paar informationen über die Software her. Wie 
groß die Erfolgschancen sind, hat man mir hier ja schon gesagt, und kann 
ich mir auch denken...

von JJ (Gast)


Lesenswert?

Bastler schrieb:
> Ich hab eben
> gedacht, dass sich das mal schnell einer ansehen kann, aber gut, hat
> sich soweit erledigt, ich werd mal nochmal ein paar mal Lime nerven,
> vielleicht geben die ein paar informationen über die Software her. Wie
> groß die Erfolgschancen sind, hat man mir hier ja schon gesagt, und kann
> ich mir auch denken...

So funktioniert Reverse-Engineering aber nicht. Mit schnell ansehen kann 
man vielleicht ein paar Konstanten finden um an der 
Höchstgeschwindigkeit zu drehen.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

@Bastler:

ist dir denn der grundsätzliche Ansatz bekannt, wie aus einem 
Algorithmus ein Programm (in einer modernen Programmiersprache), und wie 
aus dem Programm dann Assembler-Code wird?

ich gehe mal davon aus, daß in deinem Roller durchaus PID-Regler 
"verbaut" sein könnten. PID Regler gibt es natürlich nicht nur in 
Hardware, sondern man kann sie selbstverständlich auch in Software 
abbilden.

Wie so ein Software-Regler Algorithmus funktioniert, ist z.B. hier 
beschrieben:
https://rn-wissen.de/wiki/index.php/Regelungstechnik
lies einfach mal schnell quer durch. An manchen Stellen ist Pseudocode 
(oder tatsächlicher Code) aufgelistet.

Wnn nu diese Software durch einen Compiler in Machinencode übersetzt 
wird, "siehst" du nur noch Maschinen-Befehle der Form "add irgendwas zu 
register x, schiebe irgendwas auf Speicheradresse y, etc".

Das wieder zurück zu übersetzen in vernünftige Code-Sequenzen ist eine 
ziemliche "Kunst", und benötigt langjährige Erfahrung und Wissen.

Welche Implementation des PID-Reglers, udn welche Variante wird wohl in 
dinem Roller arbeiten? Und welche Pins werden wie wo angesteuert, um 
z.B. mittesl PWM irgendein Leistungstransistor zu steuern, welcher 
irgendeine WIndung deines Motors ansteuert?


Probiere es ansatzweise mal aus mit einem einfachen "Hello World" 
Programm, waelches du Kompilierst, und versuche rückwärts aus dem 
erzeugten Assembler-Code ein "Hello World" Programm zusammen zu orakeln.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Elias M. schrieb:
> Wenn es wirklich nur
> 2-3 Tage dauert, dahinter zu kommen, wie diese Software funktioniert,
> müsste sich doch einer finden lassen, der sich das mal über ein Paar
> Wochen ansieht?

Ernsthaft, schon wieder?

Wie oft sollen wir Dir noch sagen, dass kein normaler Mensch Assembler 
Code so schnell analysieren kann?

Selbst wenn: 2 Tage zu jeweils 50 Euro pro Stunde kostet so viel, wie 
ein ganzer Lieferwagen voller Roller.

> Wegen der Zeit ist es mir nicht aber ich habe eben einfach
> nicht das Wissen von Software um da was zu machen.

Ach, und weil du es nicht kannst soll sich nun irgendwer dazu 
verpflichtet fühlen, dir dabei zu helfen? Denkst du, das Genies die das 
können, ihre Arbeitszeit verschenken?

Vergiss es!

von Stefan F. (Gast)


Lesenswert?

Bernd K. schrieb:
> Wenn Du also viel Zeit totzuschlagen hast und viel Durchhaltevermögen
> um (die Firmware neu zu programmieren)

Da bleibt dann noch das klitzekleine Problem, dass er nur einen Roller 
hat. Ein kleiner falscher Fehler, und das Ding ist kaputt, die ganze 
vorherige Arbeit war dann für die Katz.

von Bastler (Gast)


Lesenswert?

Das ist was mich daran auch so fasziniert, der Code des Controllers ist 
keine
Paar Textseiten lang aber er ist so schwer zu verstehen. An der Neugier 
fehlt es mir nicht, aber ich denke mal bis ich das gelernt habe, wird es 
schon lange keine E Scooter mehr geben, und diese wieder genauso 
verschwunden sein, wie der Fidget Spinner. Wenn man das nun in IDA 
zerlegt, und sich das ansieht sieht das schon wieder zumindest für mich 
sehr kryptisch aus. Ich verstehe eben kein Wort von dem was dort steht, 
ist ja auch für einen Prozessor übersetzt worden, und das lässt sich wie 
ich mittlerweile kapiert hab nicht (ganz) rückgängig machen. Dass die 
Kommentare weg sind, ist klar, aber was mich interessieren würde, ist, 
wie z.B. der Controller weiß, dass er 250W erreicht hat, und 
dementsprechend abregeln muss. Sicher, durch shunts, aber da scheint 
noch mehr dahinter zu stecken, dieser Regler hat drei Shunts, für jede 
Pahse einen. Ersetzt man die Shunts durch niederohmigere, wird der Motor 
nicht wie zu erwarten wäre stärker, sondern fängt beim Beschleunigen an 
zu ruckeln. Bei Controllern mit nur einem Shunt funktioniert der Trick 
einen niederohmigeren einzubauen, bei diesem Controller nicht. Ich habe 
immer noch nicht kapiert, warum der drei Shunts hat. Und was die 
Geschwindigkeit angeht:
Es gibt eine Stelle in der .hex steht sie auf etwas anderem als 1 fährt 
der Scooter 25kmh, steht sie auf 0 fährt er 20kmh. Kann man denn nicht 
mit einem Disassembler sehen womit diese Zahl verknüpft ist, irgendwas 
muss da ja hinterlegt sein, sonst wüsste der Kasten doch nicht, dass er 
bei 0 20 kmh fahren soll, und bei allem anderen als 0 also 1-9 25kmh. 
Kann man das nicht in einem Disassembler sehen?

von Stefan F. (Gast)


Lesenswert?

JJ schrieb:
> Mit schnell ansehen kann man vielleicht ein paar Konstanten finden
> um an der Höchstgeschwindigkeit zu drehen.

Bitte mache ihm keine falsche Hoffnungen, denn genau das will er ja 
haben. Aber er bettelt schon seit Monaten erfolglos um Hilfe.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Kann man das nicht in einem Disassembler sehen?

Nein, kann man nicht. Weil der Disassembler eben nicht den für Menschen 
Lesbaren Quelltext extrahieren kann. Der ist da nämlich nicht mehr drin.

Du erinnerst dich an den Kuchen, den man nicht in seine Zutaten zurück 
verwandeln kann? Es geht einfach nicht, egal wie oft du es dir wünschst.

von JJ (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> JJ schrieb:
>> Mit schnell ansehen kann man vielleicht ein paar Konstanten finden
>> um an der Höchstgeschwindigkeit zu drehen.
>
> Bitte mache ihm keine falsche Hoffnungen, denn genau das will er ja
> haben. Aber er bettelt schon seit Monaten erfolglos um Hilfe.

Na aber das ist doch mal eine konzise Fragestellung. Um das zu lösen 
würde ich deutsche und, sagen wir, spanische Firmwaren vergleichen bis 
ich ein möglichst ähnliches Paar finde und dann mit den Unterschieden 
rumspielen.

Wenn man mehr will müsste man zumindest mal herausfinden welche Pins zum 
Motor und welche zum Rücklicht gehen. Daraus hätte man zumindest mal 
einen Anhaltspunkt.

Aber abgesehen davon und wie oben schon geschrieben: Wenn man an 
Hardware rumhacken will fängt man mit den offensichtlichen 
Schnittstellen an (UART) und nicht mit dem Disassembler.

von Bastler (Gast)


Lesenswert?

Also schön, ich werd mir mal einen LA besorgen und sehen was die UART 
Schnittstelle so quasselt...

von Stefan F. (Gast)


Lesenswert?

Ich gebe Dir mal ein ganz keines konkretes Beispiel:

Quelltext:
1
int a=1458;
2
int b=12;
3
int c=a/b;

Das ist eine ganz einfache Division von zwei Zahlen.

Und so sieht der zugehörige Assembler-Code bei einem AVR Mikrocontroller 
aus:
1
 cf 93         push  r28
2
 df 93         push  r29
3
 cd b7         in  r28, 0x3d
4
 dd 27         eor  r29, r29
5
 c6 50         subi  r28, 0x06
6
 cd bf         out  0x3d, r28
7
 82 eb         ldi  r24, 0xB2  
8
 95 e0         ldi  r25, 0x05  
9
 9a 83         std  Y+2, r25  
10
 89 83         std  Y+1, r24  
11
 8c e0         ldi  r24, 0x0C  
12
 90 e0         ldi  r25, 0x00  
13
 9c 83         std  Y+4, r25  
14
 8b 83         std  Y+3, r24  
15
 89 81         ldd  r24, Y+1  
16
 9a 81         ldd  r25, Y+2  
17
 6b 81         ldd  r22, Y+3  
18
 7c 81         ldd  r23, Y+4  
19
 09 d0         rcall  .+18       
20
 7e 83         std  Y+6, r23  
21
 6d 83         std  Y+5, r22  
22
 80 e0         ldi  r24, 0x00  
23
 90 e0         ldi  r25, 0x00  
24
 ca 5f         subi  r28, 0xFA  
25
 cd bf         out  0x3d, r28  
26
 df 91         pop  r29
27
 cf 91         pop  r28
28
 08 95         ret
29
 97 fb         bst  r25, 7
30
 07 2e         mov  r0, r23
31
 16 f4         brtc  .+4        
32
 00 94         com  r0
33
 06 d0         rcall  .+12       
34
 77 fd         sbrc  r23, 7
35
 08 d0         rcall  .+16       
36
 0b d0         rcall  .+22       
37
 07 fc         sbrc  r0, 7
38
 05 d0         rcall  .+10       
39
 3e f4         brtc  .+14       
40
 90 95         com  r25
41
 81 95         neg  r24
42
 9f 4f         sbci  r25, 0xFF  
43
 08 95         ret
44
 70 95         com  r23
45
 61 95         neg  r22
46
 7f 4f         sbci  r23, 0xFF  
47
 08 95         ret
48
 aa 1b         sub  r26, r26
49
 bb 1b         sub  r27, r27
50
 51 e1         ldi  r21, 0x11  
51
 07 c0         rjmp  .+14       
52
 aa 1f         adc  r26, r26
53
 bb 1f         adc  r27, r27
54
 a6 17         cp  r26, r22
55
 b7 07         cpc  r27, r23
56
 10 f0         brcs  .+4        
57
 a6 1b         sub  r26, r22
58
 b7 0b         sbc  r27, r23
59
 88 1f         adc  r24, r24
60
 99 1f         adc  r25, r25
61
 5a 95         dec  r21
62
 a9 f7         brne  .-22       
63
 80 95         com  r24
64
 90 95         com  r25
65
 bc 01         movw  r22, r24
66
 cd 01         movw  r24, r26
67
 08 95         ret

Die zwei Werte für a und b findest du da vielleicht noch wieder. Aber 
kannst du erkennen, dass dieser Code die beiden Zahlen dividiert? Also 
ich kann das nicht.

Und jetzt stelle Dir mal vor, dass die Steuerung deines Rollers aus 
einigen tausend komplexeren Code-Zeilen besteht. Wie willst du den 
daraus erzeugten Assembler Code in lesbaren Quelltext zurück überführen?

Das wäre eine Lebenswerk!

von Bastler (Gast)


Lesenswert?

JJ schrieb:
> Wenn man mehr will müsste man zumindest mal herausfinden welche Pins zum
> Motor und welche zum Rücklicht gehen. Daraus hätte man zumindest mal
> einen Anhaltspunkt.

Das habe ich schon raus gefunden, muss mir nur noch mal die ganze 
Platine ansehen, will sie aber eben nicht durch ablöten aller Teile 
kaputtmachen, sonst habe ich zwar das Layout, aber keinen Controller 
mehr, der läuft, auch nicht so wirklich zielführend.

von JJ (Gast)


Lesenswert?

Vll hilft dir dieser Thread auch noch weiter:
https://scootertalk.org/forum/viewtopic.php?f=54&t=1019

von Bastler (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Und jetzt stelle Dir mal vor, dass die Steuerung deines Rollers aus
> einigen tausend komplexeren Code-Zeilen besteht. Wie willst du den
> daraus erzeugten Assembler Code in lesbaren Quelltext zurück überführen?
>
> Das wäre eine Lebenswerk!

Es muss eine bestimmte Sorte Chinese geben, die das offenbar kann, 
immerwieder kriegen die es fertig viel komplexere Programme zu klauen, 
und für ihre Zwecke zu modifizieren. Es kann doch nicht sein, dass die 
es schaffen GB an Daten zu zerrupfen, und wir scheitern schon an ein 
paar kb...
Und wie schafft es dann eigentlich die modifizierte Firmware z.B. für 
den E Scooter von Xiaomi ins Internet, wie haben die da drin dann heraus 
gefunden, wie die funktioniert? Ich weiß ja dass das alles andere als 
einfach ist, aber wenn es unmöglich ist, wie schaffen dies dann?

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> immerwieder kriegen die es fertig viel komplexere Programme zu klauen

Sicher, die machen das aber nicht für einen Roller, sondern um an 
Millionen Produkten Geld zu verdienen.

Niemand sagt, dass es nicht machbar ist. Aber nicht kostenlos und nicht 
in 2-3 Tagen.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Es kann doch nicht sein, dass die
> es schaffen GB an Daten zu zerrupfen, und wir scheitern schon an ein
> paar kb...

Moment mal, GB an Daten wäre so etwas wie Windows. Das hat noch niemand 
komplett analysiert.

von Bastler (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Sicher, die machen das aber nicht für einen Roller

Naja für einen wäre es ja auch nciht, in Amerika gibts davon hunderte in 
privater Hand, aber ich verstehe schon, was du sagen willst: Ohne Moos 
nix los. Das dürfte das Problem sein.

von Stefan F. (Gast)


Lesenswert?

> Ich weiß ja dass das alles andere als
> einfach ist, aber wenn es unmöglich ist, wie schaffen dies dann?

Mit viel Geduld, Zeit und Erfahrung, wurde bereits mehrfach geschrieben. 
Anfangen tut man mit Schaltplan, und der Doku der Bauteile, 
innsbesondere dem Mikrocontroller. Wir der funktioniert ist haarklein 
dokumentiert, das findest du alles auf der Webseite des Chiphersteller. 
Ich schätze, du wirst dazu so Pi mal Daumen 50.000 Seiten lesen und 
verstehen müssen (also viel mehr als der Umfang des Programmes).

Dann kannst du dich mit den Funktionen und den Eigenarten diverser 
Compiler vertraut machen und dann erkennst du vielleicht schon das eine 
oder andere Muster im Code (z.B eine Division). Das wäre ein Anfang.

Viel Spaß dabei.

> Ohne Moos nix los. Das dürfte das Problem sein.

Ich glaube ich habe dir schon einmal angeboten, das für dich zu machen, 
wenn du meiner 4-Köpfigen Familie dafür Unterkunft, Verpflegung und Geld 
für Unterhaltung bereit stellst. Das wird einige Jahre dauern, 
vielleicht 5 oder 10. kannst ja mal ausrechnen, wie viel dich das kosten 
würde.

von Bastler (Gast)


Lesenswert?

Der HEX Rays Decompiler hilft da auch nix?

von Thomas Z. (usbman)


Lesenswert?

Bastler schrieb:
> Der HEX Rays Decompiler hilft da auch nix?

Doch der hilft ungemein aber erst dann wenn man einen Schaltplan hat und 
etwas vom Programmieren versteht. Es gibt übrigens eine ganze Reihe 
Plugins für Ida die besseren kannst du beim Hersteller runterladen. Du 
brauchst dann allerdings eine gültige Lizenz.

Thomas

von Bernd K. (prof7bit)


Lesenswert?

Ghidra hat auch nen Decompiler, ist vielleicht auch mal nen Blick wert.

von Stefan F. (Gast)


Lesenswert?

Solange du aber keine Ahnung vom Programmieren hast, kannst du mit egal 
welchem Decompiler nichts anfangen.

Erstmal musst du am Code erkennen, welcher Compiler mit welchen 
Einstellungen benutzt wurde. Eventuell lässt sich das automatisieren, da 
kenne ich mich zu wenig mit den teuren Profi-Tools aus.

Als Nächstes musst du sowohl die Sprache des Compiler beherrschen, als 
auch Assembler. Außerdem musst du die Funktionen aller Bauteile auf dem 
Board weitgehend auswendig kennen.

Nur dann dann wirst du imstande sein, auch nur ansatzweise 
nachzuvollziehen, was die einzelnen Befehle bedeuten. Damit bist du aber 
noch nicht fertig, denn du musst den Sinn und Zweck der Befehle deuten.

Ich habe Dir oben den Code für eine Division gezeigt. Mal angenommen, du 
erkennst so einen Block im Assembler Code, dann musst du immer noch 
klären, welchem Zweck die Division dient. In welchem Zusammenhang wird 
sie verwendet? Wo kommt der Input her, wo geht der Output hin?

Du kannst ja noch nicht einmal eine einzige Hochsprache Programmieren! 
Das ist so, als ob du eine Mondrakete bauen und steuern willst, obwohl 
du gerade mal ein Feuerzeug bedienen kannst. Da fehlen Dir einfach so 
extrem viele Grundlagen, dass man erstmal dort anfangen muss.

Du musst lernen, diesen Mikrocontroller zu programmieren. Und zwar 
solltest du eine ähnliche Anwendung wie die Steuerung des Rollers 
programmieren (wenigstens für ein Modell), damit du dich auch mit den 
dazu nötigen Algorithmen und Bauteilen vertraut machst.

Erst wenn du so etwas selber ganz alleine (ohne eine einzige Zeile 
copy+paste!) hin bekommst, macht es Sinn, die Quelltexte anderer zu 
analysieren. Und wenn du das kannst, danach macht es Sinn, den Assembler 
Code in Quelltext zurück zu übersetzen.

Es gibt kein Tool, was dies in brauchbarer Form automatisiert. Und wenn 
es eins gäbe, wärst du beim aktuellen Kenntnisstand nicht imstande, 
diesen Quelltext zu verstehen.

von Bastler (Gast)


Lesenswert?

Ok, Also versuch ich mich jetzt erst mal ins Programmieren rein zu 
arbeiten, am besten mit einer Versuchshardware die den selben Chip drauf 
hat, wie der Scootercontroller. Das dürfte sich machen lassen der 
controller ist recht weit verbreitet. Wollte das Programmieren sowieso 
schon seit Ewigkeiten lernen, da die Projekte langsam so komplex werden, 
dass man ohne selbst programmieren eh nicht mehr weiterkommt, und 
Mikrocontroller ja heute überall sind, gilt es ja fast schon als 
grundwissen als Bastler sowas wenigstens in etwa zu können.

von ~Mercedes~ (Gast)


Lesenswert?

Warum alles disasemblieren wollen?

Ich würde, wie schon oben angesprochen, die UART angreifen.
Ihr Parser führt Dich zu den Configurations - Files.

Nen Umsetzer auf +-12 Volt dranne, und mit einem Terminalprogramm
die Baudrate und Parität ermitteln.
Dann mit AT - Befehlen nen Versuch starten.
Warum soll gerade hier ein propretäres Protokoll zur
Anwendung kommen?


mfg

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

~Mercedes~ schrieb:
> Ich würde, wie schon oben angesprochen, die UART angreifen.
> Ihr Parser führt Dich zu den Configurations - Files.
>
> Nen Umsetzer auf +-12 Volt dranne,
>
> Dann mit AT - Befehlen nen Versuch starten.

was macht dich denn so sicher, dass:

a) Die Schnittstelle als RS232 Schnittstelle mit +-12V Pegeln arbeitet? 
(viele Geräte, die ich in den Fingern hatte, arbeiten mit TTL Pegel d.h. 
(+5V/0V)

b) Die Schnittstelle weder verschlüsselt noch mit einem Passwort 
geschützt ist?

c) Die Schnittstelle mit 'AT' Modem-Befehlen angesprochen werden kann 
oder soll? Denkst du, der Roller wäre ein Modem oder sollte sich 
irgendjemanden als Modem präsentieren?

von Bernd K. (prof7bit)


Lesenswert?

Du könntest Dir von allen chinesischen Herstellern für Motorcontroller 
mal die Konfigurationstools besorgen (werden in einschlägigen 
E-Moppedforen rumgereicht) und mal probieren ob Du mit irgendeinem davon 
einen Connect bekommst, evtl ist da die selbe Firmware drauf wie auf 
irgendeinem generischen Kelly oder Lingbo oder dergleichen weils 
vielleicht indirekt auch von einem dieser Hersteller kommt.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Also versuch ich mich jetzt erst mal ins Programmieren rein zu
> arbeiten, am besten mit einer Versuchshardware die den selben Chip drauf
> hat, wie der Scootercontroller.

Das ist ein sinnvoller Anfang

von Bastler (Gast)


Lesenswert?

Wegstaben V. schrieb:
> was macht dich denn so sicher, dass:
>
> a) Die Schnittstelle als RS232 Schnittstelle mit +-12V Pegeln arbeitet?
> (viele Geräte, die ich in den Fingern hatte, arbeiten mit TTL Pegel d.h.
> (+5V/0V)
>
> b) Die Schnittstelle weder verschlüsselt noch mit einem Passwort
> geschützt ist?
>
> c) Die Schnittstelle mit 'AT' Modem-Befehlen angesprochen werden kann
> oder soll? Denkst du, der Roller wäre ein Modem oder sollte sich
> irgendjemanden als Modem präsentieren?

Leute, ihr denkt da viel zu komplex.

Ich hab zwar von Programmieren keine Ahnung, aber ich weiß mittlerweile 
von Leuten die viel mit Lime zu tun haben, dass diese Dinger in keinster 
Weise irgednwie geschützt sind. Lime hat kein Interesse die gegen 
Diebstahl zu schützen (weil hier jeder sagt verschlüsselt, usw) da sie 
keiner klaut. Erstens mal kann man die Scooter nicht zusammenklappen, 
sie sind dazu noch riesengroß. Zweitens einmal lassen sie sich nicht 
freischalten, ohne die APP, drittens einmasl wiegt einer 25kg, viertens 
einmal haben sie keinerlei Konfigurationsmöglichkeit. Ich hab auch nur 
Lime genervt, weil ich mal wissen wollte, was in dem Ding drin steckt, 
wirklich als privaten E Scooter verwenden kann man den nicht da er dafür 
einfach nicht ausgelegt ist, zu groß zu sperrig, und zu schwer ist. Lime 
weiß das auch. Also hat man sich nicht darum gesorgt da irgendwas gegen 
zerlegen usw. Zu schützen. Lime sagt
"Wenn die Dinger lange genug laufen, dass sie mehr einbringen als sie 
kosten ist alles gut" Und demnach sind die auch recht billig gebaut. 
Dazu kommt dass Lime wie schon geschrieben so gut wie keine Probleme mit 
Diebstahl wohl aber gewaltige mit Vandalismus hat. Gegen Vandelen die 
die Roller von der Brücke schmeißen hilft aber keine Verschlüsselung der 
Welt. Also, da dürfte nix verschlüsselt sein, das ist stinkgewähnliches 
8015 Geraffel aus China, leider will ich eben wissen, die dieses 0815 
Geraffel funktioniert, was für mich schwirig ist, weil ich sogar zum 
Programmieren zu blöd bin, zum Reversen erst recht. Der Motor controller 
kommuniziert via UART Mit einem IOT Modul, das uart hat was um 3.30V 
also standard. Da ist auch nichts verschlüsselt, das einzige was 
einigermaßen gut verschlüsselt ist, ist der Bluetooth 
Freischaltmechanismus, da wenn da einer den "Generalschlüssel" finden 
würde, das gesamte Lime Geschäftsmodell hin wäre,
weil dann die Leute die Dinger um sonst entsperren können. Aber sonst 
ist da nix gesichert, auch keine Lockbits, Verschlüsselung usw. Ich 
denke sogar, dass die Technik so rudimentär doof ist, dass ich noch viel 
zu kompliziert denke, was die Software angeht. Das dürfte irgendwas von 
einem jung Asiaten in verstöpseltem C zusammengeklatschtes sein, was 
halt irgendwie läuft. Ihr denkt da so als ob der Scooter eine 
Straßenbahn wäre, die $1.000.000 kostet, und 60 Jahre lebt. Aber wie 
gesagt, ist er nicht, das ist Chinatech von billigsten. Nun ist nur die 
Frage wie dieses Chinatech funktioniert. Ich hätte ja nix dagegen, alles 
das was man braucht um das zu reversen zu lernen, WENN DAS NUR NICHT SO 
VERDAMMT LANGE DAUERN WÜRDE. Dazu kommt dass Reversen ja noch viel 
komplexer ist, als Programmieren. Bis ich kapiert hab, wie dieses Ding 
funktioniert, und alles gelernt hab was man zum Reversen braucht ist so 
viel Zeit vergangen, dass ich den Scooter dann wegschmeißen kann weil 
der Akku hin ist, und es gar keine Straßen mehr sondern nurnoch 
fliegende Autos gibt. Sicher werd ich das jetzt anfangen zu lernen, 
immerhin wird der Scooter nicht das letzte sein, was ich in der Hand hab 
was mit Software zu tun hat, aber ich denke nicht, dass ich in 
vertretbarer Zeit so viel gelernt hab, dass ich an dem Projekt Lime 
Scooter noch was damit anfangen kann. Dazu kommt noch dass der Code 
offenbar schon im Source Code der reinste Saustall war, Stichwort jung 
Asiate, was das reversen dann nicht gerade einfacher macht.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Bis ich kapiert hab, wie dieses Ding
> funktioniert, und alles gelernt hab was man zum Reversen braucht ist so
> viel Zeit vergangen, dass ich den Scooter dann wegschmeißen kann weil
> der Akku hin ist

Gut dass du dass nun endlich erfasst hast.

> Dazu kommt noch dass der Code offenbar
> schon im Source Code der reinste Saustall war

Beurteile nicht Dinge voreilig, die du nicht gesehen hast. Abgesehen 
davon bezweifle ich stark, dass du die nötige Kompetenz hast, die 
Qualität von Quelltexten zu beurteilen. Soweit ich mitbekommen habe, 
bist du kein Programmierer.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Bastler schrieb:
> Ich habe den Scooter mit Genehmigung von Lime im Defektzustand von der
> Straße aufgelesen, und repariert.

Bastler schrieb:
> er hatte einen Schaden an der Elektronik der mich
> insgesamt 9 Stunden Zeit gekostet hat, ihn zu finden und zu beheben.

Welche Komponenten konntest du denn als defekt identifizieren und 
reparieren? Funktioniert denn der Roller jetzt wieder einwandfrei wie 
ein "normaler" Roller (also mit Nutzung der Anmeldung etc) ?


Bastler schrieb:
> Der Motor controller
> kommuniziert via UART Mit einem IOT Modul, das uart hat was um 3.30V
> also standard.

vermutest du das, oder hast du diese Info aus "anderen Quellen" (z.B. 
irgendwelchen Foren-Diskussionen) zusammen getragen?

Sind denn die im ersten Beitrag verlinkten Dropbox-Sachen deine 
"Erkenntnisse"? [How to read out *.mp4, How to write *mp4]. Wenn es 
nicht deine "Filmchen" sind: Konntest du das schon mal mit deinem 
eigenen Equipment soweit nachvollziehen, was da erwähnt wird?

Hattest du den Teil der Hardware schon analysiert, den du da erwähnst 
(UART, IOT, Bluetooth)? Könntest du ein paar Skizzen der Verschaltung 
(Funktionsblöcke) zur Verfügung stellen?

Das inpiriert ja vielleicht manchen, dich in deinem Vorhaben stärker zu 
unterstützen.


> Da ist auch nichts verschlüsselt, das einzige was
> einigermaßen gut verschlüsselt ist, ist der Bluetooth
> Freischaltmechanismus

Wie weit hast du dich denn schon in die BT-Kommunikation "eingehackt"? 
Kannst du deine Protokoll-Mitschnitte zur Verfügung stellen? Konntest du 
schon Teile der Kommunikation analysieren (Dazu braucht es ja keine 
direkten Programmier-Kenntnisse)?

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Hallo,

Ja, das sind meine Filmchen. Ich weiß nicht ob sich der Scooter noch 
mittels Lime freischalten lässt, die APP meldet einen Fehler wenn man 
das versucht. Kann aber auch sein, dass Lime den in ihren Servern als 
kaputt markiert hat, und er deshalb nicht mehr zum Freischalten geht. Ob 
der Scooter soweit wieder voll intakt ist, kann ich also nicht prüfen.

Es hat eine Diode im Inneren der oberen Box des Scooters zerschossen, 
was zur Folge hatte, dass der Controller unten nicht mehr richtig mit 
dem Modul oben kommunizierte. Ich weiß nicht was da genau passiert ist, 
nachdeem ich die Diode ersetzt hab, funktionierte das Fahrzeug wieder, 
und verhielt sich soweit ich es beurteilen kann normal. Der Scooter 
fährt jetzt auch wieder, wie man ihn ohn freischalten der APP zum laufen 
kriegt weiß ich mittlerweile auch, es gibt in der .hex eine Zeile die 
bestimmt ob der Scooter gesperrt oder nicht gesperrt ist. Diese Zeile 
schaltet den ganzen Roller frei.

Ja die Videos und alles andere in dem Link stammt von mir. Ich hab den 
Speicher ausgelesen, alle Pinbelegungen reverse engineert durch 
durchmessen, usw, usf. Wie geschrieben, ich kann zwar keine Software 
reversen, aber ganz blöd bin ich nicht, und was für solche Sachen 
natürlich förderlich ist: Ich bin ausgesprochen neugierig.

Wenn ich mal einen gescheiten Logic Analyzer hab, werde ich das mal 
ansehen, so lange ist es aber schwirig, die UART Kommunikation zu 
beobachten.

Die Bluetooth Kommunikation habe ich mal verscuht zu beobachten, mit 
einem low cost Sniffer, was aber fehl schlug, wahrscheinlich deshalb 
weil sich die APP anscheinend gar nicht mehr mit dem Scooter verbindet, 
sondern schon vorher eine Fehlermeldung anzeigt dass das entsprechende 
Fahrzeug nicht verfügbar sei. Anscheinend haben die den Scooter schon 
irgednwie aus ihrem Inventar gelöscht.

Ich hätte auch kein Problem damit jedes einzelne Bauteil von dem 
Controller zu löten, um dann das ganze Layout zu reversen, wüsste sogar 
schon wie ich das anstellen würde: Alls ablöten, dann Platine aufn 
Scanner, zwei Bilder scannen von beiden Seiten, und dann in EGALE 
einfach die Leiterbahenen nachzeichnen. Das Problem ist nur eben, dass 
ich nur einen Controller habe, und wenn ich den kaputtmache, habe ich 
ein Problem. Dann hab ich zwar den Schaltplan, und so gut wie alle 
dokumente die Lime über das Teil auch hat, bis auf den Quellcode, aber 
keinen Controller mehr, dann fährt die Kiste gar nicht mehr.

Die UART Spannung habe ich ausgemessen, müsste stimmen, ist eine 
typische Spannung von 3.30V, mit der auch der Prozessor des Rollers 
versorgt wird. Ich kann ja mal auflisten, was da alles an Käfern auf der 
Controllerplatine sitzt.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Alls ablöten, dann Platine aufn
> Scanner, zwei Bilder scannen von beiden Seiten, und dann in EGALE
> einfach die Leiterbahenen nachzeichnen.

Du weisst schon, dass Platinen oft mehr Lagen als nur oben und unten 
haben?

> Das Problem ist nur eben, dass ich nur einen Controller habe, und wenn ich
> den kaputtmache ...fährt die Kiste gar nicht mehr.

Willst du dieses Risiko wegen 5 km/H eingehen?

von Bastler (Gast)


Lesenswert?

Nicht wegen 5 kmh ich will wissen wie die Software innendrin 
funktioniert

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Bastler schrieb:
> ich will wissen wie die Software innendrin funktioniert

Es wurde ja schon mehrmals erwähnt: Aus Assembler-Code wieder halbwegs 
verständlichen Hochsprachen-Code zu erzeugen (auf elementarer Ebene z.B. 
von Grundrechenarten) ist EINE Sache.

Daraus dann einen komplexen Algorithmus herzuleiten, ist dann schon 
wieder eine nächste komplexe Phase. Das kann kein "Automatismus", das 
musst du schon selber als Mensch machen.

Beispiel: Eine Fourier-Transformation, eine trigonometrische Berechnung 
(z.B. Sinus) oder ein PID-Regler lässt sich in Form von "elementaren 
Grundrechenarten" in einer Programmier-Hochsprache deiner Wahl 
beschreiben.

Wenn du jedoch nicht "weisst" was z.B. ein PID-Regler ist, dann wirst du 
aus einem Haufen von Additionen und Subtraktionen niemals raus orakeln 
können, das diese Codesequenz einen PID-Regler darstellt. Und ich gehe 
mal stark davon aus, DASS für verschiedene Zwecke in deinem Roller PID 
Regler zum Einsatz kommen (zumindest für die Geschwindigkeit)

Gewisse Funktionsblöcke wirst du jedoch auch Ohne exakte Verschaltung 
deiner Komponenten "orakeln" können: Da gibt es einen Gasgriff als 
Sollwertgeber, es wird einen Rad-Sensor zur derzeitigen Drehzahl geben 
(Istwertgeber). Es gibt irgendeine Ansteuerung des Motors z.B. in Form 
eines Transistors, vielleicht gibt es auch einen Messwert-Aufnehmer, um 
die derzeitige Motordrehzahl zu ermitteln. Der Motor wird in 
Abhängigkeit der gewünschten Geschwindigkeit angesteuert werden, z.B. 
mittels PWM.

Und all diese Informationen werden "umeinander gerührt", und bewirken 
eine Geschwindigkeitsänderung beim betätigen des GAspedals.

Wenn du nun alle Sensoren und Aktoren identifiziert hast, dann kannst du 
Spekulationen anstellen darüber, wie diese miteinander interagieren 
könnten, und könntest dann versuchen, in dem Code die Stelle zu finden, 
WO die Dinge miteinander interagieren. Vielleicht funktionieren sie so, 
wie du das spekulierst, oder vielleicht ganz anders, weil z.B. der 
Batterie-Ladestand noch in die Beschleunigungsphase mit eingeht  (Wenig 
Batteriekapazität -> weniger starke Beschleunigung, um Batterie zu 
schonen)

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Wegstaben V. schrieb:
> DASS für verschiedene Zwecke in deinem Roller PID
> Regler zum Einsatz kommen (zumindest für die Geschwindigkeit)

Einige chinesische Fahrzeuge mit Geschwindigkeitsbegrenzung (z.B. auf 
45km/h gedrosselte E-Roller die ungedrosselt 70 fahren) haben für die 
Geschwindigkeitsbegrenzung nur einen P-Regler, da merkt man dann auch 
wie die Geschwindigkeit langsam nachlässt wenn der Akku leer wird oder 
wenns bergauf geht.

: Bearbeitet durch User
von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Bastler schrieb:
> wie man ihn ohn freischalten der APP zum laufen
> kriegt weiß ich mittlerweile auch, es gibt in der .hex eine Zeile die
> bestimmt ob der Scooter gesperrt oder nicht gesperrt ist. Diese Zeile
> schaltet den ganzen Roller frei.

Raffiniert! WIe hast du das heraus bekommen?

von Hugo H. (hugohurtig1)


Lesenswert?

Bastler schrieb:
> Bis ich kapiert hab, wie dieses Ding
> funktioniert, und alles gelernt hab was man zum Reversen braucht ist so
> viel Zeit vergangen, dass ich den Scooter dann wegschmeißen kann weil
> der Akku hin ist, und es gar keine Straßen mehr sondern nurnoch
> fliegende Autos gibt.

Bastler schrieb:
> Ob
> der Scooter soweit wieder voll intakt ist, kann ich also nicht prüfen.

Bastler schrieb:
> wie man ihn ohn freischalten der APP zum laufen
> kriegt weiß ich mittlerweile auch, es gibt in der .hex eine Zeile die
> bestimmt ob der Scooter gesperrt oder nicht gesperrt ist. Diese Zeile
> schaltet den ganzen Roller frei.

Ja - klar :-) - troll Dich.

von Bastler (Gast)


Lesenswert?

Der Motor hat keinerlei Geschwindigkeitssensor. Es ist ein dreiphasen 
BLDC, der also schneller läuft, wenn das Drehfeld schneller wird. Also 
wid dem Controller einfach gesagt worden sein "Drehfeld mit nicht mehr 
als ...hz" damit läft der dann nicht mehr als z.B. 25. Er hat auch keine 
Hallsensoren, sondern findet seine Rotorposition über die rück EMK, 
weshalb der Scooter nicht aus dem Stand anfahren kann, sondern immer 
erst mit dem Fuß angeschubst werden muss. Ich dachte anfangs dass es 
Hallsensoren geben würde, da der Motor insgesamt 6 Anschlüsse hat, aber 
es hat sich herausgestellt, dass die drei anderen neben den 3 Phasen 
keine Anschlüsse für Hallsensoren sind, sondern ein Temperaturfühler, 
der wohl dafür sorgt, dass der Motor nicht überhitzt.

Wenn einer hier glaubt, dass ich das mit der Zeile mit Disassembler und 
co rausgefunden habe, liegt ihr falsch. Ich habe einfach nur in einem 
amerikanischen Forum gefragt, ob es nicht einen geben würde, der mal den 
Speicher des Motorcontrollers eines entsperrten Scooters auslesen 
könnte. Ich hatte nun also die Software in entsperrtem und gesperrtem 
Zustand vorliegen, und musste nur vergleichen, was an den beiden Dateien 
anders ist. Wie gesagt, da ist nix geschützt, auch keine Checksumme bis 
auf die der .hex Datei. Sicherlich ist die Methode zwei Dateien zu 
vergleichen nicht die eleganteste, aber sie hat funktioniert.

Die Platine hat keine Innenlayer, natürlich weiß ich dass Platinen heute 
bis zu 20 Innenlayer haben können, aber wie schon geschrieben, das ist 
0815 Billigtech, sowas wäre dafür viel zu teuer.

Eben das ist das Problem. Ich weiß dass man nie wieder Source Code draus 
kriegt, aber vielleicht kann man dann verstehen, was das Programm wann 
warum macht.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Bastler schrieb:
> ch habe einfach nur in einem
> amerikanischen Forum gefragt, ob es nicht einen geben würde, der mal den
> Speicher des Motorcontrollers eines entsperrten Scooters auslesen
> könnte.

Wenn die "Forscher" im amerikanischen Forum bezüglich dieses Rolelrs so 
rege sind, dann könntet sie doch vielleicht eher weiter helfen in 
Code-Reverse Engineering

von Hugo H. (hugohurtig1)


Lesenswert?

Bastler schrieb:
> aber sie hat funktioniert.

Warum verpi..t Du Dich nicht einfach? Negativ denkende Menschen könnten 
vermuten, dass der e-Scooter ggf. nicht freiwillig in Deinen Besitz 
übergegangen ist.

Kannst Du die Genehmigungs-eMail von Lime mal hier publizieren 
(natürlich ohne Deine persönlichen Daten)?

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Wegstaben V. schrieb:
> Wenn die "Forscher" im amerikanischen Forum bezüglich dieses Rolelrs so
> rege sind, dann könntet sie doch vielleicht eher weiter helfen in
> Code-Reverse Engineering

Das versuche ich gerade schon, aber da kennt sich wohl auch keiner aus. 
Wird wohl so sein wie ich befürchtet habe, wird nix werden, oder erst 
wenn sich jemand findet, der sich dafür genauso interessiert, wie ich. 
Wobei ichs ja auch verstehen kann, immerhin will so gut wie keiner einen 
E Scooter reversen, wenn es mit dem dafür nötigen Wissen viel 
interessantere Dinge gibt, die man tun kann, wenn man es hat.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Nicht wegen 5 kmh ich will wissen wie die Software innendrin
> funktioniert

Das wirst du nicht erfahren, indem du den Maschinencode analysiert. Dein 
anderer Ansatz, einen Motorcontroller zu kaufen und zu programmieren 
geht da schon eher in die richtige Richtung.

Für die ersten Schritte kann ich Dir den "Nibobee" Roboter empfehlen. 
Dazu hatte ich mal was geschrieben: 
http://stefanfrings.de/nibobee/index.html

von Bastler (Gast)


Lesenswert?

Hugo H. schrieb:
> Warum verpi..t Du Dich nicht einfach? Negativ denkende Menschen könnten
> vermuten, dass der e-Scooter ggf. nicht freiwillig in Deinen Besitz
> übergegangen ist.
>
> Kannst Du die Genehmigungs-eMail von Lime mal hier publizieren
> (natürlich ohne Deine persönlichen Daten)?

Hugo, warum liest du hier noch mit, wenn dich das Thema nicht 
interessiert? Ist doch nicht das einzige, was es auf Mikrocontroller.net 
zu lesen gibt.

Ja, ich habe eine schriftliche Genehmigung von Lime, aber die werde ich 
hier sicher nicht hochladen, damit sie hundert andere dann runterladen, 
um dann auch eine zu haben...

Die Dinger zu klauen ist übrigens eine blöde Idee, Stichwort GPS.

von Hugo H. (hugohurtig1)


Lesenswert?

Bastler schrieb:
> Ja, ich habe eine schriftliche Genehmigung von Lime, aber die werde ich
> hier sicher nicht hochladen, damit sie hundert andere dann runterladen,
> um dann auch eine zu haben...

Wie sollen denn hundert andere eine an Dich gerichtete eMail für sich 
beanspruchen? Es gibt keine und Du bist ein Troll - oder schlimmeres.

Bastler schrieb:
> Die Dinger zu klauen ist übrigens eine blöde Idee, Stichwort GPS.

So etwas in diesem Forum zu posten ist "eine blöde Idee" :-)

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Und wenn einer die Mail dann runterlädt und mit Photoshop seinen Namen 
reinsetzt, ist die Mail danach an ihn gerichtet. Da gibts einen 
Screenhshot von der Mail, das ist schon ein halbes Jahr her, das war im 
letzten Sommer. Und wie geschrieben, die Scooter haben GPS sind ortbar 
und senden ihren Standort ständig via SIM an Lime, keine gute Idee sowas 
einfach mitzunehmen...
Dazu kommt, dass ich mit dem Scooter gar nicht viel anfangen kann, der 
ist wie gesagt nicht wirklich für den Privatgebracuh geeignet. Das war 
damals von Lime absolut Sondergenehmigung, ich wollte mal reinschauen 
was in so einem Scooter drin ist, das hat man möglich gemacht, alles 
gut. Dass ich natürlich an dem Zerlegen der Software scheitere, und wie 
ich da rausfinde wie die funktioniert ist jetzt mein Problem...

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Und wenn einer die Mail dann runterlädt und mit Photoshop seinen Namen
> reinsetzt

Du bist ja ganz schön paranoid. Erfahrungsgemäß sind es Diebe, die Angst 
davor haben, beklaut zu werden. Und Lügner haben am meisten Angst, 
belogen zu werden.

von Hugo H. (hugohurtig1)


Lesenswert?

Bastler schrieb:
> Und wenn einer die Mail dann runterlädt und mit Photoshop seinen Namen
> reinsetzt, ist die Mail danach an ihn gerichtet.

Lime wird da sicher zustimmen lol - Du bist nicht nur Troll, Du bist 
auch noch nur mäßig intelligent :-)

von Hugo H. (hugohurtig1)


Lesenswert?

Bastler schrieb:
> die Scooter haben GPS sind ortbar

Fahr mal Dein Auto (so Du eines hast) in Deine Garage (so Du eine hast) 
und schau, was Dein GPS (so Dein Auto eines hat) so von sich gibt. Hälst 
Du im Ernst alle hier für Volldeppen?

von Bastler (Gast)


Lesenswert?

Lime wird es sicher nicht gefallen wenn sie dann beweisen müssen dass 
diese Email niemals an ihn gesendet worde ist, und ich hab dann mit 
denen noch Ärger ala "Das war absolute Ausnahme, warum haben sie das im 
Internet verbreitet" wenn du meinst dass es so leicht geht, einen dieser 
Scooter zu klauen, versuchs doch, bin gespannt, was Lime tut...

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Bastler schrieb:
> Das versuche ich gerade schon, aber da kennt sich wohl auch keiner aus.
> Wird wohl so sein wie ich befürchtet habe, wird nix werden, oder erst
> wenn sich jemand findet, der sich dafür genauso interessiert, wie ich.

NAja, du hast ja schon eine ganze Menge ermittelt, vielleicht fidnen ja 
die amerikanischen/englischsprachigen Mitstreiter noch was raus.

Sind den die Teile in Amerika (wo, wie) auch im Einsatz? Und wo noch?

Mögliche andere Ansätze:

Gibt es zum Roller (zu diesen oder ähnlichen) gegebenenfalls Patente, 
oder Designempfehlungen/Codesamples der verbauten Controller etc?

Gibt es für den deutschen/europäischen Markt gegebenenfalls Prüf- und 
Abnahme-Prozeduren, welche dokumentiert und "ablesbar" sind?

von Bastler (Gast)


Lesenswert?

Ich frag jetzt erst mal nochmal bei Lime an, vielleicht gibt es eine 
Möglichkeit, an den Code von dem Controller zu kommen, ich hab immerhin 
schon gemerkt, dass Lime sich bedeutend weniger blöd verhält als die 
meisten deutschen Firmen, was Anfragen angeht...

In Amerika gibt es tausende dieser Scooter in privater Hand, erst jetzt 
hat Lime dort das Geschäft in einer Stadt aufgegeben, und die Scooter 
einfach stehen lassen. Die haben sich jetzt dort die Leute gekrallt. 
Auch gibt es dort viele der Scooter die beschlagnahmt wurden, die Lime 
nicht mehr ausgelöst hat, und so in einer Polizeiauktion verscherbelt 
wurden. wird sich schon irgendein Weg finden lassen, irgendwer wird 
schon irgendwann ein Interesse dran haben, sich die Software anzusehen, 
mit den passenden Kenntnissen, Amerika ist groß...

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Ich frag jetzt erst mal nochmal bei Lime an, vielleicht gibt es eine
> Möglichkeit, an den Code von dem Controller zu kommen

In einem früheren Thread schriebst du, dass Lime dies bereits ablehnte.

von Bastler (Gast)


Lesenswert?

Ich hab ja geschrieben, ich frag nochmal an. Was denkst du wie oft ich 
die anschreiben mussten, bis ich die Mitnahmeerlaubnis hatte? Ich glaub 
zehn Mal reicht nicht. Ich glaub zwar auch nicht, dass sies machen, weil 
Source Code ist schon was wo eigentlich keiner her gibt, aber wie schon 
mal geschrieben, keiner mit dem Wissen will sich vor einen E Scooter 
hinhocken, da gibts dann für die entsprechenden Leute interessantere 
Sachen zu tun.

von Stefan F. (Gast)


Lesenswert?

Wenn die Software wie du sagst nicht sonderlich sicher ist, dann möchte 
Lime vielleicht die Quelltexte lieber geheim halten.

Deine Aktivitäten in diesem und anderen Foren könnte sie zusätzlich 
verunsichern. Nicht jede Firma setzt auf Open-Source.

von Nop (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Deine Aktivitäten in diesem und anderen Foren könnte sie zusätzlich
> verunsichern.

Mit Sicherheit, weil die Konsequenz nämlich wäre, daß man am Ende eine 
Firmware hätte, um Lime-Roller ohne Lime-App zu betreiben. Jede Wette, 
daß Leute das auch ohne Mitnahmeerlaubnis täten. Die 
Lime-Rechtsabteilung wäre gut beraten, dem reverse engineering so früh 
und energisch wie rechtlich möglich entgegenzutreten.

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Sicherlich ist die Methode zwei Dateien zu
> vergleichen nicht die eleganteste, aber sie hat funktioniert.

Das ist eine naheliegende und auch angemessene Methode in dieser 
Situation, jedes bisschen Information das man gewinnen kann hilft, jeder 
andere hätte das ebenfalls so gemacht.

von ~Mercedes~ (Gast)


Lesenswert?

Wegstaben v. meinte:

> was macht dich denn so sicher, dass:

> a) Die Schnittstelle als RS232 Schnittstelle mit +-12V Pegeln arbeitet?
> (viele Geräte, die ich in den Fingern hatte, arbeiten mit TTL Pegel d.h.
> (+5V/0V)

ich bin auch von ner 5 Volt Schnittstelle ausgegange, deshalb sag ich 
ja:
einen +- 12 V Umsetzer dran (machen)!

> b) Die Schnittstelle weder verschlüsselt noch mit einem Passwort
> geschützt ist?

Die Schnittstelle muß sich ja erst einmal irgendwie melden,
das kann man zur Identifikation von Baudrate und Parität ausnutzen.

> c) Die Schnittstelle mit 'AT' Modem-Befehlen angesprochen werden kann
> oder soll? Denkst du, der Roller wäre ein Modem oder sollte sich
> irgendjemanden als Modem präsentieren?

Wenn frau nun schon soweit ist, warum nicht mal AT eingeben?
Vielleicht antwortet die Schnittstelle dann mit OK oder gibt ne
Fehlermeldung aus, die einem weiterhilft? ;-P ;--))


mfg

von Keller (Gast)


Lesenswert?

Warum REVERSE ?

Mache auf Vorwaerts !
Schmeisse alles raus und kaufe einen passenden Motordriver
passe ''Gas'' an und schon fährst Du.
Suche auf dem Flohmarkt eine komplette Kiste '' der kleine Elektriker ''
und schalte damit LEDs ein und aus.

Ist das nicht , was DU brauchst.
Einfach ganz einfach , Deinem Niveau entsprechend

;-)

von John P. (brushlesspower)


Lesenswert?

Bastler schrieb:
> Wenn ich mal einen gescheiten Logic Analyzer hab, werde ich das mal
> ansehen, so lange ist es aber schwirig, die UART Kommunikation zu
> beobachten.

Zum mindestens zehnten mal: ein 2€ UART - USB Converter reicht!

dann kommt alles was auf der UART gesendet wird auf deinen PC. Du 
brauchst keinen Logic Analyser (höchstens wenn die Baud Rate sehr 
speziell ist).

Ich für meinen Teil habe dein Vorhaben seit dem ersten Post sehr 
interessant gefunden und hätte dir auch soweit ich kann geholfen.

Da du aber immer wieder nur dein Scheiß Disassembler haben willst bin 
ich raus. Da kann man nicht mehr helfen.

von Keller (Gast)


Lesenswert?

Solltest Du kein ''Gas''Poti finden, dann kannst Du aus
der Musikszene ein WahWah - Pedal holen, da sind Potis drin.
So kannst Du wie im Auto mit dem Fuss Gas geben ... bis 100 km/h
(einmal mindestens)
Könntest Du sogar rechtzeitig patentieren lassen: 
WowBoahwawa_Accelerator !

Da wuerden die SchLimer nur staunen...

von Bastler (Gast)


Lesenswert?

Nein ist es nicht, das wäre am Ziel vorbei, ich wollte ja wissen, was 
der ORIGINAL Controller tut und denkt, aber wie Stefanus weiter oben 
schon geschrieben hat war es vielleicht eine blöde Idee, in einem Forum 
zu fragen, wenn Lime das ließt, helfen die mir bestimmt nicht mehr, 
immerhin werden die nicht so arg glücklich drüber sein, dass ich alles 
was ich jetzt über diese Scooter weiß in die Welt raus posaunt habe, 
dazu wos jetzt auch noch in Google auftaucht.

Ich hatte das schonmal bei einer deutschen Firma vor ein Paar Jahren, da 
hieß es danach dann warum ich überall raus posaunt habe, dass sie mir 
Teile überlassen haben, gab damals ganz schön Ärger, weil wohl danach 
noch ein "Paar" andere Leute da außer mir angefragt haben, hab aber auch 
nicht gewusst, dass Mikrocontroller.net das Thema in der Google 
listet...

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Bastler schrieb:
> hab aber auch
> nicht gewusst, dass Mikrocontroller.net das Thema in der Google
> listet...

#neuland ???

von Keller (Gast)


Lesenswert?

Als nächstes Projekt solltest Du Dir heimlich einen Tesla besorgen....
Den wird es sicher länger geben als LIME ! Ran an die Software !

von X2 (Gast)


Lesenswert?

Keller schrieb:
> Als nächstes Projekt solltest Du Dir heimlich einen Tesla besorgen....
> Den wird es sicher länger geben als LIME ! Ran an die Software !

Wieso heimlich, er nervt dann solange Tesla mit Emails bis er einen vor 
die Haustür gestellt bekommt ;-)

von Bastler (Gast)


Lesenswert?

Nein bei Tesla geht das nicht, die sind mehr wert, da hilft nerven nicht 
da braucht man ein anderes Verfahren: Erst Hacken lernen, dann geschenkt 
bekommen:

https://www.golem.de/news/hackerwettbewerb-tesla-model-3-geknackt-1903-140213.html

von Johannes S. (Gast)


Lesenswert?

Die ganze Zeit hätte man auch in das Engineering neuer Software stecken 
können, so kompliziert ist die Ansteuerung eines BLDC mit dem F103 
nicht. Die Rollermotoren gibts beim Chinesen für 30-40€, damit kann man 
erstmal üben. Und wenn Lime & Co. soviele abschreiben wird sich eher 
eine Entwicklergemeinschaft dafür gründen lassen, besser als die ganze 
Energie mit reverse eng. der Software zu verplempern.

von Bastler (Gast)


Lesenswert?

Es wird sowieso irgendwann eine Software von einer Gemeinschaft Open 
Source geben, immerhin gibt es in Amerika bestimmt wenn man alle 
zusammen nimmt über tausend private exemplare dieser 
Schlaglochsuchgeräte, die haben aber auch größere Autos, da ist es 
einfacher, den Scooter als privatversion dann z.B. in den Urlaub 
mitzunehmen, als bei uns, wo die autos so klein sind, dass du ihn kaum 
einladen kannst.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bastler schrieb:
> WENN DAS NUR NICHT SO
> VERDAMMT LANGE DAUERN WÜRDE.

Also, ich bin fast durch :-) Eigene Software mit LCD, SRAM, Touchwheel 
und ADC läuft jedenfalls schon auf dem Messgerät, was ich oben erwähnte. 
Fehlt noch der Frontend Mulitplexer und Software für die beiden USB 
Buchsen und den SD-Kartenslot. Da das hier der 176-Pin STM32F429 ist, 
denke ich das, wenn man Ahnung hat, der Controller deines Lime innerhalb 
längstens einer Woche abgefrühstückt wäre.

Johannes S. schrieb:
> so kompliziert ist die Ansteuerung eines BLDC mit dem F103
> nicht

Für den STM32F100 des VL Discovery habe ich sowas sogar schon fertig - 
mit Sinusansteuerung.

: Bearbeitet durch User
von Michael W. (Gast)


Lesenswert?

@ Keller:

Hör mal bitte auf zu plenken - kann sich ja keiner mit ansehen!

von Bernd K. (prof7bit)


Lesenswert?

Matthias S. schrieb:
> Für den STM32F100 des VL Discovery habe ich sowas sogar schon fertig -
> mit Sinusansteuerung.

Kann man den Code irgendwo betrachten und studieren?

von Keller (Gast)


Lesenswert?

Michael W.

Kein Problem !
Danke für die Aufmerksamkeit.

von Bastler (Gast)


Lesenswert?

Matthias S. schrieb:
>> WENN DAS NUR NICHT SO
>> VERDAMMT LANGE DAUERN WÜRDE.
>
> Also, ich bin fast durch :-) Eigene Software mit LCD, SRAM, Touchwheel
> und ADC läuft jedenfalls schon auf dem Messgerät, was ich oben erwähnte.
> Fehlt noch der Frontend Mulitplexer und Software für die beiden USB
> Buchsen und den SD-Kartenslot. Da das hier der 176-Pin STM32F429 ist,
> denke ich das, wenn man Ahnung hat, der Controller deines Lime innerhalb
> längstens einer Woche abgefrühstückt wäre.

Was meinst du damit jetzt genau? Das Reversen der schon vorhandenen 
Software oder das Entwicklen einer neuen? Ich denke nicht mal dass das 
Reversen soo lange dauern würde, 16kb Code dürften doch kein so arg 
großes Problem sein? Wenn man weiß was man tut... Sicherlich gibt es 
vielleicht ein Paar dinge, die sich nicht wiederherstellen lassen, aber 
so grob zu sehen was die Software tut, was abegrufen wird, und 
vielleicht wo die Parameter abgelegt sind (Motorstrom, Spannung zu 
Batterie % Anzeige, Geschwindigkeit) sowas müsste man doch finden 
können?

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> 16kb Code dürften doch kein so arg großes Problem sein?

Fängst du schon wieder damit an?

Du hast in mehreren Monaten aus dem Code deines Rollers keine einzige 
Programmzeile heraus gelesen. Wie kannst du dann immer wieder behaupten, 
dass das einfach bzw kein Problem sei?

Du hast doch vor wenigen Tagen bekundet, die Problematik zu akzeptieren, 
und dann kommt so ein Kommentar! Ehrlich Mann, dich kann ich nicht mehr 
ernst nehmen. Ich bereue, einen Teil meiner Freizeit für doch 
verschwendet zu haben. Dein Verhalten ist respektlos und undankbar.

von Bernd K. (prof7bit)


Lesenswert?

Bastler schrieb:
> Ich denke nicht mal dass das
> Reversen soo lange dauern würde, 16kb Code dürften doch kein so arg
> großes Problem sein?

Naja, dann fang halt mal an damit anstatt immer nur drüber zu reden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bernd K. schrieb:
>> Für den STM32F100 des VL Discovery habe ich sowas sogar schon fertig -
>> mit Sinusansteuerung.
>
> Kann man den Code irgendwo betrachten und studieren?

Leider noch nicht. Mal schauen, was damit noch passiert, aber im Moment 
gehts noch nicht - obwohl es eigentlich kein grosses Geheimnis ist. Die 
Basis bildet wieder mal AVR447, portiert auf den STM32 mit CMSIS und 
SPL.

von Tato (Gast)


Lesenswert?

Du könntest auch mit einem ST-Link damit rumspielen.
Habe selber einen defekten ergattert und dank dem ST Link habe ich den 
Controller z.B entsperren können und fährt ohne Probleme.

von Timo W. (timo_w93)


Lesenswert?

Habe neulich einen Thread auf einem anderne Forum verfolgt in dem Jemand 
mit etwas mehr Ahnung probiert hat so einen Roller den er von der Straße 
geklaut hat mit "alternativfirmare" zu betreiben. Am Ende hat er einfach 
einen kompletten Motorcontroller für ein paar € aus China eingebaut.

Nach den Infos die dort zu Tage kamen, bezweifle mal stark, dass der 
Threadersteller überhaupt einen Dump des Programs des MC hat. Das 
verlinkte Dropbox Zeug war (als es noch existierte) ein Speicher (RAM) 
Abzug des laufenden Controllers und kein Flashinhalt. Somit ziemlich 
wertlos fürs reverse Engineering.

Die Controller sind nach nach anderen Berichten "read locked" and JTAG 
u.s.w. ist deaktiviert. Ich bezweifle, dass der Threadersteller das 
nötige Knowhow noch Equipment hat den MC zu glitchen o.Ä. um das "read 
protected" Flag zu umgehen.

Zudem hat Lime scheinbar in den neueren Versionen die UART-Kommunikation 
zwischen Motorcontroller und Einheit im Lenker die z.B. das Handgas 
ausliest rudimentär verschlüsselt / es findet ein Handshake zwischen 
Motorcontroller und der anderen Einheit statt welche die GPS und 
Mobilfunkkomunikation macht.

Leute haben halt die Kommunikation zwischen Motorcontroller und dem 
Board für das Handgas, Mobilfunk, NFC u.s.w. abgegriffen und Boards 
gebastelt die das selbe an das Motorcontrollerboard schicken und damit 
ein betreiben ohne das GPS Modul erlauben. Das fand Lime natürlich nicht 
so witzig, deswegen das Software Update scheinbar.

Neuere Generationen der Roller scheinen das von Haus aus zu haben, sowie 
ein anderes Motorcontrollerboard, somit ist ein Downgrade nicht mehr 
möglich, da es diese Boards nie mit einer Firmware ohne Handshake / 
Verschlüsselung gab. Sie scheinen die Controller jetzt auch einzugießen 
und das "write protected" bit zu setzen, damit ist es auch schwieriger 
überhaupt an die Pins zu kommen um eine neue Firmware draufzuladen, 
einfachste Lösung wäre da wohl den STM zu ersetzen, wenn man das Board 
unbedingt weiter verwenden möchte.

In der nächsten Generation scheinen Sie wechselbare Akkus einzubauen, 
damit nicht immer die ganzen Roller rumtransportiert werden müssen um 
diese zu laden. Bin mal gespannt wie viele von den Akkus geklaut 
werden...

Ich frag mich eh wie das Businessmodell von solchen Rolleranbietern 
überhaupt funktioniert. Spielt so ein 200-300€ Roller in seiner 
Lebenszeit tatsächlich so 500€+ ein? Das kann sich doch irgendwie gar 
nicht rechnen wenn man den ganzen Aufwand + Vandale + Diebstähle mit 
einrechnet.

von Manu (Gast)


Lesenswert?

Hey wie hast du die Zusage bekommen das du die einsammeln darfst und 
reparieren darfst

von Edward dhuyvetter (Gast)


Lesenswert?

the controller does have inner layer (lsw6g lime2.0 181117rc), but maybe 
only for ground plane, but sure at least a ground plane is in an inner 
layer, i know because i saw a via unconnected but being 0 ohm to ground, 
so inside the pcb is a ground plane, also you can see that when you hold 
the pcb to a bright light.

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.