You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tab5: Wi-Fi stops until reboot under memory pressure - ESP-Hosted RX stall (esp-hosted-mcu #243); factory C6 firmware 1.4.1 misses the upstream fix #20
Summary. On a Tab5, one failed internal-DMA allocation in ESP-Hosted's SDIO receive path stops the ESP32-P4 hearing the ESP32-C6 until a reboot. WiFi.status() stays WL_CONNECTED, every request fails (hostByName(): DNS Failed ... error '-54') and nothing is logged. It hits apps that use a lot of internal RAM; here, a 3D view. One of our units sat in this state for four hours.
The root cause is Espressif's open issue esp-hosted-mcu #243. We reproduced it on demand on a stock Tab5 and confirmed it never recovers on its own, even after the memory is freed: details in our comment there.
Why Tab5 owners stay exposed. ESP-Hosted 2.13.1 (22 Oct) fixes this by pre-allocating its receive buffers, but only when the C6 reports ESP_PRIV_TX_Q_SIZE at start-up. The Tab5's factory C6 firmware (ESP-Hosted slave 1.4.1) does not send it over SDIO; generate_startup_event() in its sdio_slave_api.c sends only FIRMWARE_CHIP_ID, CAPABILITY, TEST_RAW_TP and RX_Q_SIZE. So even once Arduino-ESP32 ships 2.13.1, a Tab5 keeps the failing path.
Requests
A C6 firmware update for Tab5 owners to ESP-Hosted slave 2.13.1 or later, for example through M5Burner.
A note for Tab5 developers about this stall and the workaround below.
Optionally, a C6 power-cycle helper in M5Unified (WLAN_PWR_EN, IO expander 0x44 pin P0). Cutting the C6's power for 500 ms and restarting is the reliable way to recover a stuck link today.
A workaround that works now, with Arduino-ESP32's prebuilt libraries: one file and one linker flag (-Wl,--wrap=heap_caps_aligned_alloc). When ESP-Hosted's SDIO tasks cannot get internal DMA memory, they get DMA-capable PSRAM instead: ESP-Hosted's own PREFER_SPIRAM path, in reverse order. With it, the same reproduction no longer stalls: three runs with 42 MB bursts, no RPC timeouts, every TLS request answered. File (MIT): https://github.com/craigdianesmith-glitch/tab5-adsb-flight-tracker-cpp/blob/c9db0de3d3502e94fe863319dd111862fc8f2577/src/hosted_rx_rescue.c. Our app also carries a watchdog as a safety net (src/wifi_watch.cpp in the same repository).
Thanks for the detailed report and reproduction, especially for identifying the missing ESP_PRIV_TX_Q_SIZE field in the factory C6 firmware.
M5Burner already provides the following official entries under TAB5:
Tab5 ESP32-C6 Wi-Fi SDIO: C6 firmware v2.12.6.
Tab5 ESP-Hosted Firmware Upgrade: an updater with bundled C6 1.4.1 and 2.12.6 images.
The upstream 2.12.6 slave code already reports ESP_PRIV_TX_Q_SIZE, so upgrading the C6 to this version should satisfy the queue-size reporting requirement for RX buffer pre-allocation in host 2.13.1. We have not yet verified this combination under your memory-pressure reproduction.
Could you try C6 2.12.6 with host 2.13.1, share the ESP-Hosted startup logs to confirm that RX pre-allocation is enabled, and rerun your reproduction? Upgrading only the C6 while keeping host 2.12.13 would not add the host-side pre-allocation change.
Activity
Forairaaaaa commentedon Nov 2, 2026
Thanks for the detailed report and reproduction, especially for identifying the missing
ESP_PRIV_TX_Q_SIZEfield in the factory C6 firmware.M5Burner already provides the following official entries under TAB5:
The upstream 2.12.6 slave code already reports
ESP_PRIV_TX_Q_SIZE, so upgrading the C6 to this version should satisfy the queue-size reporting requirement for RX buffer pre-allocation in host 2.13.1. We have not yet verified this combination under your memory-pressure reproduction.Could you try C6 2.12.6 with host 2.13.1, share the ESP-Hosted startup logs to confirm that RX pre-allocation is enabled, and rerun your reproduction? Upgrading only the C6 while keeping host 2.12.13 would not add the host-side pre-allocation change.
For wired flashing or recovery, the official guide is here:
Tab5 C6 firmware restoration.
Thanks also for sharing the PSRAM fallback and recovery suggestions.
craigdianesmith-glitch commentedon Nov 5, 2026
I will feedback on your recommendation once I work on the next release of overhead.