Noticed my ESPHome internal temperature increased after switching to ESP-IDF framework. ESPHome 2025.4.1
switching back to Arduino results in a 28% power saving which seems significant but can’t find mentioned anywhere.
Assumed the reduced abstraction and higher performance would allow for more sleeping and thus less power use, but apparently not.
ESP-IDF: 0.53432 W : 45.3 °C internal (23.6 °C room)
Arduino: 0.38686 W : 39.4 °C internal (22.0 °C room)
30 minute test with FNB58 power meter
Flashed over USB & flashing was not part of the monitored power usage.
Removing Bluetooth reduces power use further but I need it so haven’t performed the tests without it.
Sharing in case useful to someone and wondering if this is in line with others experiences?
Decided to check power use without Bluetooth too for science
Ran multiple times to get an idea of run-to-run variance.
Switching to ESP-IDF saves 26%! (25.88~26.61%)
ESP-IDF: 0.19412 W 35.6 °C internal (23.0 °C room)
ESP-IDF: 0.19538 W temperature Unknown
ESP-IDF: 0.19390 W 35.0 °C internal (21.4 °C room)
Arduino: 0.26160 W 36.7 °C internal (22.3 °C room)
Arduino: 0.26420 W 36.7 °C internal (21.1 °C room)
Just a thought, is it because ESP-IDF is more efficient at processing the Bluetooth stack that the radio is active more hence more power? So doing more in the same amount of time.
Yeah. Possibly it’s able to proxy more advertisements which would take more power.
Guess that would be possible to figure out by turning on debug logging for Bluetooth in Home Assistant and counting.
But they both get me my Bluetooth temperature/humidity sensors readings fine
Overall IDF was using more power (post#1). We can’t assume that IDF is less optimized than Arduino, so it means that esphome has some problems or that IDF is running cores or wifi at higher power as default.