ESPHome 2025.2.0: New audio components and old code removed

🎉 Happy New Year! 🎉
We’re kicking off 2025 with a number of updates, several of which are focused on removing old code. Unfortunately, this means we have a few breaking changes, but this work helps keep ESPHome more maintainable in the long-run.
Join us below for the ESPHome New Year Release Party.
Removal of “old style” Platform Configuration
Section titled “Removal of “old style” Platform Configuration”Three years ago, we added support for using ESP-IDF directly (as an alternative to Arduino). This brought about a number of benefits and a new syntax was introduced to facilitate greater flexibility when specifying and configuring your microcontroller/board.
In this release, we’ve removed support for the “old style” of configuring your microcontroller/board. If you’re still using it, you’ll need to update your configurations to use the new style. A brief explanation is in this pull request, but for more detail, please see the documentation for your microcontroller platform.
Removal of Custom Components
Section titled “Removal of Custom Components”Custom components were deprecated over a year ago and, as promised, support for them was removed in this release. We encourage all developers to migrate their custom components to External Components. Please see a note about custom components for a detailed explanation and next steps.
Removal of armv7 support
Section titled “Removal of armv7 support”ESPHome no longer supports the 32-bit armv7 architecture. This is due to both waning support as it relates to
tooling and performance reasons. We strongly recommend moving to a more modern architecture, especially if you’re using
the ESPHome Device Builder to build/compile firmware for your devices.
-
The toolchains required for compiling ESPHome are dropping support for armv7, so if the toolchain is not available, ESPHome can’t do the compile.
-
Building on armv7 is very slow and is likely to crash due to lack of RAM, which is not a good user experience.
-
ESPHome can be installed anywhere you can run Docker or Python pip, which will provide a better experience with much faster compiling.
esp32_rmt Updates
Section titled “esp32_rmt Updates”Components which utilize the RMT hardware found on the ESP32 and its variants have been updated to use the new interface available in ESP-IDF versions 5 and above. This eliminates related warnings seen in the compiler logs while building ESPHome configurations. In most cases, you won’t notice any difference, but this change could result in some issues, particularly for External Components. You may need to make a minor change or two in your device configurations; the configuration validator will tell you if this is necessary as you update your devices.
Audio Components
Section titled “Audio Components”This release includes support for a number of new audio-related components/hardware. These are primarily aimed at supporting hardware found in Espressif’s S3-Box series of products, eliminating the need to use the ESP-ADF and thus offering better integration with ESPHome in general. If you’re using an S3-Box (or one of the variants), we strongly recommend updating your device either OTA or by using our Projects web installer. If you have “taken control” of or “adopted” your S3-Box, we strongly recommend updating your device’s local configuration based on our updated configuration files found at https://github.com/esphome/wake-word-voice-assistants.
In addition, new speaker components have been introduced to provide more advanced functionality when using
Voice Assistant. These components extend our work to help you create the ultimate
personal voice assistant hardware.
The new speaker media player component adds several features for building a well-rounded audio device. It supports playing two different streams of audio: one for announcements and another for music.
The new mixer speaker component lets you combine the two streams. The mixer even supports audio ducking, so you can lower the volume of the music while your announcement plays!
Image Components
Section titled “Image Components”This release adds support for alpha-blending images when using LVGL. To facilitate this, the use_transparency
configuration variable in Image and related components was renamed to transparency
and changed from a boolean to an enum; in addition, the type configuration variable is now mandatory. See the
Image documentation for more detail.
The default presentation for binary images has changed in part due to the new transparency support. This may result
in images appearing to have inverted colors for example on e-ink displays. There is a new configuration variable,
invert_alpha, which can be used to switch black and white pixels if necessary to restore the previous behaviour.
Finally, the Online Image was updated to add support for both BMP and JPEG image formats.
ILI9XXX Display Component
Section titled “ILI9XXX Display Component”There are two changes to the Ili9Xxx component. Previously the component
automatically loaded the psram component - this has been removed, and you must now explicitly include the
psram component in your configuration if your display requires it. The bit-depth defaults to 16 bit as before, but
there is no attempt to automatically fallback to 8 bit if insufficient memory is available. You must now explicitly
select 8-bit mode with the color_palette configuration variable if required.
The symptoms caused by these changes are likely to be a blank screen or a screen that is not displaying correctly. Check the runtime logs for any errors or warnings that may indicate the cause of the issue, specifically memory allocation failures.
Release 2025.2.1 - February 26
Section titled “Release 2025.2.1 - February 26”- Bump aioesphomeapi to 29.1.1 esphome#8274 by @bdraco
- Fix BLE max notifications with ESP-IDF 5.x esphome#8301 by @bdraco
- Update webserver local assets to 20250224-195901 esphome#8312 by @esphomebot
- Fix bluetooth race when disconnect called while still connecting esphome#8297 by @bdraco
- [esp32_touch] Fix variants, add tests for variants esphome#8320 by @kbx81
Release 2025.2.2 - March 3
Section titled “Release 2025.2.2 - March 3”- Fix
end_of_scan_not being called while disconnecting esphome#8328 by @bdraco - [audio] Determine http timeout based on duration since last successful read esphome#8341 by @kahrendt
- Bump aioesphomeapi to 29.3.2 esphome#8353 by @bdraco
- [ltr390] Move calculation to allow dynamic setting of gain and resolution esphome#8343 by @jesserockz
Full List of Changes
Section titled “Full List of Changes”For the complete list of every merged pull request in this release, see the full 2025.2.0 changelog.

Comments