From 25a86c4608a390d98f5a8364f5786b178dc5952c Mon Sep 17 00:00:00 2001 From: "C.S.M" Date: Mon, 14 Sep 2026 19:13:29 +0800 Subject: [PATCH] feat(tsens): Load ESP32-H4 temperature calibration from eFuse The HAL stub always returned 0 (IDF-15117), so get_celsius() never applied the factory offset. Co-authored-by: Cursor --- .../esp32h4/include/hal/temperature_sensor_ll.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/esp_hal_ana_conv/esp32h4/include/hal/temperature_sensor_ll.h b/components/esp_hal_ana_conv/esp32h4/include/hal/temperature_sensor_ll.h index b8d93fede8f..408cf2503e9 100644 --- a/components/esp_hal_ana_conv/esp32h4/include/hal/temperature_sensor_ll.h +++ b/components/esp_hal_ana_conv/esp32h4/include/hal/temperature_sensor_ll.h @@ -279,7 +279,8 @@ static inline void temperature_sensor_ll_set_sample_rate(uint16_t rate) */ static inline int temperature_sensor_ll_load_calib_param(void) { - return 0; // IDF-15117 + uint32_t cal_temp = EFUSE.rd_mac_sys5.temp_calib; + return (cal_temp & BIT(9)) ? -(int)(cal_temp & ~BIT(9)) : (int)cal_temp; } /**