Forum: Mikrocontroller und Digitale Elektronik Stihl Akku Reverse Engineering


von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Stihl hat so tolle Elektrogeräte mit ordentlich teuren Akkus - der AP 
500 S mit etwa 330 Wh kostet fast 500€.

Nun, ich hab mit ner aktuellen Kettensäge und nem Freischneider mal 
etwas mitgesnifft und bin auf die Schnelle ratlos.

Der Akku hat 4 Kontakte, es werden nur 3 benutzt. Auf dem 3. Pin ist 
eine serielle Schnittstelle mit etwa 38V high /3V low Pegel, die 
bidirektional benutzt wird mit etwa 9200 baud. Ein "8N1" setting 
funktioniert und sieht auch auf dem Oszi passend aus, d.h. keine Framing 
Errors oder sowas.

Jedes Datenpaket beginnt mit 0x55, ich habe die Zeilenumbrüche 
allerdings durch die Wartezeit zwischen 2 Pakten eingefügt.

- Kettensäge ohne Akku:
55 E8 E3 3A 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 01 0A D3 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 4C 47 9E 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 B0 BB 62 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 9E 95 4C 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 6A 61 B8 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
... (nicht repetitiv, die Bytes 2-4 ändern sich stetig)

"Mit Akku" ist der Datentransfer (scheinbar, aber recht sicher) 
abwechselnd. Die Säge/Sense sendet immer das 16-byte Paket, danach 
antwortet der Akku.

- Kettensäge mit Akku:
55 E8 E3 3A 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 39 32 E6 3E EA F5 C5 15 D0 09 9D 65
55 ED E6 3F 87 14 CC 14 CC F9 2A 1F C1 1C B0 6B
55 80 8B 5F 87 5A 45 75 A5 60 B9 2D 59
55 A5 13 C2 1F AD 8A 57 8A 8B
55 B4 02 D4 0F D2 19 C4
55 97 CD 14 CA 17 CA 17 CA 17 CA 17 CA 17 CA E2
55 B5 EF 34 2B 5B
55 9C C6 1F C9 14 C9 14 C9 14 C9 14 C9 14 C9 EB
55 AD F7 2C 33 8B
55 05 5F 86 55 88 55 88 55 88 55 88 55 88 55 46
55 DE 84 5F 40 8B
55 A0 FA 23 F2 2F F2 2F F2 2F F2 2F F2 2F F2 C5
55 2A 70 AB B4 5B
55 D2 88 51 8D 50 8D 50 8D 50 8D 50 8D 50 8D EF
55 58 02 D9 C6 5B
55 14 4E 97 47 9A 47 9A 47 9A 47 9A 47 9A 47 F6
55 BF E5 3E 21 5B
55 25 7F A6 72 AF 72 AF 72 AF 72 AF 72 AF 72 76
55 12 48 93 8C BB
55 04 5E 87 5D 80 5D 80 5D 80 5D 80 5D 80 5D 44
55 92 C8 13 0C 8B
55 33 3D E4 39 E4 3F D2 0F D2 0F D2 0F D2 0F 68
55 41 4F 9C 24 AF 8D 50 32
55 FC F2 2B F6 2B F5 23 40 9D A7 75 0E D3 0E EF
55 F8 F6 25 9D 13 CE 13 CA
55 B0 BE 67 BA 67 BC 51 8C 51 8C 51 8C 51 8C 67
55 27 29 FA 42 C9 EB 36 72
55 BC B2 6B B6 6B BD 60 BD 60 BD 60 BD 5B BF 6D
55 34 3A E9 51 DA F8 25 3B
55 F0 FE 27 FA 27 FC 11 CC 11 CC 11 CC 11 CC 67
55 FD F3 20 98 13 34 E9 CC
55 4A 44 9D 40 9D 4E 93 4E 93 4E 93 4E 93 4E 4F
55 CD C3 10 A8 23 01 DC 23
55 FA F4 2D F0 2D F6 1B C6 1B C6 1B C6 1B C6 6B
55 BE B0 63 DB 50 72 AF 93
55 DE D0 09 D4 09 D8 05 DE 05 DB 06 DB 48 95 F2
55 8A 84 57 EF 61 BC 61 CD
55 17 19 C0 1D C0 1B F6 2B F6 2B F6 2B F6 2B 65
55 3B 35 E6 5E D0 0D D0 5A

- Motorsense ohne Akku:
55 93 98 41 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 A8 A3 7A 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 0E 05 DC 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 A5 AE 77 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 E5 EE 37 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 FF F4 2D 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 A8 A3 7A 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 3B 30 E9 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 2D 26 FF 87 1F C7 1F C7 1A C4 51 8F 52 EA 80


- Motorsense mit Akku:
55 93 98 41 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 39 32 E6 3E EA F5 C5 15 D0 09 9D 65
55 CF C4 1D 87 1F C7 1F C7 1A C4 51 8F 52 EA 80
55 80 8B 5F 87 5A 45 75 A5 60 B9 2D 59
55 A3 15 C4 19 AB 8C 51 8C 87
55 B4 02 D4 0F D2 19 C4
55 80 DA 03 DD 00 DD 00 DD 00 DD 00 DD 00 DD 77
55 B5 EF 34 2C 51
55 1C 46 9F 49 94 49 94 49 94 49 94 49 94 49 FB
55 AD F7 2C 34 8B
55 D1 8B 52 81 5C 81 5C 81 5C 81 5C 81 5C 81 E8
55 DE 84 5F 47 8B
55 43 19 C0 11 CC 11 CC 11 CC 11 CC 11 CC 11 4A
55 2A 70 AB B3 5B
55 DB 81 58 84 59 84 59 84 59 84 59 84 59 84 E2
55 58 02 D9 C1 51
55 E0 BA 63 B3 6E B3 6E B3 6E B3 6E B3 6E B3 F6
55 BF E5 3E 26 51
55 4E 14 CD 19 C4 19 C4 19 C4 19 C4 19 C4 19 4E
55 12 48 93 8B B1
55 1B 41 98 42 9F 42 9F 42 9F 42 9F 42 9F 42 F7
55 92 C8 13 0B 81
55 7E 70 A9 74 A9 72 AF 72 AF 72 AF 72 AF 72 87
55 41 4F 9C 06 8D AD 70 D3
55 69 67 BE 63 BE 60 B6 D1 0C 36 E4 C1 1C C1 B3
55 F8 F6 25 BF 34 14 C9 DC
55 AC A2 7B A6 7B A0 7D A0 7D A0 7D A0 7D A0 8C
55 27 29 FA 60 EB CB 16 F0
55 E0 EE 37 EA 37 E1 3C E1 3C E1 06 7B CF 6A 60
55 34 3A E9 73 F8 D4 09 2D
55 32 3C E5 38 E5 3E E3 3E E3 3E E3 3E E3 3E 88
55 FD F3 20 BA 31 1D C0 D0
55 2C 22 FB 26 FB 28 F5 28 F5 28 F5 28 F5 28 7E
55 CD C3 10 8A 01 2D F0 F0
55 F1 FF 26 FB 26 FD 20 FD 20 FD 20 FD 20 FD 6C
55 BE B0 63 F9 72 52 8F F0
55 6C 62 BB 66 BB 6A B7 6C B7 69 B2 6F F7 2A D3
55 8A 84 57 CD 46 66 BB E0
55 F6 F8 21 FC 21 FA 27 FA 27 FA 27 FA 27 FA 60
55 3B 35 E6 7C F7 D7 0A 2D
55 E2 EC 35 E8 35 E9 30 9A 4D 97 81 97 4F 92 1B
55 F3 FD 2E B4 3F 1F C2 D0
55 A2 AC 75 A8 75 AE 73 AE 73 AE 73 AE 73 AE 88
55 C7 C9 1A 80 0B 2B F6 F0

Im Anhang die vollständigen Mitschnitte.

Ziel der Geschichte ist es, die Akkus durch selbstbauen zu ersetzen, 
also z.B. nen fetten Akkurucksack mit nem Kabel. Es gibt die auch von 
Stihl, aber ich finde es ein Unding, dass der Hersteller auch noch am 
Akku sein Gold verdienen will: Sprit darf ich ja schließlich auch an der 
Tanke kaufen.

Ich habe noch nicht probiert, einfach mal stumpf unter völliger Ignoranz 
dessen was die Säge sendet auf jedes Paket einfach 1:1 das von nem 
Mitschnitt zu senden; da es aber keine erkennbaren "Schleifen" gibt, 
müsste man dazu ja stundenlang mitschneiden :D

Interessant sind ja in der Kommunikation mit Akku die Abschnitte mit den 
längeren Antwortpaketen (die werden auch immer deutlich schneller 
gesendet). Auch dort ist leider wenig Repetition erkennbar :-(
Ich vermute, dass da eventuell irgendein ganz einfaches Scrambling drauf 
ist?

Bin für alle Ratschläge offen :)

von Georg A. (georga)


Lesenswert?

Bei den Bytes 2-4 ohne Akku fällt mir auf, dass die jweiligenn Bytes der 
aufeinanderfolgenden Messages XORed immer dasselbe geben.

e8 xor 4c = e3 xor 47 = 3a xor 9e = e9
       4c xor b0 = 47 xor bb = 9e xor 62 = fc

bzw.
93 xor a8 = 98 xor a4 = 41 xor 7a = 3b
usw.

von mIstA (Gast)


Lesenswert?

Matthias schrieb:
> ich finde es ein Unding, dass der Hersteller auch noch am
> Akku sein Gold verdienen will: Sprit darf ich ja schließlich
> auch an der Tanke kaufen.

Eben! - Und dabei stört es Dich offenbar auch nicht, daß der 
(Sprit)hersteller daran kräftig verdient; mal davon abgesehen, daß der 
Sprit wohl eher mit dem Strom und der Akku mit dem Tank bzw. 
Benzinkanister vergleichbar wäre.


Matthias schrieb:
> Kettensäge ohne Akku:

Wie wird die Kettensäge dabei versorgt?
Was passiert, wenn Du - hinreichend leistungsfähige Versorgung 
vorausgesetzt - versuchst sie einzuschalten.


Matthias schrieb:
> Ziel der Geschichte ist es, die Akkus durch selbstbauen zu
> ersetzen, also z.B. nen fetten Akkurucksack mit nem Kabel.

Einfach einen originalen Akku (nur) für die Kommunikation mit den 
Rucksack packen könnte einfacher zum gewünschten Ergebnis führen.

Ansonsten wären vermutlich Kommunikations-Logs mit verschiedenen Akkus 
und unterschiedlichem Ladezustand etc. hilfreicher, schließlich willst 
Du ja dem Gerät einen Akku vorgaukeln; dafür müßte man sehen, obs da 
akkuabhängige Unterschiede gibt.


Matthias schrieb:
> müsste man dazu ja stundenlang mitschneiden

Bei 9200 baud fallen pro Stunde gerade mal ca. 4MB an Daten an, also 
sollte das schon mal kein Problem sein; leider hängt die erwartete 
Antwort wahrscheinlich doch vom zuletzt gesendeten Datentelegramm ab

von René H. (mumpel)


Lesenswert?

Mal wieder typisch deutsch. Ein teures Gerät kaufen, aber beim Zubehör 
knausern. M.E. sollte hier niemand bei illegalen Handlungen helfen.

von Detmar (Gast)


Lesenswert?

Was bitte daran ist illegal ?

von René H. (mumpel)


Lesenswert?

Detmar schrieb:
> Was bitte daran ist illegal ?

Stihl hat sicher keine Genehmigung zum Reverse Engineering erteilt.

von keksliebhaber (Gast)


Lesenswert?

Hallo,

ich würde das nach deutschem Recht nicht als illegal bezeichnen. Hier 
hat der Gesetzgeber einen klaren Rahmen geleistet, inwiefern man was 
dürfte und was nicht. Das bildet eine gute Grundlage für 
Auslegungssachen.

Auf der einen Seite gibt es natürlich den Klitschee-Deutschen, der kein 
Geld ausgeben will.
Auf der anderen Seite gibt es die Thermomix-Sekte mit ihren 
Rezept-Chips, Nestle, das Grundwasser klaut und es teuer weiterverkauft, 
alle möglichen Bankentricks und Unternehmen, die in Oasen "Steuern" 
"zahlen" und den Kunden maximal verarschen.

Jedem seine Meinung, ich persönlich unterstütze da den kleinen Mann.

Ich sehe hier auch keine gewerbliche Absicht und die Hürde das bei 
offengelegtem Protokoll nachzumachen in einem Umfang, dass es den 
Hersteller messbar schaden kann, sehe ich hier auch nicht.

Andersherum kann man auch argumentieren, ob der Hersteller hier nicht 
seine Marktmacht ausnutzt. Letztenendes ist es nur ein Akku in einem 
Rucksack. Selbst die Lobby-EU guckt sich Handy-Ladebuchsen an. 
Fairerweise aber auch nur, weil man den Leuten induktives Laden als voll 
toll verkaufen möchte.
So wie Glyphosat, dass irgendwann mal verboten wird bzw. die Lizenz wird 
nicht mehr verlängert. Das macht man so damit Bayer eine leicht 
veränderte Rezeptur neu patentieren lassen kann und mit dem alten 
Produkt keine eigene Konkurrenz hat.

von keksliebhaber (Gast)


Lesenswert?


von René H. (mumpel)


Lesenswert?

BTW:

Wäre es nicht einfach und günstiger, ein paar passende Akkunachbauten 
oder kompatible Akkus in einen Rucksack zu stecken, und wenn einer leer 
ist zu tauschen? 😉

: Bearbeitet durch User
von Georg A. (georga)


Lesenswert?

keksliebhaber schrieb:
> Passende Lektüre nachgereicht:

Sehr schön, das Wichtigste ist wohl das hier:

"Nach dem Wortlaut des § 3 Abs. 1 Nr. 2 lit. a GeschGehG ist das Reverse 
Engineering bei öffentlich verfügbaren Produkten bzw. Gegenständen 
uneingeschränkt erlaubt."

Nachdem man die Gerätschaften einfach so kaufen kann und im Gartenmarkt 
auch kein NDA unterschreiben muss, gibts also eher kein Problem damit.

Zurück zum Akku...

Sind die Abfragesequenzen jedesmal nach dem Einstecken desselben Akkus 
in dasselbe Gerät identisch? Was ändert sich mit einem anderen Akku bzw. 
ab wann ändert es sich? Schön wäre natürlich noch, wenn man bei einem 
identischem Gerät mitspannen könnte.

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


Lesenswert?

JVC hat sich bei mir nie beschwert:
Beitrag "JVC Data Battery Protokoll"

von Bernd B. (bbrand)


Lesenswert?

Vielleicht gibt ja das Patent weiterführende Informationen:

https://www.freepatentsonline.com/8752645.pdf

Gruß,
Bernd

: Bearbeitet durch User
von Georg A. (georga)


Lesenswert?

Bernd B. schrieb:
> Vielleicht gibt ja das Patent weiterführende Informationen:

OMG. 1980 hätte ich ja gerade noch verstanden, dass sowas durchgeht, 
aber 2010? Unfassbar.

von Bernd B. (bbrand)


Lesenswert?

Ja, ist wirklich haarsträubend. Nach einem Überfliegen der Patenschrift 
scheinen die einen Pegelwandler "erfunden" zu haben :)

Das Patent hilft leider nicht weiter. Darin geht es nur um die 
Übertragung, aber nicht um die Kodierung der Daten.

Gruß,
Bernd

: Bearbeitet durch User
von Uli S. (uli12us)


Lesenswert?

Wie wäre es, einfach einen deutlich stärkeren Akku parallelzuschalten.
Natürlich müsste man dazu zuerst mal den original und den Pufferakku 
aufs selbe Spannungsniveau bringen mit nem ordentlichen Ladegerät sollte 
das aber kein so grosses Kunststück sein. Ich geh jetzt einfach mal 
davon aus, dass beim aufladen in beiden balanced wird.
Also man nehme den Akku, löte entsprechend ausgelegte Kabel dran, dann 
ein Steckerverbinder, der den geforderten Strom verträgt und am Extender 
dasselbe, bloss andersrum.
Das Thema stellt sich ja auch häufig bei Pedelecs, weil da jeder 
Hersteller seine eigenen Dongles erfindet und die auch in recht kurzer 
Frist so verändert, dass nichts mehr passt. In solchen Fällen wird das 
schon gelegentlich so gemacht.

von Matthias (Gast)


Lesenswert?

Ich danke für die bisher gebrachten Beiträge.

Ja, der Extender mit nem Original ist vermutlich das einfachste, aber 
erfordert etwas mehr Aufwand, da der original Akku auch (Strom 
tragfähig) kontaktiert werden muss.

Der Tipp mit den XOR Verknüpfungen ist interessant, so sind byte 1 und 2 
ohne Ladegerät XOR miteinander immer gleich. Ich hab mir mal ne Liste 
aller/vieler möglicher Pakete erstellt, es gibt dort viele 
Abhängigkeiten. Wichtiger wird dann aber der teil mit Akku...

Die Mitschnitte sind immer mit Versorgung durch Akku entstanden, 
Startversuch ging nur mit Daten Leitung: Motorsäge macht ohne gar 
nichts, Motor sense sieht led mässig normal aus, aber geht nicht an. Das 
lag nicht am Akku, der gibt ohne Daten Strom raus, schaltet aber 
scheinbar bei wenigen A Last ab, sofern er nicht "angemeldet" ist.

Das Patent ist spannend und langweilig zugleich: keine Protokoll Infos - 
aber eventuell die Sorge, dass die Geräte im Betrieb auch den "echten" 
Strom vom BMS erwarten und eventuell abschalten, wenn die Strommessungen 
sich zu stark unterscheiden...

Problem 2: das sind die Geräte von nem Kumpel, ich hatte nur zum 
Mitschneiden Zugang und jetzt sind  sie wieder 150km entfernt :-)

von Marc X. (marc_x)


Lesenswert?

Georg A. schrieb:
> Bernd B. schrieb:
>> Vielleicht gibt ja das Patent weiterführende Informationen:
>
> OMG. 1980 hätte ich ja gerade noch verstanden, dass sowas durchgeht,
> aber 2010? Unfassbar.

Macht nichts, viele Patente decken irgendwelche Trivialitäten ab, wie 
das bekannte Microchip Patent, für einen Mikrocontroller mit weniger 
Anschlüssen als die interne Datenbusbreite.

Ich kenne beispielsweise ein Patent, welches das bereitstellen 
verschiedener Bussysteme auf dem gleichen Steckverbinder beschreibt. Der 
Patentinhaber muxed einfach die Signale mit einem FPGA.

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