BOSCH E-Bike
| Langue : | Français |
|---|
Introduction
Cette page regroupe des informations sur le système des vélos à assistance électrique (VAE) BOSCH. Elles concernent plus particulièrement les gammes "Performance Line" et "Active Line". La collecte de ces informations a pour but de :
- permettre de trouver l'origine d'un problème électrique ou mécanique par soi-même.
- permettre d'avoir plus d'informations sur un vélo ou une batterie d'occasion.
- permettre de réparer ou de rafraîchir une batterie fatiguée avec des accus neufs.
- permettre à ceux qui le souhaiteraient de fabriquer des éléments compatibles avec le système BOSCH comme par exemple :
- des phares pour les vélos qui n'en sont pas équipés.
- un tableau de bord affichant plus d'informations.
- une batterie compatible avec le système.
Cette dernière option restant un des plus gros challenges sachant que BOSCH a tout fait pour brider son système propriétaire. Et comme si cela ne suffisait pas, il semble qu'il soit allé jusqu'à tenter d'empêcher les bricoleurs ou les sociétés spécialisées de réparer une batterie en provoquant le 'suicide' de son électronique en cas de détection d'un problème sur les accus. Ce suicide programmé aurait été introduit après coup via une mise à jour du firmware de la batterie, probablement après que BOSCH ait constaté que certains arrivaient à remplacer trop facilement leurs accus. Naturellement chaque fois qu'un constructeur rajoute une couche de bridage sur un système c'est toujours au prétexte de la sécurité..
Dans un premier temps, vu que c'est le seul que j'ai, les informations ci dessous concernent plus particulièrement un VAE avec les éléments suivants :
- Intuvia : le tableau de bord.
- PowerPack : la batterie.
- PerformanceLine : le bloc moteur.
- Manette de commande au guidon.
- Capteur de rotation de la roue arrière.
- Chargeur 220V.
Description des éléments
Manette 'des gaz'
La manette se fixe au guidon avec un collier plastique (1 vis BTR 3mm) et comporte 4 boutons poussoirs momentanés. Elle est reliée directement au tableau de bord.
Des appuis successifs sur le bouton (i) font changer les informations affichées sur le tableau de bord Intuvia. Les appuis sur les boutons (+) et (-) servent à augmenter ou réduire le niveau d'assistance du vélo. Enfin le bouton (walk) permet de faire avancer tout seul le vélo à faible allure quand on marche à côté.
Note : Ce dernier mode d'assistance n'est pas systématiquement activé sur tous les vélos et il ne l'est pas sur le mien. D'après les forums, il semble pouvoir être activé au moyen du logiciel propriétaire que BOSCH fournit à ses revendeurs agréés..
Tableau de bord
L'intuvia est le tableau de bord du système. Il est fixé au guidon par deux colliers (4 vis BTR 3mm). En plus d'être relié à la manette, il est relié au moteur à l'aide d'un câble qui descend par le tube de cadre. Il dispose d'un afficheur et de 4 boutons :
- ON/OFF Marche/Arret
- RESET
- Éclairage
- Informations
Le Marche/Arrêt sert bien entendu à activer ou désactiver tout le système.
Bouton RESET : un appui prolongé sur RESET va remettre à zéro les informations sur le dernier trajet effectué : temps de parcours, distance parcourue, vitesse maximale, mais pas le compteur général du vélo.
Le bouton Informations (i) sert à faire défiler les informations sur l'affichage de la même façon que celui qui est présent sur la manette.
Un appui simultané et prolongé sur RESET et Informations permet d'accéder au menu des réglages :
- Heure
- Circonférence de la roue motrice.
- Langue
- Unités de distances (km/miles)
- Format de l'heure
- Indication de changement de vitesse
ainsi qu'à d'autres informations non modifiables :
- Temps total d'utilisation
- Kilométrage total
- Versions des différents firmwares
Le bouton Éclairage sert normalement à allumer les phares avant et arrière. Mon vélo n'en étant pas équipé d'origine je ne peut pas en dire beaucoup plus.
L'Intuvia a sa propre batterie Li-Po 3.7V 250mAh qu'il est possible de remplacer (voir liens au bas de la page) si elle s'est retrouvée complètement déchargée et qu'elle ne prend plus la charge. Ce modèle de batterie est assez facile à se procurer, rechercher '502030 Li-Po battery' sur ebay.com, par exemple.
L'Intuvia dispose en outre d'un port micro USB sur le côté droit qui sert au diagnostic et aux mises à jour. Il peut aussi servir à recharger un smartphone ou alimenter un dispositif en 5V dans la limite des 500mA.
Électronique
| Marquage | Référence | Boîtier | Fonction |
|---|---|---|---|
| STM32F105 | STM32F105 | LQFP-64 | Micro-Contrôleur |
| VP234 | SN65HVD234 | SOIC-8 | CAN Transceiver |
Batterie
La batterie (POWERPACK 400) dont je dispose est un modèle qui s'insère dans un support sur le cadre, entre le guidon et le pédalier.
Cette batterie existait à l'origine en version 300Wh et 400Wh, et elle existe maintenant aussi en version 500Wh.
Il y a une serrure à clef pour éviter qu'on la vole trop facilement, et un connecteur au bas pour la relier au moteur ou au chargeur.
Il existe un autre modèle qui se fixe sur le porte bagages.
Électronique
La batterie possède un circuit imprimé avec les éléments principaux suivants :
| Marquage | Référence | Boîtier | Fonction |
|---|---|---|---|
| SPC5602D | MPC5602D | LQFP-64 | Micro-Contrôleur (8MHz) |
| ISL94212INZ | ISL94212 | TQFP-64 | Li-Ion Battery Manager |
| TLE6251-2G | TLE6251-2G | PG-DSO-14 | Transceiver CAN |
| 5416Q | TPS54160 | MSOP-10 | DC-DC Step-Down (max 60V 1.5A) |
| VCBQ | TLV3501A-Q1 | SOT-23 | Rail-to-Rail High-Speed Comparator |
| FDS9958 | FDS9958-F085 | SO-8 | Dual P-Channel MOSFET |
| 034N06N | IPD034N06N3 G | PG-TO252-3 | N-Channel MOSFET 60V 100A 3.4 milli-ohms |
| 87F3 AJ7A | ? | SO-8 | ? |
| LORA | ? | SOT-23 (5 pins) | ? |
Bloc Moteur
Le bloc moteur situé à la place du pédalier comporte :
- le moteur proprement dit.
- des pignons et des roulements.
- un capteur de couple.
- une platine électronique.
C'est sur cette platine que sont raccordés le moteur, le capteur de couple, le câble venant du tableau de bord (4 fils moyens), celui venant de la batterie (2 gros fils, 2 moyens), et celui venant du capteur de rotation (2 petits fils).
Électronique
Le bloc moteur possède un circuit imprimé avec les éléments principaux suivants :
| Marquage | Référence | Boîtier | Fonction |
|---|---|---|---|
| SPC564L60L5 | SPC564L60L5 | LQFP-144 | Micro-Contrôleur Dual-Core |
| TLE9180-200K | TLE9180-200K | LQFP-64 | Bridge Driver IC |
| 48092 1708/03 C55175 | 48092 1708/03 C55175 | LQFP-64 | Chip BOSCH Propriétaire |
Capteur de rotation
Le capteur de rotation de la roue arrière est fixé sur le bras inférieur de la fourche arrière et il détecte le passage d'un aimant fixé sur un rayon. Il est relié au moteur par un câble à deux fils. Comme il détecte le passage d'un aimant fixé sur un rayon, on peut supposer qu'il contient juste un interrupteur magnétique à lame souple (ILS ou Reed en anglais).
Chargeur
Connecteurs
Connecteur de l'Intuvia
Le support du tableau de bord comporte deux rangées de contacts. L'une avec 3 contacts dorés, que j'ai baptisés G1 à G3 (G pour Gold) qui servent à raccorder la manette des gaz.
La deuxième rangée a 4 contacts argentés S1 à S4 (S pour Silver) et est raccordée à la masse (GND), au bus CAN (CAN-L et CAN-H) et au +10V8 fournis par le moteur quand il est alimenté.
Les câbles qui mènent à la manette (G1 à G3) ou au moteur (S1 à S4) sont fixés sous le support au moyen de 4 petites vis et d'un petit joint chacun. Les contacts se font avec des petits ressorts, ce qui permet de démonter les câbles sans rien dessouder.
Attention si vous démontez ces câbles de bien remettre les petits joints en place et de ne pas perdre de vis.
Sur mon vélo, le contact G3 n'est relié à rien, mais peut-être sert-il sur d'autres modèles de vélos.
Connecteur de la Batterie
Le connecteur de la Batterie comporte 5 broches :
- 2 grosses broches servent pour le 36V, (+36V, GND)
- 2 autres sont reliées au bus CAN (CAN-L et CAN-H)
- 1 broche sert au chargeur pour indiquer sa présence
Connecteur du Chargeur sur le cadre
L'embase connecteur du chargeur sur le cadre est la même que celle de la batterie à la différence près que les pins CAN-L et CAN-H ne sont pas présentes. Cette embase est un bon endroit pour mesurer la tension de la batterie en branchant un volt-mètre sur les bornes +36V et GND et en mettant le système sous tension.
Connecteurs du moteur
Il y a 5 connecteurs sur le Moteur PerformanceLine. Ces connecteurs ne sont accessibles qu'en démontant la pédale et le capot gauche du moteur :
- le gros ovale à 4 fils mène à la Batterie
- un autre connecteur à 4 fils mène à l'Intuvia
- un va au capteur de rotation de la roue
- les deux derniers vont aux phares AV et AR
Les connecteurs qui semblent être des modèles fabriqués par TE Connectivity sont normalement étanches. Celui de la batterie, ovale, est muni d'un petit verrouillage sur le côté pour éviter qu'il ne se débranche trop facilement. Si vous n'avez pas de phares sur le vélo, il y a de petits bouchons étanches à la place des câbles.
Schémas
Synoptique
La Manette des gaz est branchée directement sur l'Intuvia (le tableau de bord).
Le Capteur de rotation de la roue arrière est branché directement sur le Moteur.
L'Intuvia, la Batterie et le Moteur communiquent au moyen d'un bus CAN (CAN-L et CAN-H).
Quand le système est activé, l'Intuvia reçoit du +10.8V du Moteur pour recharger sa batterie Li-Ion.
Le +36V issu de la Batterie est raccordé au Moteur et, bien sûr, au Chargeur pendant la charge.
Le Chargeur, en plus des broches GND et +36V a un troisième fil qui fournit du +5V à la Batterie et l'informe ainsi qu'il est branché.
Schéma de câblage
Le schéma de câblage permettra déjà de vérifier les connexions à l'ohm-mètre entre les différents éléments en cas de problème.
La manette (REMOTE) semble être assez passive et ne faire que des commutations de résistances. Sans appui sur un bouton, il y a 8.2K ohm entre REMOTE1 (G1) et REMOTE2 (G2) ce qui doit permettre à l'Intuvia de vérifier la présence ou l'absence de la manette. Ensuite, un appui sur un bouton va mettre en parallèle une autre résistance. Il est donc facile de vérifier le bon fonctionnement de la manette en mettant un ohm-mètre entre G1 et G2 sur le connecteur de l'Ituvia et en appuyant sur les différents boutons.
Analyse du fonctionnement
Charge de la batterie
La batterie débranchée du système ne fournit aucune tension sur ses bornes de puissance 36V. De son côté, le chargeur, quand il est débranché de la Batterie ne fournit aucune tension sur ses bornes de sortie 42V. En revanche, il fournit du 5V sur sa troisième broche, et quand on branche le chargeur sur la batterie, cette présence du 5V informe la batterie que le chargeur est branché. La batterie commute alors son 36V sur ses bornes de sorties. Quand il détecte ce 36V, le chargeur peut alors aussi commuter sa sortie et la charge de la batterie commence. Quand la tension de la batterie atteint son maximum, le chargeur coupe sa sortie 42V.
Mise en marche
Quand le système est OFF, la batterie, 'endormie', ne sort pas de 36V sur ses bornes de puissance. L'électronique du bloc moteur n'ayant pas d'alimentation propre et n'étant pas alimentée ne fait donc rien. Seuls l'Intuvia et la batterie, qui disposent d'une source d'alimentation propre peuvent initier la mise sous tension. On peut ainsi mettre en marche le système :
- par le bouton on/off de l'Intuvia
- par le bouton de la batterie
Si on met en marche le système depuis l'Intuvia, la première tâche de celui-ci sera de réveiller la batterie. Pour ce faire, il envoie des impulsions sur le bus CAN. Ces impulsions sont envoyées toutes les 1.6 secondes environ. Si au bout de 38 tentatives, la batterie ne s'est pas réveillée, l'Intuvia se remet en veille. Quand il reçoit ces impulsions, le chip transceiver TLE6251-2G en charge de la communication CAN sur la batterie, est capable de réveiller le micro-contrôleur de la batterie. Une fois le micro-contrôleur sorti de sa léthargie, la batterie se met à délivrer du 36V en sortie, le moteur qui est alors alimenté se réveille aussi, et la discussion à trois peut commencer sur le bus CAN.
Dès que le moteur est alimenté, il envoie à l'Intuvia du 10V8 environ (sur S4) qui lui permet de recharger sa batterie.
Discussion sur le bus CAN
Quand l'Intuvia, la batterie et le moteur sont alimentés et en marche, les trois interlocuteurs émettent des messages (trames plus ou moins longues) sur le bus CAN à la vitesse de 500kbps.
Le principe du bus CAN est assez simple : les messages qui y circulent se composent principalement d'un identifiant et de données. Chaque interlocuteur peut envoyer un message sur le bus. Si l'identifiant du message intéresse un des interlocuteurs, celui-ci va récupérer les données qu'il contient et les traiter. Un même message peut intéresser plusieurs interlocuteurs. Les messages CAN comportent un CRC permettant de vérifier l'intégrité des données, et le bus a aussi un mécanisme anti-collisions pour que tout le monde puisse prendre la parole sur le bus, ce qui rend le bus CAN très fiable.
'Reniflage' du bus CAN
Pour renifler ce qui circule sur le bus CAN, j'ai pour une fois utilisé quelques modules tous faits :
- Un Arduino UNO comme micro-contrôleur
- Un module CAN à base de MCP2515 + TJA1050
- Un module HC-06 série-BlueTooth
- Des petits fils Dupont pour le câblage
Et pour récupérer les données et les enregistrer :
- Un smartphone Android avec l'application BlueTerm
Le module HC-06 étant de base configuré à 9600 bauds, je l'ai reconfiguré à 230400 bauds
Qui discute de quoi ?
On peut capturer les messages qui circulent sur le bus assez facilement mais on ne sait pas qui les a émis, ni à qui ils sont principalement destinés. On peut toutefois, au vu du fonctionnement normal du vélo faire quelques suppositions sur les messages émis :
Messages probablement émis par l'Intuvia :
- L'Intuvia met en marche la Batterie (impulsions sur le bus)
- L'Intuvia indique le niveau d'assistance au Moteur
- L'Intuvia demande au Moteur d'allumer les phares
- L'Intuvia demande à la Batterie de s'éteindre
Messages probablement émis par la Batterie :
- la Batterie indique au système de se mettre en marche (suite appui sur son bouton)
- la Batterie indique sa capacité résiduelle à l'Intuvia
- la Batterie indique sa version de firmware
Messages probablement émis par le Moteur
- le Moteur indique à l'Intuvia l'effort qu'il fournit
- le Moteur indique à l'Intuvia la vitesse du vélo
- le Moteur indique à l'Intuvia s'il faut changer de vitesse
- le Moteur indique à l'Intuvia sa version de firmware
- le Moteur indique à l'Intuvia son numéro de série
Analyse des trames CAN
En parcourant le forum Pedelec (voir liens en bas de page), j'ai pu trouver un fil de discussion relatif aux messages qui circulent sur le bus CAN. Nos amis allemands ont déjà démystifié une bonne partie des trames et du contenu de leur charge utile. Certaines de ces trames sont assez bien repérées et visibles dans le tableau ci-dessous. D'autres font l'objet de suppositions, ou sont encore complètement obscures et seront ajoutées si leur analyse devient plus précise.
| ID | Bytes | Emetteur | Periodicité(ms) | Fonction | Détails Charge Utile |
|---|---|---|---|---|---|
| 037 | 3 | Intuvia | 100 | Phares - Walk | D0: const 00 D1: Lights: 0x80=ON, 0x00=OFF D2: Walk: 0x01=ON, 0x00=OFF |
| 03B | 4 | Intuvia | 500 | Niveau Assistance | D0: Support Level: 09=OFF, 01=ECO, 02=TOUR, 03=SPORT, 04=TURBO D1: at boot FF, otherwise 00 D2-D3: const 00 00 |
| 048 | 6 | Moteur | 10 | Couple | D0-D1: Torque [1/10 Nm] D2-D3: Time [1/10 ms] |
| 0A3 | 6 | Moteur | - | Version Firmware Moteur | D0-D3: Firmware Version (D0.D1.D2.D3) |
| 0BE | 6 | Intuvia | - | Version Firmware Intuvia | D0-D3: Firmware Version (D0.D1.D2.D3) |
| 0C6 | 8 | ? | - | Circonférence Roue | D0-D1: Mininum D2-D3: Maxinum D4-D5: Default D6-D7: Adjusted Wheel Circumference [mm] |
| 0D0 | 4 | Moteur | 100 | G-Force X et Z | D0-D1: G-Fforce Z [1/100 m/s²] values around 981 D2-D3: G-Fforce X [1/100 m/s²]? values around 0 |
| 0D1 | 2 | Moteur | 100 | Vitesse | D0-D1: Speed [1/100 km/h] (0 when pushing bike backwards) |
| 0D2 | 4 | Moteur | 100 | Cadence | D0: const 00 D1: Cadence [1/min] D2-D3: const 00 00 |
| 0D3 | 6 | Moteur | 100 | Couple | D0-D1: Motor Torque at chaindrive actual [1/100 Nm] D2-D3: 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: motor rpm [1/min], negative when pushing bike backward |
| 0D4 | 4 | Moteur | 100 | Puissance | D0-D1: motor power draw [1/10 W] correlating with 0x101 Battery power draw (slightly less) D2-D3: const, power draw for max. bar graph display [1/10 W]?, at boot 0x0000 |
| 101 | 8 | Batterie | 500 | Batterie info | D0-D1: status, 0:run, 0xFFFF: charge D2-D3: current [mA], neg. when charging D4-D5: instant power [1/10 W] D6-D7: voltage [mV] |
| 111 | 7 | Batterie | 100 | Batterie info | D0-D1: const 00 00 D2-D3: Battery discharge limit indicator: normally 4E 20 = 20000, less when Battery runs low D4: const 00 D5: last full Battery charge [Ah], 8A, 89, 87, 86 changed after charging completely empty Battery, OWL active and Gene performance 72 (400Wh Battery) D6: Battery state of charge in % (0: Battery empty, 100: full) |
| 131 | 8 | Intuvia ou Batterie ? | - | Appuis Boutons | D0: const 00 D1: 01, at boot 02, in settings when entering software versions 05. D2-D6: const 00 00 00 00 00 D7: 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) |
| 170 | 8 | Moteur? Batterie? | 5000 | Température | D0-D1: Motor Temperature [1/100 K] D2-D7: const 00 00 00 00 00 00 |
| 202 | 8 | ? | 500 | Distance - Autonomie | D0-D3: total distance [m] D4-D7: remaining range [m] |
| 205 | 8 | Moteur | 100 | Ind. Chgmnt. Vitesse | D0: const 00 D1: 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 |
| 210 | 6 | Intuvia | 1000 | Date-Heure | D0=Year D1=Month D2=Day D3=Hours D4=Minutes D5=Seconds |
Liens
Forums
- Forum de Cyclurba.fr (français) : https://cyclurba.fr/forum-velo/112/moteur-pn-dalier-bosch.html
- Forum de Pedelecforum.de (allemand) https://www.pedelecforum.de/forum/index.php
- Fil sur les données du bus CAN (allemand) https://www.pedelecforum.de/forum/index.php?threads/bosch-active-can-daten-sammlung.40358/
- Forum de Pedelecforum.de (traduit -> fr) https://translate.google.com/translate?hl=fr&sl=de&u=https://www.pedelecforum.de/
- Fil sur les données du bus CAN (français) https://translate.google.fr/translate?hl=&sl=de&tl=fr&u=https%3A%2F%2Fwww.pedelecforum.de%2Fforum%2Findex.php%3Fthreads%2Fbosch-active-can-daten-sammlung.40358
Videos
- Dépose du Moteur : https://www.youtube.com/watch?v=1YdVVIgB0qc
- Remplacement des Roulements du Moteur : https://www.youtube.com/watch?v=7Ihq29kv1Sg
- Remplacement de la batterie Li-Ion de l'Intuvia : https://www.youtube.com/watch?v=0PhjZoKsu8E
- Aperçu du logiciel propriétaire BOSCH : https://www.youtube.com/watch?v=sUyU87cDs00