Published: Jul 11, 2022 by Matthias
Warnung: Die auf dieser Seite beschriebene Modifikation erfolgt auf eigene Gefahr. Ich kann das Nachmachen und die Nutzung des Akkupacks nicht empfehlen. Lithium-Akkus sind gefährlich und können bei Überladung oder Kurzschluss explodieren oder zu brennen anfangen. Die beschriebene Modifikation kann unerkannte Nebeneffekte haben und z.B. jederzeit später einen Kurzschluss auslösen und das Akkupack zerstören oder sogar zum Brennen bringen.
Kürzlich konnte ich über eine Sammelbestellung günstig einige ungenutzte EBike-Akkus erhalten, welche vernünftige Lithium-Zellen enthalten. Es handelt sich dabei um einen Akku von Continental, Type AN: 6802200313, 10INR19/66-5. Ich würde diese gerne an meinem Fahrrad nutzen, muss dazu allerdings die Elektronik des Akkus dazu überreden, ohne das originale Fahrrad zu funktionieren.
Hier tun sich mehrere Möglichkeiten auf:
- Das Fahrrad nachstellen, sodass der intelligente Akku wie gewohnt funktioniert -> dazu muss die CAN-Kommunikation des Fahrrads mitgeschnitten und nachgebaut werden. Ich habe kein passendes Fahrrad zur Verfügung und möchte ungern einen “Dongle” am Akku stecken haben
- Die bestehende Schaltung so hacken, dass sie als Schutzschaltung und Balancer für den Akku funktioniert, ohne auf das originale Fahrrad angewiesen zu sein
- Eine neue Elektronik einbauen, z.B. ein BMS aus dem Internet acquiriert für 30-50€.
Die Schaltungsanalyse, die bereits im Forum von Fingers Welt angefangen wurde, ist erstmal vielversprechend: Ein STM32, ein PIC, ein BQ77PL900 BMS-Chip mit Balancer, eine BQ34Z100 Fuel Gauge.
Die Akku-Elektronik besteht aus 2 Komponenten, welche über einen CAN Bus miteinander und mit dem Fahrrad kommunizieren
- Anwendungs-Board: STM32, Flash-Speicher, Bluetooth Low Energy Modul, Anschluss der 4 Tasten auf dem Akkupack
- BMS-Board: PIC, BMS, Fuel Gauge, 47 Ohm Balancing-Widerstände, 4 mOhm Lade- und Entlade Mosfets (P-Kanal: + geschaltet), Anschluss der 4 LEDs auf dem Akkupack
Am Akku sind 6 Leitungen herausgeführt über 2 verschiedene Stecker, welche jeweils den vollen Lade- oder Entladestrom (max. etwa 20A, begrenzt durch das BMS) tragen können
- PACK+: Lastausgang +
- PACK-: Lastausgang -
- DATA+: Datenleitung, immer über 1 MOhm auf das Akkupack gelegt
- DATA-: Daten Minus, etwa mit 200 Ohm mit PACK- verbunden
- CAN H: CAN
- CAN L: CAN
Macht das Akkupack nichts, so kann es in der Regel durch Anlegen einer Ladespannung an PACK+/PACK- aufgeweckt werden. Zum Laden muss DATA+ mit DATA- verbunden werden, zum Entladen sollte DATA+ mittels eines 22k-47k Widerstands mit DATA- verbunden werden.
Soweit, so gut. Leider schaltet der Entladestrom nach weniger als 1 Stunde wieder ab. Zudem wurde beobachtet, dass das Akkupack so nicht gebalaced wird.
Trotz des (wenig) intelligenten BMS BQ77PL900 hat der PIC weitere Kontrolle über den Zustand des Akkus: Er muss die Schalt-Mosfets freigeben, damit der Akku eingeschaltet wird. Also: PIC raus oder diesem eine neue Software verpassen. Im Reset halten war leider nicht erfolgreich und führte zu Rauchentwicklung auf der Platine.
Die Modifikation am BMS
Ich habe mich für eine Modifikation entschieden, welche den PIC ablötet und dem BQ77PL900 volle Kontrolle über das BMS gibt.
Benötigte Werkzeuge:
- Torx 10 Schraubendreher für Gehäuse (Schrauben sind teils einige cm versenkt) und Anschlüsse
- Heißluftlötstation, notfalls Heißluftfön, zum Entlöten des PIC sowie optional der Daten-Anschluss-Header
- Elektroniklötkolben, um eine Drahtbrücke einzulöten
- 3cm Draht, vorzugsweise Kupferlackdraht, aber notfalls geht alles herumliegende unter 0,5mm Durchmesser
- Multimeter
Das Gehäuse wird als erstes geöffnet und der Deckel abgenommen. Das kleine Kabel zum USB-Anschluss an der Anwendungsplatine abgesteckt. Im Anschluss wird der Folienleiter von beiden Platinen abgezogen. Möglichst gerade ziehen, die Verklebung löst sich durch leichtes Wackeln. Da der Folienleider nicht mehr gebraucht wird, darf er dabei auch zerstört werden, ist mir bei 4/4 Akkus allerdings nicht passiert.
Schritt 1: Anschlüsse am BMS lösen
Zuerst lösen wir die Plus-Verbindung an der BMS Platine. Achtung: Die + Verbindung darf nie verbunden sein, wenn das Balancer-Kabel nicht steckt. Hierdurch kann der BMS Chip zerstört werden. Zudem bleibt die BMS Platine über das Balancer-Kabel unter Spannung, deswegen immer aufpassen, mit gelösten Kabeln oder Werkzeug nicht die Platine zu berühren.
Schritt 2: Anwendungsboard entfernen
Durch erhitzen mit dem Heißluftfön auf etwa 100 Grad (Fön auf 200-300 Grad stellen und 30 Sekunden gleichmäßig über die Platine fönen) löst sich der Kleber gut. Die Platine kann abschließend von einer Kante her angehoben und entfernt werden. Die Klebereste habe ich zurück auf den Akkupack gedrückt.
Schritt 3: Weitere Kabel ablösen
Nun werden die restlichen Kabel gelöst - unbedingt erst den Balancer-Stecker und danach den Masse-Verbinder lösen. Trotz des Klebers kann der Schraubendreher einfach in die Schrauben eingesteckt und gedreht werden - hinterher lässt sich der Kleber leicht von den Schrauben abpulen. Der Balancerstecker ist manchmal mit Kleber fixiert, dieser lässt sich normalerweise trotzdem gut abziehen. Die Entriegelung mit dem Finger fest zusammendrücken und leicht wackeln, dabei aufpassen, keine Kabel abzureißen. Der Masseverbinder kann nach oben gebogen werden, dann können die Haltepins oben leicht mit den Fingern geöffnet und die Platine herausgenommen werden.
Schritt 4: PIC auslöten
Mit Heißluft auf 450 Grad wird der PIC ausgelötet. Hierbei für 20 Sekunden den Bereich um den PIC herum durch zügiges Kreisen vorwärmen, dann die Kreise verkleinern, um hauptsächlich die Pins an den 4 Seiten des PICS zu erwärmen. PIC mit einer Pinzette greifen, damit leichten Zug ausüben. Innerhalb von 1 Minute sollte sich der PIC von der Platine lösen. Aufpassen, keine weiteren Bauteile abzulösen.
Im Anschluss eventuell entstandene Lötbrücken auf den Pads auf der Platine wieder öffnen: Das geht mit dem Lötkolben und etwas frischem Lötzinn, alternativ mit Flussmittel oder Entlötlitze.
Schritt 5: Buchsenleiste zum BMS programmieren auflöten
Ein Stück Buchsenleiste oder Stiftleiste dient zum Anschluss der Jumper-Wires, mit denen später mittels Arduino oder anderer Methoden der BMS Chip über I2C programmiert werden kann. Die Pin-Belegung ist dabei (von links nach rechts): GND SCL SDA EEPROM
Schritt 6: BMS Chip die Kontrolle über Ausgangs-FETs geben
Es gibt 2 Möglichkeiten, dem BMS Chip die Kontrolle über die Lade- und Entlademosfets zu geben:
- Variante 1: 2 Pins vom PIC mit 3,3V verbinden. Hierzu auf dem Bild die 2 Pins oben rechts, wobei ein Pin am rechten Rand frei bleibt, mit 3,3V verbinden. Die 3,3V gibt es z.B. an dem oberen Kondensator rechts neben dem PIC am linken Pin.
- Variante 2: Die beiden kleinen Dioden neben dem BQ überbrücken (jeweils einzeln - nicht miteinander verbinden!). Das geht am besten, wenn die ausgelötet werden. Hierzu mit dem 380-400 ˚C heißen Lötkolben einen Pin der Diode solange erhitzen, bis sie komplett abzuheben ist, alternativ mit Hilfe der Pinzette die Pins einzeln ablöten.
Die Varianten dürfen keinesfalls beide gleichzeitig umgesetzt werden!
Optionaler Schritt 7: Datenbuchse für I2C auflöten
Für den (einfachen) Zugriff auf den I2C-Bus von draußen können wir die Buchse zu dem Verbindungskabel für die Daten-Pins zweckentfremden und zusätzlich zur Buchsenleiste anlöten.
Ablöten klappt am besten mit Heißluft: Hierzu die Buchse im Schraubstock einspannen, die Lötpunkte mit Heißluft erwärmen und die Platine nach oben abziehen.
Zum Auflöten die äußeren Pins etwas abbiegen und seitlich von unten an die angelötete Stiftleiste löten.
Schritt 8: Testen
Zum Testen wird der Masse-Anschluss wieder verschraubt und der Balancer-Stecker eingesteckt. Es sollte nicht funken, nicht qualmen, nicht warm werden.
Am Ausgang (Masse gegen PACK+) sollte normalerweise keine Spannung messbar sein, da der BMS-Chip noch aufgeweckt werden muss.
Das positive Batteriekabel einmal kurz gegen PACK+ halten, hierbei darf es kurz ein klein wenig funken.
Nun sollte zwischen Masse und PACK+ die Batteriespannung messbar sein. (Merke: Wie erwähnt muss der positive Anschluss der Batterie nicht angeschlossen sein, über das Balancer-Kabel ist auch der BAT+ der Platine mit der positivsten Zelle verbunden).
Du kannst nun auch das Laden und Entladen über die PACK Anschlüsse testen, hierzu sollte allerdings das BAT+ Kabel angeschlossen werden, damit der kleine Balancer-Draht nicht überlastet wird. Zum temporären Anschluss können Drähte sehr einfach in die Schraubanschlüsse gesteckt werden - die Litzen halten aufgrund des Gewindes ein wenig darin. Achtung: Keinen Kurzschluss machen :-)
Im Werkszustant sollte das BMS ein Überladen über 4,3V pro Zelle und ein Tiefentladen unter 2,7V pro Zelle verhinden. Die Balancing-Funktion ist allerdings deaktiviert.
Schritt 9: BMS umprogrammieren
Im BQ77PL900 Programmer Github repository findest du mein PlatformIO Projekt, um den BQ BMS Chip mit einem Arduino zu programmieren. Ich verwende den 3,3V Arduino Pro Mini.
Statt in PlatformIO sollte der Sketch im src
-Ordner auch in der Arduino IDE funktionieren, es werden keine Libraries benötigt.
Verbinde GND, SCL, SDA und EEPROM. Der Arduino muss extern versorgt werden (z.B. über den USB Anschluss auf dem Computer). Um zu verhindern, das EEPROM zu beschreiben, kannst du den EEPROM Pin auch offen lassen. Um diesen später doch zu beschreiben, musst du dann allerdings deinen BQ nochmal power cyclen (BAT+ und Balancer-Kabel abschrauben und wieder verbinden).
Theoretisch sollte ein 5V Arduino funktionieren, wenn:
- Du keine Pullups auf dem I2C verbaust, um diesen nicht auf 5V zu ziehen
- Du 3 Dioden (z.B. 1N4148) in Reihe zum EEPROM Pin schaltest, damit dieser max. 3,3V sieht
Ende
So, das wars. Ich hoffe, bei dir qualmt jetzt nichts… Ich habe den Umbau an 2 BMS durchgeführt und die Lade- und Entladeabschaltung erfolgreich getestet. Trotzdem gilt: Lithium-Akkus sind gefährlich und wir wissen nicht genau, welche Teile am BMS wir nun vergessen haben & was da ggf. noch passiert. Lieber nicht nachmachen sondern für 25-50€ ein BMS kaufen!
Weitere Erkenntnisse
- Der BQ77PL900 verhält sich im Balancing manchmal komisch. Die Hysterese wird von mir auf 0V progammiert (OVH=0x03), das scheint aber nur mit höherer Abschaltspannung (ab 4,25V) zu funktionieren, ansonsten balanced er deutlich weiter, entlädt also Zellen um etwa 50mV.
- Meine BQ77PL900 schalten alle bei etwas niedrigerer als konfigurierter Spannung ab
- Die Balancer-Enable Register (0x03, 0x04) spiegeln leider nicht den Ist-Zustand des Balancers wieder, sie sind im Standalone Modus dauerhaft auf 0.
- Die 3,3V auf dem BMS Board werden durch den kleinen QFN-8 LDO, also einen Linearregler, erzeugt. Mit PIC im Reset hat bei mir etwas gequalmt, vermutlich ein Vorwiderstand des LDO, da dieser nicht für die Last ausgelegt ist(?) und der PIC im Reset mehr Strom braucht(?). Ohne PIC konnte ich das qualmen nicht nachvollziehen
- Der Step-Down in der Nähe der 2 Datenanschlüsse scheint nur für den CAN-Transceiver zu sein
- Der Balancing-Strom beträgt etwa 100 mA über die 47 Ohm SMD Widerstände
- Der Innenwiderstand des BMS beträgt etwa 14 mOhm - 12 mOhm im + Zweig (inkl. Fets) und 2 mOhm im - Zweig (hauptsächlich der Shunt)