docs/adr/ADR-270-vendor-rf-sensing-integration-program.md
RuView is evaluating Qualcomm, RF Solutions, Origin AI, Plume, Linksys, Electric Imp, Mist/Juniper, Luma, Google Nest, NETGEAR and Wifigarden. These names do not represent equivalent integration surfaces: some expose raw CSI, some expose derived sensing events or network telemetry, and some expose no supported developer interface. A repeated implementation process must not turn brand compatibility, Linux connectivity or synthetic fixtures into a false CSI claim.
Adopt a Rust-first provider portfolio with explicit capability negotiation:
ComplexCsi: calibrated per-packet complex channel matrices.DerivedSensing: vendor-produced motion, occupancy or location events.RfTelemetry: RSSI, radio, client and topology observations.NetworkOnly: useful as excitation/AP infrastructure but not a sensor.Unsupported: no stable, lawful or supportable integration surface.Every provider follows the same gated loop:
| Provider | Classification | Decision |
|---|---|---|
| Qualcomm QCA9300 | ComplexCsi candidate | Implement first physical baseline via established ath9k research tooling; QCS1 adapter ships simulator-first. |
| Qualcomm QCN9074/QCN9274 | experimental ComplexCsi | Simulator and protocol now; require confirmed ath11k/ath12k firmware export before hardware claim. |
| Origin AI | commercial DerivedSensing, possible CSI | Pursue NDA sandbox/API and raw-data rights; isolate proprietary engine behind provider trait/service boundary. |
| Plume/OpenSync | RfTelemetry; Plume Sense is gated DerivedSensing | Build optional OVSDB/control-plane adapter; negotiate Sense separately and do not infer raw CSI. |
| Mist/Juniper | RfTelemetry + location | Conditional read-only REST/webhook adapter for occupancy, RSSI and coordinates; no CSI claim. |
| NETGEAR | partner-gated RfTelemetry | Insight adapter only after API access; exact legacy OpenWrt models remain community experiments. |
| Luma | discontinued OpenWrt salvage target | Generic OpenWrt telemetry/pcap fixture only when already owned; no procurement or Luma CSI source. |
| Google Nest Wifi | NetworkOnly | Use as traffic/AP infrastructure; Device Access does not expose router CSI or radio telemetry. |
| Linksys | Unsupported for sensing | Linksys Aware reached end of support in 2024; record capability probe only, if needed. |
| Electric Imp | scalar IoT/RSSI telemetry | Optional agent/impCentral bridge for existing fleets; reject as CSI acquisition hardware. |
| RF Solutions | non-Wi-Fi RF/IoT telemetry | Exclude from sensing backend; optional RIoT environmental fusion is a separate future concern. |
| Wifigarden | commercial OEM, capability unknown | Hold implementation pending chipset, schema, offline, calibration and data-rights disclosure. |
Core code consumes a vendor-neutral RfSource-style contract whose capability
set prevents RSSI, location or derived occupancy from being represented as CSI.
Cloud adapters use bounded async queues, regional endpoints, secret-provider
credentials and explicit data provenance. Proprietary device SDKs live behind a
feature-gated FFI or sidecar boundary and are never redistributed without rights.
The ADR-270 provider contract is implemented in Rust. Each portfolio entry has a descriptor, bounded decoder or explicit fail-closed access state, deterministic contract fixtures where lawful, registry coverage, and API exposure:
Unsupported decoder because Linksys Aware is end-of-support.ContractRequired decoder pending a disclosed SDK/schema.vendor-rf-sim generates deterministic, provenance-labelled events for the
eight providers with a defined event contract and refuses to fabricate Linksys
or Wifigarden events. The sensing server exposes provider descriptors and latest
events under /api/v1/rf/vendors and accepts validated canonical simulator
events over its existing UDP port. Physical/vendor-cloud validation remains
separate from implementation completeness and is reflected by
hardware_validated: false until performed.