diff --git a/src/boards/Main/Radio/Radio.cpp b/src/boards/Main/Radio/Radio.cpp
index d5c272df4b2a648e3417d8d3fafd5a0d788df580..71926fbfdd2f9cfcab6100098c30f7483d5c4c7e 100644
--- a/src/boards/Main/Radio/Radio.cpp
+++ b/src/boards/Main/Radio/Radio.cpp
@@ -344,6 +344,8 @@ void Radio::handleMavlinkMessage(MavDriver* driver,
float temperature =
mavlink_msg_set_reference_temperature_tc_get_ref_temp(&msg);
+ temperature += 273.15;
+
NASController::getInstance().setReferenceTemperature(temperature);
ADAController::getInstance().setReferenceTemperature(temperature);
break;
diff --git a/src/boards/Main/TMRepository/TMRepository.cpp b/src/boards/Main/TMRepository/TMRepository.cpp
index 4d4e03a0510f4602cd5a60be13dcd36005ebdee6..e2194245ce8eda8655aaabeb5df4f701bbe5c8a3 100644
--- a/src/boards/Main/TMRepository/TMRepository.cpp
+++ b/src/boards/Main/TMRepository/TMRepository.cpp
@@ -162,10 +162,10 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId,
tm.vertical_speed = state.verticalSpeed;
tm.ref_altitude = ref.refAltitude;
tm.ref_pressure = ref.refPressure;
- tm.ref_temperature = ref.refTemperature;
+ tm.ref_temperature = ref.refTemperature - 273.15;
tm.msl_altitude = state.mslAltitude;
tm.msl_pressure = ref.mslPressure;
- tm.msl_temperature = ref.mslTemperature;
+ tm.msl_temperature = ref.mslTemperature - 273.15;
tm.dpl_altitude = ada.getDeploymentAltitude();
mavlink_msg_ada_tm_encode(RadioConfig::MAV_SYSTEM_ID,
@@ -197,7 +197,7 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId,
tm.nas_bias_y = state.by;
tm.nas_bias_z = state.bz;
tm.ref_pressure = ref.refPressure;
- tm.ref_temperature = ref.refTemperature;
+ tm.ref_temperature = ref.refTemperature - 273.15;
tm.ref_latitude = ref.refLatitude;
tm.ref_longitude = ref.refLongitude;