Nexmon CSI guide: 80 MHz / 256 subcarriers on a Raspberry Pi

2026-10-11 · 1 min read

Nexmon CSI (SEEMOO Lab, TU Darmstadt) patches Broadcom Wi-Fi firmware to expose CSI [1]. On supported Raspberry Pi models it gives you 80 MHz / 256 subcarriers — the most common setup in research papers.

Support (check the official matrix first)

Platform Chip Typical capability
Raspberry Pi 3B+ / 4 / 5 (specific models) BCM43455c0 5 GHz 80 MHz / 256 subcarriers
Some Android phones BCM4358 / BCM4339 20–80 MHz
Some routers (ASUS etc.) BCM4366c0 80 MHz

The hard requirement is a patchable firmware version plus a matching kernel. Mismatches fail outright.

Typical path on a Raspberry Pi

  1. Raspberry Pi OS on a supported board;
  2. clone nexmon, run setup_env.sh, build the toolchain;
  3. build/install the nexmon_csi firmware patch for your chip directory (for example bcm43455c0/7_45_189);
  4. configure channel / bandwidth / subcarrier count and start capture with the provided tools.

Exact commands live in the upstream README — they change between releases, so copy them from there.

Parsing

Tool Notes
Gi-z/CSIKit [2] multi-platform parsing, visualisation, CSV/JSON export
citysu/csiread [3] Cython, faster, includes live examples

Router CSI vs Nexmon

Need Better fit
flexible experiments (channel/bandwidth switching) Nexmon on a Pi
24/7 whole-home deployment router (MT7986 + mt76 CSI)
reproducing papers Nexmon (largest ecosystem)

Both are receive-side measurements: you need steady traffic, and phase sanitisation before any algorithm.

Related: dataset · reproduction guide · Wi-Fi CSI explained

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.