Projekt: open-source-BMS, 2A-Balancer, bis 18 Zellen

Hallo,

ich arbeite aktuell an einem eigenen BMS, weil mir (ehrlich gesagt) das, was die Chinesen alle so basteln, gewaltig auf den Keks geht.

Geplante Features:

  • bis 18 Zellen (16-90V)
  • 20 analoge Eingänge für Temperaturfühler
  • 12V-Relaisausgang mit ausreichend Power
  • Strommessung mit Hallsensor (extern)
  • Controller: RP2040 oder ESP32
  • optional: CAN-Bus und/oder RS485
  • passives Balancing mit 2A
  • open source (Basis: MicroPython), open hardware
  • native Anbindung an Victron
  • hergestellt irgendwo in der EU, nix China
Was ich bereits habe: erste Version von Schaltplan und Layout, Evaluierungssystem für den Batteriecontroler (ADBMS1818). Aktuell suche ich einen Bestücker für einen Prototypen, der mir für die darauffolgende Kleinserie einen brauchbaren Preis in Aussicht stellt.

Somit meine wichtigste Frage: wieviel würdet ihr für so ein Teil freiwillig ? bezahlen?

Muß ein BMS eurer Meinung nach unbedingt WLAN und/oder Bluetooth haben?

Hat jemand Lust, an diesem Projekt mitzuarbeiten?

NB, der ADBMS1818 lässt sich kaskadieren, das Ganze wäre prinzipiell auch für >18 Zellen geeignet wenn man es modularisiert. Nächstes Jahr …

Darf ich mal...

  • fragen, was dir an chinesischer Qualität nicht gefällt?

  • wofür du 20 Eingänge für Temperaturfühler brauchst ?

  • warum du passiv balancieren willst ? Und wie willst du ggf. von 17 Zellen Je 7 Watt abführen ?

  • ja ich möchte Bluetooth und App haben, für reduzierten Befehlssatz, PC für alle Funktionen

Wenn ein eigenes BMS, dann kreative Balancingmethoden 2.0 und 3.0, nicht nur das statische Ab wieviel Volt und welche Differenzspannung. Ich kann dir da Ideen geben.

Ich lasse Platinen bei Aisler machen. Sehr zuverlässig in Lieferzeit, faire Preise für kleine Stückzahlen, und die machen auch Bestückung, glaube ich.

Ich habe keinen Bock, mehr Geld an die Chinesen zu zahlen als unbedingt nötig. Es geht mir schon gewaltig auf den Keks, dass es keine anderen Quellen für Batterien gibt, mit denen sich ein Speicher in brauchbarer Zeit amortisiert.

Außerdem bin ich ein Freund von Hallsensoren statt Shuntwiderstandmonstern, und von externen Relais statt Transistoren.

Die Chinahardware mag OK sein, aber die Software ist eher unterirdisch. Finde ich. Balancing das keine Rücksicht auf den Innenwiderstand der Zellen nimmt, keine dynamische Maximalspannung die die Zellkennlinien berücksichtigt (eine Batterie mit 163.4V Zellspannung hat ein höheres Maximum als eine mit 153.39 und 1*3.45), etc.

Wenn ich 18 Zellen habe, dann will ich auch deren Temperaturen sehen. Der ADBMS hat genug analoge Eingänge, zwei 8fach-CMOS-Multiplexer dazu, fertig, das ist hardwaretechnisch so gut wie kein Aufwand.

Dicke Keramikwiderstände, ggf. einen Ventilator dran, bei zu vielen Zellen halt nicht alle gleichzeitig. Abgesehen davon lässt sich dieser Controller auch als aktiver Balancer betreiben, aber das ist mehr Hard- und Software-Aufwand und irgendwo muss ich ja mal anfangen. (Separate aktive Balancer halte ich für sinnfrei, jedenfalls im "Normalbetrieb".)

Bluetooth und ne App dazu muss jemand programmieren. Wifi wäre vergleichsweise einfach, ein Webserver mit auf das Ding und fertig.

Aisler ist leider immer noch x-mal so teuer wie JLPCB … und deren Qualität bei Bestückung mit eng bedrahteten ICs fand ich bei meiner letzten Bestellung nicht so berauschend.

Deine kreativen Methoden interessieren mich. (Nein, mein aktueller Algorithmus ist alles Andere als statisch.)

Bleibt die Preisfrage.

NB, wenn jemand ein bezahlbares bistabiles Relais mit 12V Schaltspannung und 100V/200A Last kennt …

Ich diskutiere gerne, auch sachlich kontrovers.

kannst alle meine Ideen haben.

Beim aktiven Balancer hast du zwei multiplexer als Umschaltung ,Quelle und Ziel, plus einen dritten, der die kondesatorkette umschaltet. 2 Mal (s-1) plus 4 Mosfets. Für die Schaltung die ich kenne

JLPCB schaue ich mir Mal an.


Hallo MatthiasU schreib doch mal shiningmen das er dir einen Einladungslink für seine discord Server zukommen lassen kann. Das BSC entwickelt sich aktuell genau in die Richtung die du auch denkst.. eventuell kann man da zusammen an einem Strick ziehen anstelle zwei unterschiedliche Entwicklungen die das gleiche erreichen wollen

@shiningman hat vor ein paar Tagen angekündigt, dass ihm eine BMS-Erweiterung für den BSC zu viel Arbeit ist.

Kann ich verstehen …

Ich hatte mal in Betracht gezogen, meine Balancerideen am BMS vorbei direkt auf die Akkus anzuschliessen, wobei man die Spannungsmessung des BMS auf dem normalen UART Weg aus dem BMS auslesen und mitbenutzen würde.

War mir dann aber im Moment zuviel Arbeit.

Ist eigentlich schade drum. Würde für jedes BMS gehen, auch balancerlose, wäre wirksamer als Hochstrom-Balancer , wäre vorteilhaft unter ungünstigen Betriebsbedingunen (selten und/oder nur kurze zeit voll). Würde also den lästigen Fall von Selbstentladung bei Zellen viel besser und zuverlässiger abfangen als normale Balancer jeder bekannten Art.

Hallo

Sind da irgendwelche Fortschritte beim Projekt ?

Ich bin beim gleichen Thema "Schwanger", weiss jedoch nicht in welchem Monat....

Eingangsbemerkung: Zellen und Panels halten heute sehr lange, >30J. Somit sollte die verbundene Elektronik ebensolange halten.

Der mögliche Wirkungsgrad der Leistungselektonik ist faktisch ausgereizt. Langlebigkeit ist jetzt gefragt.

Bezug vorzugsweise auf die LiFeo 280/300Ah Zellen. Diese Gehäusebauform wird uns noch lange begegnen.

Mein Anliegen bei dem Thema:

-BMS muss > 30J funktionieren, Entsprechend der Lebensdauer der LiFePo Zellen. Somit MTBF ist relevant.

-BMS muss 100,00% sicher sein. ggf. mit redundanter Ueberwachung durch unabhängige Instanz.

-BMS mus reparierbar sein, ggf. 1:1 austauschbar wie eine normale metriesche Schraube.

-BMS muss aktiv balancieren, das spart Lüfter und Kühlkörper....und Energie.

-ein 16S / 280Ah / 48V(51V) Block soll wahlweise paralell oder auch seriell eingesetzt werden können, bei identischer Hard/Software.

-Pläne, Schema, Service Manual muss offen vorliegen, oder nach Ablauf von Frist offengelegt werden. Solche Unterlagen waren früher Standard bei jedem Gerät!

-Software nur auf Basis Open-Source. (Arbeite selbst nur noch mit Linux, >MX-Linux, Linux-Mint, füher Ubuntu. Funzt und schont Nerven. Win$=NoGo, (ungeimpft).

OK, das sind einige Anforderungen !

Ich habe Tage und Stunden verbracht um mich über Design und Datenblätter, etc. zu informieren.

FAZIT daraus: Linear Technolgy, heute im Konzern von Analog Devices scheinen die praktikabelsten Lösungen anzubieten. Da ist der erwähnte Chip vom ThreadStarter ein nützlicher Vorschlag. Passives Balancing taugt nicht bei den zu erwartenden Strömen und Verlustleistungen, Lüfter.

BEMERK zu Speicherzyklus: es geht klar um die Kosten in €/kWh/Zyklus (Vollkosten, Cradle to Cradle). Sind diese unter 15Cent/kWh/Zyklus, wird es diskutabel. < 5Cent ist erreichbar. (Bin aus der CH, da sind die Stromkosten auch gestiegen. Belastet werden jedoch immer Netzabgaben und MwSt = ca. 14Cent.)

Ein grosses "Schwungrad" bringt ruhigen Lauf ins System. Deswegen möchte ich kaum abweichen von der dargestellten Akkugrösse mit Ausnahme von Womo, mein aktueller Anstoss zum Thema.

BEMERK zu 48V versus höheren Akkuspannungen: Bei 48V kommt ein Hybrid Inverter schnell an die Grenzen. Bei einem Verbrauch von 5kWh (kleine Durchlauferhitzer für die Dusche) fliessen da ca. 100A. Das ist eine Menge Stress für den Spannungswandler, bzw. die Mosfets die da schalten müssen. Die Auswahl wird da klein, bei entsprechenden Kosten. Hie sind Akkupacks mit >200Vdc echt im Vorteil. VORSICHT! 200Vdc bei einigem Strom werden echt gefärhlich. Da gilt Sicherheit zuerst. Ich habe früher einige Schaltregler und andere Powerteile entwickelt und getunt. So habe ich meine Erfahrungen gesammelt und weiss was Streuinduktivitäten im Leistungsteil bedeuten.

Danke für Feedback vom Forum und hoffe da wird was.

Gruss picovelo , pF

Hallo,

meine Pläne sind noch nicht vom Tisch, keine Sorge, es dauert leider nur alles länger als geplant. Ich bin nicht mehr der Jüngste, Todesfall in der Familie …

Balancer: ob aktiv oder passiv soll jeder selber entscheiden, daher plane ich dafür eine Huckepackplatine zum Aufstecken.

Aktive Balancer kann man gut oder günstig bauen. Ich bin sehr für Ersteres. Die erste Version bekommt einen passiven Balancer. Man muss ja irgendwo anfangen. Ja, Energieverlust ist das Eine, aber das sind max. ein paar Wattstunden am Tag. Damit verdiene ich im Jahr weniger als zehn Euro. Das Geld für einen aktiven Balancer bekomme ich so nie und nimmer wieder rein. Und ob ein paar heiße Widerstände wirklich weniger lang halten als Spulen und/oder Kondensatoren und das ganze Drumherum, das man für einen aktiven Balancer braucht …?

Für >18 Zellen braucht es mehrere Batterie-ICs und die müssen alle mit ihrem Controller reden. Das kann man zwecks galvanischer Trennung mit denen via isoSPI machen (das ist eine induktiv gekoppelte Zweidrahtschnittstelle). Die Hardware und Software dafür schüttelt man nicht mal eben aus dem Ärmel. Dafür brauche ich Mitstreiter.

Alternative: man nimmt als Controller brauchbare ESP32-Module und redet via WLAN mit denen. Kann man machen, spart um die 10€ (reine Materialkosten) pro Controller, verletzt aber die "wer sich mit Funk auskennt, nimmt Kabel"-Grundregel.

Ich plane, die Steuerung nicht in C zu schreiben. Ausreichend schnelle Controller, die MicroPython können, gibt es.

Und ja, das wird alles Open Source (GPL) und Open Hardware (Kicad).

Der Energieverlust ist imho garnicht das wichtigste, auch die Temperatur bzw Wärmeabfuhr des passiven ist nur lästig.

Es gibt einen sehr guten Grund zum aktiven Balancer:

Einer der Hauptgründe für Balancerarbeit ist erhöhte Selbstentladung von wenigen Zellen. Der Anteil ist etwa 5 - 10% % bei refurbished, bei neuen darunter aber nicht null. Und wenn doch, dann dauerte es 2 Jahre, und eine Zelle meldet sich.

Diese Zelle(n) verlieren also ständig, nicht Zyklus oder SOC abhängig, Ladung. Zum Ausgleich muss ein passiver Bal. alle anderen, bei 48 V also bis zu 15 Zelle , um die gleiche verlorene Leistung erleichtern. Hier merkt man, dass das mit der erzeugten Wärme mit derdem balancerstrom ziemlich lästig steigt.

Ein aktiver Balancer füllt nur die eine Selbstentladerzelle auf, fertig.

Balancing 2.0 wäre dann: wenn man einmal festgestellt hat, wieviel Ladung eine Zelle verliert könnte man dieser Zelle kontinuierlich, d.h. unabhängig vom Ladezustand, die betreffende Menge Energie zuführen....

Ich habe einen solchen Balancer, als Zusatzgerät, im Projektplan, ist aber noch nicht dran.

@carolus Hmmja, danke für das Feedback, das hatte ich bisher nicht auf dem Schirm. Werde ich in meiner Projektplanung berücksichtigen.

Mein Code ist aktuell fast soweit, dass ich damit meine 24V-Testinstallation bespielen kann. (Die besteht aus älteren diyBMS-Modulen, aber das ist alles modular.) Dann ist der Code für das 18-Zellen-BMS-IC an der Reihe, parallel dazu werde ich eine erste Hardware-Kleinserie auflegen.

… auflegen lassen. Ich suche noch einen Bestücker, der wenigstens in Europa wohnt und preislich wie von der Geschwindigkeit her nicht derart weit weg von JLPCB ist, dass es keinen Spaß mehr macht.

Hi@All

Danke für die Lebenszeichen, Freude !

Zu den neuen Kommentaren oben:

Im Eingangspost erwähnt:

"NB, wenn jemand ein bezahlbares bistabiles Relais mit 12V Schaltspannung und 100V/200A Last kennt …"

Das wird sich kaum finden lassen, ohnehin nicht Bistabil. Gleichspannung zu trennen bei zig Amp ist eine echte Herausforderung. Da ensteht ein Lichtbogen der kaum zu löschen ist. (Hab mal geübt mit 400Vdc und ca. 6Amp.....Mist !). Bei Eaton, ehem. Klöckner habe ich was gesehen, Allerdings nicht für 12V Spulenspannung.

" U nd ja, das wird alles Open Source (GPL) und Open Hardware (Kicad). "

Zustimmung. Kicad ist klar, zudem Freecad für Mechanik. Freie Software und auf allen BS einsetzbar. Noch nicht so komfortabel wie andere teure Lösungen, dafür keine Bezahlschranke/Hürde.

" Diese Zelle(n) verlieren also ständig, nicht Zyklus oder SOC abhängig, Ladung. Zum Ausgleich muss ein passiver Bal. alle anderen, bei 48 V also bis zu 15 Zelle , um die gleiche verlorene Leistung erleichtern. Hier merkt man, dass das mit der erzeugten Wärme mit der dem balancerstrom ziemlich lästig steigt."ccord. Ein aktiver Balancer, der unidirektional arbeitet speist die überschüssige Energie in dei gesamte Kette ein. Verluste sind klein. siehe Datenblatt LT8584 und weitere.

" Ein aktiver Balancer füllt nur die eine Selbstentladerzelle auf, fertig. "

Das weist auf einen bidirektionalen Balancer hin. Siehe: Linear Technology, Demo Manual DC2100B > LTC3300-1 und LTC3300-2. > Bidirectional Balancer.

In diesen Unterlagen finden sich nützliche Anregungen zur Funktion. Eine Applikation für ein 16S System, bidiektional habe ich noch nicht gefunden. Noch nicht alles gelesen.

" Ich suche noch einen Bestücker, der wenigstens in Europa wohnt und preislich wie von der Geschwindigkeit her nicht derart weit weg von JLPCB ist, "

Wie sieht es aus bei den Distributoren, Distrelec & Co? Die haben die Teile schon unterm Dach.

Gruss pF, aka picovelo

Oops da hat mit dem Editor was gebockt.

  • sorry, ich kriege es auch nicht hin.

Hat irgendwas mit den quotes durch Anführungszeichen zu tun.

Bitte benutze Quotient in HTML.

  • Carolus -

Aber ist das "Battery-pack-node" von @shiningman (dies hier) nicht das was du machen willst? Na ja nicht ganz, da er ja auch noch das BSC hat. Das BPN wird ja schon nicht billig werden, aber alles doch sehr speziell auf einzelne Bedürfnisse angepasst.

Zu einem BMS, wäre es da nicht besser, man nehme ein Seplos BMS in Hardware und entwickelt dafür eine super Software? Nur die Frage ob der Hardwarehersteller genug Informationen dazu freigibt. Kann ja aber auch nur im eigenen Interesse sein, damit würde sich seine Hardware besser verkaufen. Das Seplos V2 mit besserer Software würde glaube alles abdecken was man braucht. Die Kritikpunkte sollten sich doch alle mittels Software lösen lassen.

Ich träume auch davon, dass Hersteller ihren Kram soweit offenlegen, dass man dazu was beitragen kann. Nur leider ist davon weder bei Seplos noch sonstwo irgendwas zu sehen. Und ohne Doku kommt das Schreiben eigener Software nicht in Frage; die hersteller ändern gerne mal die Hardware (egal ob sie dabei die Versionsnummer ändern oder nicht) und ich steh mit meinem Projekt im Regen und kann das ganze Reverse Engineering nochmal machen. Falls der Code sich überhaupt ohne digitale Signatur updaten lässt. Von der unterirdischen Doku (oder eher "Doku") ganz abgesehen, die manche China-BMS-Controller so mitbringen.

Mit der BPN werde ich höchstwahrscheinlich nicht warm, u.A. wegen des kapazitiven Balancers. Das funktioniert nämlich nicht mehr ohne Weiteres, wenn man vorhat, mehrere BMSe hintereinanderzuschalten, um eine Batterie mit >18 Zellen zu beackern. (Transistoren mit niedrigem Rdson für >200V gibt es nicht umsonst …) Da es unter shining-man · GitHub aber bisher weder Hard- noch Software des BPN zu sehen gibt, halte ich mich mit Kritik lieber zurück.

Falls nicht bekannt DIYBMS von Stuart Pittaway ist Open Source und das Ding kann 128S.

Module und Controler sind bei mir bereits im Einsatz, morgen soll der Shunt folgen. Bisher hat alles super geklappt, das einzige Manko ist dass ich bisher nirgens eine Beschreibung gefunden habe umer die Verkabelung. Man findet es nur durch das Kuken der Videos heraus.

https://www.youtube.com/@StuartPittaway/videos

Ja ich kenne DIYBMS, habe ich auch selber seit einem Jahr im Einsatz (seine Module – der Controller ist Eigenbau).

Aber: das System braucht einen Mikrocontroller pro Batteriezelle, die Polarität der Optokoppler ist verkehrtrum, die Kommunikation zwischen den Modulen ist langsam und ineffizient (Letzteres hab ich in meiner Version ansatzweise behoben, aber analoge Koppler können nicht wirklich schnell), Fehlersuche ist wegen der unidirektionalen Kommunikation eher sportlich, und nicht zuletzt haben Optokoppler an sich eine endliche Lebensdauer.

… und nicht zuletzt bin ich der Meinung, wer sich mit WLAN auskennt nimmt Kabel – zumindest bei Dingen die unbeaufsichtigt 100% stabil laufen sollen. Und einen Webserver will ich auf meinem Batteriecontroller auch nicht unbedingt laufen haben. So prinzipiell.

Aktives Balancen ist damit auch nicht möglich. Nicht dass ich ein Fan davon wäre – aber sobald Batterien bespielt werden sollen, in denen ein oder zwei Zellen langfristig Ladung verlieren, kommt man dann doch nicht drumherum.

Das sehe ich ganz genau so!

Sorry, aber da finde ich bisher nichts interessantes.

Hallsensor muss nicht sein, ein guter Shunt funktioniert einwandfrei und ist genau genug.

Ich bin auch kein Freund von Mosfet.

Relais finde ich die bessere Lösung, aber nur wenn die Kommunikation zwischen BMS und WR funktiniert, sonst lebt das Relais nicht lange.

Weboberfläche mit Lananschlus, alles andere finde ich für Hausspeicher unpraktisch.

REC macht das soweit sehr gut, mich stören nur die vielen Einzelkomponenten. ( BMS, WifiModul, Precharger, Shunt, Relais ) und alles will verkabelt werden.

Lan/Wifi und Precharger sollte im BMS schon includiert sein, das spart Verkabelungsarbeit.

Das wichtigste ist die Kommunikation zwischen BMS und WR, damit der Strom reduziert wird wenn Zellen oben raus rennen. Wenn das nicht taugt, dann kannst du dein BMS gleich in die Tonne klopfen.

Der Hallsensor beschert mir ehrlich gesagt insgesamt weniger Aufwand. Ich fädle eines der Batteriekabel durch, stecke ihn auf der BMS-Platine an einen beliebigen (idealerweise differenziellen) ADC an, und bin fertig.

Für den Shunt brauche ich zwei Kabelschellen und ein weiteres klobiges Stück Hardware, das irgendwo hingeschraubt werden muss. (Allein das zu verbauen kostet mehr Arbeitszeit als der Preis für den Hallsensor.) Dann brauche ich einen ADC, der mit möglichst kleinen Spannungen unter Masseniveau klarkommt. Wenn das BMS-IC sowas schon eingebaut hat, super, nur muss man sich dann mit der Störsicherheit der Leitung zum BMS beschäftigen. Oder gleich I²C rausführen und einen INA219 direkt neben den Shunt klemmen, was diesbezüglich meine präferierte Lösung ist, wenn jemand lieber einen Shunt verbauen will – und sei es nur, weil schon einer vorhanden ist.

Insofern kann man das gerne so oder so machen. Wenn ich meine eigene Firmware schreibe, kann ich ja selber entscheiden (oder via Konfiguration den Anwender entscheiden lassen), wo der Wert herkommt, Hauptsache er wird regelmäßig und genau genug gemessen.