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.
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.
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
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 (;-
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
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...
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.
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?
Hast du denn schonmal veruscht dich an die UART Schnittstelle zu hängen zu schauen was kommt?
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.
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.
Nick M. schrieb: > Das Ding soll aber übernächste Woche wieder laufen! Ach so, ja dann wegwerfen und neu kaufen.
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.
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).
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?
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.
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
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.
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 ;)))
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
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...
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.
@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
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!
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.
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?
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.
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.
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.
Also schön, ich werd mir mal einen LA besorgen und sehen was die UART Schnittstelle so quasselt...
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!
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.
Vll hilft dir dieser Thread auch noch weiter: https://scootertalk.org/forum/viewtopic.php?f=54&t=1019
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?
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.
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.
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.
> 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.
Der HEX Rays Decompiler hilft da auch nix?
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
Ghidra hat auch nen Decompiler, ist vielleicht auch mal nen Blick wert.
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.
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.
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
~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?
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.
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
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.
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.
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
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.
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?
Nicht wegen 5 kmh ich will wissen wie die Software innendrin funktioniert
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
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
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?
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.
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.
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
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
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.
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
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.
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
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...
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.
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 :-)
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?
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...
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?
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ß...
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.
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.
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.
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.
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.
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
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 ;-)
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.
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...
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...
Bastler schrieb: > hab aber auch > nicht gewusst, dass Mikrocontroller.net das Thema in der Google > listet... #neuland ???
Als nächstes Projekt solltest Du Dir heimlich einen Tesla besorgen.... Den wird es sicher länger geben als LIME ! Ran an die Software !
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 ;-)
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
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.
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.
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
@ Keller: Hör mal bitte auf zu plenken - kann sich ja keiner mit ansehen!
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?
Michael W. Kein Problem ! Danke für die Aufmerksamkeit.
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?
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.
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.
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.
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.
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.
Hey wie hast du die Zusage bekommen das du die einsammeln darfst und reparieren darfst
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.