docs/adr/ADR-263-rtl8720f-2-4ghz-fmcw-radar-platform.md
Realtek's RTL8720F-2.4G-Radar-Advantages_EN.pptx describes an RTL8720F mode that shares the
2.4 GHz radio between Wi-Fi, Bluetooth, and an active FMCW radar. It offers two data products that
are useful to RuView:
The proposed radio uses one transmit and one receive antenna, 20/40/70 MHz sweeps, configurable 8/16/32/64 microsecond chirp symbols, a maximum 2.56 ms FMCW packet, and a configurable frame interval above 15 ms. The deck recommends 40 MHz outside Japan and 20 MHz in Japan. It also describes EDCCA/CTS channel access, Wi-Fi/BT/radar time division, interference reporting, and priority arbitration in the driver.
This is not a drop-in replacement for ESP32 CSI:
Realtek's public Ameba RTOS repository is the base. Release v1.2.1 includes the CSI API and fixes a
CSI application-buffer semaphore issue, but does not expose the radar application surface. Open
upstream PR #1336 (2026-07-18 snapshot) adds RTL8720F project artifacts, AT+RAD, AT+RADDBG, and
the public configuration call wifi_radar_config(struct rtw_radar_action_parm *). Its public
parameter struct confirms mode, channel, 70/40/20 MHz bandwidth selector, trigger period, and
enable/config actions. Report reception still crosses non-public/placeholder HAL symbols such as
wifi_hal_radar_recv_data(frame_num, frame_type, data), so the report layout and buffer lifetime
remain vendor-gated. Therefore the integration stays split at that boundary.
RuView will support RTL8720F radar as an optional, capability-negotiated source, without replacing the ESP32 firmware or treating radar CFR as byte-compatible with ADR-018 CSI.
The integration has three layers:
firmware/rtl8720f-radar/ only after the redistributable SDK/API is available.wifi-densepose-hardware parses reports from bytes and converts CFR into
the existing CSI-domain representation, while Range-FFT remains a radar modality and feeds the
RuField/RuView cross-modality bridge from ADR-260/262.The two report types remain semantically distinct:
| RTL8720F output | RuView representation | Permitted use |
|---|---|---|
| CFR | CsiFrame through a Realtek calibration adapter | CSI feature extraction after validation |
| Range-FFT near/far | RadarFrame / RuField mmwave_radar-class event with a 2.4 GHz descriptor | range, motion, presence, fusion |
| Vendor AI presence probability | derived observation with model/version provenance | advisory input, never ground truth |
| Interference report | quality/provenance metadata | reject, down-weight, or mark contaminated frames |
The modality registry should eventually distinguish fmcw_radar_2_4ghz from mmwave_radar; until
that RuField schema revision is accepted, the adapter must attach carrier_hz = 2.4e9 and must not
claim millimetre-wave provenance.
Obtain the PR #1336-or-newer RTL8720F SDK package, radar API headers/libraries, a supported evaluation board, flashing/debug instructions, report definitions, and written redistribution terms.
Gate: compile and run Realtek's unmodified radar example and capture CFR plus near/far
Range-FFT output. Until this passes, device firmware is VENDOR_BLOCKED, not implemented.
Implement ADR-264 types, parsers, fixtures, fuzz tests, and replay support without linking vendor
code. Use the Rust Rtl8720fSimulator as the only pre-hardware live source. It emits deterministic
CFR, near/far Range-FFT, interference, and capabilities frames through the same ADR-264 encoder and
parser used by hardware. Every simulated frame sets RadarFlags::SYNTHETIC; simulation results are
never reported as device measurements.
Gate: malformed inputs never panic; encode/decode round trips; unknown versions and report types fail closed.
Wrap only the minimum vendor API surface: initialization, profile configuration, start/stop, callback acquisition, interference status, and report serialization. Keep vendor types out of the wire protocol.
Gate: 30-minute simultaneous Wi-Fi telemetry and radar capture with no watchdog reset, bounded loss, monotonic sequence numbers, and explicit coexistence/interference statistics.
Calibrate CFR phase/amplitude, Range-FFT bin spacing, static leakage, and clock drift. Compare reported range against measured targets at multiple distances and bandwidths.
Gate: publish measured error distributions. Do not infer accuracy from report-bin spacing and do not advertise multi-person pose or vital signs from the vendor deck.
Feed calibrated CFR through the CSI path and Range-FFT through RuField, retaining source, mode, bandwidth, calibration, firmware, and interference provenance.
Gate: ablation shows whether the radar stream improves a named RuView metric over ESP32 CSI alone. If it does not, ship it only as an independent presence/range sensor.
CsiFrame. Rejected because range bins and channel-frequency
samples have different axes and physical meaning.RTL8720F-2.4G-Radar-Advantages_EN.pptx, slides 3 and 10–19,
supplied 2026-07-18. This is product material, not measured RuView validation.wifi_radar_config, and radar AT commands while report
internals remain in binary/private layers.