|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| check_esp32.py | ||
README.md
RuView Single ESP32-S3 Demo
A simplified setup for running RuView with just ONE ESP32-S3 board for basic presence detection.
Note: Single-node detection has limited spatial resolution. For full pose estimation (17 keypoints), use 2+ nodes. This demo focuses on presence detection - detecting if someone is in the room.
What You Need
| Item | Cost | Notes |
|---|---|---|
| ESP32-S3 DevKit (8MB flash) | ~$9 | Any ESP32-S3 with 8MB flash works |
| Micro USB cable | ~$5 | For power + programming |
| WiFi network | - | 2.4GHz WiFi required |
Quick Start
Step 1: Get Pre-built Firmware
Download the latest firmware from releases:
- Go to: https://github.com/Rudraa-25/RuView/releases
- Download
esp32-csi-node.bin(or build from source - see below)
Step 2: Flash the Firmware
Connect your ESP32-S3 to your PC via USB. Note the COM port (e.g., COM7 on Windows).
# Install esptool if you don't have it
pip install esptool
# Flash the firmware (replace COM7 with your port)
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
write_flash --flash_mode dio --flash_size 8MB \
0x0 release/bootloader.bin \
0x8000 release/partition-table.bin \
0x10000 release/esp32-csi-node.bin
Step 3: Provision WiFi
After flashing, provision your WiFi credentials (no reflashing needed):
python firmware/esp32-csi-node/provision.py --port COM7 \
--ssid "YourWiFiName" --password "YourWiFiPassword" --target-ip 192.168.1.100
Step 4: Run the Sensing Server
# Install dependencies
pip install -r requirements.txt
# Start the server (single-node mode)
cargo run -p wifi-densepose-sensing-server -- --http-port 3000 --source single
Step 5: Open the Dashboard
Navigate to http://localhost:3000 in your browser.
You should see presence detection data flowing in when people are in range of your WiFi router and the ESP32-S3.
Building from Source (Optional)
If you want to build the firmware yourself:
# Using Docker (recommended for Windows)
MSYS_NO_PATHCONV=1 docker run --rm \
-v "$(pwd)/firmware/esp32-csi-node:/project" -w /project \
espressif/idf:v5.2 bash -c \
"rm -rf build sdkconfig && idf.py set-target esp32s3 && idf.py build"
# Flash the built firmware
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
write_flash --flash_mode dio --flash_size 8MB \
0x0 firmware/esp32-csi-node/build/bootloader/bootloader.bin \
0x8000 firmware/esp32-csi-node/build/partition_table/partition-table.bin \
0x10000 firmware/esp32-csi-node/build/esp32-csi-node.bin
What's Detected
With a single ESP32-S3, you can detect:
| Feature | Description |
|---|---|
| Presence | Is someone in the room? (Yes/No) |
| Motion | Is someone moving? |
| Distance | Approximate distance from the ESP32 |
What's NOT Available (Needs 2+ Nodes)
- Full body pose (17 keypoints)
- Breathing rate
- Heart rate
- 3D position tracking
Troubleshooting
No data appearing?
- Check ESP32 is connected to WiFi:
python -m serial.tools.miniterm COM7 115200 - Verify the IP address is reachable from your PC
- Make sure your WiFi router is on the same network
Getting errors?
- Check the logs in
logs/folder - Verify COM port is correct (check Device Manager on Windows)
Files in This Demo
demo-single-esp32s3/
├── README.md # This file
├── setup.sh # Quick setup script
└── config.env.example # Example configuration
License
MIT - Same as main RuView project