Measuring individual cell voltages in a serialized battery pack? (BMS)

Thread Starter

MikeA

Joined Jan 20, 2013
287
In commercial BMS units, I would imagine they have some sort of isolated A/D solution on a custom chip? Or just a high voltage A/D?

I was thinking of just using a bunch of voltage dividers with a 16bit A/D, to bring 60V to 5V range of the A/D, and it would still have pretty decent resolution.

Or is there a more elegant solution? (without specialized chips)
 

MisterBill2

Joined Jan 23, 2018
10,580
The arrangement will depend very much on what you intend to achieve, and we can only guess about that. But I will not guess, so please describe what you want to achieve.
 

Thread Starter

MikeA

Joined Jan 20, 2013
287
I would like to measure individual cell voltage in a serialized battery pack.

The challenge is I'd like to use widely available parts, such as Arduino/ESP and A/D's that work in the 3.3v to 5v range.

So some magick with isolation, or floating ground needs to happen to make this work without a bunch of voltage dividers.

13Slogo.jpg
 

bassbindevil

Joined Jan 23, 2014
238
There are various DIY BMS projects out there. Some use one microcontroller per cell level, which is reasonable for a powerwall or full-sized EV that needs balancing as well as monitoring.
https://github.com/stuartpittaway/diyBMSv4

http://www.onstatetech.com was selling a bare board on ebay that used a bq76940 & PIC18F26 to manage 9 to 15 cells, but the listing hasn't been renewed. I found pdf docs (but no code for the PIC) here (search for BMS15):
http://www.onstatetech.com/Tech-specs/

But if you just want to monitor voltages (and maybe current), here's a couple of approaches I bookmarked. They both use voltage dividers and the Arduino's onboard ADC:
http://triembed.org/blog/member-projects/paul-macdougal/golf-cart-battery-pack-monitor/
https://github.com/royrobotiks/hoverboard_power_monitor
For more accuracy (and/or more inputs) there are ADC modules like the ADS1115 (16 bit 4 channel); add an analog multiplexer or two for more channels, maybe the ADG508.
 

MisterBill2

Joined Jan 23, 2018
10,580
If sequential sampling will be acceptable then the checking can be done with thirteen double pole normally open relays. They would select one cell at a time and place it across the input to the A/D converter, after a suitable level adjustment and buffering.
But there will exist the need for isolation from the battery power circuit to avoid damaging common mode voltages. And isolation will be a bit of a challenge at some point. An alternative, if the A/D input is adequately isolated, will be to use 16 Opto-Isolators to connect The ends of the string and each end to the correct inputs to the A/D converter. Otherwise, alternate readings will be positive and negative, which may be confusing. Relay multiplexers do wear out in a relatively short time.Opto-Isolators will require a higher input impedance because of their greater internal resistance.
 

Thread Starter

MikeA

Joined Jan 20, 2013
287
While this looks simple common mode voltage is your new nightmare. A high common mode voltage difference amplifier will be your new best friend. While measuring a series of batteries seems simple it really is not a simple task. A good example is how individual cells are measured in an electric vehicle battery. Give the link a read.

Ron
While this would be fine and a solid solution for a $50K+ electric car, that's about $100 in op-amps alone for 13 cell 48V lithium ion bicycle battery.;)

ina149.png
 

Sensacell

Joined Jun 19, 2012
2,932
One neat analog idea is to convert the cell voltage of each battery to a small current, maybe 1mA full scale.
Down at the master end, the current is simply converted to a voltage by a humble resistor to ground.

You just need a high voltage transistor in each 'send' current source that can handle the voltage difference.

All the currents return to the main common ground, no isolation necessary.

48 Volts at 1mA is 48 milliwatts, not hard to deal with.
 

MisterBill2

Joined Jan 23, 2018
10,580
"Forcing" is a whole lot more complex and also less efficient than just measuring, And if the application allows the user to replace weak cells then forcing strong cells to discharge is certainly a poor choice.
Monitoring, as shown in post #7, would be very effective but also rather involved because of the number of INA149 amplifiers required. But if those devices are all available in surface mount packages a skilled builder could certainly produce a good packaged system. But it does use a bunch of specialized chips.

The simple and sort of elegant system, which one company I worked at used on a standard product, used a two-pole, wide spaced, non-shorting, rotary switch to select which battery of a ten pair series string of high-power 12 volt gell-cell batteries to measure. That scheme worked quite well, the circuit was rather simple but the installation was rather tedious.And every cell connection had a fuseable-link connection in case of a shorted circuit someplace.
This system battery pack was used to power large arrays of 1000 watt spotlights for recording crash testing.
 

LowQCab

Joined Nov 6, 2012
1,619
"" "Forcing" is a whole lot more complex and also less efficient than just measuring,
And if the application allows the user to replace weak cells
then forcing strong cells to discharge is certainly a poor choice. ""

Possibly You didn't understand the functioning of the Circuit I provided,
or the reasoning behind it.
Li-Ion Cells can't be left at "Full-Charge" for long periods.
Balancing between Cells is extremely important,
whether when Charging, or when Discharging for Storage.

The Circuit I suggested only amounts to an adjustable, high-power, Zener-Diode across each Cell.

In Charging-Mode, all Cells are charged evenly,
regardless of how fast or slow each Cell wants to accept the Charging-Current,
this is not determined by a 100ma "Balancing-Chip",
but by a brute-force ~50-Amp-Zener.

Those same Zeners also "force" the Storage-Voltage of each Cell when in Discharge-Mode,
insuring that each Cell is brought to a precise Voltage, and no more, or less,
in a very short period of time,
( requiring a Fan-Cooled Heat-Sink ),
while insuring that each Cell is Discharged at exactly the same rate as all the other Cells.

The only time that individual Cell-Voltages matter,
when "cared for" with a Circuit similar to the one I suggested,
is after a degradation in Battery performance is noted during use,
( overall Battery-Voltage lower than, or sagging under load more than expected ),
with the intention of replacing a single Cell which may have become prematurely "weak".

A "weak" Cell is usually due to inadvertent abuse when Charging, or, Discharging for Storage,
or intentional abuse while being used for its intended purpose.
So, if you Charge, Store, and use, the Battery,
strictly within its specified parameters,
the chances of a single Cell failure are very unusual,
and so "Real-Time" monitoring the individual Cell-Voltages is of questionable value.
.
.
.
 

MisterBill2

Joined Jan 23, 2018
10,580
"" "Forcing" is a whole lot more complex and also less efficient than just measuring,
And if the application allows the user to replace weak cells
then forcing strong cells to discharge is certainly a poor choice. ""

Possibly You didn't understand the functioning of the Circuit I provided,
or the reasoning behind it.
Li-Ion Cells can't be left at "Full-Charge" for long periods.
Balancing between Cells is extremely important,
whether when Charging, or when Discharging for Storage.

The Circuit I suggested only amounts to an adjustable, high-power, Zener-Diode across each Cell.

In Charging-Mode, all Cells are charged evenly,
regardless of how fast or slow each Cell wants to accept the Charging-Current,
this is not determined by a 100ma "Balancing-Chip",
but by a brute-force ~50-Amp-Zener.

Those same Zeners also "force" the Storage-Voltage of each Cell when in Discharge-Mode,
insuring that each Cell is brought to a precise Voltage, and no more, or less,
in a very short period of time,
( requiring a Fan-Cooled Heat-Sink ),
while insuring that each Cell is Discharged at exactly the same rate as all the other Cells.

The only time that individual Cell-Voltages matter,
when "cared for" with a Circuit similar to the one I suggested,
is after a degradation in Battery performance is noted during use,
( overall Battery-Voltage lower than, or sagging under load more than expected ),
with the intention of replacing a single Cell which may have become prematurely "weak".

A "weak" Cell is usually due to inadvertent abuse when Charging, or, Discharging for Storage,
or intentional abuse while being used for its intended purpose.
So, if you Charge, Store, and use, the Battery,
strictly within its specified parameters,
the chances of a single Cell failure are very unusual,
and so "Real-Time" monitoring the individual Cell-Voltages is of questionable value.
.
.
.
Actually, I am quite aware of "charge leveling" although I did not do a detailed analysis of the circuit that you posted. There is a great deal of difference, I think, between the very large battery packs and a small pack with cells that can be replaced or serviced. It does not seem reasonable that the TS would benefit from that arrangement.
 

LowQCab

Joined Nov 6, 2012
1,619
We still don't know "why" he wants to measure individual Cell-Voltage.

Therefore, the usual speculation caused by most Thread-Starters not providing
what overall, big-picture, problem they are trying to solve.

Nothing new here, but I imagine it will finally be figured out.
.
.
.
 

bassbindevil

Joined Jan 23, 2014
238
I'd want to measure individual cell voltages just for peace of mind, more so if the pack was made with a dog's breakfast of recycled cells by someone who didn't bother to test them for capacity and internal resistance. Measuring cell voltages under load may not be easy to do manually in a moving vehicle (or lawnmower).
 
Top