Multicell monitoring for BMS?


I'd like to make my own arduino based BMS but I got into a little problem, I need to monitor the voltage in each cell of this battery (in this case it is 3S) now what I've been doing so far is using a voltage divider for each cell specific for the internal voltage(1.1V) and calibrate it accordingly but I don't think it is very practical and can waste some power on the long run...

Any suggestions I have a 4 channel 16 bit ADC and some analog mux's...?

Thanks for helping.

Hello there,

I've got this 3S lipo battery and I'd like to make a system that reads the voltage of each individual cell with an arduino and would like to know which is the best way to do it?

Thanks for your time.

Do not cross-post. Threads merged.

(I can't believe I have to write that to someone who has 112 posts.)

You may also want to explain what BMS you’re talking about. Or maybe it has yet an entirely different meaning?

Is the battery you want to monitor also powering the Arduino?

If it is NOT then I wonder if you could use an Arduino I/O pin as GND (when it is OUTPUT and LOW) and effectively turn off the voltage divider by setting it as INPUT as then the I/O pin will present a high impedance.

The resistors in the voltage divider would need to be high enough to keep currents in the I/O pin below about 20 mA.

I have no idea whether this idea would compromise the accuracy and repeatability of the ADC measurements.


You may also want to explain what BMS you're talking about. Or maybe it has yet an entirely different meaning?

plan is to have a 3S BMS with balancing current and voltage protection.

Now I only want to see how you'd measure up the voltage of each cell of the pack with an arduino to make the protection but the voltage divider method is not the best as it needs calibration along with it.