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
I want to use an original ESP32 board as a dumb CSI source — capture
frames in the promiscuous callback, ship them off the chip over UDP
or serial, do all the DSP and pose work elsewhere. No on-device DSP,
no display, no mmWave, no WASM.
I know CLAUDE.md says original ESP32 isn't supported. But reading
the reasoning (DSP throughput, dual-core pinning, pose fusion), it
looks like it's about what the chip can't do on-device. If I strip
all that and only run the capture path, does the unsupported label
still apply?
Board is an ESP32-D0WD-V3 rev v3.1, dual-core LX6, 240 MHz, 4 MB
flash. PSRAM presence unconfirmed (esptool can't read external PSRAM
via efuse on classic ESP32). Host is macOS arm64.
What I checked locally before opening this:
No S3-only APIs in firmware/esp32-csi-node/main/ — no esp_psram_*,
no USB-JTAG, no LCD_CAM, no vector intrinsics.
The CSI calls in csi_collector.c look chip-agnostic.
partitions_4mb.csv has no S3 markers, fits my flash.
So the open questions:
Is the unsupported tag about WiFi MAC / CSI report format
differences, or just about DSP headroom? If it's just headroom,
capture-only sidesteps it.
Are the CSI fields (subcarrier count, phase format, antenna layout,
secondary-channel behavior) the same coming off LX6 vs LX7? Anything
in signal/ or ruvsense/ calibrated to S3 quirks that downstream
code would have to compensate for?
#522 looks like the right base for this. Happy to take a stab at it
and open a draft PR if the answers above don't show a hard blocker.
Don't want to spend the time if there's something I'm missing.
I want to use an original ESP32 board as a dumb CSI source — capture
frames in the promiscuous callback, ship them off the chip over UDP
or serial, do all the DSP and pose work elsewhere. No on-device DSP,
no display, no mmWave, no WASM.
I know
CLAUDE.mdsays original ESP32 isn't supported. But readingthe reasoning (DSP throughput, dual-core pinning, pose fusion), it
looks like it's about what the chip can't do on-device. If I strip
all that and only run the capture path, does the unsupported label
still apply?
Board is an ESP32-D0WD-V3 rev v3.1, dual-core LX6, 240 MHz, 4 MB
flash. PSRAM presence unconfirmed (esptool can't read external PSRAM
via efuse on classic ESP32). Host is macOS arm64.
What I checked locally before opening this:
firmware/esp32-csi-node/main/— noesp_psram_*,no USB-JTAG, no LCD_CAM, no vector intrinsics.
csi_collector.clook chip-agnostic.partitions_4mb.csvhas no S3 markers, fits my flash.So the open questions:
differences, or just about DSP headroom? If it's just headroom,
capture-only sidesteps it.
secondary-channel behavior) the same coming off LX6 vs LX7? Anything
in
signal/orruvsense/calibrated to S3 quirks that downstreamcode would have to compensate for?
csi_collector.c:70-86mitigates thewDev_ProcessFiqcache race — possibly related to ESP32-S3 CSI crash: SPI flash cache race in wDev_ProcessFiq during promiscuous mode #396. Does thatrace look the same on LX6 or worse?
mmWave / WASM, or is it source-level?
#522 looks like the right base for this. Happy to take a stab at it
and open a draft PR if the answers above don't show a hard blocker.
Don't want to spend the time if there's something I'm missing.
Refs: #522, #524, #396, #560.