Search
No results for your search.
Sorry, an unexpected error occurred

Das Thema ist in Bearbeitung... weitere Details-, Ergänzungen oder Korrekturen sind willkommen.

Beim Reset muss man unterscheiden zwischen 'Akku-Reset' und Reset des 'SoH' (State of Health) sowie 'Ladezyklenzählers'. 

Ein Akku-Reset kann nötig werden, wenn der Akku, aufgrund eines unerwarteten externen Fehlers in der Stromerelektrik (z.B. Kurzschluss), in den Sicherheitsmodus schaltet. Wenn dies passiert kann der Stromer nicht mehr gefahren werden und der Akku muss zu Stromer eingesendet werden. Stromer kann den Sicherheitsmodus zurücksetzen (Akku-Reset) und der Akku sollte danach wieder einsatzbereit sein. Anders liegt der Sachverhalt beim Reset des State of Health (SoH) und des Ladezyklenzählers, wie er nach einem Zellentausch nötig werden kann.


SoH & Ladezyklenzähler Reset - warum?

Nach meinem Wissenstand ist ein spezifischer SoH/Ladezyklenreset nach einem Zellentausch bei den alten BO-Akkus und den älteren BQ-Akkus (vor 2016) nicht nötig. Das BMS "akzeptiert" die neuen Zellen und die Neureichweite kann wieder erreicht werden. Anders bei den Akkus der BQ Serie ab ca. 2016. Hier wird bei einem Zellentausch der alte im EEPROM 24LC256 abgespeicherte Wert des SoH und des Ladezyklenzähler NICHT auf Werkseinstellungen zurückgesetzt. Das BMS "rechnet" nach wie vor mit den alten Werten. Resultat ist, dass der Akku nun zwar neue Zellen hat aber nur die alte "Reichweite" gefahren werden kann.

Ein Reset ist bei den BQ Akkus nicht über einen einfachen Resetknopf oder Jumper auf der Platine zu machen. Vielmehr passiert dieser über den CAN-Bus, was entsprechende Software voraussetzt.


Muss ich IT Kenntnisse haben?

Nein. Als Endkunde kann man den "alten" Stromer Akku auch ohne diese wieder auf "Neu" trimmen. Mindestens drei Refurbisher bieten einen 'SoH/Ladezyklenreset' in Kombination mit einer Zellerneuerung bei BQ-Akkus an.

👉 Siehe die entsprechende Tabelle hier im Kapitel: 'Reparatur / Neubestückung (Refit / Refurbishing) / Occasionen'


Reverse-Engineering

Disclaimer: Die folgenden Abschnitte enthalten ein paar technische Basisinformationen zu den Stromerakkus der BQ Serie. Sie dienen lediglich als Hilfe für IT-versierte DIY's welche eine Lösung für den Reset des SoH & Ladezyklenzählers nach einer Zellerneuerung finden möchten.

Es ist nicht die Absicht hier eine "Endkunden-Easy-Going-Lösung" zu veröffentlichen. Auch der Autor hat diese nicht.


Akkutypen

Welche Akkumodelle es von Stromer gibt kann man hier im Kapitel 'Modellpalette - Technische Daten und Sicherheitshinweise' nachlesen.

Bei den neueren Akkus der BQ-Serie mit 48 V Nennspannung gibt es zwei Lieferanten, HTE (TD Hightech Energie) und Simplon. Sie unterscheiden sich äusserlich durch die Anzahl Schrauben beim Ladesockel.

Nur für die Akkus des Herstellers HTE gibt es die Möglichkeit den SoH (State of Health) und den Ladezyklenzähler nach einer Zellenerneuerung zurückzusetzen. Bei Simplon sind die entsprechenden Bereiche im EEPROM durch einen Schreibschutz des Herstellers geschützt und können nachträglich nicht geändert werden.


Platine der BQ-Akkus von HTE (3-Schrauben)

Hier zeige ich eine Platine der BQ-Akkus von HTE (3-Schrauben) und verorte die massgeblichen Bauteile für einen SoH/Ladezyklenzähler-Reset. Die Öffnung der JST GH (1,25 mm) Steckverbindungen 'J303' & 'J304' (Bild in der linken Ecke) liegt auf der Gegenseite der Platine.


J304

PGC= Programming Clock Pin
PGD= Programming Data Pin
GND= Ground
VDD= Power Supply
VPP= Programming Voltage

J303
SCL= Serial Clock
SDA= Serial Address/Data I/O

Entscheidend für den Reset des SoH und Ladezyklenzählers sind die beiden CHIP's Microchip PIC18F4685 und das externe Microchip EEPROM 24LC256.


OD Dump des CAN-Bus

OD steht für octal dump und bezeichnet ein UNIX Kommando mit dem ein Dump (Speicherauszug) in verschiedenen für Menschen lesbaren Formaten möglich ist. Dieser Dump ist nötig um ein sog. Reverse Engineering durchführen zu können. Er dient als Basis um herauszufinden, welche Speichersegmente für einen SoH/Ladezyklenzähler Reset zurückgesetzt werden müssen.

Software:
Mit dumpcap kann ein OD Dump realisiert und danach in Wireshark analysiert werden. Wie das geht kann man u.a. hier anschauen. Weitere Theorie gibt es hier. Verschiedene CAN-Bus Adapter bieten auch All in One Lösungen an.

Hardware:
Hardwareseitig braucht man einen CAN-Bus Adapter um den Bus sniffen (abhören) zu können. Siehe u.a. 1 | 2 | 3.

Dump der BQ-Akkus:
Im speedpedelecreview.com - Forum hat der User Jebolisch einen solchen CAN-Bus Dump für die Akkus BQ983 & 814 von HTE sowie den BQ618/655 von Simplon veröffentlicht und soweit möglich dokumentiert. Ich habe die Datei grafisch etwas aufgehübscht und stelle sie hier zur Verfügung.

Schreiben und Lesen eines EEPROM

Schreiben und Lesen eines EEPROM (Electrically Erasable Programmable Read-Only Memory) kann aus mehreren Gründen eine wertvolle Komponente in vielen Projekten sein. Ein EEPROM behält seine gespeicherten Daten auch nach dem Ausschalten der Stromversorgung bei. Diese Funktion ist nützlich für die Speicherung kritischer Daten, die über Stromzyklen hinweg erhalten bleiben müssen, wie z. B. Konfigurationseinstellungen, Kalibrierungswerte, Benutzereinstellungen, Speicherung der kritischen Variablen des Programms oder historische Datenprotokolle.

Wie ein EEPROM programmiert werden kann ist z.B. hier beschrieben.

Voraussetzungen:

import smbus2

# I2C-Bus und EEPROM-Adresse anpassen
bus = smbus2.SMBus(1)  # Ändere 1, wenn du einen anderen Bus verwendest
address = 0x50  # Ändere die Adresse, wenn sie bei deinem EEPROM anders ist

def write_byte(register, data):
  """Schreibt ein Byte an die angegebene Registeradresse im EEPROM."""
  bus.write_byte_data(address, register, data)

def read_byte(register):
  """Liest ein Byte von der angegebenen Registeradresse im EEPROM."""
  return bus.read_byte_data(address, register)

# Beispiel für das Schreiben und Lesen
write_byte(0x00, 0x55)  # Schreibe 0x55 an die Adresse 0x00
data = read_byte(0x00)  # Lese das Byte von der Adresse 0x00
print("Gelesenes Byte:", data)






Erklärung:


Geht ein Reset des SoH/Ladezyklenzählers ohne den Akku zu öffnen?

Grundsätzlich ist der CAN-Bus nicht dafür gedacht einen Reset durchzuführenWenn man weiss welche Register geändert werden müssen ist dies aber möglich.

Die Schweizer Firma Swissvolts bietet den Reset über den CAN-Bus an. Der Akku muss dazu nicht geöffnet werden. Bei meinem BQ983 konnte ich zusehen. 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 - 100%!

👉 Swissvolts ist nicht die einzige Forma die den Rest anbietet. Siehe die entsprechende Tabelle hier im Kapitel: 'Reparatur / Neubestückung (Refit / Refurbishing) / Occasionen'


Weitere Informationen

Datenblatt Microchip PIC18F4685
Datenblatt Microchip EEPROM 24LC256

Es gibt mehrere Methoden den Chip bzw. Stack zurückzusetzen: Link 1 | Link 2 | Link 3 

Dokumentation CIA 301
CiA develops and publishes technical documents. Specifications contain functional requirements and permissions to be implemented in hardware or software. Typical examples are the CANopen CC (classic) application layer (CiA 301) or the CANopen device profile for generic I/O modules (CiA 401 series).

Phyton Documentation
This is the official documentation for Python 3.13.1.

On This Page
Created with Notice