Main Site Documentation

General electronics question


Warning: electronic n00b help

I’m looking at trying to read voltages of individual cells coming off of a multi-cell LiPo battery via my CerbDuino.

The cells in the battery are wired in Series. Using a voltage divider I can make the voltage acceptable to my ADC pins.

The cells are 4.2v so the individual cells should read out a max of:
cell1 = 4.2v
cell2 = 8.4v
cell3 = 12.6v

So I understand that my the R values are different for cell1 vs cell2 vs cell3.


  1. Is the wiring in chicken scratch illustration correct to accomplish, with no short circuit effects?

  2. This will hopefully eventually reside on a custom PCB with SMT parts.
    a) I was thinking about 0603 or 0804 - any reason these wouldn’t be able to handle the higher voltages? For example, if I went to a 4 cell, so that would be a max of 16.8v.

b) Would going to a larger size (0804 or larger) resistor help with heat dissipation?

  1. Is there another way, like an IC, that would accomplish what I am trying to do? I’m looking at a I2C chip from Ti that will do this as well, but it’s a 30 pin chip, which seems a bit of overkill from what I am trying to do. Sparkfun has a chip based fuel gauge, but it’s only for a single cell.

Thanks for the help/suggestions


Hi there,

Your circuit looks correct. Hopefully you have the values correct too?

It’s not voltage on the resistors you need to worry about, it’s current but as your voltage is low this won’t be an issue. Depending the value for the resistor connected to ground, this will dictate the load to the ADC, and with something around 10-20K you are talking very low mW range of power dissipation.

I have a programme called ElectroDroid on my Android phone and it has a wonderful voltage divider as part of the suite. I input your 12.6 with 3.3V output and it gave me a 22K in the gnd resistor and 62K for the series one. This dissipates 1.89 mW so 0604 or 0805 will be just fine.

Beware of using too high a value for the GND connected resistor if the ADC input is expecting a low impedance. Running this too high will give you a non-linear response. Something like 10K is ideal. I use this sort of value with a 24Vdc supply monitoring setup myself and get good readings. This is with an Atmel AVR though.

Electrodroid will also allow you to set the resistance of the load so if you know the ADC input impedance, you can try this too.


How would you go about calculating this (the impedance going into the ADC)?

Thanks again!


@ mhectorgato - Hi, is it the cell balance you want to monitor with this setup? Or what’s the purpose?


Pretty much yeah.


You know you have some complete circuits for this for a few euro’s:

Have a look at the data sheet:


Thanks David.

We are planning on using standard 3S or 4S batteries.

Based on the datasheet, the problem is this:
“The ISL9208 supports battery pack configurations consisting of 5 cells to 7 cells in series and 1 or more cells in parallel.”

I was looking at using this (seems similar in intent to the one you provided):

Thanks again.

My first step was just get a divider working for a POC. If the project moves forward, I’d look at using a chip similar to one you provided or the Ti one.


Be sure to read all the forums before using the BQ series… we had a 2 year crusade with this series in a mass production lipo pack…


Thanks – didn’t know there were forums for them.

What type of problems did you run into?


Mainly chemistry profiles and bad SOC calibration / jumps.

Not with the same chip but also BQ series, chip was marked “not use for production” by the time we went in mass production…


[quote=“Dave McLaughlin”]
Hi there,

Your circuit looks correct. Hopefully you have the values correct too?[/quote]

Quick testing tonight - it works as expected – Thanks for the confirmation.