docs: CSI-project-stages — staged sensing roadmap (RSSI rehearsal → patched-driver CSI → deterministic DSP → firmware upgrades → deterministic SOTA)
This commit is contained in:
parent
a3e8ca9a55
commit
b2e47dfd56
1 changed files with 87 additions and 0 deletions
87
docs/CSI-project-stages.md
Normal file
87
docs/CSI-project-stages.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# CSI sensing project stages
|
||||
|
||||
Ladder of increasing difficulty for WiFi sensing on hardware we own
|
||||
(MT3000 router, Android phones, AX211 laptop — no purchases required).
|
||||
Every rung ends in something visible or verifiable. Deterministic signal
|
||||
processing throughout; ML appears only as classifiers labeling measured
|
||||
features — no image synthesis, no "guessed" renderings (project rule).
|
||||
|
||||
Context: docs/directions.md (capability directions), docs/findings.md
|
||||
(firmware facts). Key enabler already established: the stock MT7981
|
||||
firmware registers CSI command handlers (0xc2/0xc3/0xc4 — F9 data), and
|
||||
MediaTek authored a driver-side CSI patch (2022, never mainlined).
|
||||
|
||||
## Stage 0 — pipeline rehearsal, zero firmware work (tonight)
|
||||
|
||||
Laptop + phone only. Data is coarse (RSSI: one strength number per
|
||||
packet), but the tooling built here is reused by every later stage.
|
||||
|
||||
- 0.1 RSSI motion logger: phone streams UDP (iperf), laptop logs signal
|
||||
strength at high rate into Python.
|
||||
- 0.2 Dashboard: streaming line plot + waterfall renderer.
|
||||
|
||||
Done when: waving at the phone visibly moves the plot; crossing the room
|
||||
leaves a streak.
|
||||
|
||||
## Stage 1 — first real CSI (router powered again)
|
||||
|
||||
- 1.1 Router online; pull its exact firmware blobs; diff against
|
||||
linux-firmware copies (ground truth).
|
||||
- 1.2 Port MediaTek's 2022 CSI patch to the router's OpenWrt mt76;
|
||||
rebuild, flash (U-Boot recovery available).
|
||||
- 1.3 Verify firmware answers: 0xc2 CSI events flowing (RE says the
|
||||
handlers exist — prove live).
|
||||
- 1.4 Collector: netlink → Python → live CSI heatmap (the barcode),
|
||||
phone as talker.
|
||||
|
||||
Done when: empty-room barcode sits still; walking through breaks it.
|
||||
|
||||
## Stage 2 — clean physics, deterministic DSP
|
||||
|
||||
- 2.1 Phase cleaning (conjugate-multiply across packets).
|
||||
- 2.2 Live Doppler spectrogram (speed-labeled streaks).
|
||||
- 2.3 Breathing extraction: bandpass 0.1–0.6 Hz; verify breaths/min
|
||||
against a stopwatch.
|
||||
- 2.4 Distance slices: tone-axis transform; verify at marked positions
|
||||
(2 m / 4 m / 6 m) against the ~2 m resolution budget.
|
||||
- 2.5 Event detectors: entry/exit, travel direction, two-person counting
|
||||
(thresholds, no guessing).
|
||||
|
||||
Done when: views match physical reality checkable with tape measure and
|
||||
stopwatch.
|
||||
|
||||
## Stage 3 — firmware upgrades (the RE project pays off)
|
||||
|
||||
- 3.1 Crank measurement rate: dedicated sounding traffic instead of
|
||||
borrowed network traffic.
|
||||
- 3.2 CSI on every frame + ambient/monitor capture, not just the
|
||||
associated client.
|
||||
- 3.3 Channel hopping across the 5 GHz band: synthesize ~555 MHz →
|
||||
~10-inch distance slices. Verify at marked positions.
|
||||
- 3.4 Dual-band simultaneous capture (2.4 + 5 GHz).
|
||||
|
||||
Done when: slice resolution measurably improves; the firmware's rate
|
||||
ceiling is documented and its patch location known.
|
||||
|
||||
## Stage 4 — state of the art, deterministic only
|
||||
|
||||
- 4.1 Full range-Doppler radar screen (live, both transforms).
|
||||
- 4.2 Gesture vocabulary: ~6 dynamic hand signs classified from measured
|
||||
Doppler streak shapes (small classifier on measured features; per-user
|
||||
training; honest accuracy reporting).
|
||||
- 4.3 Transmitter voiceprinting: classify devices by RF signature; detect
|
||||
a MAC-spoofed clone.
|
||||
- 4.4 Through-wall characterization: detection reliability vs distance
|
||||
through a known wall.
|
||||
- 4.5 Optional (later hardware): second capture node → floor-plan
|
||||
overlay; SAR rail for outline imaging.
|
||||
|
||||
Out of scope per project rule: skeleton/pose renderings, point clouds,
|
||||
any network-invented pixels.
|
||||
|
||||
## Gates
|
||||
|
||||
- Physical: router must be powered (unblocks Stage 1).
|
||||
- Long grind: Stage 3 firmware work — same RE as the main project, now
|
||||
with concrete purpose; benefits from the dispatch/handler maps already
|
||||
built.
|
||||
Loading…
Reference in a new issue