Informations générales
Lors de la réinitialisation, il faut faire la différence entre la 'réinitialisation de la batterie' et la réinitialisation du 'SoH' (State of Health) et du 'compteur de cycles de charge'.
Une réinitialisation de la batterie peut être nécessaire si la batterie passe en mode de sécurité en raison d'une erreur externe inattendue dans le système électrique du courant (par ex. court-circuit). Si cela se produit, les 48 V de la batterie sont coupés et le Stromer ne peut plus être conduit. La batterie doit être envoyée au Stromer pour réinitialiser le mode de sécurité (réinitialisation de la batterie).
Il en va autrement de la réinitialisation de l'état de santé (SoH) et du compteur de cycles de charge, qui est nécessaire après un renouvellement des cellules (Refit, Refurbish, préparation).
Réinitialisation du SoH & du compteur de cycles de charge - pourquoi ?
D'après ce que je sais, il n'est pas nécessaire de réinitialiser spécifiquement le SoH/les cycles de charge après un changement d'éléments pour les anciens accumulateurs BO et les anciens accumulateurs BQ (avant 2016). Le BMS 'accepte' les nouvelles cellules et la nouvelle autonomie peut à nouveau être atteinte. Il en va autrement pour les batteries de la série BQ à partir de 2016 environ : en cas de remplacement des cellules, l'ancienne valeur du SoH et du compteur de cycles de charge enregistrée dans l'EEPROM 24LC256 n'est PAS réinitialisée sur le réglage d'usine. Le BMS continue de "calculer" avec les anciennes valeurs. Le résultat est que la batterie a certes de nouvelles cellules, mais que seule l'ancienne 'autonomie' peut être utilisée. La réinitialisation des batteries BQ n'est pas possible via un simple bouton de réinitialisation ou un cavalier sur la platine. Elle se fait plutôt via le bus CAN, ce qui nécessite un logiciel adéquat.
Muss ich IT Kenntnisse haben? Geht es ohne den Akku zu öffnen?
Es geht ohne IT-Kenntnisse und ohne den Akku zu öffnen. Die Schweizer Firma Swissvolts bietet den Reset über den CAN-Bus an. Bei meinem BQ983 konnte ich zusehen. Der Rosenbergerstecker wurde mit dem Akkusockel verbunden und in wenigen Sekunden war der SoH/Ladezyklenzähler auf Werkseinstellung gesetzt. Allerdings konnte das vor Ort nicht kontrolliert werden weil mein Akku 100 % geladen war. Man sagte mir ich solle ein paar km fahren. Das Omni zeigte bei der ersten Fahrt zuerst einen SoC von 74 % an, was dem alten SoH entsprach. Und tatsächlich sprang der Wert nach ein paar km Fahrt auf 100 %. Über das API konnte ich danach den SoH auslesen – wieder 100 %!
Types de batteries
Les modèles de batteries disponibles chez Stromer peuvent être consultés sous 'Gamme de modèles - caractéristiques techniques et consignes de sécurité'. sur le sujet.
Pour les batteries plus récentes de la série BQ avec une tension nominale de 48 V, il y a deux fournisseurs, HTE (TD Hightech Energie) et Simplon. Ils se distinguent extérieurement par le nombre de vis au niveau du socle de chargement.

Platine des accumulateurs BQ de HTE (3 vis)
Je montre ici un circuit imprimé de l'accu BQ de HTE (3 vis) et situe les composants déterminants pour une remise à zéro du SoH/compteur de cycles de charge. L'ouverture des connecteurs JST GH 'J303' & 'J304' (image dans le coin gauche) se trouve sur le côté opposé de la platine.

J304
1- x
2- PGC= broche d'horloge de programmation
3- PGD= Programmation Data Pin
4- GND= Terre (Vss)
5- VDD= Alimentation électrique
6- VPP= tension de programmation
J303
1- GND= terre
2- SCL= horloge sérielle
3- SDA= Serial Address/Data I/O
4- VDD= Alimentation électrique
Rétro-ingénierie
Les deux CHIP's sont décisifs pour la réinitialisation du SoH et du compteur de cycles de charge Microchip PIC18F4685 et l'externe Microchip EEPROM 24LC256. Um die ‚Innereien‘ zu erforschen muss man etwas Forensik betreiben.
OD Dump du bus CAN
OD signifie octal dump et désigne une commande UNIX qui permet d'obtenir un dump (extrait de mémoire) dans différents formats lisibles par l'homme. Ce dump est nécessaire pour pouvoir effectuer ce que l'on appelle une rétro-ingénierie. Il sert de base pour déterminer quels segments de mémoire doivent être remis à zéro pour une réinitialisation du compteur de cycles de charge/soH.
Logiciel : Avec dumpcap peut réaliser un OD Dump et ensuite l'utiliser dans Wireshark être analysées. Pour savoir comment faire, il faut entre autres ici sur le site. Il y a plus de théorie ici. Différents adaptateurs CAN-Bus proposent également des solutions tout-en-un.
Matériel informatique : Côté matériel, il faut un adaptateur CAN-Bus pour pouvoir sniffer (écouter) le bus. Voir entre autres 1 | 2 | 3.
Dump des batteries BQ : Sur le site speedpedelecreview.com - Forum, l'utilisateur a Jebolisch publié un tel dump CAN-Bus pour les batteries BQ983 & 814 de HTE ainsi que pour les BQ618/655 de Simplon et l'a documenté dans la mesure du possible. J'ai légèrement amélioré le graphique du fichier et je le mets en ligne ici à disposition.
Écriture et lecture d'une EEPROM
Pour pouvoir réécrire les adresses mémoire décisives dans lesquelles le SoH/compteur de cycles de charge est enregistré, il faut savoir comment lire/écrire dans une EEPROM (Electrically Erasable Programmable Read-Only Memory). Une EEPROM conserve les données enregistrées même après la coupure de l'alimentation électrique. Cette fonction est utile pour le stockage de données critiques qui doivent être conservées pendant les cycles d'alimentation. Par exemple, les paramètres de configuration, les valeurs d'étalonnage, les paramètres utilisateur, la sauvegarde des variables critiques du programme ou les journaux de données historiques.
La manière dont une EEPROM peut être programmée est par exemple ici décrites.
Conditions préalables
- Installation de Python : Assure-toi que Python est installé sur ton système.
- Bibliothèque I2C : Tu as besoin d'une bibliothèque Python qui permet la communication I2C. Une option populaire est
smbus2
. - Matériel informatique : Le PIC18F4685, le 24LC256 et les connexions correspondantes doivent être construits en conséquence.
Exemple d'écriture et de lecture
1 import smbus2
2 # Adapte le bus I2C et l'adresse EEPROM
3 bus = smbus2.SMBus(1) # Change 1 si tu utilises un autre bus
4 address = 0x50 # Change l'adresse si elle est différente pour ton EEPROM
5 def write_byte(register, data) :
6 "Ecrit un octet à l'adresse de registre indiquée dans l'EEPROM".
7 bus.write_byte_data(address, register, data)
8 def read_byte(register) :
9 "Lit un octet à l'adresse de registre indiquée dans l'EEPROM".
10 return bus.read_byte_data(adresse, registre)
10 # Exemple d'écriture et de lecture
11 write_byte(0x00, 0x55) # Ecrit 0x55 à l'adresse 0x00
12 data = read_byte(0x00) # Lit l'octet à l'adresse 0x00
13 print("Octet lu :", data)
Explication
- Importation : Le site
smbus2
-La bibliothèque I2C est importée pour permettre la communication I2C.
- Bus I2C et adresse : Les variables
bus
etadresse
sont définies pour indiquer le bus I2C et l'adresse de l'EEPROM.
- Fonctions :
write_byte
: Ecrit un octet à une adresse donnée dans l'EEPROM.ead_byte
: Lit un octet d'une adresse donnée dans l'EEPROM.
Une réinitialisation est-elle également possible sur le plan matériel (cavalier de réinitialisation) ?
Für den DIY ist diese Variante die einfachste. Es muss keine Software geschrieben werden. Der Nachteil ist, dass der Akku geöffnet werden muss. Weiter muss man wissen, wo und wie ein solcher Reset gemacht werden kann.
Les développeurs de BMS facilitent parfois cette tâche en proposant un 'cavalier de réinitialisation' sur le circuit imprimé. C'est par exemple le cas pour les accumulateurs de courant de la série BO (Voir ou "réinitialisation de la batterie"). Il n'y en a pas sur les batteries BQ.
Es gibt mehrere Methoden den Microchip und das EEPROM urückzusetzen: Lien 1 | Lien 2 | Lien 3. Pour les batteries BQ, la clé se trouve au niveau du connecteur JST GH 'J304' (broches 4 & 6) à l'arrière du BMS.

Ils commandent les broches correspondantes du PIC18F4685 de Microchip.

Plus d'informations
Fiche technique Microchip PIC18F4685 Fiche technique Microchip EEPROM 24LC256
Documentation CIA 301 CiA développe et publie des documents techniques. Les spécifications contiennent des exigences fonctionnelles et des autorisations à mettre en œuvre dans le matériel ou le logiciel. Des exemples typiques sont la couche d'application CANopen CC (classique) (CiA 301) ou le profil de périphérique CANopen pour les modules d'E/S génériques (série CiA 401).
Documentation Phyton Ceci est la documentation officielle pour Python 3.13.1.
Amusez-vous bien ! ... et comme je l'ai écrit, les réactions sont les bienvenues !