J. Nick Koston
d43aa2ea90
Merge branch 'uart-isr-wake-on-rx' into isr-wake-enable-loop-soon
2026-02-28 13:16:24 -10:00
J. Nick Koston
e7fc69e453
reorder
2026-02-28 12:26:31 -10:00
J. Nick Koston
2d4117f370
[core] Wake main loop from any context in enable_loop_soon_any_context()
...
enable_loop_soon_any_context() sets volatile flags but does not wake
the main loop from ulTaskNotifyTake() sleep. This means components
using ISR-driven state changes (e.g. GPIO binary sensors) wait up
to ~16ms for the select timeout before their loop runs.
Add wake_loop_any_context() that detects the calling context (ISR vs
task) using xPortInIsrContext() (ESP32) or __get_IPSR() (LibreTiny)
and calls the appropriate FreeRTOS API. This is safe from ISR, thread,
and main loop contexts.
Also relax the wake_loop_isrsafe() guard from requiring both
USE_WAKE_LOOP_THREADSAFE and USE_LWIP_FAST_SELECT to just
USE_LWIP_FAST_SELECT, since the ISR wake path uses
vTaskNotifyGiveFromISR directly and does not depend on the
UDP socket mechanism.
2026-02-28 11:15:26 -10:00
J. Nick Koston
59db01e8d7
Fix IRAM_ATTR not defined on LibreTiny (bk72xx)
...
IRAM_ATTR is defined by esp_attr.h on ESP32 but not on LibreTiny.
Add a no-op fallback in the C file since hal.h (which defines it
for C++) cannot be included from C.
2026-02-28 11:15:17 -10:00
J. Nick Koston
3c5d877d96
Fix clang-tidy naming: snake_case params, no trailing underscore on static method
...
- pxHigherPriorityTaskWoken → px_higher_priority_task_woken
- uart_rx_isr_callback_ → uart_rx_isr_callback
2026-02-28 10:53:52 -10:00
J. Nick Koston
89c43b49c2
[uart] Replace wake-on-RX task+queue with direct ISR callback
...
Use the ESP-IDF UART driver's uart_set_select_notif_callback() to wake
the main loop directly from the UART ISR via vTaskNotifyGiveFromISR(),
eliminating the FreeRTOS trampoline task and event queue that were
previously needed when wake_loop_threadsafe() used a UDP loopback socket.
With fast lwip select, the main loop sleeps on ulTaskNotifyTake(), so
the ISR-safe vTaskNotifyGiveFromISR() can wake it directly.
Saves ~2.6KB RAM per UART instance with wake-on-RX enabled:
- 2,240 bytes FreeRTOS task stack
- ~340 bytes event queue (20 entries + control block)
- 8 bytes QueueHandle_t + TaskHandle_t fields
Also adds Application::wake_loop_isrsafe() as the ISR-safe counterpart
to wake_loop_threadsafe(), backed by esphome_lwip_wake_main_loop_from_isr().
2026-02-28 10:40:33 -10:00
J. Nick Koston
757e8d90e6
[core] Inline set_component_state_ and use it in Application ( #14369 )
2026-02-28 07:20:34 -10:00
J. Nick Koston
7d52a9587f
[api] Outline keepalive ping logic from APIConnection::loop() ( #14374 )
2026-02-28 07:20:20 -10:00
J. Nick Koston
067d773aac
[core] Make register_component protected, remove runtime checks ( #14371 )
2026-02-28 07:19:55 -10:00
Clyde Stubbs
089d1e55e7
[mipi_dsi] Fix Waveshare P4 7B board config ( #14372 )
2026-02-28 20:37:04 +11:00
Raymond Richmond
6c0998f220
[gt911] Support for interrupt signal via IO Expander ( #14358 )
2026-02-28 18:26:06 +11:00
J. Nick Koston and Claude Opus 4.6
49cc389bf0
[esp32] Wrap printf/vprintf/fprintf to eliminate _vfprintf_r (~11 KB flash) ( #14362 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 17:28:05 -10:00
J. Nick Koston
8480e8df9f
[uart] Revert UART0 default pin workarounds (fixed in ESP-IDF 5.5.2) ( #14363 )
2026-02-27 17:27:51 -10:00
J. Nick Koston
e7d4f2608b
[sen6x] Fix test sensor ID collisions with sen5x ( #14367 )
2026-02-27 16:01:17 -10:00
Ryan Wagoner
d1b4813197
[web_server] Add climate preset, fan mode, and humidity support ( #14061 )
2026-02-27 14:20:13 -10:00
Jonathan Swoboda and Copilot
298ee7b92e
[gps] Fix codegen deadlock when automations reference sibling sensors ( #14365 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-02-27 19:08:42 -05:00
J. Nick Koston
5c56b99742
[ci] Fix C++ unit tests missing time component dependency ( #14364 )
2026-02-27 13:19:11 -10:00
b9d70dcda2
[sen6x] Add SEN6x sensor support ( #12553 )
...
Co-authored-by: Martin Ebner <martinebner@me.com >
Co-authored-by: Tobias Stanzel <tobi.stanzel@gmail.com >
Co-authored-by: Big Mike <mike@bigmike.land >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-27 16:41:28 -05:00
dependabot[bot]
5e3857abf7
Bump click from 8.1.7 to 8.3.1 ( #11955 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 16:25:36 -05:00
Laura Wratten and Jonathan Swoboda
bb567827a1
[sht3xd] Allow sensors that don't support serial number read ( #14224 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-27 16:23:32 -05:00
J. Nick Koston and Claude Opus 4.6
280f874edc
[rp2040] Use native time_us_64() for millis_64() ( #14356 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 11:18:02 -10:00
Jonathan Swoboda and Copilot
f6755aabae
[ci] Add PR title format check ( #14345 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-02-27 15:18:07 -05:00
J. Nick Koston
52af4bced0
[component] Devirtualize call_dump_config ( #14355 )
2026-02-27 10:01:23 -10:00
J. Nick Koston and Claude Opus 4.6
63e757807e
[zephyr] Use native k_uptime_get() for millis_64() ( #14350 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 10:01:09 -10:00
dependabot[bot]
edd63e3d2d
Bump actions/download-artifact from 7.0.0 to 8.0.0 ( #14327 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 14:43:10 -05:00
dependabot[bot]
32133e2f46
Bump ruff from 0.15.3 to 0.15.4 ( #14357 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 14:42:20 -05:00
Clyde Stubbs
2255c68377
[esp32] Enable execute_from_psram for P4 ( #14329 )
2026-02-28 06:40:55 +11:00
J. Nick Koston
9c1d1a0d9f
[color] Use integer math in Color::gradient to reduce code size ( #14354 )
2026-02-27 19:25:13 +00:00
J. Nick Koston and Claude Opus 4.6
8698b01bc7
[host] Use native clock_gettime for millis_64() ( #14340 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 18:54:13 +00:00
J. Nick Koston and Copilot
3411ce2150
[core] Fix Application asm label for Mach-O using __USER_LABEL_PREFIX__ ( #14334 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-27 08:49:57 -10:00
J. Nick Koston
29e1e8bdfd
[wifi] Add LibreTiny component test configs ( #14351 )
2026-02-27 18:45:20 +00:00
J. Nick Koston
317dd5b2da
[ci] Skip memory impact target branch build when tests don't exist ( #14316 )
2026-02-27 08:42:08 -10:00
Michael Cassaniti and Jonathan Swoboda
4ae7633418
[safe_mode] Add feature to explicitly mark a boot as successful ( #14306 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-27 13:23:02 -05:00
J. Nick Koston
c3a0eeceec
[wifi] Use direct SDK APIs for LibreTiny SSID retrieval ( #14349 )
2026-02-27 18:17:17 +00:00
J. Nick Koston
4fe173b644
[wifi] Remove stale TODO comment for ESP8266 callback deferral ( #14347 )
2026-02-27 17:56:57 +00:00
J. Nick Koston
1c7f769ec7
[core] Add millis_64() HAL function with native ESP32 implementation ( #14339 )
2026-02-27 07:48:21 -10:00
72ca514cc2
[esp32_hosted] Add configurable SDIO clock frequency ( #14319 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Deirdre <obyrne@rk1.lan >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-27 17:25:53 +00:00
J. Nick Koston
20314b4d63
[mdns] Update espressif/mdns to v1.10.0 ( #14338 )
2026-02-27 17:20:08 +00:00
Kevin Ahrendt
017d1b2872
[audio] Bump microOpus to v0.3.4 ( #14346 )
2026-02-27 12:12:50 -05:00
Jonathan Swoboda and Copilot
ef9fc87351
[zigbee] Fix codegen ordering for basic/identify attribute lists ( #14343 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-02-27 11:17:04 -05:00
J. Nick Koston and Claude Opus 4.6
0f7ac1726d
[core] Extend fast select optimization to LibreTiny platforms ( #14254 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 06:03:37 -10:00
bd3f8e006c
[esp32_ble] allow setting of min/max key_size and auth_req_mode ( #7138 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-02-27 06:02:29 -10:00
dependabot[bot]
07406c96e1
Bump actions/upload-artifact from 6.0.0 to 7.0.0 ( #14326 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 21:35:15 -10:00
4044520ccc
[esp32_touch] Migrate to new unified touch sensor driver (esp_driver_touch_sens) ( #14033 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-02-26 20:38:36 -10:00
Keith Burzinski
656389f215
[usb_uart] Performance, correctness and reliability improvements ( #14333 )
2026-02-26 23:41:35 -06:00
J. Nick Koston and Claude Opus 4.6
04db37a34a
[esp8266] Remove forced scanf linkage to save ~8KB flash ( #13678 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 17:38:38 -10:00
J. Nick Koston
15846137a6
[rp2040] Update arduino-pico framework from 3.9.4 to 5.5.0 ( #14328 )
2026-02-26 15:17:52 -10:00
J. Nick Koston
50e7571f4c
[web_server_idf] Prefer make_unique_for_overwrite for noninit recv buffer ( #14279 )
2026-02-26 15:17:25 -10:00
J. Nick Koston and Claude Opus 4.6
1ccfcfc8d8
[time] Eliminate libc timezone bloat (~9.5KB flash ESP32, ~2% RAM on ESP8266) ( #13635 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 15:12:44 -10:00
George Joseph
527d4964f6
[mipi_dsi] Add more Waveshare panels and comments ( #14023 )
2026-02-27 11:38:07 +11:00