Skip to content

📊 Wi-Fi Channel State Information(CSI) visualization with python

License

Notifications You must be signed in to change notification settings

cheeseBG/csi-visualization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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