Firmware (app_main.c): - UDP command listener on port 5501 (configurable via Kconfig) - Commands: REBOOT, IDENTIFY, STATUS, RATE, POWER - LED status indicator on GPIO2 (off/slow/fast blink/solid) - NVS persistence for send_rate and tx_power settings - Refactored ping to support stop/restart for dynamic rate changes - TX power control via esp_wifi_set_max_tx_power() Pi-side tooling: - tools/esp-cmd: standalone Python3 UDP client for device management Tested on amber-maple (ESP32 v3.1) with ESP-IDF v5.5.2.
55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
# ESP32 Hacking Roadmap
|
|
|
|
## v0.1 - Documentation & Setup [DONE]
|
|
- [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
|
|
- [x] Verify build from repo (ESP-IDF v5.5.2, aarch64)
|
|
|
|
## v0.2 - Remote Management [IN PROGRESS]
|
|
- [x] Add UDP command listener on ESP32 (port 5501)
|
|
- [x] Implement REBOOT command
|
|
- [x] Implement IDENTIFY command (LED solid 5s)
|
|
- [x] Implement STATUS command (uptime, heap, RSSI, tx_power, rate)
|
|
- [x] Implement RATE command (change ping Hz, NVS persist)
|
|
- [x] Implement POWER command (TX power dBm, NVS persist)
|
|
- [x] Add LED status indicator (off/slow blink/fast blink/solid)
|
|
- [x] NVS persistence for rate and tx_power settings
|
|
- [x] Pi-side `esp-cmd` CLI tool
|
|
- [ ] Build and flash test on device
|
|
- [ ] Update CHEATSHEET.md with new commands
|
|
|
|
## 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
|