ESPHome 2025.8.0: nRF52 support and ESP-NOW mesh communication

Release Overview
Section titled “Release Overview”ESPHome 2025.8.0 expands platform support with the introduction of Nordic nRF52 devices, adds mesh communication capabilities, and delivers significant performance improvements. This release focuses on architectural innovation and memory optimization while introducing new hardware possibilities.
Key Highlights:
- New nRF52 platform based on Zephyr RTOS opens Nordic semiconductor ecosystem
- ESP-NOW mesh communication enables direct device-to-device connectivity
- High-performance MIPI DSI displays for ESP32-P4 professional applications
- Extensive memory optimizations with up to 10x performance improvements in key areas
- Python 3.11+ requirement (breaking change - Python 3.10 support dropped)
NRF52 Platform Support
Section titled “NRF52 Platform Support”ESPHome 2025.8.0 introduces basic support for Nordic nRF52 series microcontrollers through the new Nrf52 platform. This implementation is built on the Zephyr RTOS, providing a robust foundation for Nordic semiconductor devices.
Key Features:
- Complete platform integration with ESPHome’s component ecosystem
- ADC support for analog sensor reading with configurable resolution
- GPIO functionality with interrupt support and pin configuration
- Zephyr debug component for advanced debugging and development
The nRF52 platform opens up new possibilities for low-power, Bluetooth-enabled devices while maintaining the familiar ESPHome configuration syntax and component compatibility.
ESP-NOW Communication
Section titled “ESP-NOW Communication”The new Espnow component brings device-to-device communication to ESP32 platforms without requiring WiFi infrastructure. ESP-NOW enables direct communication between ESP32 devices using the 2.4GHz band with minimal power consumption.
Applications:
- Mesh sensor networks - Sensors can communicate directly without WiFi routers
- Remote control systems - Direct device control with low latency
- Backup communication - Fallback when WiFi is unavailable
- Battery-powered devices - Efficient communication for power-constrained applications
This protocol is particularly valuable for distributed sensor networks and scenarios where traditional WiFi infrastructure is impractical or unavailable.
MIPI DSI Display Support
Section titled “MIPI DSI Display Support”ESPHome now supports high-performance MIPI DSI displays through the new Mipi Dsi component, specifically designed for ESP32-P4 processors with DSI interfaces.
Benefits:
- High-resolution displays with excellent performance
- Hardware acceleration through dedicated DSI controllers
- Reduced CPU overhead compared to traditional SPI displays
- Professional display quality for advanced applications
This addition significantly expands ESPHome’s display capabilities, enabling professional-grade user interfaces and high-resolution graphics applications.
Memory & Performance Optimizations
Section titled “Memory & Performance Optimizations”ESPHome 2025.8.0 includes extensive optimizations focused on reducing memory usage and improving performance:
Flash Memory Savings:
- Conditional compilation removes unused API features (thousands of bytes saved)
- Optimized protobuf implementations with zero-copy techniques
- Reduced code duplication across components
- Streamlined error handling and logging systems
Runtime Performance:
- 10x faster string encoding with optimized memcpy operations
- Enhanced scheduler with reduced millis() calls
- Improved BLE scanning with batched processing
- Zero-copy protobuf fields for reduced memory allocations
Python 3.11+ Requirement
Section titled “Python 3.11+ Requirement”Starting with ESPHome 2025.8.0, Python 3.11 or higher is required to run ESPHome. This change enables us to:
- Utilize modern Python features and improvements
- Remove legacy compatibility code that was needed for older Python versions
- Maintain a more secure and efficient codebase
Why This Change?
Section titled “Why This Change?”Python 3.10 reaches its end of life in October 2026. This upgrade is necessary for the project to move forward with modern development practices and maintain long-term security and maintainability.
What You Need to Do
Section titled “What You Need to Do”| Installation Method | Action Required |
|---|---|
| Home Assistant Add-on | No action needed - Already uses Python 3.12 |
| Container Images (Docker) | No action needed - Already uses Python 3.12 |
| Direct Installation (pip) | Upgrade Python to 3.11+ before updating ESPHome |
WARNING
If you’re running ESPHome directly on your machine with Python 3.10 or older, running pip install -U esphome
will not upgrade beyond version 2025.7.x. You must upgrade your Python installation first.
Breaking Changes
Section titled “Breaking Changes”ESPHome 2025.8.0 includes several breaking changes that may require action on your part:
Bluetooth and BLE Changes
Section titled “Bluetooth and BLE Changes”-
Bluetooth Proxy: Parsed advertisement support and V1 connection support removed to save memory
-
BLE: Conditional compilation for advertising and service classes may reduce available features if not explicitly enabled
-
May affect older components using deprecated Bluetooth features
API Optimizations
Section titled “API Optimizations”- Deprecated protobuf fields removed (reduces flash usage)
- Conditional compilation for Home Assistant state/service subscriptions
- May affect custom API clients using deprecated fields
Component Filter Changes
Section titled “Component Filter Changes”-
LD2410 and LD2450 components now use native filters instead of
throttle -
See the component documentation for updated filter configuration
ESP32 Touch Sensor
Section titled “ESP32 Touch Sensor”- Workaround implemented for ESP-IDF v5.4 regression
- May affect touch sensor behavior on newer ESP-IDF versions
Most of these changes are automatic optimizations that shouldn’t affect typical usage, but custom components or advanced configurations may need updates.
Release 2025.8.1 - August 25
Section titled “Release 2025.8.1 - August 25”- [api] Add zero-copy StringRef methods for compilation_time and effect_name esphome#10257 by @bdraco
- [esp32_ble_client] Add log helper functions to reduce flash usage by 120 bytes esphome#10243 by @bdraco
- [api] Add
USE_API_HOMEASSISTANT_SERVICESif usingtag_scannedaction esphome#10316 by @jesserockz - [http_request] Fix for host after ArduinoJson library bump esphome#10348 by @clydebarrow
- [core] Improve error reporting for entity name conflicts with non-ASCII characters esphome#10329 by @bdraco
- [pvvx_mithermometer] Fix race condition with BLE authentication esphome#10327 by @bdraco
- [esp32_ble_client] Optimize BLE connection parameters for different connection types esphome#10356 by @bdraco
- [esp32_ble] Increase GATT connection retry count to use full timeout window esphome#10376 by @bdraco
- [script] Fix parallel mode scripts with delays cancelling each other esphome#10324 by @bdraco
- [deep_sleep] Fix ESP32-C6 compilation error with gpio_deep_sleep_hold_en() esphome#10345 by @bdraco
- [esp32_ble_client] Reduce log level for harmless BLE timeout race conditions esphome#10339 by @bdraco
- [lvgl] Fix meter rotation esphome#10342 by @clydebarrow
- [esp32_ble_tracker] Fix on_scan_end trigger compilation without USE_ESP32_BLE_DEVICE esphome#10399 by @bdraco
- [test] Add integration test for light effect memory corruption fix esphome#10417 by @bdraco
- [web_server] Use oi.esphome.io for css and js assets esphome#10296 by @clydebarrow
Release 2025.8.2 - August 29
Section titled “Release 2025.8.2 - August 29”- [wifi] Fix reconnection failures after adapter restart by not clearing netif pointers esphome#10458 by @bdraco
- [mipi_spi] Fix dimensions esphome#10443 by @clydebarrow
- [i2c] Perform register reads as single transactions esphome#10389 by @clydebarrow
- [wifi] Fix retry with hidden networks. esphome#10445 by @clydebarrow
- Fix AttributeError when uploading OTA to offline OpenThread devices esphome#10459 by @bdraco
- [rtttl] Fix RTTTL for speakers esphome#10381 by @fortuna
- [esphome] Fix OTA watchdog resets by validating all magic bytes before blocking esphome#10401 by @bdraco
Release 2025.8.3 - September 4
Section titled “Release 2025.8.3 - September 4”- [mcp4461] Fix reading level esphome#10479 by @p1ngb4ck
- Fix incorrect entity count due to undefined execution order with globals esphome#10497 by @bdraco
- [mipi_dsi] Fix config for Guition screen esphome#10464 by @clydebarrow
- [mcp4461] Fix read transaction esphome#10465 by @clydebarrow
- [esp32] Rebuild when idf_component.yml changes esphome#10540 by @swoboda1337
- [i2c] Fix bug in write_register16 esphome#10547 by @latonita
- [esp32] Clear IDF environment variables esphome#10527 by @swoboda1337
- [api] Fix VERY_VERBOSE logging compilation error with bool arrays esphome#10539 by @bdraco
Release 2025.8.4 - September 10
Section titled “Release 2025.8.4 - September 10”- [sen5x] Fix initialization esphome#10603 by @kbx81
- [kmeteriso] Fix i2c call esphome#10618 by @clydebarrow
- [light] add missing header esphome#10590 by @tomaszduda23
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.8.0 changelog.


Comments