GitHunt
CH

cheeseBG/csi-visualization

๐Ÿ“Š Wi-Fi Channel State Information(CSI) visualization with python

CSI Visualization with Python

๐Ÿ“Š Wi-Fi Channel State Information(CSI) visualization with python

Before use

This repo is based on CSI extracted with Nexmon CSI Extractor(Raspberry Pi, Wi-Fi chip: bcm43455c0).
Therefore, in order to use real-time plot and collect data for visualization, the Nexmon CSI extractor installation must be preceded.
(The csv data required by this repository can be obtained through csi-extractor)

2023 Update

  • pcap format is also available(To be implemented)

Installation

  • Clone this repo and install the dependencies
pip install -r requirements.txt
  • If you want to use real-time plot, clone this repo to the Raspberry Pi with Nexmon firmware installed.

Usage

python csiexplorer.py [CSI dir] --plt [Plot Type]
  • Use sample data for Amplitude-PacketIdx plot
python csiexplorer.py sample --plt 1 --smp true
  • Use real-time Amplitude or Phase plot

After installing the Nexmon firmware on the Raspberry Pi and setting the monitoring mode, run the code below.

sudo python3 csi_realTimeAmp.py
or
sudo python3 csi_realTimePhase.py

CSI explore

  1. Amplitude-PacketIdx

  1. Amplitude-Time

  1. Heatmap (Amplitude-Packet)

  1. Heatmap (Amplitude-Time)

  1. Amplitude-SubcarrierIdx (all packet)

  1. Amplitude-SubcarrierIdx Flow (single antenna set)

Real-Time Amplitude plot

Languages

Python100.0%

Contributors

Apache License 2.0
Created July 6, 2021
Updated February 17, 2026