Skip to content

Commit

Permalink
Merge pull request #147 from dalathegreat/bugfix/tesla-temperature-ac…
Browse files Browse the repository at this point in the history
…curacy

Tesla: Improve accuracy on temperature value
  • Loading branch information
dalathegreat authored Jan 31, 2024
2 parents a46d2bf + 7f3c6ad commit 01a17b8
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions Software/src/battery/TESLA-MODEL-3-BATTERY.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ static uint16_t volts = 0; // V
static int16_t amps = 0; // A
static int16_t power = 0; // W
static uint16_t raw_amps = 0; // A
static int16_t max_temp = 6; // C*
static int16_t min_temp = 5; // C*
static int16_t max_temp = 0; // C*
static int16_t min_temp = 0; // C*
static uint16_t energy_buffer = 0;
static uint16_t energy_to_charge_complete = 0;
static uint16_t expected_energy_remaining = 0;
Expand Down Expand Up @@ -209,10 +209,8 @@ void update_values_tesla_model_3_battery() { //This function maps all the value
power = ((volts / 10) * amps);
stat_batt_power = convert2unsignedInt16(power);

min_temp = (min_temp * 10);
temperature_min = convert2unsignedInt16(min_temp);

max_temp = (max_temp * 10);
temperature_max = convert2unsignedInt16(max_temp);

cell_max_voltage = cell_max_v;
Expand Down Expand Up @@ -443,11 +441,8 @@ void receive_can_tesla_model_3_battery(CAN_frame_t rx_frame) {
}
if (mux == 0) //Temperature sensors
{
temp = rx_frame.data.u8[2];
max_temp = (temp * 0.5) - 40; //in celcius, Example 24

temp = rx_frame.data.u8[3];
min_temp = (temp * 0.5) - 40; //in celcius , Example 24
max_temp = (rx_frame.data.u8[2] * 5) - 400; //Temperature values have 40.0*C offset, 0.5*C /bit
min_temp = (rx_frame.data.u8[3] * 5) - 400; //Multiply by 5 and remove offset to get C+1 (0x61*5=485-400=8.5*C)
}
break;
case 0x2d2:
Expand Down

0 comments on commit 01a17b8

Please sign in to comment.