feat: Add project docs - PROJECT, ROADMAP, TASKS, TODO, .gitignore
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
build/
|
||||
managed_components/
|
||||
sdkconfig.old
|
||||
*.pyc
|
||||
__pycache__/
|
||||
47
PROJECT.md
Normal file
47
PROJECT.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# ESP32 Hacking Project
|
||||
|
||||
## Overview
|
||||
Firmware customization and experimentation for ESP32 CSI (Channel State Information) sensors used in the [wifi-sensing](~/git/wifi-sensing/) project.
|
||||
|
||||
## Goals
|
||||
- Document current firmware and configuration
|
||||
- Add remote management commands (reboot, identify, status)
|
||||
- Implement OTA firmware updates
|
||||
- Explore BLE scanning for complementary presence detection
|
||||
- Optimize CSI data pipeline (adaptive rate, on-device processing)
|
||||
|
||||
## Current State
|
||||
- 3x ESP32-DevKitC V1 deployed with stock `csi_recv_router` firmware
|
||||
- Firmware sends raw CSI data via UDP at ~100 pkt/s per device
|
||||
- No remote management capability (must physically access USB)
|
||||
|
||||
## Hardware
|
||||
| Device | Chip | IP Address | Location |
|
||||
|--------|------|------------|----------|
|
||||
| muddy-storm | ESP32-WROOM-32 | 192.168.129.29 | Living Room |
|
||||
| amber-maple | ESP32-WROOM-32 | 192.168.129.30 | Office |
|
||||
| hollow-acorn | ESP32-WROOM-32 | 192.168.129.31 | Kitchen |
|
||||
|
||||
## Software Stack
|
||||
| Component | Version | Purpose |
|
||||
|-----------|---------|---------|
|
||||
| ESP-IDF | v5.x | Development framework |
|
||||
| esp-csi | latest | CSI extraction library |
|
||||
| FreeRTOS | (bundled) | RTOS kernel |
|
||||
|
||||
## Key Paths
|
||||
| Path | Description |
|
||||
|------|-------------|
|
||||
| `~/git/esp32-hacking/` | This project (firmware sources, docs) |
|
||||
| `~/git/wifi-sensing/` | Server application (receives CSI data) |
|
||||
| `~/esp/esp-idf/` | ESP-IDF toolchain |
|
||||
| `~/esp/esp-csi/` | Original esp-csi repo (build from here) |
|
||||
|
||||
## Dependencies
|
||||
- ESP-IDF toolchain (`~/esp/esp-idf/`)
|
||||
- USB cable for initial flash (OTA planned)
|
||||
|
||||
## References
|
||||
- [ESP-IDF Docs](https://docs.espressif.com/projects/esp-idf/en/latest/)
|
||||
- [ESP-CSI GitHub](https://github.com/espressif/esp-csi)
|
||||
- [ESP32 WiFi CSI API](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html)
|
||||
50
ROADMAP.md
Normal file
50
ROADMAP.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# ESP32 Hacking Roadmap
|
||||
|
||||
## v0.1 - Documentation & Setup [CURRENT]
|
||||
- [x] Copy firmware sources from esp-csi
|
||||
- [x] Document current firmware behavior
|
||||
- [x] Document CSI data format
|
||||
- [x] Document build & flash process
|
||||
- [x] List firmware modification ideas with priorities
|
||||
- [ ] Create development workflow (build, flash, test cycle)
|
||||
|
||||
## v0.2 - Remote Management
|
||||
- [ ] Add UDP command listener on ESP32
|
||||
- [ ] Implement REBOOT command
|
||||
- [ ] Implement IDENTIFY command (blink LED)
|
||||
- [ ] Implement STATUS command (uptime, heap, RSSI, temp)
|
||||
- [ ] Implement RATE command (change sampling rate)
|
||||
- [ ] Add LED status indicator (connected/sending/error)
|
||||
- [ ] Pi-side command sender script
|
||||
|
||||
## v0.3 - OTA Updates
|
||||
- [ ] Modify partition table for dual OTA
|
||||
- [ ] Add OTA update handler in firmware
|
||||
- [ ] HTTP firmware server on Pi
|
||||
- [ ] Pi-side flash script (select device, push firmware)
|
||||
- [ ] Rollback on failed update
|
||||
|
||||
## v0.4 - Adaptive Sampling
|
||||
- [ ] On-device wander calculation (simplified)
|
||||
- [ ] Reduce to 10 pkt/s when idle
|
||||
- [ ] Increase to 100 pkt/s on motion detection
|
||||
- [ ] Rate change notification to Pi
|
||||
|
||||
## v0.5 - BLE Scanning
|
||||
- [ ] Enable Bluetooth alongside WiFi
|
||||
- [ ] Periodic BLE advertisement scanning
|
||||
- [ ] Report device MAC, RSSI, name via UDP
|
||||
- [ ] Pi-side BLE device tracking
|
||||
|
||||
## v1.0 - Production Firmware
|
||||
- [ ] mDNS auto-discovery
|
||||
- [ ] Watchdog + auto-recovery
|
||||
- [ ] On-device CSI processing (send metrics, not raw)
|
||||
- [ ] Configuration via UDP (WiFi SSID, target IP)
|
||||
- [ ] Comprehensive error handling
|
||||
|
||||
## Future
|
||||
- ESP-NOW mesh (ESP32-to-ESP32 CSI)
|
||||
- Multi-channel scanning
|
||||
- External sensor support (PIR, temp/humidity via GPIO)
|
||||
- Power management for battery operation
|
||||
22
TASKS.md
Normal file
22
TASKS.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# ESP32 Hacking Tasks
|
||||
|
||||
**Last Updated:** 2026-02-04
|
||||
|
||||
## Current Sprint: v0.1 - Documentation
|
||||
|
||||
### P0 - Critical
|
||||
- [x] Copy firmware sources to project
|
||||
- [x] Document current firmware and settings
|
||||
|
||||
### P1 - Important
|
||||
- [ ] Document build & flash workflow step by step
|
||||
- [ ] Create .gitignore for build artifacts
|
||||
- [ ] Test building firmware from this repo
|
||||
|
||||
### P2 - Normal
|
||||
- [ ] Document CSI config options (what each sdkconfig flag does)
|
||||
- [ ] Compare csi_recv vs csi_recv_router differences
|
||||
|
||||
### P3 - Low
|
||||
- [ ] Document esp-crab dual-antenna capabilities
|
||||
- [ ] Document esp-radar console features
|
||||
36
TODO.md
Normal file
36
TODO.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# ESP32 Hacking TODO
|
||||
|
||||
## Firmware Features
|
||||
- [ ] UDP command listener (reboot, identify, status, rate)
|
||||
- [ ] LED status indicator
|
||||
- [ ] OTA firmware updates
|
||||
- [ ] Adaptive sampling rate
|
||||
- [ ] BLE scanning
|
||||
- [ ] mDNS auto-discovery
|
||||
- [ ] On-device wander calculation
|
||||
- [ ] Chip temperature reporting
|
||||
- [ ] WiFi reconnect on disconnect
|
||||
- [ ] Configurable target IP/port via command
|
||||
|
||||
## Tools
|
||||
- [ ] `esp-cmd` CLI tool to send commands to sensors
|
||||
- [ ] Flash script for OTA updates
|
||||
- [ ] Sensor discovery script (find all ESP32s on network)
|
||||
|
||||
## Testing
|
||||
- [ ] Benchmark: CSI callback latency
|
||||
- [ ] Benchmark: UDP throughput at different rates
|
||||
- [ ] Test: WiFi reconnect reliability
|
||||
- [ ] Test: BLE + WiFi coexistence impact on CSI
|
||||
|
||||
## Documentation
|
||||
- [ ] Pin mapping for ESP32-DevKitC V1
|
||||
- [ ] Memory usage analysis (heap, stack)
|
||||
- [ ] Power consumption measurements
|
||||
- [ ] Compare CSI quality: passive (router) vs active (ESP-NOW)
|
||||
|
||||
## Ideas
|
||||
- ESP-NOW mesh for direct ESP32-to-ESP32 CSI
|
||||
- External PIR sensor for CSI ground truth validation
|
||||
- Battery + deep sleep mode for portable deployment
|
||||
- Web-based firmware configurator (WiFi credentials, UDP target)
|
||||
Reference in New Issue
Block a user