GM Volt Forum banner

Understanding SOC

7226 Views 13 Replies 6 Participants Last post by  supchrgamx
I've been digging into the CAN bus trying to read battery state. Here's what I have so far

SOC is available as percent ModePID: 22005B. Standard vehicle PID for SOC does not return data.

max SOC 84.313728. For the rest of the post, I will instead refer to these as decimals ie. 0.84313728
min SOC unknown. Determined one of two ways: (MAX_PCT - 65%) or (16.5*MAX_PCT-10.2). I use the latter.

Polling for SOC every 3 seconds gets the best results. It sometimes gets updates while the car is off, the updates are more frequent when the car is on.

Based on 100% SOC = 16.5kwh, each 1% of SOC should represent 0.165kwh. However, when I try to compare percentages to kwh usage based on knowing the current charging rate, the numbers are insane.

| SOC | Duration (min:sec) | Charge(kwh)/% |
| 0.77254906 | - | |
| 0.77647057 | 5:11 | 0.29152 |
| 0.78431374 | 12:27 | 0.241217 |
| 0.79215683 | 15:03 | 0.20099 |
| 0.84313728 | 0:46:40 | 0.13915

Charging Rate 0.912kw (114v * 8a)

So based on this table, except for the last one, I'm getting 2x the kwh per pct that I should be. Which makes me think SOC is highly inaccurate. I've thought about switching to looking at HV volts/amps directly, but haven't done as much research on it. Has anybody else tried to determine battery status by looking at CAN data?
1 - 4 of 14 Posts
MyGreenVolt and Torque Pro are two apps available for use with a blue-tooth enabled OBD reader that provide both raw and useable SOC % readings for the Volt owner. Perhaps one of those apps will help you. Both are available for the android platform, not sure about other platforms. According to both of them, the full charge raw SOC on my 2012 Volt is ~87%, which is what I expected to find. I don’t use an OBD reader much, and rarely fully deplete my battery. On a couple of times when I did, the raw reading was ~ 22% when the switch to ICE was made because the battery was depleted, but by the time I arrived home, the reading was closer to ~20%.
Thanks, very helpful! I did some fuzzy math to determine 20-25% was the bottom. A few weeks ago I was seeing ~87%, but the car consistently reports ~84% now.
Thanks these have been helpful to compare to my own. I'm using this data to determine time to recharge which as I am finding is a two step process. One is the guess recharged time from the dash, and the other is the true time to recharge. The second one is a lot harder to keep up with.

As a starting point, I took the recharge times of 10.5hrs at 120volt/12amp and 4.25hours at 240volt (13.4amp). I was quite surprised how inefficient this is. 120volt*12amp = 1.44kwh. 1.44kwh*10.5hours = 15.2kwh for a 10.2 kwh battery.

For more real usage, I am looking at the CAN data for amps, volts, and power. If you take a look at this amps*volts != power. In fact, power is about 80% of the volts*amps recorded on the bus at 120volt and 90% at 240volt. So I took the current deficit percentage * MAX_ENERGY divided by power to derive recharge time to full charge ~83%. Even still, my time to recharge was way shorter than what the dash claims. I found in fact that I must take the power and multiply by 0.5625.

TOTAL_ENERGY*(FULL_SOC - CURRENT_SOC)*POWER*0.5625= roughly time on dashboard. These numbers are not exactly the true charging time as reported by OnStar text messages, but have been within 30mins so far.

I imagine this power multiplier is likely not static across the entire battery, even though the battery should be able to take full power in up to 80%. I will need to do more comparisons from a nearly dead battery to get better data of the entire battery profile. I'm doing several 40+ mile trips this weekend that should provide me with some starting data to determine a better power coefficient.
See less See more
I'm not sure canehdian, I think it might be the quality of the line coming in. When I plugged my quickchargepro into a 30amp 120volt, I am getting power numbers very close to the volt/amperage. It may be an indication that the amperage level is fluctuating up and down, but the CAN is not reporting variations in amperage only power. Actually, it reports 0 a lot for power which makes data aggregation troublesome.

OBD-II is connected to the car and I am sending CAN messages to communicate to the other connected devices in the car. I forget the difference, I think CAN is a subset of OBD or maybe vice versa?

True I am oversimplifying the equations by assuming constant power. In theory, this should be fairly true for 0-80% but may not be the case. In order to provide instant feedback, I do need to make some assumptions and the dashboard does the same.

For a full charge from 0miles (car reported 0.20 SOC) to full, the dashboard was off by +30mins and my system was off by +1hour. Honestly, I was very pleased with this. It took me milliseconds to get my calculation and 3mins for the OnStar calculation. I think this longer than reported charge time estimates might be because the factor I'm using 0.5625 isn't static across the entire charge cycle. It may also be because the power is being drawn much more efficiently from this 30amp plug.

The goal isn't for 100% accuracy, but really just to free myself from an OnStar subscription. This 1hour drift also aligns with the 30min drift from a 50% recharge on 120volts. I could continue fudging the numbers to bring those inline. Ironically, OnStar has been reporting 0:00/0:00 for recharge times probably b/c I'm over-saturating the CAN bus with queries for Car information.
See less See more
1 - 4 of 14 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.