Very basic BMS

Topics concerning OEM and open source BMSes
Post Reply
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Very basic BMS

Post by arber333 »

Very basic BMS made from S8211C sensing chips.
Each chip can measure one cell and report OV or UV states by CMOS outputs. Those signals are translated to isolated 12V lines via ACPL-227 dual opto isolator.
One board is capable of guarding 16S setup with no minimum requirements. I.e. a single cell could be watched by one board or up to 16 cell string. 4 wires are connected to BMS board and 4 wires go from one board to next BMS board or finally to master board. Both OV and UV signals are AND loop where a single deviation causes disconnect of appropriate function. For example if in the course of a charge single cell would hit OV alarm, then charger would stop. UV signal is wired directly and it is used to stop the car in case of undervoltage.
For additional safety the UV loop is wired with pullup so if a cell would just die at zero volts then car would stop to protect the battery.

Files can be found here. https://github.com/arber333/very-basic-BMS
I used 20p Minifit connector similar to what Tom uses for his SimpBMS. While for cell connection i will use KF2510 2.54mm 4 pin headers and connectors.

I can wire both outputs in various ways. UV alarm as a red LED or directly to BMS pin of Openinverter. HV alarm to charger latching relay or to a uC pin....

I still need to populate 8 boards to test it on my Mazda 100s battery. 3x 16S, 3x 12S, 1x 10S, 1x 6S.
What i would like to achieve is a failsafe signal from BMS that would indicate if battery would drop to 0V during drive. It happened once with my current system that one cell started to report UV event, but when i stopped everything seemed OK. So i drove on and finally at home i found out one of the cells went 0V and was conducting in short circuit! That was quite a shock for me.

If you like the system you can go on and make yourself some boards and populate. I will try to make adaptation to JLCPCB for faster manufacture.
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

I had to make some modification to my R1 boards. It seems i wasnt carefull enough and i forgot to introduce some reference connections. I also made an error in placement of load transistor. Since i used P mosfet that has reverse diode now all current drains through diode....
And of course i added two P-mos transistors to reverse signals from BMS chip to opto. Daisy chain signal still pulls 12V down to signal OV/UV event.
MattsAwesomeStuff
Posts: 898
Joined: Fri Apr 26, 2019 5:40 pm
Has thanked: 291 times
Been thanked: 177 times

Re: Very basic BMS

Post by MattsAwesomeStuff »

I'm half considering not running a BMS other than the Lee Hart BattMon sensor.

It seems every BMS solution is more than I'm spending on my whole build. Interesting in seeing what yours ends up costing by the time you're done.
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

MattsAwesomeStuff wrote: Thu Sep 17, 2020 7:52 am I'm half considering not running a BMS other than the Lee Hart BattMon sensor.

It seems every BMS solution is more than I'm spending on my whole build. Interesting in seeing what yours ends up costing by the time you're done.
Yeah well, to each its own BMS flavour.
My philosophy on BMS is:
1. It has to be real simple, cell input, output HV, output LV
- HV output shuts down charger while BMS is balancing
- LV output gives signal to car interface to stop draining the cells e.g. turtle mode etc...
2. To observe what is happening i added battery measuring pads for manual multimeter application
3. To observe eventual balancing function i add one LED
4. There is no need for the driver too see any BMS data while driving... well untill when they need to :).
5. Parts count need to be low for ease of manufacture and price...
6. PCB needs to be small enough to fit together with 16S pack.
7. Wires from cells to PCB need to be as short as possible to eliminate possible wire chaff hazard
8. I use 0,5A balancing function, 1x 2W 10R resistor. Anything more i consider fire hazard in tight battery box.!
9. To keep to battery health I never charge more than 4.1V per cell and discharge lower than 3V per cell. Untill now it proved good in Mazda.

I will report when i have the actual price.
ChazFisher
Posts: 53
Joined: Wed Jul 03, 2019 1:32 am
Location: Central Virginia, USA

Re: Very basic BMS

Post by ChazFisher »

MattsAwesomeStuff wrote: Thu Sep 17, 2020 7:52 am I'm half considering not running a BMS other than the Lee Hart BattMon sensor.

It seems every BMS solution is more than I'm spending on my whole build. Interesting in seeing what yours ends up costing by the time you're done.
I'm not familiar with the Lee Hart BattMon - can you point me to some information about it? Now that I've got my motor spinning on the bench with the Openinverter.org controller, I'm starting to puzzle through everything else that has to go into an EV.
Chaz Fisher
Slowly creeping up on that e-motorcycle.
User avatar
johu
Site Admin
Posts: 5786
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 157 times
Been thanked: 1021 times
Contact:

Re: Very basic BMS

Post by johu »

I really don't want to argue much against this. Just a while back I concluded that the hardware cost of a simple HV/LV BMS and a digital monitoring one is the same. So I started pursuing the digital path which gives so some nice info. It comes in handy for detecting loose cell interconnects for example. You see a vast voltage rise on cell 65 when charging? - then go and check interconnects in its proximity.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

ChazFisher wrote: Thu Sep 17, 2020 12:55 pm I'm not familiar with the Lee Hart BattMon - can you point me to some information about it? Now that I've got my motor spinning on the bench with the Openinverter.org controller, I'm starting to puzzle through everything else that has to go into an EV.
Here is some reading:
http://www.evdl.org/pages/hartregs.html
https://www.diyelectriccar.com/threads/ ... ms.197929/
http://www.evdl.org/docs/zenerregs.pdf

Well this actually works, for balancing Lead acids. I dont know about Lipos?
In any case this doesnt tell you when you run empty or stop your charger if one cell goes out...
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

johu wrote: Thu Sep 17, 2020 1:11 pm I really don't want to argue much against this. Just a while back I concluded that the hardware cost of a simple HV/LV BMS and a digital monitoring one is the same. So I started pursuing the digital path which gives so some nice info. It comes in handy for detecting loose cell interconnects for example. You see a vast voltage rise on cell 65 when charging? - then go and check interconnects in its proximity.
That is why i built in contact pads for manual measuring :).
ChazFisher
Posts: 53
Joined: Wed Jul 03, 2019 1:32 am
Location: Central Virginia, USA

Re: Very basic BMS

Post by ChazFisher »

arber333 wrote: Thu Sep 17, 2020 1:18 pm
ChazFisher wrote: Thu Sep 17, 2020 12:55 pm I'm not familiar with the Lee Hart BattMon - can you point me to some information about it? Now that I've got my motor spinning on the bench with the Openinverter.org controller, I'm starting to puzzle through everything else that has to go into an EV.
Here is some reading:
http://www.evdl.org/pages/hartregs.html
https://www.diyelectriccar.com/threads/ ... ms.197929/
http://www.evdl.org/docs/zenerregs.pdf

Well this actually works, for balancing Lead acids. I dont know about Lipos?
In any case this doesnt tell you when you run empty or stop your charger if one cell goes out...
Thanks - got some reading to do!
johu wrote: Thu Sep 17, 2020 1:11 pm I really don't want to argue much against this. Just a while back I concluded that the hardware cost of a simple HV/LV BMS and a digital monitoring one is the same. So I started pursuing the digital path which gives so some nice info. It comes in handy for detecting loose cell interconnects for example. You see a vast voltage rise on cell 65 when charging? - then go and check interconnects in its proximity.
I'm very much in a learning mode right now. I'm not finished by any means, but I've had enough success getting my motor spinning to move on to the next core function - charging the battery. I'm sure I'll have lots of questions regarding the boost charging function in the inverter controller, but the other piece is monitoring the battery to know when to stop charging.

I really appreciate all the expertise that's available here.
Chaz Fisher
Slowly creeping up on that e-motorcycle.
MattsAwesomeStuff
Posts: 898
Joined: Fri Apr 26, 2019 5:40 pm
Has thanked: 291 times
Been thanked: 177 times

Re: Very basic BMS

Post by MattsAwesomeStuff »

ChazFisher wrote: Thu Sep 17, 2020 12:55 pmI'm not familiar with the Lee Hart BattMon - can you point me to some information about it?
It's a clever device that basically operates as a very simple "something's wrong" warning, and that's all.

- There is no individual cell monitoring
- There is no BMS
- There is no balancing

But, it's super cheap, and super simple, no wires to each cell, and it does most of what you need a BMS to do anyways, the critical safety part.

The way it operates is that you compare one half of your pack to the other half. If those voltages aren't the same... something bad happened, you lost a cell, or a cell plummeted into its deep discharge zone, etc. This turns on a warning light equivalent to a "check engine" light, or a buzzer, or whatever else you want.

That's it. It compares left half to right half, and tells you if they're not the same (you choose how close they have to be, by component selection).

It doesn't tell you which cell is bad, it just tells you the halves of the pack are not as close as they're supposed to be. Generally this would be because one cell died.

It works because generally batteries stay balanced on their own and can be manually balanced once a season otherwise. Something bad happened if that's not true, something that will require servicing anyways (a BMS is not there to cover up for a failing cell). It would be extraordinarily rare if two random failures of cells (already a rare event) happened not only at the same time, but on opposite halves of a pack... and that's the only situation it might not detect an imbalance.

It also works as a low-HV limit backup to the driver just observing the pack voltage, because as all cells get low, some are going to hit the 3v knee and plummet, and that chaos alone is probably going to trigger the warning light. Again, something you'd have to service or stop driving for regardless.

You still have to diagnose what happened and to which cell. You still have to manually balance your pack as often as you feel that's necessary, or, add capacity to help the weaker cells. But those are all servicing-required events, which is all you really need a BMS for.

...

I've also considered just having a bank of 5x20 LEDs, and connecting them up to my pack so that if a cell is low, it's LED isn't on. I dunno that I'd want to drive like that, but as a quick diagnostic tool it's not bad.

...

Anyway I digress, not to hijack Arber's thread any more, my point was that if his solution is cheap enough I'd consider it. If what Johannes is saying is correct, that there's not really any savings to be had... I dunno.
Stuart
Posts: 1
Joined: Sun Sep 20, 2020 5:44 pm

Re: Very basic BMS

Post by Stuart »

I like the simple design you have created, very neat.

I've also built a BMS which may be useful to some people, known as the "diyBMS" - https://github.com/stuartpittaway/diyBMSv4

There are also some YouTube videos on how to use it and the features.



It's a modular open source design, using single modules to monitor each cell, daisy chained together and an ESP8266 (or 32) to provide an interface and controller.
Ruudi S
Posts: 55
Joined: Sun Apr 12, 2020 2:02 pm
Location: EU Estonia
Has thanked: 13 times
Been thanked: 15 times
Contact:

Re: Very basic BMS

Post by Ruudi S »

This is nice system. Has anybody tested it on electric car? How does it handle high electrical noise environments in EV batteries? Last time I saw video about this system I couldn't find where to buy it. Has the availability been improved? I cannot solder smd parts together myself.
zippy500
Posts: 183
Joined: Fri Jan 04, 2019 8:42 am
Location: United Kingdom
Has thanked: 32 times
Been thanked: 3 times

Re: Very basic BMS

Post by zippy500 »

this guy seems be using them in his solar shed:


looks like it could work quite expensive if you needed 96 modules, then they have be fitted to a enclosure
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

Stuart wrote: Sun Sep 20, 2020 5:47 pm I like the simple design you have created, very neat.
Thanks. My intention is to have only vital requirements on there with failsafe design.
I only tried a one cell version with balancing only. Now I have to admit my first iteration is not acceptable because of some errors on PCB. I turned the transistor the wrong way so current has free access to resistor through flyback diode :). Also there are chips without reference contact connected. How i managed to make that mistake is beyond me... So i have incoming 2nd batch of prototypes. I hope to have a working 16S PCB and then i can start testing the failsafe master board.
My idea is to have a latching relay on board that starts with 12V enable signal. If this signal is interrupted it will change state and it will require some intervention or reset. That would be drive LV signal.
Charge HV signal will also have a latching relay that will require reset if it will be thrown off.

Both upper and lower limits are not supposed to be reached, because i will charge to a voltage that will sum up to 4.1V per cell and discharge to 3.3V per cell. Limits will be hardcoded at 4.2V and 2.5V per cell with balancing histeresis at 4.15V per cell.
User avatar
TheSilverBuick
Posts: 187
Joined: Mon Jun 08, 2020 5:01 pm
Location: Nevada, United States
Has thanked: 3 times
Been thanked: 1 time

Re: Very basic BMS

Post by TheSilverBuick »

Add me to the list of interested...

As I'm nearing completion of the mechanical conversion, and feeling good about the upcoming inverter/motor wiring, I've started looking at batteries, chargers and BMS systems. There is a definite "OOF" feel seeing the cost on the BMS, but I don't want to burn my project or house down, so taking that into consideration.
Need to learn. Starting from the basics.
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

Ok, i sent the order to Mouser for the chips and optocouplers with rest of material to assemble BMS.
I think i got 20 PCBs for like 40€.
Components i ordered were like 170€ with free shipping and VAT.
I gather the 470R resistors and 100nF caps and LEDs are not much added expense. I already have them at home... Lets say like 10€ of components more...
Together 220€ total without my work of course...

Attached is the list of most expensive components if someone would be willing to try later.
Project_Nov21_0356PM.xls
(20 KiB) Downloaded 125 times
MattsAwesomeStuff
Posts: 898
Joined: Fri Apr 26, 2019 5:40 pm
Has thanked: 291 times
Been thanked: 177 times

Re: Very basic BMS

Post by MattsAwesomeStuff »

Together 220€ total without my work of course...
$341 CAD.

Hmm.

It's certainly less intimidating than the $1000 everyone else seems to mention for a system.

If my aunt had balls she'd be my uncle, but if there was a BMS for $100 I'd use one for sure. $200 I'm on the fence about. $300 I'm considering but wouldn't implement it right away. $1000 is a hard no.

I don't even know what other options there are out there for 100-cell BMSs or their price ranges.
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

Here i have completed first 3 PCBs of 16S BMS.

I really like the Molex minifit connector. Much tidier than my previous connectors.
Optocouplers work in with daisy chain and OR circuit in the end. Whichever of the sensors will announce overvoltage first opto will close and pull its pin to GND.
Pin holes on the left are used to connect 8th cell - line to 9th cell + line. Saves one wire in case of 16S pack. If i would join two 8S packs i would need another sense + wire to start another chain.

I decided to adapt Arduino DUE circuit i am using to control DCDC and Charger to also act as my BMS master. This way i can either stop charging or disable car traction if my cells will go too low. I will use the same output that i use to disable traction while charging. No special circuit needed, just additional input configured with pullup.
Attachments
IMG_20201125_081515.jpg
IMG_20201125_081703.jpg
IMG_20201122_203623.jpg
IMG_20201122_203634.jpg
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

I installed 16S modules in a car and connected them with daisy chain.

BMS chips have two cmos outputs which are triggered when high/low limits are reached.
At this time i use main chip to turn on two PNP transistors which in turn activate 2 channel optocoupler. All optos have connected CH1 and CH2 transistors in parallel to corresponding lines. Then there is also GND line. 3 wires go from module to module and finally to whatever controler one would use to signal charger or drive status inside the car. I choose Arduino DUE.
Ch1 is connected to BMS input with internal pullup
Ch2 is connected to Enable input with internal pullup
GND is connected to car GND.

When HIGH alarm is activated it pulls Ch1 opto channel to GND which in turn pulls the BMS pin LOW and DUE knows BMS is activated. It then changes chargers CAN signal and turns Cp relay off.
When LOW alarm is activated it pulls Ch2 opto channel to GND which in turn pulls the Enable pin LOW and DUE knows to signal inverter to pull emergency relay and/or light warning LED.

I simulated single cell to make sure everything works. I used the last board in series and connected everything in the chain with my test cable. I connected my power supply and simulated 4.25V per cell to turn on HV alarm. Ch1 turned on and charger stopped. It kept balansing until cell reached 4.15V and then allowed charger to turn on again - check!

Then i simulated 2.8V per cell to get the car to trip my energency relay/button. Car immediately turned inverter torque off. All systems were operational. When i let voltage up to 3.1V chip released LV alarm and let me operate inverter.

Let me remind you those values are terminal values and i consider having battery there requiring a maintenance action or at least some system inspection.
I have designed my BMS boards to read voltage directly and chose chips acordingly - S-8211CAM. If you want to use a different values or have different margine you may add resistor divider in front of S8211 chip to lower the sensed value. But i must remind you to calculate the gap from HV to LV so both values are in correct span.
TonyV
Posts: 87
Joined: Sat Nov 14, 2020 9:00 pm
Location: Toronto
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Very basic BMS

Post by TonyV »

What battery charger are you using?
I'll figure this out sooner or later
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

TonyV wrote: Tue Feb 02, 2021 2:16 am What battery charger are you using?
Currently i have Outlander 2x 3.3kW chargers wired in parallel from 3phase power.
I am using Arduino DUE to command those chargers and any future mods.
My plan is to use the same CAN control to work with Chademo system.
This BMS is bare bones system for protection from overcharging and overdischarging cells. It can also balance cells with some 1/2A 10R resistor. But i generaly didnt intend to use my pack at the extreme points of SOC. I rather stop well short at 4.1V and 3.0V per cell.

To show voltage, current and calculate SOC i am trying to develop another system which will again use DUE module CAN capability...
Nothing terribly inventive, just combining existing technology.
m.art.y
Posts: 558
Joined: Sat Jun 06, 2020 6:54 pm
Location: UK
Has thanked: 28 times
Been thanked: 16 times

Re: Very basic BMS

Post by m.art.y »

arber333 wrote: Tue Feb 02, 2021 11:53 am Currently i have Outlander 2x 3.3kW chargers wired in parallel from 3phase power.
Does this mean you can now charge at 6.6 kW? Would these operate on single phase (to charge slower)? 😊
arber333
Posts: 3265
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 233 times
Contact:

Re: Very basic BMS

Post by arber333 »

m.art.y wrote: Tue Feb 02, 2021 3:31 pm
arber333 wrote: Tue Feb 02, 2021 11:53 am Currently i have Outlander 2x 3.3kW chargers wired in parallel from 3phase power.
Does this mean you can now charge at 6.6 kW? Would these operate on single phase (to charge slower)? 😊
Well yes. They operate as each one its own unit. If i show one of them L1/N 230Vac it starts at 3.3kW. Since they are isolated i can show the other one L2/N different phase and both will give 6.6kW. Also third charger with L3/N for 10kW!
I am sure they will work even if i would show them both the same phase L1/N. But in my house i am limited to 11kw three phase.This means 3.6kW per phase. viewtopic.php?f=19&t=628&start=125
Post Reply