
gamerpaddy
Themenstarter
Hallo, nachdem ich zusammen mit dem Nutzer @hErMeS den Yamaha Thread mit dem Akku-protokoll vollgequatscht hatte, haben wir uns über die Unterhaltungsfuntkion ausgetauscht.
Nun, erste teilerfolge beim Akku, erste werte konnte ich auslesen.
In diesem thread werde ich informationen über die Kommunikation zwischen Drive Unit und Akku, und Drive Unit und Display verbreiten, damit man endlich anfangen kann, selbst Akkus, Logger oder Displays dafür zu bauen.
Eine anfrage an Yamaha Motors bzg. Dokumente / Informationen über die Protokolle ergab noch nichts, bis die EMail in Japan ankommt, dauerts wohl noch ein paar Wochen.
Alle Tests erfolgen ohne das Auseinanderbauen der Komponenten. In diesen Tests wurden keine Yamahas Gequält oder Verletzt. Lediglich die frei zugänglichen Pins werden großzügig abgehört.
Akku:
Der Akku kostet mit 400Wh neu rund 600€, was es bei den aktuellen Li-Ion Preisen (1000Wh, ~350€) natürlich umso schmackhafter macht, ihn nachzubauen.
Der Stand beim identifizieren der Signale ist überraschend weit, weiter als ich gedacht hatte.
Der Akku kommuniziert über eine Asynchrone Serielle datenverbindung, dabei setzt die Drive Unit den Signal pin auf 5V, und der Akku zieht ihn wieder auf GND während er das Signal sendet.
Die Serielle verbindung besteht aus 8 bit zeichen, "Even parity bit" und 1 Stop bit. Baud-rate ist 2400.
Oder für die Arduino freunde:
Fakten:
-Der Akku sendet daten an die Drive Unit
-Die Drive Unit sendet keine Daten an den Akku
---Fehler werden nicht an den Akku übertragen (getestet mit ERR 15, CLK pin am display getrennt)
---Der Status vom Licht, Unterstützungsmodus (eco, norm. high) werden ebenfalls nicht übertragen.
-Der Akku sendet jede 160ms ein 19 Bytes datenpaket, bestehend aus je 8 bit zeichen.
Der Pinout ist wie folgt:
!!!! Achtung, selbst bei abgeklemmten Akku ist restspannung am DriveUnit V+ pin vorhanden.
Einer meiner Serialports hat es beim Abrutschen gegrillt, ergebniss siehe hier: http://www2.pic-upload.de/img/30106510/CIMG5904.jpg !!!! Zum glück gehen die andern 3 noch. War wohl keine sehr große ladung gespeichert.
Die Signalspannung ist 5V, wobei Signal auf GND gezogen werden muss beim Senden.
Ähnlich diesem aufbaus:
Die Akkuspannung verläuft wie bekanntlich nicht Linear.
Gemessen hatte ich:
100% = 41.0V,
80% 38.9V,
30% = 35.3V
(+- 0.5V, da billigmultimeter)
Bisherige erfolge:
Daten teilweise entziffert.
Die 19 Bytes sind wie folgt aufgebaut:
Erklärung:
fixed = wert blieb in allen messungen gleich
dynamic = wert änderte sich während der messung
teil dynamic = wert bleib während messung gleich, aber war manchmal anders als die anderen messungen.
* = B9 und B10 könnten für die Temparatur zuständig sein.
** = B17 bis B19 könnten zusammenhängen. Leistungsentnahme?
Hier die rohdaten mit kommentaren:
http://pastebin.com/MWVe76nf
Code um rohdaten auszulesen (funktioniert mit Arduino Mega2560 & fakes):
http://pastebin.com/B43eY5W8
(Gnd an Gnd, Pin RX2 an Signalpin, dann Akku einhängen, serial monitor starten und bike einschalten.)
DISPLAY:
Der Aktuelle stand beim Display ist nicht so gut.
Ich vermute I2C, da es eine data und eine clk verbindung gibt.
Eine anfrage bei einem Hersteller der dies schon entschlüsselt hat, war erfolglos.
den hersteller nenne ich hier nicht, da er dinge vertreibt die gegen die boardregeln verstoßen.
Die Pinbelegung sieht wie folgt aus (ansicht von vorne):
Versorgungsspannung 12V, Signalspannung ~3.3V (muss noch bestätigt werden)
Die kommunikation erfolgt in beide richtungen, sofern dass display nicht antwortet, geht nichts.
Bisherige erfolge & versuche:
Keine. Ich muss erst einen Adapter bauen, um das Display im betrieb auslesen zu können. Nur den Displayslot angreifen bringt kein brauchbares ergebniss.
Sobald ich mehr erkenntnisse darüber habe, werde ich euch Informieren.
Die ergebnisse beziehen sich hauptsächlich auf die Haibike's mit Yamaha antrieb (der alte ohne wireless display / knöpfe) Könnte aber auch bei dem neueren funktionieren.
Bitte den Thread nur mit Hilfreichen antworten füllen, da die Bearbeitungsfunktion nur eine Stunde lang gilt, möchte ich nicht, dass man zig Seiten für ein Update durchblättern muss.
Wäre dies kein problem, wäre ich über eine Diskussionsrunde erfreut.
Bei Fragen steh ich gern zur verfügung.
Danke für's lesen
Nun, erste teilerfolge beim Akku, erste werte konnte ich auslesen.
In diesem thread werde ich informationen über die Kommunikation zwischen Drive Unit und Akku, und Drive Unit und Display verbreiten, damit man endlich anfangen kann, selbst Akkus, Logger oder Displays dafür zu bauen.
Eine anfrage an Yamaha Motors bzg. Dokumente / Informationen über die Protokolle ergab noch nichts, bis die EMail in Japan ankommt, dauerts wohl noch ein paar Wochen.
Alle Tests erfolgen ohne das Auseinanderbauen der Komponenten. In diesen Tests wurden keine Yamahas Gequält oder Verletzt. Lediglich die frei zugänglichen Pins werden großzügig abgehört.
Akku:
Der Akku kostet mit 400Wh neu rund 600€, was es bei den aktuellen Li-Ion Preisen (1000Wh, ~350€) natürlich umso schmackhafter macht, ihn nachzubauen.
Der Stand beim identifizieren der Signale ist überraschend weit, weiter als ich gedacht hatte.
Der Akku kommuniziert über eine Asynchrone Serielle datenverbindung, dabei setzt die Drive Unit den Signal pin auf 5V, und der Akku zieht ihn wieder auf GND während er das Signal sendet.
Die Serielle verbindung besteht aus 8 bit zeichen, "Even parity bit" und 1 Stop bit. Baud-rate ist 2400.
Oder für die Arduino freunde:
Code:
Serial.begin(2400,SERIAL_8E1);
Fakten:
-Der Akku sendet daten an die Drive Unit
-Die Drive Unit sendet keine Daten an den Akku
---Fehler werden nicht an den Akku übertragen (getestet mit ERR 15, CLK pin am display getrennt)
---Der Status vom Licht, Unterstützungsmodus (eco, norm. high) werden ebenfalls nicht übertragen.
-Der Akku sendet jede 160ms ein 19 Bytes datenpaket, bestehend aus je 8 bit zeichen.
Der Pinout ist wie folgt:

!!!! Achtung, selbst bei abgeklemmten Akku ist restspannung am DriveUnit V+ pin vorhanden.
Einer meiner Serialports hat es beim Abrutschen gegrillt, ergebniss siehe hier: http://www2.pic-upload.de/img/30106510/CIMG5904.jpg !!!! Zum glück gehen die andern 3 noch. War wohl keine sehr große ladung gespeichert.
Die Signalspannung ist 5V, wobei Signal auf GND gezogen werden muss beim Senden.
Ähnlich diesem aufbaus:

Die Akkuspannung verläuft wie bekanntlich nicht Linear.
Gemessen hatte ich:
100% = 41.0V,
80% 38.9V,
30% = 35.3V
(+- 0.5V, da billigmultimeter)
Bisherige erfolge:
Daten teilweise entziffert.
Die 19 Bytes sind wie folgt aufgebaut:
Code:
B1 - 255 / Unbekannt / fixed
B2 - 255 / Unbekannt / fixed
B3 - 14 / Unbekannt / fixed
B4 - 6 / Unbekannt / fixed
B5 - 0-100 / Akkuspannug in % / dynamic
B6 - 25 / Unbekannt / fixed
B7 - 1 / Unbekannt / fixed
B8 - 110-169 / Unbekannt/ teil dynamic
B9 - 2-3 / Unbekannt / teil dynamic
B10 - 22-199 / Unbekannt, könnte mit B10 zusammenhängen* / dynamic
B11 - 42 / Unbekannt / fixed
B12 - 248 / Unbekannt / fixed
B13 - 1 / Unbekannt / fixed
B14 - 24 / Unbekannt / fixed
B15 - 17 / Unbekannt / fixed
B16 - 192-240 / Unbekannt / teil dynamic
B17 - 0-6 / Unbekannt** / dynamic
B18 - 0-255 / unbekannt** / dynamic
B19 - 0-255 / unbekannt** dynamic
Erklärung:
fixed = wert blieb in allen messungen gleich
dynamic = wert änderte sich während der messung
teil dynamic = wert bleib während messung gleich, aber war manchmal anders als die anderen messungen.
* = B9 und B10 könnten für die Temparatur zuständig sein.
** = B17 bis B19 könnten zusammenhängen. Leistungsentnahme?
Hier die rohdaten mit kommentaren:
http://pastebin.com/MWVe76nf
Code um rohdaten auszulesen (funktioniert mit Arduino Mega2560 & fakes):
http://pastebin.com/B43eY5W8
(Gnd an Gnd, Pin RX2 an Signalpin, dann Akku einhängen, serial monitor starten und bike einschalten.)
DISPLAY:
Der Aktuelle stand beim Display ist nicht so gut.
Ich vermute I2C, da es eine data und eine clk verbindung gibt.
Eine anfrage bei einem Hersteller der dies schon entschlüsselt hat, war erfolglos.
den hersteller nenne ich hier nicht, da er dinge vertreibt die gegen die boardregeln verstoßen.
Die Pinbelegung sieht wie folgt aus (ansicht von vorne):

Versorgungsspannung 12V, Signalspannung ~3.3V (muss noch bestätigt werden)
Die kommunikation erfolgt in beide richtungen, sofern dass display nicht antwortet, geht nichts.
Bisherige erfolge & versuche:
Keine. Ich muss erst einen Adapter bauen, um das Display im betrieb auslesen zu können. Nur den Displayslot angreifen bringt kein brauchbares ergebniss.
Sobald ich mehr erkenntnisse darüber habe, werde ich euch Informieren.
Die ergebnisse beziehen sich hauptsächlich auf die Haibike's mit Yamaha antrieb (der alte ohne wireless display / knöpfe) Könnte aber auch bei dem neueren funktionieren.
Bitte den Thread nur mit Hilfreichen antworten füllen, da die Bearbeitungsfunktion nur eine Stunde lang gilt, möchte ich nicht, dass man zig Seiten für ein Update durchblättern muss.
Wäre dies kein problem, wäre ich über eine Diskussionsrunde erfreut.
Bei Fragen steh ich gern zur verfügung.
Danke für's lesen