Its been a while since I read the datasheet for the Fuel Gauge, but the SOC is a calculated value based on many variables. The Fuel Gauge will gather data and eventually return a correct assumption about the charge condition of the Li-Po. The Fuel Gauge doesn’t have the luxury of taking a voltage measurement of a Li-Po in a Resting Condition.
The SOC “inaccuracies” for a Sleepy Boron might be simply that the Fuel Gauge is sleeping also (guessing) with the recent Updates in 1.5.0 final ?
My previous tests showed the Fuel Gauge to be very accurate, after it has a chance to sort out the operational parameters of the Li-Po. That didn’t include a Low Duty Cycle Sleep setup though.
@Backpacker87, You might not want to assume (MAP) a linear relationship with SOC and Voltage.
Pick any Voltage Chart from the Internet for a 1S Li-Po and use that in your Code Instead.
Here’s a sample. Dont be too worried about precision, since the ambient temperature will play a factor in the expressed voltage.
Take your measurement after the Boron’s current demand has settled down…or before you fire up the Cellular Modem. You could Turn OFF Charging temporarily also, for more accuracy.
Remember, it doesn’t matter what your charge termination voltage is, this chart shows the remaining chemical energy at any voltage. IE: a 3.7V “Nominal” 1,000 mAh Li-Po has ~600 mAh remaining at 3.85V resting (per the sample chart above).
The chart below says ~550 mAh for the same example:
All the charts and curves that you find will be slightly different.
Personally, I prefer tracking Voltage directly. I use SOC as more of a generalization.
IMO, If I have a Solar Recharged Device that spends a lot of time in the 3.8V range, then the Power Budget wasn’t correct .