WiSpec — Commodity Tri-Band Wi-Fi 6E Spectroscopy for Material Classification and Structural Reconnaissance
Author: Abhinav Ranish — Arizona State University Status: Active research project
This is an active research project and we're looking for collaborators — whether you're into wireless systems, signal processing, machine learning, or just curious about RF sensing. If you want to contribute or discuss ideas, reach out: chatgpt@asu.edu
WiSpec enables several practical applications across different domains:
- Building Reconnaissance: Using Wi-Fi reflections to characterize interior layouts, wall composition, and structural elements without visual access
- Search and Rescue: Rapid structural assessment to identify building composition, floor materials, and potential hazards during emergency operations
- Smart Building Automation: Material-aware building systems that adapt HVAC, lighting, and comfort systems based on wall and floor composition
| Device | Chipset | Bands | CSI? | Role |
|---|---|---|---|---|
| Wi-Fi 6E Tri-Band AP | Any 6E router | 2.4 + 5 + 6 GHz | No | Tier A TX (tri-band beacons) |
| Linux Desktop | Intel AX210/AX211 | 2.4 + 5 + 6 GHz | Yes (PicoScenes) | Tier A RX (RSSI) / Tier B (CSI) |
| Recommended: Intel AX210 M.2 | Intel AX210 | 2.4 + 5 + 6 GHz | Yes (PicoScenes) | Full tri-band CSI extraction |
The research now requires tri-band (2.4 + 5 + 6 GHz) support. The Intel AX210/AX211 is the recommended adapter — it supports all three bands with PicoScenes CSI extraction. The 6 GHz band (UNII-5 through UNII-8, 5.925–7.125 GHz) provides up to 996 subcarriers on 160 MHz channels.
Older dual-band adapters (AX200/AX201) can still be used for 2.4 + 5 GHz experiments but miss the 6 GHz band.
- Run Tier A RSSI tri-band pilot with a Wi-Fi 6E router and AX210/AX211
- Run dual-band subset experiments with older hardware
- Start the FURI proposal
wifi_sensing_research/
├── scripts/
│ ├── tier_a_rssi/
│ │ ├── dual_band_rssi_collector.py # RSSI logger (laptop side)
│ │ ├── experiment_controller.py # Experiment orchestrator
│ │ └── openwrt_rssi_logger.sh # Router-side logger
│ ├── tier_b_csi/
│ │ ├── picoscenes_capture.sh # CSI capture setup
│ │ └── csi_experiment_controller.py # CSI experiment orchestrator
│ └── analysis/
│ ├── preprocess_rssi.py # RSSI data cleaning
│ ├── preprocess_csi.py # CSI data cleaning
│ ├── feature_extraction.py # Hand-crafted features
│ ├── classify_materials.py # ML classifiers + ablation
│ ├── visualize_results.py # Publication figures
│ └── statistical_tests.py # Rigorous stats
├── paper/
│ ├── main.tex # IEEE workshop paper draft
│ └── references.bib # 20+ BibTeX entries
├── funding/
│ ├── furi_proposal.md # FURI research proposal
│ ├── personal_statement.md # FURI personal statement
│ └── timeline.md # 14-week timeline
├── data/
│ ├── raw/ # Raw CSV/CSI files
│ └── processed/ # Cleaned feature matrices
└── README.md # This file
# On your Linux desktop:
cd scripts/tier_a_rssi
python3 experiment_controller.py --mode single_band --interface wlan0 --target-ip 192.168.1.1
# On the Xiaomi router (SSH in):
scp openwrt_rssi_logger.sh root@192.168.1.1:/tmp/
ssh root@192.168.1.1 '/tmp/openwrt_rssi_logger.sh /tmp/wifi_stats.csv 1 wlan0'# Set up your Wi-Fi 6E router with separate SSIDs for 2.4, 5, and 6 GHz
# Then:
python3 experiment_controller.py --mode tri_band \
--interface wlan0 \
--ssid-2g "YourNetwork_2G" \
--ssid-5g "YourNetwork_5G" \
--ssid-6g "YourNetwork_6G" \
--target-ip 192.168.1.1# Install PicoScenes first (see tier_b_csi/picoscenes_capture.sh for instructions)
cd scripts/tier_b_csi
sudo bash picoscenes_capture.sh --interface wlan1 --channel 6 --bandwidth 20 --duration 60 --output ../data/raw/
python3 csi_experiment_controller.py --interface wlan1 --channel-2g 6 --channel-5g 36cd scripts/analysis
python3 preprocess_rssi.py --input ../../data/raw/ --output ../../data/processed/
python3 feature_extraction.py --input ../../data/processed/ --output ../../data/processed/features.npz
python3 classify_materials.py --input ../../data/processed/features.npz --ablation
python3 visualize_results.py --input ../../data/processed/ --output ../../paper/figures/
python3 statistical_tests.py --input ../../data/processed/ --output ../../paper/tables/# Python packages
pip install numpy pandas scipy scikit-learn matplotlib seaborn xgboost torch csiread
# System tools (Linux)
sudo apt install iw wireless-tools iputils-ping- FURI deadline for Fall 2026: PASSED (was March 18, 2026)
- Next cycle: Spring 2027, deadline ~October 2026
- Proposal is ready in
funding/— personalize and submit - Alternative: approach a faculty mentor directly with the proposal
WiSpec is source-available under a noncommercial license. This is NOT open source (not MIT, not Apache, not GPL). You can read, learn from, and use the code for academic research — but commercial use requires a separate paid license. See LICENSE.md for the full terms and COMMERCIAL-LICENSING.md for commercial inquiries.
| Use | Allowed? |
|---|---|
| Academic research | Yes (with citation) |
| Personal learning | Yes (with attribution) |
| Student thesis | Yes (with citation) |
| Commercial product/service | No — requires paid license |
| For-profit internal use | No — requires paid license |
If you use WiSpec in your research, please cite both the repository and the paper.
Repository:
A. Ranish, "WiSpec: Commodity Tri-Band Wi-Fi 6E Spectroscopy for Material
Classification and Structural Reconnaissance," GitHub, 2026.
https://github.com/abhinav-ranish/WiSpec
Paper (update venue/DOI when published):
A. Ranish, "WiSpec: Commodity Tri-Band Wi-Fi 6E Spectroscopy for Material
Classification and Structural Reconnaissance," [Venue TBD], 2026.
BibTeX:
@software{ranish2026wispec,
author = {Ranish, Abhinav},
title = {{WiSpec}: Commodity Tri-Band Wi-Fi 6E Spectroscopy for
Material Classification and Structural Reconnaissance},
year = {2026},
url = {https://github.com/abhinav-ranish/WiSpec},
note = {Source-available, noncommercial license}
}
@inproceedings{ranish2026wispec_paper,
author = {Ranish, Abhinav},
title = {{WiSpec}: Commodity Dual-Band Wi-Fi Spectroscopy for
Material Classification and Structural Reconnaissance},
booktitle = {[Venue TBD]},
year = {2026},
note = {Preprint / under review}
}GitHub also renders a "Cite this repository" button from the CITATION.cff file.
Academic and research users must cite WiSpec in any publication, thesis, report, or presentation that uses this code, methods, or datasets. This is a condition of the license, not just a polite request.
Commercial use of any kind requires prior written permission. Contact: chatgpt@asu.edu
See paper/references.bib for complete bibliography. Essential reading:
- Chen et al., "A Survey on Radio Frequency Sensing: From Wi-Fi to 6G," IEEE COMST, 2025
- Wilson & Patwari, "Propagation Losses in Building Materials: Measurements and Prediction at 915 MHz and 2.4 GHz," IEEE AWPL, 2002
- Wilson & Patwari, "Radio Tomographic Imaging with Wireless Networks," IEEE TMC, 2010