2026.04 defaults to max cpu_frequency - attention!

2026.04 defaults the CPU frequency to the chip maxmimum. This is a step from 160MHz to 240MHz for the original ESP32.
This is fine from a programmer’s point of view but the user has to think a second about thermal issues coming along.
Running a ESPHome firmware doesn’t benefit from the assumption that all calculations are made significant faster and the device may return to low power mode afterwards earlier. My tests resulted the way that the chip temperature raises in most use cases. Here’s a list of some of my implementations. All temperatures in °C

- ESP32 with camera module:
    idle: 49.6 -> 52.6 / +3
    streaming: 69.6 -> 71.6 / +2
- ESP32-C3: 31.8 -> 31.8 (no change)
- ESP32-C3: 32.8 -> 39.8 / +7
- ESP32 in a m5stack device: 52.8 -> 55.6 / +3
- ESP32-H2 (thread): 26.5 -> 27.5 / +1

It depends in what environments your device is running (boxed/cased or free air) and it’s average load.
Some of your implementations may fail now or later if stressed too hard by temperature. Buzz words are flash endurance and thermal stress.
My conclusion is: if your application doesn’t benefit from a higher cpu clock or you observe thermal increases, limit it to the one you need by adding

esp32:
  board: your_board
  # limit max temp, ca. 7°C
  cpu_frequency: 160MHZ

to your yaml. The frequencies are chip dependend, ESPHome lists them all.

2 Likes

For my curiosity, what temperatures you present here? Die temp, chip surface or can temp?
I see it pretty normal to run mcu at the rated frequency, that’s how our computers and phones do it as well. Power saving is argument apart of course.

I use this sensor on a few of my ESPs:

sensor:
  - platform: internal_temperature
    name: "Internal Temperature"
    update_interval: 60s
    entity_category: diagnostic
    disabled_by_default: false
    unit_of_measurement: °C
    state_class: measurement
    device_class: temperature

And after updating from 2026.3.3 to 2026.4.0 the temperature increased quite a bit, roughly +3 °C compared with the moments from right before the update:

65 to 68° C
(placed inside)

57 to 60° C
(placed outside)

3 deg increase of die temp is completely insignificant except for power consumption. Yours is just relaxing at 60 'C. Esp runs happily at 100 'C. And the temp sensing is not calibrated, it can be 10 deg off…

Yeah that‘s great, isn’t it? So much more performance for only that little power and temperate increase.

I thought the release notes covered a lot of this pretty well. Release notes have really improved lately. My guess is AI is helping with some of the writing.

Users on battery power or with thermal constraints can override with cpu_frequency: 160MHZ . This is a breaking change as it increases power consumption on affected variants.