ESPHome 2025.2.0: New audio components and old code removed - ESPHome - Smart Home Made Simple

🎉 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.

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.

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.

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.

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.

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!

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.

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.

For the complete list of every merged pull request in this release, see the full 2025.2.0 changelog.


This is a companion discussion topic for the original entry at https://esphome.io/blog/2025/02/19/esphome-2025-2/

What is wrong with the forum these days? Another old one making “headline news”…

1 Like

OHF is making an “effort” in Promoting ESPHome … or Not :laughing:

1 Like

I’ve also been wondering what all these ESPHome posts from the last two days, describing things going back to 2024, are doing here. :laughing:

It seems there’s been a bug with the system user for the last two days, because I doubt these ESPHome posts are intentional. :slightly_smiling_face:

1 Like

The (system user) clearly have to high “system” rights :joy:

It was decided to link the ESPHome blog posts to forum topics, like they have been doing for Home Assistant blog posts as well.
This is now activated, and done retroactively for all blog posts created since 2024.
So that’s why there is now a sudden wave of ESPHome blog posts here on the forums.

I don’t see the point but if there is, chronological order would make more sense…

1 Like

HomeAssistant , and which else is part of OHF i can understand is “favoriced” in community.home-assistant.io , Anyways i couldn’t care less , as long as i can mute whatever is not currently of interest. ( Seems like “i’ve” got it under control now )
Yes i think ESPHome is an awesome , cool “Project” , if i was in the mid teenage to mid 20th, i would probable be addicted, as that was the time where i soldered ( ugly homemade )circuit boards, and ripped apart electronics :joy:

While we are at it, if any decisions is made cause/do to the huge amount of Topics/Post in here , how about consider this:

  • There are most likely +100000 Topics created, Which doesn’t have Any Replies ( Zerro-None-0 ) since 2016
    How, and for what purpose are these " No Replies " Topics relevant, to have in a DB, available for Search/Sort/Crawls etc ?

Yes Topics in certain Categories have a legit place, for various reasons, but hardly Topics/Questions in i.e Configuration etc. etc. ( And obsolete for various reasons) With No answers/replies . … 2016>2026

And then Ofcause, the major reason i post here. Please “push” to get the " Unread " back to the Top of main-page ( if it’s do to “shortage” of horizontal space(solve it) or Hide “Top”

TOP, is hardly of any use for average users, beside it’s not sorted in any of the 3 ( Replies, Views, Activity, and have a chooseable “Span” … which ALL is reverted if you click out and in again. As mention, yes someone at a certain “lost moment” might find it interesting to click/see, ( Not that i can see the reason, as im Not an Admin, Or in any way involved in Statistics , nor do i come here to “participate/search” in the Most Active Topics :zany_face: