v0.8.1-esp32
anomalyco/opencodev0.8.1-esp32Jun 17, 2026by ruvnet
AI Summary
This release fixes critical sensing bugs on ESP32-S3 hardware, specifically addressing display initialization issues on bare boards and false detection of mmWave sensors via UART probing.
Key Highlights
- Fixed CSI starvation on display-less DevKits by gating panel init with a touch controller readback.
- Fixed false MR60BHA2 sensor detection in UART probing to prevent ENOMEM errors.
- Validated fixes on real hardware (ESP32-S3 QFN56 rev v0.2).
Full Release Notes
ESP32-S3 CSI node firmware — two field-reported sensing bugs fixed and **validated on real hardware** (ESP32-S3 QFN56 rev v0.2, 8MB flash / 2MB PSRAM). ## Fixes - **#1000 — no CSI on a bare/display-less DevKit.** The SH8601 QSPI AMOLED is write-only, so panel init "succeeds" even with no panel attached; that false-positive left `display_is_active()` true and starved CSI at MGMT-only frames. Now the readable FT3168 touch controller gates it: no touch readback → run headless → CSI upgrades to **MGMT+DATA**. (PR #1121) - **#1107 — false MR60BHA2 detection → ENOMEM.** UART probe now requires a validated MR60 header (8-byte SOF + checksum + type `0x0A__`/`0x0F09`) instead of counting bare `0x01` bytes, so an empty UART no longer false-detects a sensor. (PR #1119) ## Hardware validation (boot log, rev v0.2 silicon) ``` disp_hal: SH8601 panel init OK (368x448) # write-only panel "succeeds" on bare board disp_hal: FT3168 not found (ret=ESP_FAIL) # touch readback fails — no real panel disp_task: ... running headless so CSI captures (#1000) csi_collector: CSI filter upgraded to MGMT+DATA (no display, RuView#893) mmwave: No mmWave sensor detected (CSI-only mode) # no false detect on empty UART ``` CSI streamed cleanly (frames len 128→384/256), 600 callbacks / 22s, zero crash or watchdog. ## Flashing ESP32-S3, esptool offsets: ``` esptool --chip esp32s3 -p <PORT> -b 460800 write_flash \ 0x0 bootloader.bin 0x8000 partition-table.bin \ 0xf000 ota_data_initial.bin 0x20000 esp32-csi-node-s3-8mb.bin ``` 4MB (no-display) boards: use `esp32-csi-node-s3-4mb.bin` @ `0x20000` and `partition-table-4mb.bin` @ `0x8000`. ## SHA-256 ``` 0a66190d…36822 esp32-csi-node-s3-8mb.bin b818e358…f6e7c2 esp32-csi-node-s3-4mb.bin dda279df…d8a216 bootloader.bin 67222c25…4d322b partition-table.bin 4c2cc4ff…0d81f0 partition-table-4mb.bin 7d2c7ac4…82c62f ota_data_initial.bin ``` App version 0.7.0 · ESP-IDF v5.4 · built from `main` @ 65e29ef47. Binaries are the exact bytes flashed during hardware validation.