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.

3. Live visualisation platform (open skeleton)
The platform/ directory is a self-hostable live dashboard:
docker compose up -dto start;- full UDP ingest → ring buffer → overview / waterfall / phase-amplitude / motion views;
- REST + WebSocket; any front-end framework can attach;
- recording and replay (M1 skeleton).
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.
- 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." - 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) - 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. - 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) - 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) - 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) - 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) - 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) - 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. - 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. - 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 - 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) - 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.