Files
qtalker---/firmware/esp32p4-sensor-node/components/rtlsdr_experimental/Kconfig
Indiana abd7174c9c feat(firmware): add experimental RTL-SDR USB-host module (Workstream J)
Self-contained ESP-IDF component (firmware/esp32p4-sensor-node/components/
rtlsdr_experimental/) exploring RTL2832U-over-USB-host on the ESP32-P4,
ported from frontend/src/lib/sdr.ts's researched WebUSB protocol sequence
(vendor commands, I2C-repeater tuner init) to the ESP-IDF USB Host Library.

Implements: USB Host Library install/client lifecycle, RTL2832U/Terratec
vendor-ID device matching, the demod+R820T init vendor-command sequence
over control transfers, a pipelined bulk-IN read loop for raw IQ, and an
inert-by-default upstream IQ-forwarding stub targeting a proposed separate
binary endpoint (not the JSON telemetry shape — reasoning documented in
the README) since no such backend endpoint exists yet.

Off by default (RTLSDR_EXP_ENABLE Kconfig, default n). Unverified against
real hardware and never compiled (no ESP-IDF toolchain in this
environment) — marked as such in every source file and in a dedicated
"Workstream J" section of firmware/esp32p4-sensor-node/README.md, which
this commit also creates since Workstream I's core skeleton (owned by a
separate, unmerged worktree) hadn't created one yet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 01:10:21 +00:00

36 lines
1.5 KiB
Plaintext

menu "RTL-SDR Experimental Module (Workstream J — UNVERIFIED)"
config RTLSDR_EXP_ENABLE
bool "Enable RTL-SDR experimental USB-host module"
default n
help
Attempts to initialize the ESP32-P4 USB Host Library and probe
for an attached RTL2832U-based dongle. This module is
experimental and UNVERIFIED against real hardware — see
firmware/esp32p4-sensor-node/README.md, "Workstream J" section,
before enabling on a device you care about. Off by default so
it can never interfere with the core sensor node build unless
explicitly turned on.
config RTLSDR_EXP_BULK_CHUNK_BYTES
int "Bulk IQ read chunk size (bytes, must be a multiple of 512)"
default 16384
depends on RTLSDR_EXP_ENABLE
help
UNVERIFIED default. Real achievable USB bulk throughput on
ESP32-P4 (and the right tradeoff against available heap/DMA
memory) is one of the concrete things a real hardware bring-up
session needs to measure and tune.
config RTLSDR_EXP_BULK_QUEUE_DEPTH
int "In-flight bulk transfer pipeline depth"
default 4
range 1 8
depends on RTLSDR_EXP_ENABLE
help
Number of bulk-IN transfers kept perpetually submitted so the
USB pipe doesn't idle. UNVERIFIED — needs tuning against real
measured throughput vs. available RAM.
endmenu