BOSCH E-Bike

De Wiki LOGre
Aller à : navigation, rechercher
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'

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

Intuvia

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

Batterie de Cadre

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

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

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

Connexions du support 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

Connecteur sur 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

Connecteurs sur Moteur PerformanceLine

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

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

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

Videos