How can I measure the state of charge (SOC) of a lithium ion battery.?

I know it is a very common question and I can google it, so I did google it and read about all the techniques for e.g Coulomb counting method and open circuit voltage method, also some adaptive methods like fuzzy logic method and Kalman filter etc. After going through all the techniques I am planning to do it by the Coulomb counting method.

My main question here is that I can calculate the SOC of my battery while I am charging or discharging it by measuring the current, but how can I find the SOC of my battery if I just connected it to my measuring system? (That is, before the charging or discharging process is initiated.)

One method that comes to my mind is voltage translation (measure the battery's voltage and give a SOC value against that since the battery voltage changes with the SOC.) This method could be okay when the battery's voltage is on the extreme positions of its charging/discharging cycle's graph, but the problem lies in the flat voltage curve (which has a considerably long span) which would make it difficult to guess the exact SOC in the flat voltage region.

Can anyone give me suggestions regarding that?

  • 1
    \$\begingroup\$ Just use an off-the-shelf fuel-gauge. It will save your time and money. And probably the battery as well. \$\endgroup\$
    – Eugene Sh.
    Commented Jul 23, 2015 at 14:48
  • 1
    \$\begingroup\$ @EugeneSh. He is specifically asking hjow to deal with 1st installed battery state - which a std coulomb counter will notr deal with. \$\endgroup\$
    – Russell McMahon
    Commented Jul 23, 2015 at 15:39
  • \$\begingroup\$ @RussellMcMahon Nothing will deal with it properly. You have to accept the tradeoffs. Over time the readings are getting more accurate. \$\endgroup\$
    – Eugene Sh.
    Commented Jul 23, 2015 at 15:41
  • 1
    \$\begingroup\$ @EugeneSh. Sorry - I was not clear enough. He says he is going to use a coulomb counter which is = = = your off the shelf fuel gauge. BUT. THEN he says BUT when I insert a partly charged battery in the system for the very first time I instantly want a perfect measure of SOC right then - how do I achieve this. He can't. As you say. \$\endgroup\$
    – Russell McMahon
    Commented Jul 23, 2015 at 15:54
  • 1
    \$\begingroup\$ If you tell us why it's importtant to achieve good SOC estimate from the start and what factors apply (see my list) then we may be able to make further comment. \$\endgroup\$
    – Russell McMahon
    Commented Jul 23, 2015 at 16:18

3 Answers 3


Short answer to key query:

Battery charging energy efficiency can be defined as (energy out)/(energy in)

Energy in can be measured across a complete CC + CV charging cycle by measuring charging power per unit time throughout the charge cycle and summing the readings.

For example, if voltage and current are measured at one second intervals then
V x I = watts and in one second there will be V x I joule input.

Summing the once per second readings across the whole charging cycle gives joules input.

  • If measurements are made every say 0.1 s then joules per reading
    = 0.1 x V x I or more generally
    Joules = t x V x I
    where t = time period, V = average Volts and I = average amps during period t.

Obviously I & V should be as 'steady' as possible during period t. For say 1 second readings, during the CC phase I is constant by definition and control and V will vary from about 3 to 4.2 V in about 40 minutes.

So voltage increase per second will be about (4.2-3)/(40 min x 60 secs/min) or about or about 0.5 mV per second on average or about 1/2400s = 0.04% of total variation per second.

i.e. once per second readings are liable to be entirely accurate enough.


Much useful information is available from the Battery University website

-see "What's this Battery University stuff?" at the end of this answer for comment.

It has been asked whether it is possible to measure SOC initially without coulomb counting. There are "special" methods available such as the use of GMR sensors embedded within the cells to measure magnetic properties which are a function of SOC, but the ability to do this requires specially modified cells and special equipment.
This method is described on Battery University page How to Improve the Battery Fuel Gauge and also here

If you wish to know the SOC initially you need to say why it is necessary and desirable to you to do so. Otherwise people could go to vast effort trying to answer with no certainty that they were addressing what you thought you needed.

Many manufacturers require users to do an initial long charge.
This is in many cases not really needed but it does allow setting the upper coulomb counter boundary with some certainty. Why should YOU be special? There may be a good reason, but if so you need to say what it is.

You have read all the best material you can find. You ask for an EXACT SOC 1st off in the middle charge range. You KNOW this is impossible. Why do you ask for it. Why does it matter?

A good reason that mid range SOC is not able to be determined on a newly inserted battery is that factors which are unknowable may apply. The battery may be new, or slightly used, or very used. This matters. If this is not a factor and all the batteries will eg be new you should have said so. Not saying so presents a distorted problem. If the past use is unknown then the SOC is unknown and the problem is again distorted.

You could make attempts to pulse charge or discharge the battery to see the effect. But you don't know the mAh capacity so the effect will be uncertain. But, maybe you do know the mAh capacity - but if so, you did not say.

The battery maker will be unknown - which matters. Or maybe this is not true. But, you did not say.

The manner in which the battery was recently charged and discharged also matters. If the battery was very slowly charged to constant voltage and then allowed to charge to say only C/20 before charge termination it will be very close to full capacity and this will be reflected in its voltage change under load subsequently.

And more.

For practical purposes the SOC of a good condition battery of a known capacity made by a known manufacturer when tested under known conditions after having been charged with a known profile will be able to be estimated to within 5 to 20% of actual. 5% would be lucky and 20% unlucky. Good and bad luck happen. If you need better than that and it's crucial, you could use a bigger capacity battery, so that it matters less.

Charging efficiency:

Is it possible to measure a LiIon battery's energy efficiency, even if I charge it properly (i.e through both CC and CV cycles)? ie so it's not necessary to charge it ONLY in CC cycle and NOT in CV cycle?

Efficiency of charging can be measured in at least two ways.

Current efficiency is measured as (mAh out / mAh in).
This should be measured under predetermined charge and discharge conditions.
Under typical charge and discharge conditions LiIon cells have close to 100% current charge efficiency. Unlike some other battery chemistries (such as eg NiMH) there are no secondary reactions to "eat up" charge current.

Energy efficiency is measured as Wh_out/Wh_In (Watt hours out / Watt hours in).
Energy efficiency is good compared to many other chemistries but well down on current efficiency. Energy efficiency can be measured by summing watt seconds of charge and discharge. In practice, measuring voltage and current every say second, calculating watts = volts x amps and summing the result gives accumulative Watt seconds.
When SOC is relatively low, at charge rates of C/1 or less Vin under charge and Vbattery if charging is stopped at a given moment, or even Vbattery under discharge at the moment are all similar. Vbattery_charge will be ~= Vinternal + Icharge x Rinternal and Vdischarge will be about Vinternal. As SOC approaches the point where CV mode charging starts Vcharge starts to get ahead of Voc and not all energy is stored and energy charge efficiency drops.

The following is probably more interesting than useful or practical but indicates that early charge termination is likely to give higher overall energy efficiency.

The diagram below from Battery University application note BU409 Charging Lithium Ion is probably quite wrong at a detail level but useful in illustrating the process. To see what is happening on the graph it is important to follow all 3 of voltage (small dashes, left hand axis, current (larger dashes, right hand axis) and capacity - solid line with no y-axis formally assigned but assume it's an 1800 mAh cell and use right hand axis (mentally) labelled as mAh. Charging is carried out at CC from start to B and at CV after B.
From start to A voltage rises rapidly and the capacity curve will be wrong (should have low slope to start) - but little capacity is involved. Importantly, from A to B capacity and voltage both rise approximately linearly. This is likely to be an area of high efficiency with loses mainly being Ichg x R internal.
CV starts at B and the inflection point in voltage and current probably should be at the same time so the graph is somewhat suspect. From B to C the capacity slope is lower and after C it's lower again. Point C is probably not a sudden sharp change as shown and (capacity increase)/watts will fall across this range. There is no easy way to plot what the actual wattage capacity increase is using normal test methods. Battery university describe the use of GMR magnetic sensors in the cells to measure SOC but short of that you'd need to conduct a number of runs and discharge the cell after a range of different charge periods and see what capacity has resulted. (More complex partial discharge methods may work).

enter image description here

"What's this Battery University stuff?"

Battery University is the self assigned title given to a collection of battery related webpages provided by Canadian company 'Cadex Electronics'. It's not a university and it's just one of many many battery information sources on the internet.
However, it's one of the best single sources for a wide range of information on a wide range of battery types and related issues. Quality and accuracy varies but is usually good to excellent, and is essentially never terrible or highly misleading. If you want to know anything about batteries it's a good place to start and in many cases may be all you need. Technical level is not deep and if you want advanced theory there are many other places to look. But, if you want a good place to start, in most cases this is probably as good as any. (Many other sites think so too - I often enough find material which is clearly copied directly from the BU site without attribution and often enough with the implication that it's their material. I once contacted BU about a flagrant unattributed mass copying of their material. They were surprisingly unconcerned - 'getting the knowledge out there' seems to actually matter to them.

I have no association at all with Cadex except as a user of their very useful website.

You'll find that quite a lot of the things I say about battery matters match what is said on the battery university pages - as you'd hope. Some of it comes from there (which I give a link to if it's specific), much from 'all over', and various amounts from my own experience. After a while it all get's mixed in together as part of one's sum total of related knowledge. I try to be sure that anything from anywhere that I quote or state is consistent with my understanding of how it all fits together.


Battery University:

Learn about batteries main index page.

BU409 Charging Lithium Ion

BU907 Testing LiIon batteries

BU208 Cycling performance - LiIon and others

BU-206a Finding the Optimal Runtime and Power Ratio of Li-ion

How to Improve the Battery Fuel Gauge

Battery Fuel Gauge: Factual or Fallacy?

BU-903: How to Measure State-of-charge

BU-802: What Causes Capacity Loss?

BU-802a: How does Rising Internal Resistance affect Performance?

LiIon search

About - history

Here are some prior answer of mine on stack exchange EE that relate.
You can find these and others like them by searching with appropriate search terms.
If there is anything you need to know that is not covered here please [ ask :-).]

Those marked - 'with "Battery University" reference' have relevant external links.

Lithium Ion Battery Charging Practices

How to Calculate the time of Charging and Discharging of battery?

What parameters affect battery charge time?

How fast can a Li-Ion battery be charged?

Reading a Li-po battery's remaining charge

how to measure state of charge of a battery through algorithm?

How deep should we discharge lithium batteries to maximise their lifetime? - with "Battery University" references.

Is it safe to have 4V continuously supplied to a lithium battery?

Effects of continous slow charge on a battery?

Maximum *charging* voltage for Li-Ion battery - with "Battery University" references.

Full Charge Indicator

  • \$\begingroup\$ I am planning to make a battery test stand (for single battery cell), which would be able to charge and discharge the battery at different C rates so that at the end battery's energy efficiency can be calculated. These tests could be for complete charge/discharge cycles, as well as for defined SOC of battery, for eg in between 40%-80% SoC. That is the reason i was thinking of how would i measure the SOC of the battery cell when it is connected to my test stand. \$\endgroup\$
    – yiipmann
    Commented Jul 24, 2015 at 14:55
  • \$\begingroup\$ I already have a high side current shunt in my circuit design which would measure the battery's charge/discharge current, so i thought to go with coulomb counting for SOC. However the battery cell i have is a 3.7V-4Ah Li-Ion cell, which means that the capacity of the cell is known. First the cell would be charged continously at a given current rating, and when its charged, it will be forced to discharge at the same current rating for measuring its energy efficiency \$\endgroup\$
    – yiipmann
    Commented Jul 24, 2015 at 14:58
  • \$\begingroup\$ @yiipmannfor testing, in most cases it is going to be acceptable to discharge the cell or charge it to a known end point to see what energy is in it initially. Discharge to say 3.0V is probably the best way of getting a reference point and knowing what initial charge was. If you charge up at CC to 4.2V then allow current to fall to say Imax/4 you get an endpoint but it is not as well defined as the discharge endpoint. \$\endgroup\$
    – Russell McMahon
    Commented Jul 24, 2015 at 15:11
  • \$\begingroup\$ @yiipmann re " ... First the cell would be charged continously at a given current rating ..." -> This could mean until Vmax is reached and then discharge starts, or until Vmax is reached and then CV mode starts and runs until Ichg falls to some preset fraction of Imax. The latter is the usual means of charging and makes a very largfe difference to stored capacity. \$\endgroup\$
    – Russell McMahon
    Commented Jul 25, 2015 at 7:55
  • \$\begingroup\$ I read the same about Li Ion cell charging, that you first charge it to maximum voltage (constant current cycle) and then you maintain that Voltage until the current is dropped to a certain value, normally 0.07C (constant voltage cycle). But i read about calculating battery's energy and found out that its only done when you charge and discharge a battery cell with some CONSTANT CURRENT VALUE, which means excluding out my constant voltage cycle, so ill be only doing ONLY the constant current charging and discharging, right ? \$\endgroup\$
    – yiipmann
    Commented Jul 25, 2015 at 13:57

I was there once, at the time of the increasing awareness of the importance of the BMS, and at the rise of more sophisticated efforts around BMS, for the devices that are still on the market..hew... So, my memory is a bit less accurate in the way that is as good as a good guess. And, I believe there should be more than one way to answer your "I think this and what do you know about that." question, which is a correct approach.

Since you just hooked up a BMS to a live battery, you would configure the BMS as much as you know. On the other side, The BMS, through the configurations app, can ask as many initial values as needed while providing default values and ranges, along with an option to BMS "Can I guess it?" for the initial SOC. (I felt a little sorry about that massive configuration panels. But, I would add these in the menu at the next chance, if that is not already there. )

As the configuration finishes, and the BMS starts with the "guess the SOC" option(s), the best effort you can do is using the voltage, i.e. OCV, which is only available live data at the moment. Once the BMS locates the SOC on the OCV curve, the BMS suggests it's opinion with the condition flags implying "SOC is not definite yet".
We are now in-sync, and your question at this point is:

This method could be okay when the battery's voltage is on the extreme positions of its charging/discharging cycle's graph, but the problem lies in the flat voltage curve (which has a considerably long span) which would make it difficult to guess the exact SOC in the flat voltage region.

Can anyone give me suggestions regarding that?

Long story short, you would tell what you (BMS) guess, that could be "moderate" or somewhere between "skeptical" to "optimistic", which can be set during the configurations, or the user set it by ownself. And, you tell, in the manual, that is what you do, along with a note that says; "BMS will learn more and make better decisions over time, and gets more accurate along with the iterations of charge & discharge cycles." So, you can find better estimation of the SOC on the impedance currveS and voltage curveS, probably as immediately as whatever begins.


According to the battery university website, the better way to measure SoC is by unhooking the battery from the charger and then measure the terminal voltage after an hour, if it shows between 3.8 to 3.9V, then you can consider it to be fully charged.

On one hand it says that the battery attains 85% SoC at the full charge level, on the other hand it says it is impractical to judge the battery SoC with the its full charge level?

How to Charge a Li-ion Battery for Maximum Backup up Efficiency and Maximum Life Efficiency

Simple rule of thumb is to charge a Li-ion battery with a CC/CV at 0.5C rate and cut it off at the full charge point, preferably you may want to keep the full charge voltage a little lower than the specified threshold to keep the battery "happy" throughout.

Let's not over complicate the CC/CV terms.

CC simply means a current level which the controller will not allow to increase beyond its specified rating, similarly CV implies the controller will not allow the voltage to exceed beyond the fixed rating, which may be the full charge level of the battery.

It is the battery which actually manipulates the consumption while charging depending on its discharge level or the Ah rating, and its overall health conditions, and temperature.

To summarize, to get a healthy SoC of a Li-ion battery, you just need to implement the following:

  1. Use a CC/CV power supply having a facility to cut off at the full charge level
  2. The CC should be rated at 0.5C of the battery Ah rating
  3. The CV should be rated at the specified full charge level of the battery.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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