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.
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.
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?
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.
> 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
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.
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.
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.
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
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.
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.
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.
Hallo, Das hat schon noch Zeit, kein Problem.
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.
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.
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
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.
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.
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.
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.
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.
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.
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€.
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ß.
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)
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.
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
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.
Bastler schrieb: > Auch steht auf dem Controller überhaupt nichts drauf. Auf der Platine auch nicht?
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
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.
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?
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.
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.
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.
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?
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.
Deine Logik ist für mich nicht nachvollziehbar. Ein Hersteller, der seine Software vor Raubkopien beschützt ,schädigt also die Raubkopierer, weil reiche Leute sich das gewaltsame Auslesen leisten können? Nach der Logik solltest du gleich heute Nacht einen Raubzug durch die Läger der Stadt machen. Hast ja ein gutes Argument, dass deinen Haftrichter überzeugen dürfte. Oder nicht? > es in Deutschland erlaubt ist, die Software zu privaten > Zwecken/Modifikationen zu reverse engineeren. Wo hast du denn das denn her? Ich bin sicher, dass du da etwas ganz grob missverstanden hast. Du darfst nicht einmal deine eigenen Musik CD's kopieren, wenn sie kopiergeschützt sind. > Wenn das nun aber nicht oder nur mit für mich großem Aufwand > geht, kann ich natürlich das Fahrzeug auch nicht anpassen Dann musst du eben Open-Source Produkte kaufen. > Wenn ich jetzt aber für mich damit nix anfangen kann, > wegen Firmware nicht anpassbar dann hast du schlicht das falsche Produkt gekauft. Ich kann mich auch nicht darüber beklagen, dass meine Spielkonsole keine Heizungssteuerung ist. > weiß nicht mal ob das nicht ein Mangel ist immerhin hat der > Hersteller vorher nicht in der Beschreibung geschrieben > "Prozessoren/MCUs auselsegeschützt" Es ist kein Mangel, denn der Händler hat Dir einen fahrbereiten Elektroroller verkauft. Nicht mehr und nicht weniger. Wenn du meinst, das sei ein programmierbares Ding mit Motor, dann bist du derjenige, der falsche Erwartungen gehegt hat. Im Automotive Bereich haben viele programmierbare Geräte sogar einen Schreibschutz, damit keine komplizierten Haftungsfragen entstehen, wenn jemand die Firmware manipuliert. Bei Geräten mit Funkschnittstelle gibt es gesetzliche Vorgaben, nach denen die Hersteller das Umprogrammieren unterbinden müssen.
:
Bearbeitet durch User
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.
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
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?
Bastler schrieb: > Ich weis dass das ne saublöde Arbeit ist, aber > vielleicht findet sich ja jemand der sich das rein aus Hobby mal ansehen > will. Sicher nicht. Selbst wenn du mir deinen Roller schenken würdest, wäre das in meinen Augen reine Zeitverschwendung. Für die paar km/h stecke ich doch nicht ein halbes Jahr meiner ganzen Freizeit rein - ohne die Gewissheit auf Erfolg. > Was ich immernoch nicht verstehe, ist warum bitteschön ist bei > einem Leihroller der gesamte Speicher auslesbar, aber bei einem > gekauften nicht. Warum ist die Banane Krumm aber die Gurke gerade? Frage doch solche Sachen bitte die Hersteller, nicht uns. Wir können darüber nur mutmaßen, das bringt niemanden weiter.
:
Bearbeitet durch User
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
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
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.
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.
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.
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?
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.
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
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)
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
Die Tabelle "dword_8007070" ist eine Lool-Up Tabelle für Sinus, die "word_8002AD8" ist am Anhang.
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.
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.
> 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.
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
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.
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.
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
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.
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...
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.
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
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.
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.
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.
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?
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.
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.
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.
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.
Johnny B. schrieb: > Im Grunde gibt es auch kein Materielles Eigentum; Dir ist was Du verteidigen kannst - Hombre :-)
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
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
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.
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?
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
Warum kauft man den Roller dann nicht in Östereich?
Stephan schrieb: > Warum kauft man den Roller dann nicht in Östereich? Glaubst du wirklich, dass er den Roller gekauft hat? Wo denn?
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.
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.
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.
> "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....
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
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.
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...
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
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.
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, ...
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.
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...
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.
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.
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.
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...
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.
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
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.
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.
> 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?
> 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.
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?
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.
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...
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).
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.
:
Bearbeitet durch User
Tom B. schrieb: > Es gibt kein EEPROM im Stm32. Du meinst "in diesem STM32". Die STM32L0 Serie hat EEPROM.
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.
:
Bearbeitet durch User
Bastler schrieb: > Ich werde mal sehen ob ich einen totaldefekten Roller finde "Finden" nennt man sowas hutzutage? Früher hies das "Vom LKW gefallen".
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
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.
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.
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...
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.
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?
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.
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.
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!
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.
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
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.
> > 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.
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
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.
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.