Tools, scripts and datasets

2026-10-11 · 2 min read

Everything this project actually uses and produces. Every script has been run on real hardware, together with the 10-minute capture.

1. Capture and analysis scripts

Script Purpose Key point
scripts/csi_capture_session.sh <seconds> timed capture + automatic analysis works on macOS/Linux, reports frame rate and gaps
scripts/analyze_csi_capture.py amplitude heatmap + 1 s rolling motion metric numpy/matplotlib only, no GPU
scripts/csi-watchdog.sh router-side watchdog every minute checks daemon / interface / CSI enable and replays the tuning
scripts/wifi-htmode.sh HE80|HE40 bandwidth mode switch keeps the daemon's bandwidth metadata in sync
scripts/mt76-wifi-tune boot-time tuning disables the firmware ATF that blocks rate recovery

The scripts and parsers are open source under MIT and run on real hardware [11].

# typical flow: 10-second check
scripts/csi_capture_session.sh 10

# 10-minute stability run (raw bin + analysis images + summary txt)
scripts/csi_capture_session.sh 600

2. Measured data (published here)

File Content Size
csi_udp_*_60s.bin 60 s raw UDP stream 2,777 records
csi_udp_*_10m.bin 10-minute raw UDP stream 57,293 records, ~58 MB [12]
analysis/csi_amplitude_heatmap.png amplitude heatmap (256 subcarriers × time) —
analysis/csi_mean_amplitude_motion.png 1 s rolling motion metric —

The record format is documented in section 6 of the reproduction guide (24-byte header + interleaved int16 I/Q). Download the 10 s sample from the dataset page.

CSI amplitude heatmap

3. Live visualisation platform (open skeleton)

The platform/ directory is a self-hostable live dashboard:

The target machine is modest: a 2011 i5-2430M with 8 GB RAM handles 1000+ records/s.

4. Open-source projects you can reuse

Project Use
espressif/esp-csi [1] official ESP32 CSI application, best starting point
StevenMHernandez/ESP32-CSI-Tool [2] ESP32 capture tool for datasets
Gi-z/CSIKit [3] Python CSI parsing/visualisation (multi-platform)
citysu/csiread [4] fast Cython parsing
xyanchen/WiFi-CSI-Sensing-Benchmark (SenseFi) [5] deep-learning model zoo
francescopace/espectre [6] ESP32 + ESPHome motion sensing
seemoo-lab/nexmon_csi [7] Broadcom firmware patch, 80 MHz CSI on a Pi
ruvnet/RuView [10] community Wi-Fi "spatial intelligence" project (headline claims not peer-reviewed — lead only)
NTUMARS/Awesome-WiFi-CSI-Sensing [8] curated papers and resources
Tsinghua WST course [9] university hands-on Wi-Fi sensing material

5. Hardware (affiliate slots)

Use Suggestion Note
First CSI experiment an ESP32 dev board from $3, 20 MHz / 30–64 subcarriers
Router form factor GL-MT6000 (MT7986) this project's platform, 80 MHz / 256 subcarriers
High-bandwidth research Nexmon CSI + Raspberry Pi / PicoScenes more flexible, higher cost

Affiliate slots: replace with tagged links before launch and keep the rel="sponsored" marking.

References and data sources

Every external claim carries a source and an evidence grade (grading scheme). Grade E marks first-party, reproducible measurements from this project.

  1. Grade C · official docs espressif/esp-csi — Applications based on Wi-Fi CSI
    Espressif Systems
    github.com/espressif/esp-csi · verified: GitHub API 2026-10-11 (stars 1,679) · The official README states: "All ESP32 series support CSI, including ESP32 / ESP32-S2 / ESP32-C3 / ESP32-S3 / ESP32-C5 / ESP32-C6 / ESP32-C61."
  2. Grade C · official docs StevenMHernandez/ESP32-CSI-Tool — active/passive CSI extraction for ESP32
    S. M. Hernandez
    github.com/StevenMHernandez/ESP32-CSI-Tool · verified: GitHub API 2026-10-11 (stars 571, MIT, last push 2024-07-16)
  3. Grade C · official docs Gi-z/CSIKit — Python CSI parsing and visualisation
    G. Zhang
    github.com/Gi-z/CSIKit · verified: GitHub API 2026-10-11 (stars 307, MIT, last push 2025-02-19) · Parses many formats: Atheros / Intel / Nexmon / ESP32 / FeitCSI / PicoScenes.
  4. Grade C · official docs citysu/csiread — fast Cython CSI parser
    S. Zhu
    github.com/citysu/csiread · verified: GitHub API 2026-10-11 (stars 142, MIT, last push 2024-10-12)
  5. Grade C · official docs xyanchen/WiFi-CSI-Sensing-Benchmark (SenseFi) — deep-learning benchmark
    X. Chen, et al.
    github.com/xyanchen/WiFi-CSI-Sensing-Benchmark · verified: GitHub API 2026-10-11 (stars 638, MIT, last push 2023-11-06)
  6. Grade C · official docs francescopace/espectre — Wi-Fi CSI motion sensing for ESP32 (ESPHome)
    F. Pace
    github.com/francescopace/espectre · verified: GitHub API 2026-10-11 (stars 9,505)
  7. Grade C · official docs seemoo-lab/nexmon_csi — CSI extraction on various Broadcom Wi-Fi chips
    SEEMOO Lab, TU Darmstadt
    github.com/seemoo-lab/nexmon_csi · verified: GitHub API 2026-10-11 (stars 475, last push 2026-09-30)
  8. Grade C · official docs NTUMARS/Awesome-WiFi-CSI-Sensing — curated papers and resources
    NTU MARS Lab
    github.com/NTUMARS/Awesome-WiFi-CSI-Sensing · verified: GitHub API 2026-10-11 (stars 1129, MIT, last push 2025-07-19)
  9. Grade C · official docs WST — Hands-on Wireless Sensing with Wi-Fi (Tsinghua tutorial)
    Tsinghua University TNS group
    tns.thss.tsinghua.edu.cn/wst/ · verified: tns.thss.tsinghua.edu.cn HTTP 200, 2026-10-11 · A university-run hands-on Wi-Fi sensing course (slides and datasets); not a peer-reviewed paper.
  10. Grade D · preprint/wiki ruvnet/RuView — community Wi-Fi spatial-intelligence project
    r. u. v. (community maintainer) · 2026
    github.com/ruvnet/RuView · verified: GitHub API 2026-10-11 (stars 97,237; created 2025-06-07) · Community project, not peer-reviewed: its marketing claims (real-time “spatial intelligence” / vital signs) have no independent reproduction — treat as a lead, not a conclusion.
  11. Grade E · first-party measurement Router CSI Toolkit — capture/analysis/watchdog scripts (MIT)
    Router CSI Lab · 2026
    csi.okwujun.pw/zh/tools/ · verified: Repository bundle has a SHA-256; scripts run on real hardware
  12. Grade E · first-party measurement This project's 10-minute raw capture (57,293 records / 600.0 s, SHA-256 00373f83…95e2)
    Router CSI Lab · 2026
    csi.okwujun.pw/zh/datasets/ · verified: Reassembled chunks verified byte-identical (2026-10-11)
  13. Grade E · first-party measurement Router CSI Lab — GL-MT6000 (MT7986) Wi-Fi CSI dataset, 10 s sample + 10 min capture
    Router CSI Lab · 2026
    csi.okwujun.pw/zh/datasets/ · verified: CC BY 4.0, SHA-256 published; DOI (Zenodo) pending

This page contains affiliate links (rel="sponsored"). Buying through them costs you nothing extra and earns this site a small commission.