A lightweight pure Python DSP engine for ESP32 Wi-Fi CSI spatial sensing. 极简版纯 Python Wi-Fi
📡 RuView Radar Lite
English Summary: A lightweight, pure Python-based DSP engine and Web UI for Wi-Fi CSI spatial sensing, bypassing the heavy Rust/Docker/AI stack of the original project.
中文简介: 一个轻量级的纯 Python Wi-Fi CSI 空间感知雷达引擎与 Web UI,彻底摆脱原项目沉重的 Rust/Docker/AI 环境依赖。
⚠️ Credits & Disclaimer (致敬与声明)
This project utilizes the compiled .bin firmware from the outstanding open-source radar project @ruvnet/RuView to capture raw ESP32 CSI (Channel State Information) data. Huge thanks to the original team for their incredible work on the ESP-IDF network stack! We did not modify their low-level firmware; we built a lightweight Python DSP layer on top of it.
本项目底层的 ESP32 CSI 抓取固件直接使用了顶级开源项目 @ruvnet/RuView 的官方 .bin 文件。感谢原团队在底层网络栈上的卓越贡献! 我们没有修改底层固件,而是以此为基站,重构了上层的 Python 信号处理引擎。
💡 Why this Lite Version? (为什么做 Lite 版?)
[EN] The original RuView is incredibly powerful but requires compiling Rust, setting up Docker, and running heavy neural networks. This sets a high barrier for beginners. RuView Radar Lite replaces all of that with ~100 lines of Python code. Two $3 ESP32 boards and a few Python libraries are all you need to experience "through-wall" Wi-Fi sensing in 3 minutes.
[CN] 原版极其强大,但复杂的 Rust 编译链、Docker 环境和 AI 模型直接劝退了大部分想体验无线电感知(RF Sensing)的玩家。RuView Radar Lite 用 100 多行 Python 代码平替了这一切。两块十几块钱的 ESP32,拔枪即用!
🚀 Core Features (核心特性)
- Amplitude Demodulation (复数振幅解算): Mathematically strips away phase drift caused by unsynchronized clocks between nodes.
- Top-K Peak Capture (Top-K 顶峰捕捉算法): Focuses only on the most volatile subcarriers, crushing the "motion dilution" effect and achieving ultra-high SNR.
- Zero-Latency Web Sonar UI (零延迟声呐 UI): Full-duplex communication via Flask + Socket.IO for a cyberpunk, deep-sea sonar visual experience.
- Interactive CLI & Demo Mode (交互终端与幽灵模拟器): Auto-scans serial ports. No hardware? No problem. Use
Demo Modeto simulate radar intrusions immediately!
🛠️ Quick Start (快速开始)
1. Hardware Setup (硬件准备与烧录)
[EN] Flash the 4.bin files provided in the firmware/ folder to your ESP32 TX and RX boards using esptool.py. (Note: nvs.bin is explicitly removed for privacy. The board will prompt you to set up your Wi-Fi upon first boot).*
[CN] 使用 esptool.py 将 firmware/ 文件夹内的 4 个 .bin 文件烧录到收发两块 ESP32 上。(注:为保护隐私,已剔除包含 Wi-Fi 密码的 nvs.bin,首次开机需按原版流程配网)*。
2. Software Installation (软件环境安装)
git clone https://github.com/YourUsername/RuViewRadar_Lite.git
cd RuViewRadarLite
pip install -r requirements.txt
3. Launch the Radar (一键启动)
Plug the RX ESP32 into your computer and run: (将接收端 ESP32 插入电脑,运行:)python app.py
- Follow the interactive CLI to select your COM port (or choose Demo Mode).
- Open your browser and navigate to
http://127.0.0.1:5000.
📅 TODO List
- [ ] Multi-node localization support (多节点定位)
- [ ] UI sensitivity slider (前端灵敏度调节)
- [ ] C++ Edge Computing rewrite (边缘计算脱机版重构)
- [ ] ESP32-CAM Vision-Language Model Integration (接入视觉大模型实现多模态联动)