sonstige(s) Bosch Active CAN-Daten Sammlung

Diskutiere Bosch Active CAN-Daten Sammlung im Bosch Forum im Bereich Fertig-Pedelecs; Endlich gefunden: Id 0x352 Typ 0x0b und 0x0c ergeben zusammengezählt die Ladezyklen in 1/10 Akkukapazität. 0065812-352:08 07 01 02 00 0B 02 00 A3...
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Ich habe erst mal die Ladezyklen gesucht...

long_0x352.txt

0045811-352:08 07 01 02 00 09 02 1A B3

Da finde ich meine 21.0 Ladungen nicht drin :cry:
Endlich gefunden: Id 0x352 Typ 0x0b und 0x0c ergeben zusammengezählt die Ladezyklen in 1/10 Akkukapazität.
0065812-352:08 07 01 02 00 0B 02 00 A3 1793 512 2818 163
0075812-352:08 07 01 02 00 0C 02 00 2F 1793 512 3074 47
0x00a3 = 163, 0x002f = 47; 163 + 47 = 210, 210 / 10 sind die 21.0 Ladezyklen

Funktioniert auch für das Active_Long0x352.txt aus Beitrag #64:
0082477-352:08 07 01 02 00 0B 02 01 B2 1793 512 2818 434
0092478-352:08 07 01 02 00 0C 02 00 2A 1793 512 3074 42
0x01b2 = 434, 0x002a = 42; 434 + 42 = 476, also 47.6 Ladezyklen.

... und für mein Logging zum Zeitpunkt des Serviceberichtes mit 5.8 Ladezyklen:
16:39:21.087: id 352 07 01 02 00 0b 02 00 07
16:39:31.086: id 352 07 01 02 00 0c 02 00 33
0x0007 = 7, 0x0033 = 51; 7 + 51 = 58, also 5.8 Ladezyklen.

Warum das auf zwei Werte aufgeteilt wird, ist mir nicht ganz klar. Spekulativ: für meine Daten könnte der Wert aus Typ 0x0b die Summe der Teilladungen sein, d.h. Ladeabbruch vor erreichen der 100%, und der Wert aus Typ 0x0c die Summe der Ladungen bis Akku voll. Meine Datenlage dazu ist etwas dünn, stützt die Vermutung aber: seit ich logge hatte ich immer voll geladen, dabei blieb Typ 0x0b unverändert und 0x0c hat sich erhöht. Meinen letzten Ladezyklus habe ich bei 62% gestartet und bei 89% Akkustand abgebrochen, danach war Typ 0x0b von 7 auf 9 erhöht, 0x0c blieb unverändert.
 
OWL

OWL

Dabei seit
30.04.2016
Beiträge
1.527
Ort
...na OWL...
Details E-Antrieb
Haibike AllMtn 8.0, Scott E-Genius 730
Spekulativ: für meine Daten könnte der Wert aus Typ 0x0b die Summe der Teilladungen sein, d.h. Ladeabbruch vor erreichen der 100%, und der Wert aus Typ 0x0c die Summe der Ladungen bis Akku voll. Meine Datenlage dazu ist etwas dünn, stützt die Vermutung aber...
Daten hab ich hier genug :LOL:

Gestern war ich mal im Wald und habe schön Matsch gesammelt (y) Dabei habe ich den Akku ordentlich leer gefahren (Restkapazität 4%); also Batterie-Symbol blinkt und Motor unterstützt nicht mehr = empty.

Empty:
20.0 Ladezyklen, aktuelle Kapazität: 4%

CAN-Cortex: 22.11.2016 22:15:32
1-0082713:352 08 07 01 02 00 0B 02 00 9A 179
1-0092713:352 08 07 01 02 00 0C 02 00 2E 188
0x9A = 154
0x2E = 46
-------------
Summe: 200 (y)

Danach über Nacht komplett bis zur Abschaltung geladen = full.

Full:
20.9 Ladezyklen, , aktuelle Kapazität: 100%

CAN-Cortex: 23.11.2016 08:04:29
1-0087425:352 08 07 01 02 00 0B 02 00 A3 181
1-0097425:352 08 07 01 02 00 0C 02 00 2E 192
0xA3 = 163
0x2E = 46
-------------
Summe: 209 (y)

Auch hier hat sich 0x0C trotz Komplettladung nicht verändert, kann also eigentlich nicht Voll-Ladung sein :cry:
 

Anhänge

Zuletzt bearbeitet:
OWL

OWL

Dabei seit
30.04.2016
Beiträge
1.527
Ort
...na OWL...
Details E-Antrieb
Haibike AllMtn 8.0, Scott E-Genius 730
Wäre ich Hersteller, wäre es strategisch interessant zu wissen, wo der Akku geladen wird :confused:
Also ob das Fahrrad beim Laden am Akku hängt oder ob der Akku separat geladen wird...

Vielleicht sind ja 0x0B die internen Ladezyklen (Laden im Fahrrad) und 0x0C die externen Ladezyklen (Akku lädt ganz allein :cry:)...

Ich habe mal grade einen Akku 0.2 mal extern voll geladen:

0x0B: 0xAB --> 0xAB
0x0C: 0x2F --> 0x31
 
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Vielleicht sind ja 0x0B die internen Ladezyklen (Laden im Fahrrad) und 0x0C die externen Ladezyklen (Akku lädt ganz allein :cry:)...
Das wirds sein (y)

Habe meinen Akku jetzt erstmals am Fahrrad vollgeladen und ebenfalls eine Erhöhung in 0x0b und unverändertes 0x0c. Meine Vermutung stimmt also nicht, Deine kann ich mit meinen Daten bestätigen.

Gestern war ich mal im Wald und habe schön Matsch gesammelt (y) Dabei habe ich den Akku ordentlich leer gefahren (Restkapazität 4%); also Batterie-Symbol blinkt und Motor unterstützt nicht mehr = empty.
Vermutlich ohne CAN-Logging, oder hast Du den Laptop mit durch den Schlamm geschleift? Sonst könntest mal Id 0x111 D2-D3 anschauen. Das ist bei mir immer 0x4e20, also 20000, ausser wenn der Akku schlappmacht (Spannung < etwa 26V), dann geht der Wert runter. Könnte ein Parameter zur Leistungsdrosselung zwecks Tiefentladeschutz sein?

Etwas OT: Ich versuche übrigens eine Entladung unter 20% inzwischen zu vermeiden. Unter Last bleibt die Spannung > 30V, solange noch 2 oder mehr Balken stehen. Mit einem Balken gehts dann ziemlich abwärts, kurz vor der Abschaltung (bei 8% Ladestand) hab ich unter Last in den Loggings schon Spannungen < 25V gesehen. Im Leerlauf erholt sich der Akku dann wieder auf > 30V, sollte für die Zellen zwar prinzipiell ok sein, aber schonend ist das eher nicht ;)

Zurück zu den CAN Ids:
Id 0x171 wird ja beim Einschalten recht früh genau einmal geschickt.

Id 0x171 D0-D3 scheint die gesamte Fahrzeit in Sekunden zu enthalten, also die Zeit, in der das Fahrrad bewegt wurde. Der Wert erhöht sich jeweils um die vom Intuvia angezeigte Fahrzeit, die ja Standzeiten ausnimmt. Der Wert erhöht sich auch, wenn das Fahrrad nur geschoben wird oder ohne Motorunterstützung gefahren wird, egal ob der Motor per Mode Off ausgeschaltet wurde, oder ob die Abregelgeschwindigkeit überschritten wurde.

Id 0x171 D4-D7 könnte ebenfalls eine Zeit in Sekunden zu sein, Bedeutung ist mir aber nicht klar. Meiner Beobachtung nach erhöht sich der Wert nur dann, wenn der Motor im oberen Leistungsbereich gefordert wurde. Die Zeit deckt sich grob mit dem Zeitraum, in dem ich am Intuvia 11 oder 12 Balken sehe, aber die Übereinstimmung ist nicht genau genug für einen klaren Zusammenhang. Auch die Zeiten im Drehmomentlimit passen nicht richtig.

Nachtrag: Id 0x0bc D2-D5 ist das Serviceintervall, also der Gesamtkilometerstand in Metern, ab dem der Servicehinweis im Display angezeigt wird. Das hat sich bei mir mit dem Service von 0x0007a120 (500km) auf 0x0016e360 (1500km) verändert.
 
Zuletzt bearbeitet:
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Habe jetzt eine Idee zu den Typen 0x00 bis 0x03 der Id 0x352: das sind Histogramme über den Ladestand (state of charge, SOC).

Beispiel: Auszug aus dem Logging vier aufeinanderfolgender Einschaltvorgänge:
24:19:47.103: Einschalten zu Beginn einer Bergtour, SOC am Anfang 99%, am Ende 64%
25:21:53.737: Einschalten nach Gipfelrast, SOC am Anfang 64%, am Ende 53%
26:16:59.007: Zuhause im Stand nochmal ein paar Minuten eingeschalten, SOC 53%
26:22:05.898: nächstes Einschalten nach dem Laden des Akkus auf 100% (nicht am Rad)

Die Daten:
| Typ 0x00 | Typ 0x01 | Typ 0x02 | Typ 0x03 |
24:19:47.103: | 0 2 2 1 1 4 0 2 0 0 1 | 0 0 0 0 0 2 0 0 0 1 10 | 0 1 2 10 4 4 4 29 5 15 63 | 0 3 4 6 9 6 4 31 5 13 56 |
25:21:53.737: | 0 2 2 1 1 4 0 2 0 0 1 | 0 0 0 0 0 2 0 0 0 1 10 | 0 1 2 10 4 4 4 29 5 15 64 | 0 3 4 6 9 6 4 32 5 13 56 |
26:16:59.007: | 0 2 2 1 1 4 0 2 0 0 1 | 0 0 0 0 0 2 0 0 0 1 10 | 0 1 2 10 4 4 4 30 5 15 64 | 0 3 4 6 9 6 5 32 5 13 56 |
26:22:05.898: | 0 2 2 1 1 4 1 2 0 0 1 | 0 0 0 0 0 2 0 0 0 1 11 | 0 1 2 10 4 4 5 30 5 15 64 | 0 3 4 6 9 6 6 32 5 13 56 |

Auffallend ist, dass beim Fahren Typ 0x00 und 0x01 unverändert bleiben, bei Typ 0x02 und Typ0x03 sich jeweils ein Wert erhöht (rot markiert). Beim Laden erhöht sich dann auch Typ 0x00 und 0x01.

Meinen Daten nach vermute ich folgendes: Jeder der 11 Werte repräsentiert einen Ladestandbereich des Akkus:
0% (leer), 1%..10%, 11%..20%, usw. bis 91%..100% (voll).

Beim Ein- und Ausschalten wird der momentane Ladestand gemessen und der zugehörige Wert erhöht, und zwar Typ 0x00 beim Einschalten mit Laden, Typ 0x01 beim Abschalten des Ladens, Typ 0x02 beim Einschalten ohne Laden, und Typ 0x03 beim Ausschalten ohne Laden. Beim nächsten Einschalten wird dann der Stand der Histogramme zum Zeitpunkt des vorherigen Ausschaltens in Id 0x352 auf den CAN-Bus geschickt.

Die Summe der 11 Werte aus Typ 0x00 und die Summe der 11 Werte aus Typ 0x01 sind immer identisch und stimmen mit Ix 0x352 Typ 0x09 überein, im Beispiel oben 13, 13, 13 und 14. Die Summen der Werte aus Typ 0x02 und Typ 0x03 sind ebenfalls identisch und stimmen mit Ix 0x352 Typ 0x0a minus 1 überein, im Beispiel 138, 139, 140, 141.

Man bekommt mit den Histogrammen also einen Eindruck, in welchem Ladestandbereich der Akku vorwiegend betrieben wurde. Man sieht z.B., dass ich meistens volllade, und dass ich bisher dann recht oft mit dem vollen Akku nur Kurzstrecken gefahren bin. Bzgl. Akkupflege wäre allerdings eher die Zeit informativ, die der Akku im jeweiligen Ladezustand befunden hat, die Ein-/Ausschaltzyklen sind aber zwar eine Näherung, unterschlagen aber z.B. längere Standzeiten mit vollem Akku.

Was mir noch nicht 100% klar ist: meine Zahlen sind recht niedrig (Größenordnung Ein-/Ausschaltzyklen und Ladezyklen), die aus den Loggings von @OWL viel höher. Aus den 0x352_akku_empty/full Loggings:
| Typ 0x00 | Typ 0x01 |
0x352_akku_empty: | 0 81 41 390 981 1081 1327 957 588 5 275 | 0 77 39 382 973 1079 1324 953 594 8 297 |
0x352_akku_full: | 0 82 41 390 981 1081 1327 957 588 5 275 | 0 77 39 382 973 1079 1324 953 594 8 298 |
| Typ 0x02 | Typ 0x03 |
0x352_akku_empty: | 0 1 7 393 844 800 1336 1018 619 59 349 | 0 5 10 400 852 802 1339 1022 613 56 327 |
0x352_akku_full: | 0 6 13 393 844 800 1336 1018 619 59 353 | 0 11 15 400 852 802 1339 1022 613 56 331 |

Die Erhöhung in Typ 0x00 und Typ 0x01 passt zur Vollladung nach Entladung auf 4%.
Typ 0x09 passt mit 5726 und 5727 zu den Summen, ebenso Typ 0x0a mit 5427 und 5442, soweit so gut.

Warum aber werden so viele Erhöhungen in Typ 0x02/0x03 registriert? Und warum sind die Summen der Typen 0x00/0x01 höher als die der 0x02/0x03?
 
Zuletzt bearbeitet:
H

hna

@OWL :

Bin heute auf diesen Thread gestoßen und habe ihn mit sehr viel Interesse durchgelesen.

Warum wurde das Thema eigentlich dann so abrupt abgebrochen und nicht weitergeführt?

Ist eigentlich mittlerweile die gesamte CAN-Bus Kommunikation dekodiert, d.h. weiss man was für Parameter hinter allen IDs stecken?
 
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Hallo @hna ,

aus meiner Sicht sind (fast) alle Ids verstanden, die regelmäßig geschickt werden und sich ändernde Daten mitbringen, so dass man gezielt raten kann. Damit kann man zumindest unterwegs ganz nützliche Sachen machen.

Ich habe mir eine kleine Platine gebastelt, mit der ich auf meinem Garmin Edge das E-Bike als Power-Sensor verbunden bekomme. So kann ich meine Eigenleistung live sehen. Klar kann das Nyon das auch, aber mich hat die Bastelei gereizt, und ich kann mir als Bonus am Edge einen Screen nach meinen Bedürfnissen zusammenstellen. So sehe ich z.B. aktuelle Herzfrequenz, Kadenz, Höhe und Leistung gleichzeitig, zusammen mit einem 30-Sekunden Durchschnitt der Leistung, was recht nützlich ist, wenn man nicht ständig auf's Display schauen möchte. Ausserdem habe ich so die ganzen Analysetools von Garmin zur Verfügung bzw. kann die Daten problemlos in GoldenCheetah laden oder auf Strava stellen.

Bzgl. CAN-Bus sind noch eine Reihe von Ids offen, die nur einmal beim Hochfahren geschickt werden und bei mir immer gleich sind. Da lässt es sich schlecht raten. Könnte sein, dass da noch was interessantes dabei wäre, wenn man auch auf den Bus schreiben würde, wie z.B. die individuellen Unterstützungsprofile des Nyon. Ich hänge aber nur passiv lesend am Bus, hab keine Lust auf irgendwelche Probleme irgendwo im Gelände wegen unpassender CAN-Frames. Fahre teils in recht einsamen Gegenden.

Ich hab hier nichts mehr geschrieben, weil mein ursprüngliches Ziel, die Anzeige der Eigenleistung, ja erreicht war. Die Geschichte mit den Akku-Statistiken war dann noch eine nette Knobelei, aber nicht mehr als nette Alternative zu Sudoku. Wirklich durchschlagende Erkenntnisse hat das nicht gebracht, dazu sind die Statistiken dann doch zu vage. Wie lange ein Akku leer oder vollgeladen gelegen ist steht nicht drin, und gerade das wäre interessant.

Ich hatte auch noch einen CAN Log beim Service analysiert, aber dazu hier dann gar nichts mehr geschrieben, da die Daten eh im Servicebericht erscheinen. Ähnlich wie mit dem Akku wird auch das Serviceprotokoll mit Challenge/Response Paaren abgesichert, die Daten ohne die Händler-SW der DU zu entlocken dürfte nicht trivial sein, für mich ist das jedenfalls uninteressant.

Bin gespannt ob mein Logger mit dem bevorstehenden SW-Update für den eMTB Modus noch funktioniert, wäre schade wenn nicht mehr :rolleyes:
 
H

hna

Hallo @woifi

Danke für deine ausführliche Antwort. Mein Interesse an den CAN Daten rührt daher dass ich die ganze Zeit überlege ob es nicht möglich ist verschiedene Parameter wie Kadenz, Eigenleistung, Motorleistung usw. als Bluetooth Sensoren darzustellen die man dann in verschiedene Anwendungen wie z.B. OruxMaps einbinden könnte und mit der Wegstrecke mittracken könnte.

Die IDs müssten ja mittlerweile ziemlich alle bekannt sein, denn die App zu dem Tuningmodul Blackped+ kann ja ziemlich alle CAN Daten anzeigen, aber eben leider nicht mittracken.

Wie überträgst du eigentlich die Daten zum Edge, ich dachte das kann nur ANT+
 
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Ja, die Daten übertrage ich mit ANT+, verwende dazu einen nRF52832.

Um das ANT Softdevice für den nRF52832 zu bekommen, habe ich mich als ANT+ Adopter registriert, für mein Hobbyprojekt war das kostenlos. Die ANT+ Unterlagen sind leider nicht offen, aber den ANT-Leuten ist offensichtlich wichtig, dass Kunden das ANT-Logo mit problemlos funktionierenden Sensoren und Geräten assoziieren, von daher nachvollziehbar.

Im SDK von Nordic Semiconducturs gibt es ein ANT+ Bicycle Power Example, das war ein guter Startpunkt, so dass der Softwareaufand überschaubar war.

Der nRF52832 hängt als SPI Slave am Teensy, der vom CAN-Bus liest. Leider hat der nRF52832 keinen CAN-Controller, sonst hätte ich mir den Teensy sparen können, aber was solls.

Das ganze hab ich in einer kleinen Satteltasche unter den Lenkervorbau gehängt. Klassisches Dauerprovisorium, aber ausreichend stoß- und wasserfest und damit praxistauglich genug für meine Zwecke, hat jetzt 500km und 11000hm problemlos funktioniert.

Bluetooth geht vermutlich ähnlich, damit hab ich aber noch nichts gemacht und kann daher nichts konkretes sagen.

Die relevanten CAN-Ids für die von dir genannten Parameter sind auf alle Fälle hier im Thread beschrieben, die werden in den "einfachen" Ids übertragen (Pedaldrehmoment 0x048, Kadenz 0x0d2, Motorpower mechanisch 0x0d3, elektrisch 0x0d4, Akkuleistung 0x101). Such dir die letzte Version der @OWL 'schen Tabelle oder die entsprechenden Postings mit den passenden Graphen und Beschreibungen, da sollte alles für die Bluetooth Sensoren nötige vorhanden sein. Falls nicht, frag einfach :)
 
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Spät aber doch hab ich jetzt auch das SW update mit dem eMTB Modus auf dem Rad.

Auch wenn es hier sehr ruhig geworden ist, möchte ich doch ein Update posten, evtl. interessiert es ja den einen oder anderen.

Hier ein Scatterplot, der die Charakteristik des eMTB Modus zeigt:
support-cx.png


Nach rechts ist das Pedaldrehmoment aus Id 0x048 aufgetragen, gemittelt über 800ms, nach oben ist das Motordrehmoment aus 0x0d3, umgerechnet auf Drehmomente an der Kurbelwelle durch Multiplikation mit 2.52:1.

Die Messwerte stammen aus 3 Fahrten auf meinen Hausberg (gepflegte Forststraße), je einmal im Modus Turbo (blau), Sport (orange) und eMTB (gelb). Die Werte im Modus Eco (lila) und Tour (grün) stammen von der Hin- und Rückfahrt. Messungen bei Geschwindigkeiten größer 24km/h habe ich weggefiltert, um das Diagramm nicht durch reduzierte Unterstützungsfaktoren an der Abregelgrenze zu verwässern.

Auch wenn die Punktwolken recht streuen, sieht man den grundsätzlich linearen Zusammenhang der "klassischen" Unterstützungsmodi bis zum jeweiligen Drehmomentmaximum des Motors (Tour 48 Nm, Sport 57 Nm, Turbo 68 Nm). Bei der Turbo-Fahrt hatte ich den Motor großteils ins Drehmomentlimit getrieben, nur der linke Teil der blauen Wolke deutet den linearen Teil der Kennlinie an.

Der eMTB Modus deckt sich bis etwa 17 Nm Pedalkraft mit dem Tour Modus, dann zeigt die Kennlinie einen Knick und läuft parallel zum Turbo bis zum Drehmomentmaximum, das ich allerdings auf der Messfahrt nur kurzzeitig ausreizen konnte. 30 Nm am Pedal bei etwa 80 Upm sind gut 250 W Leisung, das ist mir als Leichtgewicht auf Dauer zu viel.

Ich habe obigen Plot versuchsweise mit der Kadenz als weitere Achse in 3D angesehen. Die Messwerte stammen zwar großteils aus einem engen Kadenzbereich, ich traue mich aber trotzdem zu behaupten, dass der Unterstützungsfaktor im eMTB Modus nicht in Abhängigkeit von der Kadenz gesteuert wird.

Wieweit sich das Ansprechverhalten ("Anreißen" beim Anfahren) von den anderen Modi unterscheidet, kann ich aus dem Diagramm allerdings nicht herauslesen. Vom Fahrgefühl her könnte der eMTB da etwas sanfter eingestellt sein, im Diagramm sind dazu aber zu wenig Messpunkte, um dazu etwas Seriöses herauszulesen. In Anfahr- und Antrittsituationen unterstützt der CX in den klassischen Modi ja kurzzeitig spürbar stärker, das findet sich im Diagramm am deutlichsten beim grünen Tour Modus, da ich dort diese Situationen bei der Anfahrt öfter hatte als bei der gleichmäßigen Auffahrt auf den Berg im Sport oder eMTB Modus.

Auf dem CAN-Bus ist nach dem SW Update das meiste unverändert geblieben, ein bischen was hat sich aber doch verändert:

Der Akku schickt nun seine Temperatur- und Leistungsstatistiken nicht mehr auf den Bus, die Frames mit Id 0x352 fehlen. Dafür kommen jetzt alle 500ms Frames mit Id 0x2aa, in denen D0-D1 eine Temperatur steht, die ich als Akkugehäusetemperatur interpretieren würde.

Erfreulich ist, dass wieder Frames mit ID 0x0d0 kommen, die G-Kräfte enthalten. Witzigerweise wurden die Koordinaten ggü. den Frames mit DU SW vor 1.6.0.0 vertauscht. Mit der aktuellen DU SW 1.7.0.0 enthält D0-D1 die horizontale Kraft in Rad-Längsrichtung (positiv bergauf und beim Beschleunigen), und D2-D3 die vertikale Kraft (positiv zur Erde), beide in [1/100 N]. Die Samplingperiode wurde auf 20ms verkürzt, was bei diesen stark jitternden Werten durchaus sinnvoll ist.
 
M

mc59

Dabei seit
28.05.2018
Beiträge
7
Good morning,
I am sorry I can't write in german...
I am very interested in decoding additional info from CAN interface. Could be possible to have an update version of the CAN message table?

Thanks in advance.

Best Regards

MC
 
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Hi,

I'll paste a comment block from my SW. It contains my notes on the frames I know or guessed in English. The notes are meant for myself and might be a bit short or cryptic. If anything is unclear, feel free to ask.

Code:
id    len period src
    data (big endian, i.e. MSB first)
0x01c: 8,    1 s
    D0-D3 uint: uptime [ms] (rising data with 1000 inc)?
    D4-D7: const 00 00 00 00
0x037: 3,  100ms hmi
    D0: const 00;
    D1 bool: light: 0x80 on, 0x00 off
    D2 bool: walk: 0x01: on, 0x00 off
0x03b: 4,  500ms
    D0 uchar: support 9: off, 1: eco, 2: tour, 3: sport, 4: turbo
    D1 uchar: at boot ff, otherwise 00
    D2-D3: const 00 00
0x03c: 3,  500ms
    D0 uchar: at boot 00, otherwise 01
    D1 uchar: at boot 00, otherwise light: 0x01 on, 0x02 off
    D2 uchar: at boot 00, otherwise walk: 0x02 on, 0x01 off
0x048: 6,   10ms du
    D0-D1 short: torque [1/10 Nm]
    D2-D3 ushort: time [1/10 ms]
0x04a: 1,   10ms bat
    D0: const 00 not fully cyclic: always sent for the first 4000 or 4096ms, then disappears; sometimes reapears ???
0x059: 8,  100ms
    D0-D7 ???: const 01 01 00 1e 00 64 00 00
0x05a: 1,  irreg hmi
    D0: const 00 sent when resetting remaining range on intuvia
0x08c: 1,  200ms bat
    D0: const 00, 23 or 25 (alive from battery? value mostly 0, sometimes same as D0 from previous id 0x352 frame?)
0x09a: 1,  200ms
    D0: const 00 (alive from motor?)
0x09b: 1,  200ms
    D0: const 00 (alive from HMI?)
0x0c5: 3,  irreg, only when in intuvia base settings menu
    D0 uchar: type; D1-D2 ushort: data; D0=01: const 00 00, D0=02: adjusted wheel circumference [mm]
0x0c6: 8,  irreg, only when in intuvia base settings menu
    D0-D1 ushort: mininum; D2-D3 ushort: maxinum; D4-D5 ushort: default; D6-D7 ushort: adjusted wheel circumference [mm]
0x0c7: 8,  100ms
    D0: const 00
    D1 uchar ???: c8 = 200, less when battery runs low, same as 1/100 * 0x111 D2-D3
    D2-D3 ushort: remaining battery charge in Wh, correlating with 0x111 D6, at boot ff ff
    D4: const 00
    D5 uchar: last full battery charge [Ah]; same as 0x111 D5
    D6-D7: const 00 00
0x0d0 (DU SW < 1.6.0.0): 4,  100ms
    D0-D1 short: gforce z [1/100 m/s²]? values around 981
    D2-D3 short: gforce x [1/100 m/s²]? values around 0
0x0d0 (DU SW 1.6.0.0): not sent
0x0d0 (DU SW 1.7.0.0): 8,   20ms;
    D0-D1 short: gforce x [1/100 m/s²] values around 0
    D2-D3 short: gforce z [1/100 m/s²] values around 981
0x0d1: 2,  100ms du
    D0-D1 ushort: speed [1/100 km/h] (0 when pushing bike backwards)
0x0d2: 4,  100ms du
    D0: const 00; D1 uchar: cadence [1/min]
    D2-D3: const 00 00
0x0d3: 6,  100ms du
    D0-D1 short: motor torque at chaindrive actual [1/100 Nm]
        for torque sensor see http://www.pedelecforum.de/forum/index.php?threads/performance-active-motor-innenleben.26492/page-8#post-711856
    D2-D3 ushort: motor torque nominal [1/100 Nm]
        (max eco: 0x0602=1538=38.8Nm, tour: 0x06f9=1785=45.0Nm, sport: 0x08f0=2288=57.7Nm, turbo: 0x0a8c=2700=68.0Nm, official 40/50/60/75)
    D4-D5 short: motor rpm  [1/min], negative when pushing bike backwards
        motor transmission to chaindrive is 16:47 * 19:77 = 304:3619 = 1:11.9
        pedal transmission to chaindrive is 33:14 * 31:29 = 1023:406 = 2.52:1
        motor rpm = (3*11*11*31*47)/(32*19*29) = 528891/17632 = 29.996 times cadence
        see http://www.pedelecforum.de/forum/index.php?threads/performance-active-motor-innenleben.26492: images in post #1
            http://www.pedelecforum.de/forum/index.php?threads/performance-motor-innenleben-so-sollte-es-eigentlich-nicht-aussehen-o.40234/page-5#post-663475
            http://www.enbicielectrica.com/t5229-despiece-y-mantenimiento-motor-bosch-performance-2015-tutorial#94585 (motor shaft [1] 16 against [2] 47)
            http://www.enbicielectrica.com/t5229-despiece-y-mantenimiento-motor-bosch-performance-2015-tutorial#93930 ([2] 19 against [3] 77)
        but: renderings in this video show 16:48 * 25:100 = 1:12, differing from actual version: https://www.youtube.com/watch?v=-5WxMZLqPE8
0x0d4: 4,  100ms du
    D0-D1 ushort: motor power draw [1/10 W] correlating with 0x101 battery power draw (slightly less)
    D2-D3 ushort: const, power draw for max. bar graph display [1/10 W]? OWL active: 0x0d7b = 3451, Gene performance (with Nuvinci?): 0x0dfc = 3580, performance cx: 0x1220 = 4640, at boot 0x0000
0x0f1: 7,   10ms bat
    D0-D3 ???: const 00 00 01 01
    D4 uchar: battery depth of discharge in % (0: battery full, 100: empty), adds up with 0x111 D6 to 100, at boot fe and ff
    D5: const 7f, OWL active 7f, but Gene performance ff ???
    D6 uchar: 98, d8 if battery at or below 20%, at boot 10; OWL active and Gene performance 9a ???
0x101: 8,  500ms bat
    D0-D1 ushort: status, 0:run, 0xffff: charge
    D2-D3 short: current [mA], neg. when charging
    D4-D5 ushort: power [1/10 W]
    D6-D7 ushort: voltage [mV]
0x111: 7,  100ms bat
    D0-D1: const 00 00
    D2-D3 ushort: battery discharge limit indicator: normally 4e 20 = 20000, less when battery runs low
    D4: const 00
    D5 uchar: last full battery charge [Ah]; 8a, 89, 87, 86 changed after charging completely empty battery, OWL active and Gene performance 72 (400Wh battery)
    D6 uchar: battery state of charge in % (0: battery empty, 100: full)
0x131: 8,  irreg hmi and bat
    D0: const 00
    D1 uchar: 01, at boot 02, in settings when entering software versions 05
    D2-D6: const 00 00 00 00 00
    D7 uchar: 00, 01, 02, 03, 08, 09, 0a, 0b: button press/release (controller plus, info, minus, walk, intuvia reset, info, light, intuvia or battery on/off)
0x170: 8,   5 s  bat
    D0-D1 ushort: motor temperature [1/100 K]
    D2-D7: const 00 00 00 00 00 00
0x202: 8,  500ms
    D0-D3 uint: total distance [m]
    D4-D7 uint: remaining range [m]
0x203: 8,  500ms
    D0-D3 uint: total operation time [s]
    D4 uchar: remaining battery charge in % (same as 0x111 D6), at boot 0x80
    D5-D6 short ???: related to speed and support; oversampled, value changes max. once per second
        support off: 0 if speed 0, 0xf424 if speed > 0
        0x0000, 0xf424, 0x0082, 0x01a6, 0x0092, 0x0135, 0x007e, 0x00e6, 0x0e43, 0x0091, 0x03f2, 0x010d, 0x023d, 0x0137, 0xf424, 0x007d, 0x0097, 0x00b9, 0x00bc, ...
    D7 uchar: 80 if support is off due to empty battery, otherwise 00
0x205: 8,  100ms du
    D0: const 00
    D1 uchar: gear shift recommendation? 00: none, 9c: lower gear (cadence below 50 rpm), 64: higher gear (cadence above 120 rpm)
    D2-D7 ???: const 00 00 80 00 00 00
0x210: 6,    1 s hmi
    D0 uchar: year
    D1 uchar: month
    D2 uchar: day
    D3 uchar: hour
    D4 uchar: minute
    D5 uchar: second
0x211: 8, 500ms
    D0-D7: const 00 00 00 00 00 00 00 00
0x220: 8, 100ms
    D0-D3 ???: const 00 00 03 00
    D4 uchar: related to speed sensor: 0x80 at some speed steps when decelerating, 0x00 else (restarts auto-off timer?)
    D5-D7: const 00 00 00
0x221: 8, 100ms
    D0-D3: const 00 00 00 00
    D4-D6: const 00 13 88; 0x1388 = 5000
    D7: const 00
0x2aa (PP SW 1.7.1.0): 8,  500ms bat
    D0-D1 ushort: battery case temperature [1/100 K]
    D2-D3 ushort: voltage [mV] (slightly higher than 0x101 D6-D7)
0x351 (before eMTB): 8, irreg (not from bat)
    D0-D7 ???: const 30 08 14 00 00 00 00 00
0x351 (after eMTB): not sent
0x352 (PP SW 1.5.2.0): 8, irreg bat
    battery statistics, head frames in 1 sec. timegrid, with optional data frames following in 30ms intervals
    for data structure see code of CanState352
0x352 (PP SW 1.7.1.0): not sent
 
M

mc59

Dabei seit
28.05.2018
Beiträge
7
Thanks a lot.
I took a fast look and it seems very clear to me.
 
L

Lithium

Dabei seit
06.06.2018
Beiträge
1
Hi Guys,

I am new here and took some time to read threads about the communication protocol.
As a electric hobbyist i want to try to make my own communication between the HMI and can controller. This way i want to fake the speed sensor and still have the HMI updated with the correct speed. I know there are many products on the market but they are expensive and i like to make things by myself.

My German is not good enough so i used a translate to read the information.

You guys got a lot of information about the can bus protocol, very nice!
I bought a Cube Touring Hybrid Pro 500 (need to wait 4 weeks to arrive).

What are your thoughts about putting an manipulator between the canbus and HMI?
There are can bus transceivers (MCP2515) but do we need to have one or two, because data is send in various speeds from the controller to HMI and back.

For example:
If we take one transceiver we can receive data from the controller, manipulate it and send it on the same bus to the HMI. Like:
Controller -> send speed -> HMI receives speed -> manipulate speed -> send again to HMI. How would the HMI look like? Does is fast switch from information and is it visible by the end user.

Example 2:
Take two transceivers.
Controller -> send speed -> manipulate in microcontroller -> send on different transceiver to HMI
In this case we need two transceivers.

How do you guys think how the products that manipulate the speed and display are made?
 
C

capirex65

Dabei seit
24.03.2014
Beiträge
70
Hallo ich bin leider nur Maschinenbauingenieur und kein Elektroniker. Ich kann nicht SMD Löten habe aber erste Erfahrungen mit Arduino oder den Bionx System. Gibt es den günstige Hardware und Open Source um die Can Signale mit zu schreiben. Ich hätte es jetzt im ersten Moment auch über den Abgriff im Intuvia Display versucht. Danke für eure Tips. Evt könnten wir ja noch ein kleine HowTo draus basteln
 
W

woifi

Dabei seit
02.10.2016
Beiträge
45
Ort
Bad Aibling
Details E-Antrieb
Bosch Performance CX
Ich hab meine Hardware mit einem Teensy 3.6 und MCP2562 aufgebaut, da ich für SMD Löten ebenfalls nicht gerüstet bin. Die Hardware ist dank dem Teensy extrem simpel, einzig das Problem mit dem Teensy 3.6 Boot bei lansam hochfahrender Stromversorgung hat mich etwas Nerven gekostet.

Softwareseitig hab ich die SdFat und FlexCAN libraries verwendet.

Ich muss zugeben, dass ich da auch schon wieder einiges vergessen hab, da das System seit 1 1/2 Jahren unverändert läuft. Never touch a running system :sneaky:

Hoffe die grobe Beschreibung und die Links helfen dir ein bischen weiter. Meine Software ist leider in keinem veröffentlichungstauglichem Zustand, und bzgl. dem mit einer Veröffentlichung verbundenen Supportaufwand sehe ich mich ehrlichgesagt zeitlich nicht raus. Ich lese hier aber weiter mit und werde soweit ich kann Fragen beantworten bzw. die Erstellung eines HowTos mit unterstützen :)
 
MoterraLT2

MoterraLT2

Dabei seit
15.08.2018
Beiträge
26
Hallo,
Hab das Thema aufmerksam verfolgt. Ich wollte fragen ob evtl jemand was gebaut hat um den Akku einzeln auszulesen für zB wenn man einen gebraucht kauft. Irgendwie ein Kleines Programm wo man Mittel PCAN zb dann die Daten abrufen kann?
 
Ulli_mit_HNF

Ulli_mit_HNF

Dabei seit
26.05.2019
Beiträge
4
Ort
Herford
Details E-Antrieb
Bosch Performance CX
Hallo Woifi,
hoffe Du bist noch hier im Thema aktiv. Dein Post von Okt.2016 habe ich gelesen, kann aber nix zu km Stand Daten finden. Mein plan ist die Daten die das intuvia anzeigt incl. GPS Daten online aabrufbar zu haben. Dazu will ich ein Can-Bus Sniffer verwenden und forsche im Moment noch an den IDs die ixh auslesen muss, denn seit der neuen Motor Generation seit 2015 hat Bosch wohl das Protokoll geändert. Gibt aber keine Auskunft über die Kodierung. Daher ist Dein Thread hilfreich, aber weißt Du wo die ODO Daten versteckt sind?
 
Thema:

Bosch Active CAN-Daten Sammlung

Bosch Active CAN-Daten Sammlung - Ähnliche Themen

  • sonstige(s) Wieviel Zähne für Bosch Active Line Plus Verschlußdeckel

    sonstige(s) Wieviel Zähne für Bosch Active Line Plus Verschlußdeckel: Moin zusammen, möchte den Kabelbaum für mein neues Bosch Nyon selber tauschen. Kann mir jemand von Euch sagen, wieviel Zähne der Verschlußdeckel...
  • sonstige(s) Carbonrahmen für Bosch Active Line Plus

    sonstige(s) Carbonrahmen für Bosch Active Line Plus: Hallo, ich bin für ein Umbauprojekt auf der Suche nach einem E-Bike mit Carbonrahmen oder auch nur auf der Suche nach einem Carbonrahmen...
  • sonstige(s) Welcher Speedchip ist am besten für Bosch Active Line Plus?

    sonstige(s) Welcher Speedchip ist am besten für Bosch Active Line Plus?: Hallo Leute, folgendes; habe mir Juli 2020 ein conway T 270 Se 400 mit Bosch Active Line Plus Bosch Motot zugelegt. Nun möchte ich nach 800 Km und...
  • sonstige(s) Bosch Active Plus - keine Funktion nach Demontage

    sonstige(s) Bosch Active Plus - keine Funktion nach Demontage: Hallo zusammen. Ich habe gestern den Motor (BDU350 0 275 007 047) des ebikes (r&m roadster 2018) meinem Frau demontierten müssen. Jedenfalls...
  • Ähnliche Themen
  • sonstige(s) Wieviel Zähne für Bosch Active Line Plus Verschlußdeckel

    sonstige(s) Wieviel Zähne für Bosch Active Line Plus Verschlußdeckel: Moin zusammen, möchte den Kabelbaum für mein neues Bosch Nyon selber tauschen. Kann mir jemand von Euch sagen, wieviel Zähne der Verschlußdeckel...
  • sonstige(s) Carbonrahmen für Bosch Active Line Plus

    sonstige(s) Carbonrahmen für Bosch Active Line Plus: Hallo, ich bin für ein Umbauprojekt auf der Suche nach einem E-Bike mit Carbonrahmen oder auch nur auf der Suche nach einem Carbonrahmen...
  • sonstige(s) Welcher Speedchip ist am besten für Bosch Active Line Plus?

    sonstige(s) Welcher Speedchip ist am besten für Bosch Active Line Plus?: Hallo Leute, folgendes; habe mir Juli 2020 ein conway T 270 Se 400 mit Bosch Active Line Plus Bosch Motot zugelegt. Nun möchte ich nach 800 Km und...
  • sonstige(s) Bosch Active Plus - keine Funktion nach Demontage

    sonstige(s) Bosch Active Plus - keine Funktion nach Demontage: Hallo zusammen. Ich habe gestern den Motor (BDU350 0 275 007 047) des ebikes (r&m roadster 2018) meinem Frau demontierten müssen. Jedenfalls...
  • Oben