Reddit user digs into the MyChevrolet smart phone application and finds some interesting info

While searching through the apk of the MyChevrolet app for unrelated reasons, reddit user hairy_tick stumbled across an interesting JavaScript file. The contents of which contain a wealth of information on how the Chevy Bolt EV calculates range, battery capacity loss and charging speed.

Thankfully, the file is well commented and contains clean code. Software developers typically leave comments within their code to explain the purpose of a function/method. In many programming languages, a single line comment is preceded by '// '. These lines are purely for the benefit of the person deciphering the code and are never executed by the program.

Battery Degradation

Regarding battery degradation:

The kWh capacity degradation by odometer. Used as fallback for estimating remaining battery capacity from odometer, when no other capacity information is available. The first column (D0...Dn) is the odometer in km, and the second column (C0...Cn) are the corresponding capacity values in kWh. The table is based on empirical data assuming typical driving behavior of ~30,000 km/year and 1 DCFC/week.

As noted above, this data assumes "typical driving behavior." It is an estimate for the drop in capacity over time. Depending on the habits of the driver, capacity loss could vary. Excessive fast charging and extreme temperatures are more likely to lead to increased degradation. Maintaining an optimal state of charge and not pushing the car should result in less capacity loss over time.

Here is the estimated degradation according to the document:

kWhCapacity_Odo_Degradation:

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

]

At 225,000 miles, a Chevy Bolt EV owner can hopefully expect at least 175 miles of usable range. Vehicles that rarely ever see DCFC charging should fare better than this. These numbers assume 1 DCFC fast charge / week.

Although the rate of capacity loss seems to be quite linear. In practice, rate of battery degradation is usually greater early on. Then the rate of capacity loss typically slows as the vehicle ages. So take these estimates with a grain of salt as they are most likely an average.

There is a great deal more info in the document. Some interesting tidbits are included below. But you can check out the full text at the source link at the end of the article. I have tried to clean up the code some for readability. Note if you are not familiar with reading code, you can pretty much stop here.

MyChevy App Reveals Juicy Technical Details On The Chevy Bolt Battery

State of Charge Levels

// empty battery level (SoC) - used for the battery-empty indicator and for defining the point at which a route/destination becomes unreachable (0% uSoC / 4% hvSoC)

// note: the car will continue driving until reaching -3.2% uSoC (equiv. to KeOOER_Pct_OOESOCFinalwarn = 1% hvSoC), which gives some additional buffer.

// At -3.2% uSoC the contactors will open and the car will go dead. In that state the car will not restart until it is recharged back to 0% uSoC (4% hvSoC).

"Empty_SoC": 0,

Battery Capacity

// function for computing scaling factor for battery capacity depending on battery temperature

"kWhCapacity_Temp_Factor": function(t)

{

t = Math.max(-20, Math.min(t, 0));

var k = (11 / 20) / 92;

return (1 + t * k);

},​

// function for computing min/max hvSoC range depending on battery temperature

"hvSoC_Temp_Range": function(t)

{

t = Math.max(-20, Math.min(t, 0));

return ;

},

DC Charging Profile

Based on the current state of charge and the current battery temperature. The default ideal battery temperature is listed as 25 °C / 77 °F. The default charging current is 150 amps.

// DC charging profile, where the first row (T0...Tm) is the battery temperature, the first column (S0...Sn) is the SoC buckets, and

// the cells (Axy) are the corresponding current rates (A). The corner cell (TT) is the index of the default temperature column.

//

// TT T0 T1 T2 ... Tm

// S0 A00 A01 A02 ... A0m

// S1 A10 A11 A12 ... A1m

// S2 A20 A21 A22 ... A2m

// .............. ... ...

// Sn An0 An1 An2 ... Anm

//

"DC_Charging_Profile":

,

,

,

,

,

],

Source: Reddit