$calibrate({ /////////////////////////////// // NOMINAL RANGES // nominal range (in km) for full battery at ideal driving conditions "Nominal_Range": 383.0, // high range (in km) for full battery "High_Range": 450.6, // low range (in km) for full battery "Low_Range": 281.6, /////////////////////////////// // SOC 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, ​ // low battery level (SoC) - used for the battery-low indicator in the UI // note: aligned with the "charge now" message at 6.52% uSoC (KeOOER_Pct_OOESOCEnter = 10% hvSoC) "Low_SoC": 6.52, ​ // minimal SoC level that can be considered safe for reaching destination - used for calculating optimal recharge SoC/time at charge stations along the route // note: aligned with the "charge soon" message at 10.87% uSoC (KeOOER_Pct_OOESOCPrewarning = 14% hvSoC) "Safe_SoC": 11, ​ // full battery level (SoC) - used for the battery-full indicator in the UI (100% uSoC / 96% hvSoC) "Full_SoC": 100, ​ ​ /////////////////////////////// // BATTERY CAPACITY ​ // 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. // // D0 C0 // D1 C1 // ..... // Dn Cn // kWhCapacity_Odo_Degradation: [ [0.0000000, 60.00], [24140.160, 60.00], [48280.320, 58.96], [72420.480, 57.93], [96560.640, 56.89], [120700.80, 55.85], [144840.96, 54.82], [168981.12, 53.78], [193121.28, 52.75], [217261.44, 51.71], [241401.60, 50.67], [265541.76, 49.64], [289681.92, 48.60], [313822.08, 47.56], [337962.24, 46.53], [362102.40, 45.49] ], ​ // 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 [4 - (t / 20) * 11, 96]; }, ​ ​ /////////////////////////////// // AC CHARGING PROFILE ​ // nominal time (in seconds) to charge battery to full SoC using AC charger. "AC_FullCharge_Time": 9.30 * 3600, ​ // maximum AC charging power (in kW) that can be used by vehicle; overrides maximum AC charging power reported by charging station. "AC_Max_Power": 7.2, ​ ​ /////////////////////////////// // DC CHARGING PROFILE ​ // 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": [ [0x008, -30.0, -20.0, -10.0, 0.00, 10.0, 15.0, 22.50, 25.00, 40.00, 45.00, 50.00], [67.00, 0.000, 3.000, 12.00, 30.0, 54.0, 93.0, 134.0, 150.0, 150.0, 75.00, 0.000], [80.00, 0.000, 3.000, 12.00, 30.0, 54.0, 93.0, 100.0, 100.0, 100.0, 75.00, 0.000], [90.00, 0.000, 3.000, 12.00, 30.0, 54.0, 60.0, 60.00, 60.00, 60.00, 60.00, 0.000], [96.00, 0.000, 3.000, 12.00, 30.0, 40.0, 40.0, 40.00, 40.00, 40.00, 40.00, 0.000], [100.0, 0.000, 3.000, 12.00, 25.0, 25.0, 25.0, 25.00, 25.00, 25.00, 25.00, 0.000] ], ​ // nominal time (in seconds) to charge battery to full SoC using fast DC charger. "DC_FullCharge_Time": 1.24 * 3600, ​ // default DC charging voltage (in volts) - used in lack of better charging station information. "DC_Default_Volts": 500, ​ // default DC charging current (in amps) - used in lack of better charging station information. "DC_Default_Amps": 150, ​ // The uSoC-to-OCV conversion table, used for calculation of DC charging power. // OCV is the open-circuit voltage of the Gen2 Bolt cell chemistry (ignoring internal resistance). // The first column (S0...Sn) is the uSoC, and the second column (V0...Vn) are the corresponding OCV values (in Volts). // note: the table is actually for hvSoC, but for this level of accuracy this can be ignored and treated as uSoC. // // S0 V0 // S1 V1 // ..... // Sn Vn // "DC_SoC_to_OCV": [ [0.000, 321.85], [5.000, 321.85], [10.00, 328.50], [15.00, 332.25], [20.00, 337.05], [25.00, 341.15], [30.00, 343.40], [35.00, 345.20], [40.00, 346.75], [45.00, 348.50], [50.00, 350.65], [55.00, 354.00], [60.00, 359.80], [65.00, 364.65], [70.00, 369.45], [75.00, 374.40], [80.00, 379.50], [85.00, 385.05], [90.00, 390.85], [95.00, 396.90], [100.0, 403.10] ], ​ ​ ////////////////////////////////////// // BATTERY TEMPERATURE CONDITIONING ​ // ideal battery temperature (Celsius) to assume when no other temperature information is available. "Ideal_Battery_Temp": 25, ​ // temperature (Celsius) that active battery heating will target during driving in cold weather. // TODO: the actual active heating target is 4C, but we add 6C to account for the heating curve that occurs while charging "Active_Heating_Target_Temp": 4 + 6, ​ // temperature (Celsius) that active battery cooling will target during driving in hot weather. // TODO: this is just a guess. need to check what actual value should be put here "Active_Cooling_Active_Temp": 40 }); ​ source: https://old.reddit.com/r/BoltEV/comments/a1ez8j/battery_degradation_stats_i_found/