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
- Raspberry Pi OS on a supported board;
- clone
nexmon, runsetup_env.sh, build the toolchain; - build/install the
nexmon_csifirmware patch for your chip directory (for examplebcm43455c0/7_45_189); - 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.
- 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
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)
This page contains affiliate links (rel="sponsored"). Buying through them costs you nothing extra and earns this site a small commission.