Commit Graph

23380 Commits

Author SHA1 Message Date
J. Nick Koston
33be8a388e Merge remote-tracking branch 'upstream/dev' into integration 2026-02-27 06:16:36 -10:00
J. Nick Koston
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
whitty
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
J. Nick Koston
4fbe9cace0 Fix friend declaration for ESP8266 clang-tidy
The fully-qualified friend uint64_t ::esphome::millis_64() syntax
causes 'uint64_t is not a class, namespace, or enumeration' errors
on ESP8266 clang-tidy. Use unqualified form which resolves correctly
within the esphome namespace.
2026-02-26 23:18:31 -10:00
J. Nick Koston
6901908ead Merge remote-tracking branch 'origin/millis64-hal' into integration 2026-02-26 23:07:24 -10:00
J. Nick Koston
33d4f62510 Restore explicit cast for -Wsign-conversion consistency
millis() on the line above casts esp_timer_get_time() to uint32_t.
Match that pattern in millis_64() with static_cast<uint64_t> to
avoid implicit signed-to-unsigned conversion.
2026-02-26 23:05:18 -10:00
J. Nick Koston
554e2ac7f1 Use 1000ULL for consistency, tighten @param comment
- Use 1000ULL divisor in millis_64() to match millis() style and
  avoid implicit signed-to-unsigned conversion
- Clarify next_schedule_in @param: now is unused for 64-bit
  extension on ESP32, but still used for 32-bit paths in call()
2026-02-26 23:03:14 -10:00
J. Nick Koston
2a101832ca Address review feedback
- Remove unnecessary uint64_t cast on esp_timer_get_time() (already
  returns int64_t, always non-negative after boot)
- Fix next_schedule_in @param comment: now is only unused on ESP32,
  used for rollover tracking on other platforms
- Use fully-qualified friend declaration (::esphome::millis_64())
2026-02-26 22:59:29 -10:00
J. Nick Koston
bff1c86a4b Address review feedback
- Remove unnecessary uint64_t cast on esp_timer_get_time() (already
  returns int64_t, always non-negative after boot)
- Fix next_schedule_in @param comment: now is only unused on ESP32,
  used for rollover tracking on other platforms
- Use fully-qualified friend declaration (::esphome::millis_64())
2026-02-26 22:59:11 -10:00
J. Nick Koston
001124bc73 Merge branch 'millis64-hal' into integration 2026-02-26 22:54:40 -10:00
J. Nick Koston
915b32cb33 Fix clang-tidy redundant-declaration warning
Include hal.h directly in scheduler.h instead of forward-declaring
millis_64(), which clang-tidy flags as redundant when both headers
are included in the same translation unit.
2026-02-26 22:52:48 -10:00
J. Nick Koston
420ecb4efd [core] Add millis_64() HAL function with native ESP32 implementation
On ESP32, millis() truncates esp_timer_get_time() to 32-bit, then
Scheduler::millis_64_() reconstructs 64-bit using 193 bytes of
CAS/atomic/lock rollover tracking code. This is unnecessary since
esp_timer_get_time() already provides native 64-bit microseconds.

Add millis_64() as a HAL-level function alongside millis():
- ESP32: native esp_timer_get_time()/1000 (26 bytes, lock-free)
- Other platforms: delegate to Scheduler::millis_64_impl_() which
  retains the existing rollover tracking (renamed from millis_64_)

Saves 344 bytes flash and ~8 bytes RAM on ESP32 by eliminating the
rollover tracking code and associated atomic fields. External callers
(uptime, web_server) now use millis_64() directly instead of
App.scheduler.millis_64().
2026-02-26 22:41:19 -10:00
J. Nick Koston
511390d507 Merge remote-tracking branch 'bdraco/update-mdns-1.10.0' into integration 2026-02-26 21:48:36 -10:00
J. Nick Koston
43eba3ff1b [mdns] Update espressif/mdns to v1.10.0
Update the ESP-IDF mdns component from v1.9.1 to v1.10.0.
2026-02-26 21:45:58 -10:00
J. Nick Koston
2d9bb04ce9 Merge branch 'ble_set_security_params' into integration 2026-02-26 21:37:11 -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
J. Nick Koston
105d45c489 move tests to correct dir 2026-02-26 21:12:04 -10:00
J. Nick Koston
a6aa113086 fixes 2026-02-26 21:10:29 -10:00
J. Nick Koston
628b9d3e88 Merge branch 'dev' into ble_set_security_params 2026-02-26 23:54:21 -07:00
J. Nick Koston
bde509673d Merge remote-tracking branch 'upstream/dev' into integration 2026-02-26 20:48:13 -10:00
Jonathan Swoboda
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
e1df983b36 Merge branch 'esp32_touch_new_driver' into integration 2026-02-26 18:11:39 -10:00
Jonathan Swoboda
5f55f2056d Remove timeout code 2026-02-26 22:59:17 -05:00
J. Nick Koston
2254906bd8 Merge remote-tracking branch 'upstream/remove_posix_tz_parser' into integration 2026-02-26 17:39:14 -10:00
J. Nick Koston
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
d03066846d Merge remote-tracking branch 'upstream/dev' into esp32_touch_new_driver 2026-02-26 17:36:25 -10:00
Jonathan Swoboda
4469ab26fe Fix esp32 release 2026-02-26 22:26:08 -05:00
Jonathan Swoboda
c7c0065db7 Magics 2026-02-26 22:12:03 -05:00
Jonathan Swoboda
ca5bef5814 Magics 2026-02-26 21:56:32 -05:00
Jonathan Swoboda
44667a94e2 Fix 2026-02-26 21:47:49 -05:00
J. Nick Koston
8f0a555b31 Merge branch 'posix_tz_proto' into remove_posix_tz_parser 2026-02-26 15:20:11 -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
32aad0f582 Merge remote-tracking branch 'upstream/dev' into posix_tz_proto 2026-02-26 15:15:50 -10:00
J. Nick Koston
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
J. Nick Koston
4abd523dce Merge remote-tracking branch 'upstream/dev' into integration 2026-02-26 14:40:51 -10:00
George Joseph
527d4964f6 [mipi_dsi] Add more Waveshare panels and comments (#14023) 2026-02-27 11:38:07 +11:00
esphomebot
67ba68a1a0 Update webserver local assets to 20260226-220330 (#14330)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-26 22:21:40 +00:00
J. Nick Koston
ed5980a2a2 Merge branch 'web-server-idf-make-unique-for-overwrite' into integration 2026-02-26 12:11:24 -10:00
Jonathan Swoboda
f38e419998 Merge branch 'dev' into esp32_touch_new_driver 2026-02-26 16:55:02 -05:00
J. Nick Koston
a893c2936b Merge branch 'update_rp2040_arduino_pico_5_5_0' into integration 2026-02-26 11:42:09 -10:00
J. Nick Koston
23a2e4c92d [wifi] Restore original CYW43 STA mode setup in wifi_mode_
Restore the cyw43_wifi_set_up() call for STA mode that was incorrectly
removed. Without this, cyw43_wifi_scan() fails on initial boot because
the radio isn't initialized - scanning must work before the first
beginNoBlock() call.
2026-02-26 11:41:29 -10:00
J. Nick Koston
7e1d25859c [wifi] Enable CYW43 STA mode before scanning on RP2040
Call cyw43_arch_enable_sta_mode() in wifi_mode_() when STA is requested.
Without this, cyw43_wifi_scan() fails on initial boot because the radio
isn't initialized yet - it only got enabled later inside beginNoBlock().
This caused the state machine to skip scanning, fall through to
RETRY_HIDDEN, and do a wasteful blind SSID-only connect for non-hidden
networks.
2026-02-26 11:39:42 -10:00
J. Nick Koston
300ecff78f Merge remote-tracking branch 'origin/integration' into integration 2026-02-26 11:24:10 -10:00
J. Nick Koston
bd0e8914ae Merge branch 'update_rp2040_arduino_pico_5_5_0' into integration 2026-02-26 11:24:00 -10:00
J. Nick Koston
7ad44c68f7 [wifi] Fix CYW43 scan SSID not null-terminated
The cyw43_ev_scan_result_t ssid field is a 32-byte buffer that is
not guaranteed to be null-terminated. Use ssid_len to properly
terminate the string before passing it to string comparison functions.

This fixes false "should be marked hidden" warnings where the SSID
match failed due to garbage bytes after the actual SSID in the buffer.
2026-02-26 11:23:41 -10:00
J. Nick Koston
1f433f4355 Merge branch 'update_rp2040_arduino_pico_5_5_0' into integration 2026-02-26 11:23:02 -10:00
J. Nick Koston
bd13a0aa8f Merge branch 'update_rp2040_arduino_pico_5_5_0' into integration 2026-02-26 11:19:36 -10:00
J. Nick Koston
ec132fb081 [rp2040] Update arduino-pico framework from 3.9.4 to 5.5.0
Update the RP2040 Arduino-Pico framework to 5.5.0 (from 3.9.4) and
the platform to v1.4.0-gcc14-arduinopico460 (GCC 14 toolchain).

Breaking changes adapted:
- pico-sdk 2.0: padsbank0_hw renamed to pads_bank0_hw
- Arduino.h now defines NOPIN as a global macro (SerialPIO::NOPIN removed)
- WiFi: cyw43_tcpip_link_status() no longer works because the Arduino
  framework's __wrap_cyw43_cb_tcpip_init is a no-op (the SDK's internal
  netif is never initialized). Switched to cyw43_wifi_link_status() for
  radio state + WiFi.status()/WiFi.connected() for IP-level state.
- WiFi: Use beginNoBlock() instead of begin() to avoid 20s+ blocking
- WiFi: Use WiFi.disconnect() for proper lwIP/DHCP cleanup
2026-02-26 10:54:35 -10:00