7ce1b3f turned off CONFIG_ESP_HOSTED_TRANSPORT_RESTART_ON_FAILURE so a wrong-
firmware C6 could not reboot the board. It stopped the boot loop and I called
it fixed on a 45 s capture. That was the wrong test. Disabling the restart did
not stop esp-hosted, it only removed its exit: sdio_read_task posts
ESP_HOSTED_EVENT_TRANSPORT_FAILURE and then `continue`s straight back into a
register read that is going to fail again. Measured on the same board:
731 failed register reads in 45 s, ~2.2 KB/s of log, forever
A boot loop and an unbounded retry storm are the same mistake: an unreachable
co-processor is a PERMANENT condition and the driver treats it as transient.
* The rx task now parks after the failure event is posted (build-time patch to
the esp-hosted fork, same idempotent mechanism build.sh already uses for
libsodium and the SD_MMC pull-ups; it fails loudly if upstream moves that
code rather than silently not applying). No reboot, no retry: Wi-Fi and BLE
are unavailable and everything else carries on.
* hostedInitBLE() no longer runs unconditionally. It is a full esp-hosted
handshake and it ran on every boot even though the banner advertises lazy
initialisation -- so on a mismatched unit it started a transport that can
never come up, for a radio the user may have had switched off. It now
honours the same stored intent beginBle() already checked.
* The keyboard hot-plug probe backs off from 1.5 s to 15 s once the expansion
has been absent a few times, and returns to the fast rate the moment one
succeeds. The probe is a real I2C transaction and on an empty bus Arduino's
Wire layer logs two [E] lines per attempt: a permanent drip down the USB-CDC
the companion app talks over, for an accessory most people do not own.
Measured on an ESP-AT unit running the HOSTED image, 150 s captures:
shipped 7ce1b3f only this
resets 5 0 0
host restarts yes yes 0
failed reg reads - 731/45s 1
steady log rate - 2.2 KB/s ~14 B/s
UI never appears stays up
The remaining ~14 B/s is the backed-off keyboard probe on a board with no
expansion attached, which is the expected floor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>