Wi-Fi CSI on a Raspberry Pi: two very different jobs

2026-10-11 · 1 min read

The Raspberry Pi shows up in Wi-Fi CSI projects in two completely different roles. Mixing them up wastes a weekend.

Role A — the Pi *is* the CSI capture device (Nexmon)

With a supported Broadcom chip (for example BCM43455c0 on Pi 3B+/4/5 variants) you patch the Wi-Fi firmware and read CSI directly [1]. That gives 80 MHz / 256 subcarriers on supported channels. Steps and caveats:

Role B — the Pi is the *analysis host* for router CSI

This is the cheaper and more common setup: a router captures CSI, the Pi parses/stores/visualises it.

# on the Pi: receive the UDP stream and record
./scripts/csi_capture_session.sh 600

# or run the platform (Docker) and open the dashboard in a browser
docker compose up -d
Resource Budget
Network 1,000 measurements/s × 8 chains ≈ 8 MB/s (≈64 Mbps) — Pi 4 gigabit is fine
Storage ≈29 GB/h at 1,000/s → plan retention (our 10-minute capture is 58 MB)
CPU vectorised NumPy processing up to a few thousand records/s; deep-learning inference needs a smaller model

Which role do you want?

Goal Role
Collect research-grade CSI with flexible radios A (Nexmon)
24/7 whole-home sensing + dashboard B (router + Pi as server)
Both A for experiments, B for deployment

Related: Nexmon CSI guide · router CSI reproduction · datasets

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 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)
  2. 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.
  3. 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)

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