Skip to content

Commit 4a40f99

Browse files
authored
Merge branch 'next' into feature/ina2xx-reset-optional
2 parents dc9fcc4 + 1b50e22 commit 4a40f99

File tree

12 files changed

+772
-16
lines changed

12 files changed

+772
-16
lines changed

content/changelog/2025.10.0.md

Lines changed: 719 additions & 0 deletions
Large diffs are not rendered by default.

content/changelog/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ description: "Changelog"
33
title: "Changelog"
44
---
55

6-
{{< redirect url="/changelog/2025.9.0.html" >}}
6+
{{< redirect url="/changelog/2025.10.0.html" >}}
105 KB
Loading

content/components/display/mipi_spi.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ using an octal SPI bus, so references here to parallel and octal SPI are equival
6767
| WAVESHARE-4-TFT | Waveshare | <https://www.waveshare.com/4inch-tft-touch-shield.htm> |
6868
| PICO-RESTOUCH-LCD-3.5 | Waveshare | <https://www.waveshare.com/pico-restouch-lcd-3.5.htm> |
6969
| WAVESHARE-ESP32-S3-TOUCH-AMOLED-1.75 | Waveshare | <https://www.waveshare.com/esp32-s3-touch-amoled-1.75.htm> |
70+
| WAVESHARE-ESP32-S3-TOUCH-LCD-3.49 | Waveshare | <https://www.waveshare.com/esp32-s3-touch-lcd-3.49.htm> |
7071
| WT32-SC01-PLUS | Wireless-Tag | <https://www.wireless-tag.com/portfolio/wt32-sc01-plus/> |
7172
| ESP32-2432S028 | Sunton | <https://www.espressif.com/en/products/devkits/esp32-2432s028> |
7273
| JC3248W535 | Guition | <https://www.aliexpress.com/item/1005007566332450.html> |
@@ -125,7 +126,7 @@ most of the configuration will be set by default, but can be overridden if neede
125126

126127
- **invert_colors** (*Optional*, boolean): Specifies whether the display colors should be inverted. Options are `true` or `false`. Defaults to `false`.
127128
- **rotation** (*Optional*): Rotate the display presentation in software. Choose one of `0°`, `90°`, `180°`, or `270°`. If the driver chip supports hardware rotation for the given orientation this will be translated to the appropriate hardware command. If hardware rotation is not supported, the display will be rotated in software.
128-
- **transform** (*Optional*): If `rotation` is not sufficient, use this to transform the display. If this option is specified, then the `dimensions` option must also be provided. Options are:
129+
- **transform** (*Optional*): If `rotation` is not sufficient, use this to transform the display. If this option is specified, then the `dimensions` option must also be provided. The value can either be the string `disabled` to disable hardware transform, or a dictionary. Options are:
129130

130131
- **swap_xy** (**Required**, boolean): If true, exchange the x and y axes.
131132
- **mirror_x** (**Required**, boolean): If true, mirror the x axis.
@@ -201,6 +202,8 @@ dimensions:
201202
width: 320
202203
```
203204

205+
When using the `CUSTOM` model with rotation, if the chip does not support hardware transform use `transform: disabled` to disable hardware transform and ensure software rotation.
206+
204207
## LCD Backlights
205208

206209
Many displays have an integrated backlight, which may need to be turned on for the display to show. This backlight is not controlled

content/components/esp32.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ LWIP (Lightweight IP) behavior. Some options improve performance while others sa
171171
- **enable_lwip_check_thread_safety** (*Optional*, boolean): Enable LWIP thread safety checks to detect incorrect usage of
172172
the TCP/IP stack from multiple threads. This helps catch thread safety issues when core locking is enabled. Defaults to `true`.
173173

174+
- **disable_libc_locks_in_iram** (*Optional*, boolean): Disable placing libc lock functions in IRAM. This saves approximately
175+
1.3 KB of IRAM by placing these functions in flash memory instead. This is safe for ESPHome since no IRAM interrupt service
176+
routines (ISRs that run while cache is disabled) use libc lock APIs. Defaults to `true` (IRAM placement disabled to save RAM).
177+
174178
Some options can be disabled to save flash memory without affecting typical ESPHome functionality. The performance
175179
options (defaulting to `true` ) improve socket operation performance but can be disabled if you need better
176180
multi-threaded scalability (which is uncommon since ESPHome uses an event loop).
@@ -189,6 +193,7 @@ esp32:
189193
enable_lwip_check_thread_safety: true # Thread safety validation
190194
191195
# Memory saving options
196+
disable_libc_locks_in_iram: true # Enabled by default, saves 1.3 KB IRAM
192197
enable_lwip_dhcp_server: false # Disabled by default, only needed for AP mode
193198
enable_lwip_mdns_queries: false # Enabled by default, can disable if not using .local hostnames
194199
enable_lwip_bridge_interface: false # Disabled by default

content/components/graph.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,5 +169,5 @@ color:
169169
> - Setting `y_grid` will expand any specified range to the nearest multiple of grid spacings.
170170
> - Axis labels are currently not possible without manually placing them.
171171
> - The grid and border color is set with `it.graph()`, while the traces are defined separately.
172-
> - Legends are drawn separately using `it.graph_legend()` and can be positioned independently of the graph.
172+
> - Legends are drawn separately using `it.legend()` and can be positioned independently of the graph.
173173
> - Legend dimensions are automatically calculated if not specified, based on font sizes and trace count.

content/components/light/_index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,8 @@ on_...:
410410
- **white** (*Optional*, [templatable](#config-templatable), percentage): The brightness to set the white channel
411411
to.
412412

413+
## Light Conditions
414+
413415
{{< anchor "light-is_on_condition" >}}
414416
{{< anchor "light-is_off_condition" >}}
415417

@@ -427,6 +429,8 @@ on_...:
427429
light.is_on: my_light
428430
```
429431

432+
## Light Triggers
433+
430434
{{< anchor "light-on_turn_on_off_trigger" >}}
431435

432436
### `light.on_turn_on` / `light.on_turn_off` Trigger

content/components/sensor/ld2450.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,8 +443,8 @@ Here is the complete example configuration for {{< docref "ld2450/" >}}.
443443

444444
```yaml
445445
esphome:
446-
name: ld2540-radar
447-
friendly_name: ld2540-radar
446+
name: ld2450-radar
447+
friendly_name: ld2450-radar
448448
449449
esp32:
450450
board: wemos_d1_mini32

content/components/usb_host.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ possible to configure devices directly in this component, but this has no applic
1818
# Example configuration entry
1919
usb_host:
2020
enable_hubs: true
21+
max_transfer_requests: 32 # For high-throughput devices like USB UART at 115200+ baud
2122
devices:
2223
- id: device_0
2324
vid: 0x1725
@@ -28,6 +29,7 @@ usb_host:
2829
2930
- **id** (*Optional*, [ID](#config-id)): The id to use for this component.
3031
- **enable_hubs** (*Optional*, boolean): Whether to include support for hubs. Defaults to `false`.
32+
- **max_transfer_requests** (*Optional*, int): Maximum number of concurrent USB transfer requests. Range: 1-32. Defaults to `16`. Increase this value for high-throughput devices (e.g., USB UART at 115200+ baud) if you see "All X transfer slots in use" errors.
3133
- **devices** (*Optional*, list): A list of devices to configure.
3234

3335
## Device configuration options

content/guides/esp32_arduino_to_idf.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ params:
1010
Starting with ESPHome 2026.1.0, the default framework for ESP32 will change from Arduino to ESP-IDF. This guide will
1111
help you migrate your existing configurations or make an informed choice about which framework to use.
1212

13-
Note: The Arduino framework is integrated as an ESP-IDF component, providing Arduino API compatibility
14-
within the ESP-IDF build system.
13+
> [!NOTE]
14+
> The Arduino framework is built as an ESP-IDF component on top of ESP-IDF, providing Arduino API compatibility
15+
> within the ESP-IDF build system. This means Arduino builds include both the ESP-IDF framework and the Arduino
16+
> compatibility layer, resulting in longer build times, more flash usage, and more RAM usage compared to native ESP-IDF.
1517
1618
> [!NOTE]
1719
> This change only affects ESP32, ESP32-S2, ESP32-S3, and ESP32-C3 variants.
@@ -113,15 +115,15 @@ when available:
113115

114116
**Arduino-Only Components:**
115117

116-
The following components currently require Arduino framework and don't have ESP-IDF alternatives yet:
118+
The following components currently require Arduino framework and don't have ESP-IDF alternatives or native ESP-IDF support yet:
117119

118120
- {{< docref "/components/output/ac_dimmer" "ac_dimmer" >}} - AC dimmer control
119121
- {{< docref "/components/sensor/dsmr" "dsmr" >}} - Dutch Smart Meter integration
120122
- {{< docref "/components/climate/climate_ir" "heatpumpir" >}} - IR-based heat pump control
121123
- {{< docref "/components/climate/midea" "midea" >}} - Midea air conditioner control
122124
- {{< docref "/components/light/index" "WLED Effect" >}} - WLED UDP Realtime Control integration
123125

124-
If you need these components, you should continue using the Arduino framework.
126+
If you need these components, you will need to continue using the Arduino framework.
125127

126128
> [!NOTE]
127129
> Component compatibility is constantly improving. Check the component documentation
@@ -140,13 +142,15 @@ If you encounter compilation errors after switching to ESP-IDF:
140142

141143
### Build Time
142144

143-
ESP-IDF compilation takes approximately 25% longer than Arduino:
145+
ESP-IDF compilation is significantly faster than Arduino:
146+
147+
- **ESP-IDF is 2-3x faster** than Arduino framework
148+
- On modern desktop systems: ESP-IDF saves 30-60 seconds per build
149+
- On Raspberry Pi 5: ESP-IDF saves 2-4 minutes per build
150+
- On Raspberry Pi 4 or older: ESP-IDF saves 6-10 minutes or more per build
151+
- Subsequent builds maintain the same relative performance advantage
144152

145-
- On modern desktop systems: ~15-30 seconds additional time
146-
- On Raspberry Pi 5: ~1 minute additional time
147-
- On Raspberry Pi 4 or older: 3-5 minutes additional time
148-
- Subsequent builds are faster but still proportionally slower
149-
- The longer build time is due to ESP-IDF's more comprehensive optimization process
153+
The faster build times are due to ESP-IDF's optimized build system and the elimination of the Arduino compatibility layer overhead.
150154

151155
### Performance Considerations
152156

0 commit comments

Comments
 (0)