J. Nick Koston
feb734c8b7
[rp2040] Add interrupt guard to millis() accumulator
...
Wiegand and ZyAura call millis() from ISR handlers on all platforms
including RP2040 (no platform restrictions on either component). The
accumulator's mutable statics need protection from concurrent ISR
access. Uses save_and_disable_interrupts()/restore_interrupts() —
same pattern as InterruptLock in rp2040/helpers.cpp.
2026-04-12 09:11:41 -10:00
J. Nick Koston
12d227dee8
[rp2040] Bound the while loop in millis() accumulator
...
Same approach as ESP8266: split into common path (while loop, ≤10
iterations) and rare path (constant-time /1000 multiply for gaps
>10 ms). RP2040 has no ISR callers so no interrupt guard needed,
but the bounded loop avoids worst-case latency if millis() is
called from a context that was blocked for a long time.
2026-04-11 23:22:12 -10:00
J. Nick Koston
85c51967f5
[rp2040] Merge accumulator into millis(), struct statics, cleanup
...
Merge millis_accumulator() into millis() and pack statics into a struct
for smaller code. Remove unused USE_FAST_MILLIS_ACCUMULATOR define.
Add NOLINTNEXTLINE for __wrap_millis reserved identifier.
2026-04-11 23:17:12 -10:00
J. Nick Koston
31aa00f1d5
[rp2040] Add USE_FAST_MILLIS_ACCUMULATOR define for benchmark guard
2026-04-11 22:38:29 -10:00
J. Nick Koston
a50a24aed3
[rp2040] Fix clang-format: drop trailing underscore from static function
2026-04-11 22:22:32 -10:00
J. Nick Koston
357835cc20
[rp2040] Replace millis() with fast accumulator, wrap Arduino callers
...
Arduino-pico's millis() uses time_us_64() (64-bit hardware timer read)
then micros_to_millis() for 64-bit multiply-shift conversion on ARM
Cortex-M0+. Benchmarked at ~789 ns/call.
Replace with a simple accumulator that tracks a running millis counter
from 32-bit ::micros() deltas (220 ns on RP2040) using pure 32-bit
integer ops. No 64-bit math needed.
Use -Wl,--wrap=millis to intercept all ::millis() calls so Arduino
libraries also get the fast version.
millis_64() is left on time_us_64() for full 64-bit precision — it is
only called once per loop by the Scheduler.
Overflow safety: ::micros() wraps every ~71.6 minutes. Unsigned 32-bit
delta arithmetic handles one wrap correctly. ESPHome calls millis()
thousands of times per second, so missing a full wrap is not a realistic
concern.
Benchmarked on real RP2040 hardware:
Before: 789 ns/call (time_us_64 + micros_to_millis)
After: ~270 ns/call (accumulator, estimated)
2026-04-11 22:20:36 -10:00
Jonathan Swoboda
bef4c8a86c
[cc1101] Extract chip configuration into configure() method ( #15635 )
2026-04-11 17:36:27 -04:00
Farmer-shin
6e67864510
[epaper_spi] Add Waveshare 3.97inch E-Paper Display ( #15466 )
2026-04-11 21:27:25 +10:00
dependabot[bot]
c2af4874f9
Bump aioesphomeapi from 44.13.2 to 44.13.3 ( #15641 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-11 08:58:20 +00:00
dependabot[bot]
2001b91280
Bump resvg-py from 0.3.0 to 0.3.1 ( #15640 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-11 08:57:39 +00:00
dependabot[bot]
5460ee7edd
Bump aioesphomeapi from 44.13.1 to 44.13.2 ( #15637 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 15:55:15 -10:00
J. Nick Koston
40081e5ae7
[rp2040] Fix W5500 Ethernet pbuf corruption by mirroring LWIPMutex semantics ( #15624 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-10 13:13:05 -10:00
Jonathan Swoboda
a7c5b0ab46
[sx127x][cc1101][sx126x] Use GPIO interrupt to wake loop ( #15627 )
2026-04-10 16:26:09 -04:00
dependabot[bot]
e1a813e11f
Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 ( #15630 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:21:01 -10:00
dependabot[bot]
1dfeef0265
Bump actions/github-script from 8.0.0 to 9.0.0 ( #15632 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:20:43 -10:00
dependabot[bot]
395610c117
Bump docker/build-push-action from 7.0.0 to 7.1.0 in /.github/actions/build-image ( #15633 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:20:17 -10:00
dependabot[bot]
ae96f82b82
Bump actions/upload-artifact from 7.0.0 to 7.0.1 ( #15631 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:20:04 -10:00
dependabot[bot]
2c610abcd0
Bump resvg-py from 0.2.6 to 0.3.0 ( #15629 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:19:52 -10:00
Kevin Ahrendt
d3591c8d9e
[micro_wake_word] Pin esp-nn version ( #15628 )
2026-04-10 15:21:26 -04:00
J. Nick Koston
ec420d5792
[api] Add (inline_encode) proto option for sub-message inlining ( #15599 )
2026-04-10 15:33:56 +12:00
J. Nick Koston
17209df7b5
[mcp23016] Add interrupt pin support ( #15616 )
2026-04-10 15:29:52 +12:00
J. Nick Koston
9cf9b02ba2
[pca6416a] Add interrupt pin support ( #15614 )
2026-04-10 15:29:26 +12:00
J. Nick Koston
c90fa2378a
[tca9555] Add interrupt pin support ( #15613 )
2026-04-10 15:29:00 +12:00
Jesse Hills
c04dfa922e
[hbridge] Move light pin switching to loop ( #15615 )
2026-04-10 14:02:49 +12:00
Jesse Hills
668007707d
[CI] Add org fork detection warning to auto-label PR workflow ( #15588 )
2026-04-10 12:13:22 +12:00
dependabot[bot]
ab71f5276f
Bump ruff from 0.15.9 to 0.15.10 ( #15609 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-09 19:36:25 +00:00
Jonathan Swoboda
d062f62656
[sx127x][cc1101] Disable loop when packet mode is inactive ( #15606 )
2026-04-09 15:00:52 -04:00
J. Nick Koston
03db32d045
[core] Add CodSpeed benchmarks for hot helper functions ( #15593 )
2026-04-09 07:48:32 -10:00
J. Nick Koston
8f6d489a9a
[ci] Use --base-only for memory impact builds ( #15598 )
2026-04-09 11:48:33 -04:00
J. Nick Koston
dd07fba943
[socket] Document ready() contract: callers must drain or track ( #15590 )
2026-04-09 11:48:18 -04:00
J. Nick Koston
6f5d642a31
[gdk101] Increase reset retries for slow-booting sensor MCU ( #15584 )
2026-04-09 11:48:10 -04:00
dependabot[bot]
2721f08bcc
Bump aioesphomeapi from 44.12.0 to 44.13.1 ( #15600 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-09 10:03:58 +00:00
J. Nick Koston
eafc5df3f2
[safe_mode] Combine related OTA rollback log messages ( #15592 )
2026-04-09 05:30:39 +00:00
J. Nick Koston
46d0c29be5
[safe_mode] Use loop component start time instead of millis() ( #15591 )
2026-04-09 05:20:32 +00:00
J. Nick Koston
abdbbf4dd2
[api] Fix ListEntitiesRequest not read due to LWIP rcvevent tracking ( #15589 )
2026-04-09 02:14:01 +00:00
Jesse Hills
4dc0599a7d
Merge branch 'beta' into dev
2026-04-09 13:41:27 +12:00
Jesse Hills
ded0936b2a
Merge pull request #15587 from esphome/bump-2026.4.0b1
...
2026.4.0b1
2026.4.0b1
2026-04-09 13:40:37 +12:00
Jesse Hills
52c35ec09c
Bump version to 2026.5.0-dev
2026-04-09 11:28:48 +12:00
J. Nick Koston
76490e45bc
[ci] Fix status-check-labels workflow flooding CI queue ( #15585 )
2026-04-08 13:08:29 -10:00
Angel Nunez Mencias
0a8130858c
[ade7953_spi] Fix SPI mode on esp-idf ( #14824 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-08 22:57:53 +00:00
Jesse Hills
ff5ba99d16
Bump version to 2026.4.0b1
2026-04-09 10:39:13 +12:00
Clyde Stubbs
14ec82084b
[rpi_dpi_rgb][qspi_dbi] Add deprecation warnings ( #15583 )
2026-04-09 10:35:09 +12:00
J. Nick Koston
8e02d0a20e
[fan] Store preset mode vector on Fan entity to eliminate heap allocation ( #15209 )
2026-04-09 10:25:37 +12:00
J. Nick Koston
faa05031a7
[climate] Store custom mode vectors on Climate entity to eliminate heap allocation ( #15206 )
2026-04-09 10:25:29 +12:00
J. Nick Koston
d4cce142c5
[api] Fix batch messages stuck in Nagle buffer ( #15581 )
2026-04-08 21:11:31 +00:00
J. Nick Koston
576d89a82a
[api] Peel first write iteration, inline socket writes, zero-gap batch encoding ( #15063 )
2026-04-08 11:05:53 -10:00
J. Nick Koston
4a18ef87d7
[codegen] Fix templatable float type to use cg.float_ ( #15568 )
2026-04-08 20:23:36 +00:00
Jonathan Swoboda
2cd92a311b
[esp32] Capture both cores' backtraces in crash handler ( #15559 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-08 20:14:18 +00:00
J. Nick Koston
94f1e48d95
[esp32] Preserve crash data across OTA rollback reboots ( #15578 )
2026-04-08 16:09:43 -04:00
Jonathan Swoboda
19c8f0ac7a
[zephyr] Fix user overlay only emitting first property ( #15560 )
2026-04-08 09:46:36 -10:00