Panasonic/Flyer 36V Protokoll Reverse Engineering

Diskutiere Panasonic/Flyer 36V Protokoll Reverse Engineering im Panasonic Forum im Bereich Fertig-Pedelecs; Hi, ich beschäftige mich zur Zeit mit einem Panasonic / Flyer 36V Akku (Flyer NKY434B2). Ähnliche Akkus wurden vor kurzem von @gamerpaddy...
manawyrm

manawyrm

Dabei seit
26.04.2020
Beiträge
2
Punkte Reaktionen
9
Ort
Alfeld (Leine)
Hi,

ich beschäftige mich zur Zeit mit einem Panasonic / Flyer 36V Akku (Flyer NKY434B2).
Ähnliche Akkus wurden vor kurzem von @gamerpaddy auseinandergenommen: (Moin, so klein ist die Welt ;) )
Teardown & Reparatur: Panasonic "Flyer" NKY352B2 36V 12Ah Akku
und der Nutzer @verlierer hat schon sehr gute Schritte gemacht um den Akku genauer zu verstehen:
suche Pinbelegung von Flyer/Panasonic Akku (3d-druck...)

Ich möchte an dieser Stelle einmal alles dokumentieren, was wir bisher über das Protokoll herausfinden konnten, was versucht wurde und Tipps, wie andere weiter an der Hardware arbeiten können. Die nachfolgenden Infos habe ich auf Englisch geschrieben, damit auch ein internationaler Besucher diese Info finden und nutzen könnte.

IMG_8374.JPG IMG_8372.JPG

Wenn noch jemand Infos hat, Vorschläge wie wir die Firmware dumpen könnten, oder Ideen, wie sich die 20byte Challenge-Response zusammensetzt, immer her damit :)

An die Community: Ich wäre sehr an zusätzlicher Hardware mit dem 36V Protokoll interessiert.
Soweit ich weiß, wurde das unter den Marken Victoria, Kalkhoff, Rahleigh, Flyer, Kettler und Panasonic verkauft.
Sollte hier jemand noch defekte 36V Akkus, Ladegeräte oder Motoren haben, würde ich mich über eine Spende dieser Hardware sehr freuen (Versandkosten übernehme ich, bitte PN!), weil ich aktuell nur den einen Satz echter Hardware (an meinem Fahrrad :D) habe.


MCU: Renesas M37512

General information:
9600baud half-duplex UART 8n1, uses Pin 3 with -42V as idle voltage (use 5.1V z-diode and 10k resistor for RX, BC337 or similar NPN to TX)
(to work on the BMS just solder pins to the MCU directly, it's easier and UART levels already)

Packet format:
2 byte preamble (always 2x FF)
1 byte length (not including preamble, length, command and checksum)
1 byte command
n byte payload data, varying length
1 byte checksum = ((0x100 - sum of data bytes) & 0xFF)

Known commands:
B2 - Source: Charger | Destination: Battery - Request challenge response
D2 - Source: Battery | Destination: Charger - Answer challenge response

C2 - Source: Bike | Destination: Battery - Request challenge response
E2 - Source: Battery | Destination: Bike - Answer challenge response

C4 - Source: Bike | Destination: Battery - Request status information
E4 - Source: Battery | Destination: Bike - Answer status information

Example packets, charger sending Challenge-Response to battery:
Q: FF FF 14 B2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3A
R: FF FF 14 D2 F9 33 FF A6 C6 6B 39 26 EF 82 BB 6E DF 63 08 05 8E 96 96 D2 44

Q: FF FF 14 B2 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39
R: FF FF 14 D2 AE F8 49 86 53 4C 41 87 2D 67 CD 74 5D 91 5E 72 79 6A CD C4 37

Q: FF FF 14 B2 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 96
R: FF FF 14 D2 58 3A EE ED C2 F5 C3 B3 95 72 F7 00 25 3A D7 4F 76 C1 2B 96 05

Q: FF FF 14 B2 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA F2
R: FF FF 14 D2 AB 01 C4 32 24 1D EF 96 57 5E 7F F0 8A 67 E8 71 7D 16 E3 E6 E8

Bike to battery information request:
Q: FF FF 00 C4 3C
R: FF FF 05 E4 02 94 50 0E 6F B4

Payload data: 02 94 50 0E 6F

0294 Temperature in °F (dec x10, 66.0°F)
50 State of Charge (in percent, decimal, 80%)
0E6F Voltage (dec /100, 36.95V)

Information about the Challenge Response:
We've collected a sample of ~200000 challenge-response answers for specific bit patterns from a real battery. The answers are always completely different, even with only a single bit change. Together with the fact that the response is 160 bit aka 20 bytes in length, I fear that we are dealing with a SHA-1 hash.
That's pretty bad, because that isn't going to be possible to crack (without dumping the firmware somehow).

Dumping the firmware:
The controller has a special boot rom which can be activated by shorting 3 pins together (with resistors). In this mode the controller can be spoken to with I2C/SMBus.

Some laptop batteries use the same Renesas controller. There is this Python project:
dex6/m37512_reset
which uses the correct I2C address (0x0b). Our Flyer NKY434B2 replied at this address as well, but NACK'ed every further transactions.

There are 2 other tools, one commercial utility called BE2Works (which tried to talk to the battery at 0x16, which is the wrong address) and another DIY project written in C called SMBUSB (karosium/smbusb ). The SMBUSB tool also tries to use address 0x16, so it didn't work.

I suspect we need some sort of authentication for the boot rom to be willing to talk to us. Similar Renesas controllers require a 16 or 32-bit I2C write with a secret before you can issue the commands listed in the datasheet.

Safety tips:
To work on the BMS safely we've built a resistor ladder construction using 10x 1k resistors. Every resistor provides 1 cell voltage and is connected to the appropriate input on the BMS. The whole BMS + resistor ladder is connected via a ballast (4x 12V halogen lamps for me). A current limited supply would be ideal, but we didn't have something with the required voltage.

To enable the BMS after a complete power loss, you need to emulate a charger. To do this, apply 5V to pin 5 aka "T". In my testing the first battery voltage from the resistor ladder (4.1V) via a 120 Ohm resistor also works well.
If you're running in the normal firmware, just applying the signal shortly boots the MCU which (after a self-check) will hold the pin on it's own.
If you're running in the boot ROM, the pin needs to be connected permanently to keep the MCU powered up.

Further work:
I didn't look at either the real charger or the real bike yet. Everything so far was only done by looking at the battery and protocol dumps provided by @verlierer. Thanks a lot!

Viele Grüße,
Tobias
 
Akkufritze

Akkufritze

gewerblich
Dabei seit
24.07.2014
Beiträge
1.305
Punkte Reaktionen
800
Ort
Bernburg
Die nachfolgenden Infos habe ich auf Englisch geschrieben, damit auch ein internationaler Besucher diese Info finden und nutzen könnte.
cool für ein deutsches Forum, wo nicht unbedingt jeder Englisch kann :(
würde mir auch wünschen, das in einem englischen Forum Deutsch geschrieben wird :unsure:
 
manawyrm

manawyrm

Dabei seit
26.04.2020
Beiträge
2
Punkte Reaktionen
9
Ort
Alfeld (Leine)
cool für ein deutsches Forum, wo nicht unbedingt jeder Englisch kann :(
Englisch ist nun mal die Standard-Sprache für technische Dokumentation in dieser Welt. Ich habe zwischendurch bei Recherche zu dem Thema Informationen in Foren auf Französisch, Russisch und Englisch gefunden und hatte mit dem französischen und russischen auch so meine Probleme...

DeepL Translator bekommt das schon ziemlich perfekt hin, wenn sonst jemand echtes Interesse an diesem Protokoll hat und tatsächlich Verständnisprobleme beim Lesen der englischen Doku, schreibe ich das gerne nochmal auf Deutsch auf.
 
Akkufritze

Akkufritze

gewerblich
Dabei seit
24.07.2014
Beiträge
1.305
Punkte Reaktionen
800
Ort
Bernburg
sorry, das sollte nicht Böse rüberkommen, aber ich hasse dieses aufdrängen der englischen Sprache. Es fängt schon damit an, das mittlerweile viele englische Wörter benutzen ohne wirklich zu wissen, was sie bedeuten. Jeder will seinen Mist auf dem deutschen Markt verkaufen, ist aber zu blöd mal An und Aus drauf zu drucken. Geh mal zu den Amis und sag denen die sollen deutsch sprechen, da tritt man aber ins Fettnäpfchen, die sind so blöd und saufen lieber Reinigungsmittel um sich von innen zu desinfizieren, weil ihr Präsident das gut findet.
Ok, Ende der niedlichen Meckerstunde ;)
 
S

seppi54

Dabei seit
01.09.2020
Beiträge
2
Punkte Reaktionen
0
9600baud half-duplex UART 8n1 woher krieg ich das?
 
F

felixS

Dabei seit
23.09.2020
Beiträge
1
Punkte Reaktionen
0
Hallo

Bin neu hier, habe so einen Flyer bei dem vmtl das BMS defekt ist. Wo krieg ich Ersatz fürs BMS?

Gruss aus der Schweiz.

Felix
 
R

Raketenbändiger

Dabei seit
10.10.2019
Beiträge
707
Punkte Reaktionen
187
Hallo

Bin neu hier, habe so einen Flyer bei dem vmtl das BMS defekt ist. Wo krieg ich Ersatz fürs BMS?

Gruss aus der Schweiz.

Felix
Ich würde mal sagen "Kannste vergessen"! Flyer gut, Service rattig!!! So, und jetzt? Bist Du so weit wie ich vor ein paar Monaten. Meine Antwort kannst Du im Forum lesen: "Panasonic Mittelmotor Flyer auf normal umbauen". Geht, läuft einwandfrei, nur der Speed hat mir mangels intellektueller Kompetenz Probleme bereitet. Eichenbrett vor'm Kopf!
 
N

Nachtjacke

Dabei seit
09.01.2021
Beiträge
3
Punkte Reaktionen
0
Panasonic rückt die Dinger nicht raus.
Habe den Akku NKY470B2 - Fehlercode 03
Die Firma Liofit konnte mir helfen
Alternativ die Fa. Heskon aus Tilburg ( Heskon.de ) mit denen habe ich jedoch noch keine Erfahrung.


Liofit GmbH
Nordstrasse 57
01917 Kamenz

Tel .: +49 (3578) 788 39 24
E-Mail: [email protected]
Sprechzeiten: Mo-Fr 08:30-16:30
 
D

ddddjj

Dabei seit
27.02.2021
Beiträge
1
Punkte Reaktionen
0
Hi manawyrm!

I liked you investigator work very much and I have a practical question to you. From your description it looks like you separated cells from BMS and after that made BMS work again using pin T. Did I get that right? Because some BMS refuse to work after you separate cells. I'm afraid to work on my battery because not sure I can get BMS work again after replacing cells. Thanks!
 
S

Schu

Dabei seit
28.10.2016
Beiträge
27
Punkte Reaktionen
5

ddddjj​

Panasonic's BMS (2009-2013) allow to disconnect and reconnect cells.
 
S

SAM_PANA

Dabei seit
02.03.2021
Beiträge
14
Punkte Reaktionen
9
Details E-Antrieb
Flyer, Panasonic 26V
Hallo

Finde es toll dass sich jemand in solch einer Detailtiefe bewegt - Respekt. (y)
ich beschäftige mich zur Zeit mit einem Panasonic / Flyer 36V Akku
Da ich mich gerade mit einem REX mittels Zweitaccu an einem 26V Panasonic System (eigener Treat im Forum) beschäftige habe ich dazu eine konkrete Frage.

Ist beim Panasonic 36V-System eine Schutzfunktion im Protokoll eingebaut die es verhindert/erschwert einen zusätzlichen Accu (nicht von Panasonic und Vertrags-Partnern) wie auch immer dieser elektrotechnisch verschaltet ist, zu betreiben.
Konkret die Frage ob im Protokoll darin etwas zu finden ist/wäre.
z.B: Vergleich des Stromverbrauchs des Motors mit der Stromlieferung vom Accu oder dergleichen. Die IT-ler sind ja da sehr erfinderisch und kreativ.
Damit wird erfolgreich verhindert einen Fremd-Accu (Marke: Eigenbau) zu betreiben.

Im Bosch-System Gen4 dürfte so etwas implementiert worden sein (hab es jedoch selbst nicht verifiziert = 2nd✋🧠).
Im 26V System dürfte so etwas noch nicht eingebaut worden sein, zumindest mein Zusatzaccu funktioniert.

Wäre Dankbar für Hinweise bzw. helfe ich auch wo ich kann.

I fear that we are dealing with a SHA-1 hash.
Falls diese Befürchtung zutreffen sollte wird es schwierig bis fast unmöglich.

Payload data: 02 94 50 0E 6F

0294 Temperature in °F (dec x10, 66.0°F)
50 State of Charge (in percent, decimal, 80%)
0E6F Voltage (dec /100, 36.95V)
Da jedoch payload daten lesbar sind (soweit ich sehe wird das hexadezimale Zahlensystem verwendet) dürften diese nicht verschlüsselt sein, sondern wird ein anderer (einfacherer) Algorithmus verwendet.
Ich kenne jemanden der sich mit Verschlüsselung auskennt. Wenn ihr Beispiel-Daten (dump) habt kann ich versuchen das er sich das mal anschaut.
 
R

Raketenbändiger

Dabei seit
10.10.2019
Beiträge
707
Punkte Reaktionen
187
Da sieht man mal wieder dass Pedelecs eben keine Elektrofahrräder sind sondern eine Wissenschaft für sich. Viel Erfolg jedenfalls.
P.s.: Mein Flyer mit Panasonic-Motor habe ich aus diesem Grund (Verdongelter Akku 850 Euro) entkernt und mit einem Brainpower-Klon ausgestattet. Dazu ein Allerweltsakku für kein Geld, 56 km für 510 Wh. Das reicht mir.
 
S

Schu

Dabei seit
28.10.2016
Beiträge
27
Punkte Reaktionen
5
SAM_PANA
Eine Schutzfunktion funktioniert in Pana ein bisschen anders. Akku zählt selbst nach seine Kapazität und aktuelle Verbrauch wie viel Strom hat es noch. Z.B. Du hast Fremdakku 500 Wh zu einem original 250 Wh parallel angeschlossen. Original Akku meint nach 50 Km, dass es leer ist, zeigt Restkapazität 5% und fährt noch 100 km auf 5%. Nach 10 (cirka) Fahrten verstäht BMS , dass etwas immer nicht stimmt und fängt an AKKU sofort nach Ladung entladen. Man muss dann BMS von Akkuzällen entlöten (resetten) und wider einlöten. Dann läuft alles weiter.
Wenn etwas in Pana nicht stimmt, zeigt BMS Fehler nach einige Fall. Es kann man aber resetten.
 
W

WIWO

Dabei seit
09.05.2021
Beiträge
6
Punkte Reaktionen
0
Ort
Steyr
Details E-Antrieb
Flyer 36v
Hallo die runde
Ich versuche mich auch gerade an einen 36V panasonic!
BMS finster und einige Zellen ausgelaufen :eek:
20210525_195123[1].jpg

Aktuell sind Sanyo R1112 verbaut. Welche Zellen würdet ihr mir empfehlen ??
Hersteller/Kapazität
 
Zuletzt bearbeitet:
Thema:

Panasonic/Flyer 36V Protokoll Reverse Engineering

Panasonic/Flyer 36V Protokoll Reverse Engineering - Ähnliche Themen

sonstige(s) BOSCH Purion fixing+reverse engineering: Hallo, Es tut mir leid, dass ich kein Deutsch spreche. Ich benötige technische Unterstützung, um meine Purion-Reparaturen fortzusetzen. I'm new...
sonstige(s) Warranty extension & Firmware Update for all 2019/20 Levo/Kenevo with 2.1 motors: Damit das hier auch jeder liest, erstelle ich ein eigenes Thema dazu .... veröffentlicht wurde dies im Emtb Forum. Link hier: Warranty extension &...
PANASONIC lässt Kunden im Stich: PANASONIC lässt Kunden im Stich Vor 6 Jahren kauften wir ein KTM eStyle mit Panasonic PCT Heckmotor und 48 Volt Gepäckträger-Akku. Dieses...
LCD Display Panasonic 36v middle motor: Hello Last January, I bougth a middle motor Panasonic 36V, with LCD display, battery and charger. I use a power supply instead of battery, to...
Teach you something about E-bike batteries. :-): Today, Let's talk about the E-bike lithium batteries. I am glad to share you all of my knowledge about the E-bike batteries, battery is the most...
Oben