I would like to build a highly precise volt meter (5 digits; e.g. +/- 1mV) to measure each cell voltage in a LiFePO4 battery stack of 16 cells (<60V). I am content with measuring the cell between 3 and 4 Volts (1V range) if possible / doable.

I selected an LTC2400 for the precision A/D conversion, and thought that a 16-channel MUX would allow me to measure one cell after the other; but it appears this would not work. I thought I could use 1 or 2 MUX to loop the pos/neg connection per cell to the Volt meter. Another option would be 16 volt meters (one per cell) but it seems like a lot of duplication of gear, hence, a silly approach. An Arduino would to some calculations and comms.

I did not want to use a high Voltage MUX due to accuracy/resolution constraints, but rather measure each cell (and am not interested in the total V).

It is sufficient to measure the 16 voltages within one second disregarding any Amp fluctuations -- as the battery system has pretty stable current flows.

Any hints / pointers are much appreciated; thanks.

  • \$\begingroup\$ "I would like to build a highly precise volt meter" - precisely what precision do you want? \$\endgroup\$ Mar 22 '17 at 5:59
  • \$\begingroup\$ @BruceAbbott: oops; precisely :) -- I have updated my question (5 digits; +/-1mV) \$\endgroup\$
    – MaxG
    Mar 22 '17 at 6:51
  • \$\begingroup\$ What was wrong with the answers proposed in electronics.stackexchange.com/questions/173873/… ? There were some good suggestions by Tut in the comments, especially "high CMR" differential amplifiers. \$\endgroup\$ Mar 22 '17 at 10:58
  • \$\begingroup\$ @BrianDrummond: "Nothing." I apologise for asking a similar question. I am owner-building my house and am running quite a few little projects for the homeautomation that has to go into the house. I am getting old for one, and I remember now that I ordered the parts and never build the thing. A few days ago I noticed that the mid Voltage of the battery deviates a bit, and thought, it is time do measure these Voltages. I did remember that I looked at this before, but forgot the outcome. This time though, I understand this LiFePO4 business much better, hence the query for the increased precision. \$\endgroup\$
    – MaxG
    Mar 22 '17 at 22:45
  • \$\begingroup\$ from the way you phrased your question, it seems this is not for implementing and deploying a cell balancing system, as such if you require the precision you stated, use DPDT mechanical relays, it will be the simplest possible solution, that will also handle high voltages with minimal distortion, nothing beats relays, period; also consider a cell balancing IC, you don't need to use the balancing features, you can use it for sampling the voltage, TI parts are available that can be used just to mux and sample each cell \$\endgroup\$ Nov 25 '18 at 11:18

The problem is that most of the cell voltages are higher than the A/D (and MUX?) can handle, so you need some way to get it in range. You could just put a voltage divider on each cell tap, but then you have to individually scale each tap voltage and subtract them to get the cell voltages, which is difficult to do accurately.

The solution used in many chargers is an op amp configured as a differential amplifier, like this:-


simulate this circuit – Schematic created using CircuitLab

This example shows one of the identical circuits that would be used to get the voltage on each cell in the pack.

Op amp OA1's output is proportional to the difference between voltages at each end of cell 3. The op amp can only accept a maximum of 6V on its inputs, so R1 and R2 divide the + (non-inverting) input voltage by 3. R3 and R4 have the same ratio so the voltage on the - (inverting) input is also divided by 3, and the equal ratios ensure that differential balance is maintained (so voltage changes on lower cells have no effect). The gain of the op-amp is set at 0.5 by the ratio of R4/R3, so the useful output voltage range is reduced from 1V (3-4V) to 0.5V (1.5-2V).

The circuit shown above works for up to 4 cells, but for higher voltage you either need higher voltage op amps (and Vcc) or a higher division ratio.

This technique is commonly used for up to 6 cells, but I don't know how successfully it could be extended to 16 cells. Theoretically your A/D converter has enough resolution to handle the smaller voltage range, but in practice it may be quite difficult to get the precision you want. You could amplify the signal with another op amp, but then you may run into offset and drift issues.

Another option might be to wire a precision voltage to frequency converter across each cell, couple the output pulses via opto-couplers, and measure the frequencies using a counter/timer in the Arduino. The V/F converters would draw some power out of the cells, but if they have high capacity it shouldn't significantly affect their capacity.

However I would probably go for the much simpler approach of 16 voltmeters. I would just get 3 of these 6S lipo monitor/balancers. Or if I only needed to check the voltages occasionally, I would just get one 6S meter and wire some balance cables onto the battery to plug it into.

  • \$\begingroup\$ Thank you kindly for effort; it summarises my concerns; I am working with a 400Ah / 56V stack = $$, hence the precision I am after, which the suggested LiPo monitor does not have IMHO (also confirmed in user posts). I have -- in the meantime -- ordered a MAXIM Eval kit for the MAX14921 and will have a play with it. The cells only show a V diff of min 100mV to max 300mV between 100% and 50% SOC... hence, the accuracy I am after. Nevertheless, I will build this circuit to see what it can do... \$\endgroup\$
    – MaxG
    Mar 22 '17 at 9:34
  • \$\begingroup\$ I have a couple of those meters and they are within 1-2mV of my multimeter (though with cheap Chinese stuff you never know how good it is until you test it!). I would not use cell voltage to measure state of charge, because it varies with load and internal cell temperature. Instead I would just measure current and calculate remaining capacity, with full charge capacity and endpoint voltages as references. Lithium batteries have very high coulombic efficiency, so the amount of charge taken out almost exactly equals what is put in. \$\endgroup\$ Mar 22 '17 at 10:08
  • \$\begingroup\$ Yes, all understood :) I am not using it for SOC determination, but for understanding imbalance of cells at different SOC levels... and to determine, whether top balancing is required or not. I already have data on the pack and mid V. The latter is of interest as it indicates imbalance, where I want to identify the individual cell(s). I have the ability to balance cells, shunting from >= 3.6V onwards. \$\endgroup\$
    – MaxG
    Mar 22 '17 at 12:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.