On-device CSI wander calculation (coefficient of variation over 50-packet window). Rate drops to 10 Hz when idle, jumps to 100 Hz on motion with 3s holdoff. EVENT notifications sent to Pi on rate changes. New commands: ADAPTIVE ON/OFF, THRESHOLD. RATE command disables adaptive mode. All settings NVS-persisted.
74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# ESP32 Hacking Tasks
|
|
|
|
**Last Updated:** 2026-02-04
|
|
|
|
## Current Sprint: v0.5 - BLE Scanning
|
|
|
|
### P0 - Critical
|
|
- [ ] Enable Bluetooth alongside WiFi
|
|
- [ ] Periodic BLE advertisement scanning
|
|
|
|
### P1 - Important
|
|
- [ ] Report device MAC, RSSI, name via UDP
|
|
- [ ] Pi-side BLE device tracking
|
|
|
|
### P2 - Normal
|
|
- [ ] OTA update remaining fleet (muddy-storm, hollow-acorn) via USB
|
|
- [ ] Test rollback (flash bad firmware, verify auto-revert)
|
|
|
|
### P3 - Low
|
|
- [ ] Document esp-crab dual-antenna capabilities
|
|
- [ ] Document esp-radar console features
|
|
|
|
## Completed: v0.4 - Adaptive Sampling
|
|
|
|
- [x] On-device CSI wander calculation (coefficient of variation)
|
|
- [x] Adaptive rate: 10 pkt/s idle (3s holdoff) → 100 pkt/s on motion
|
|
- [x] EVENT notification to Pi on rate change
|
|
- [x] ADAPTIVE ON/OFF command (NVS persisted)
|
|
- [x] THRESHOLD command for tuning sensitivity (NVS persisted)
|
|
- [x] RATE command disables adaptive mode
|
|
- [x] adaptive/motion fields in STATUS reply
|
|
- [x] OTA deployed and verified on amber-maple
|
|
|
|
## Completed: v0.3 - OTA Updates
|
|
|
|
- [x] Dual OTA partition table (`partitions.csv`)
|
|
- [x] 4MB flash, custom partitions, rollback in sdkconfig.defaults
|
|
- [x] Firmware: OTA command, ota_task, LED_OTA, rollback validation
|
|
- [x] Firmware: version in STATUS reply
|
|
- [x] Pi-side `esp-ota` tool (HTTP server + OTA orchestration)
|
|
- [x] `esp-fleet ota` subcommand (sequential fleet update)
|
|
- [x] Build and USB-flash amber-maple (partition table change)
|
|
- [x] End-to-end OTA test verified
|
|
- [x] Regenerate sdkconfig.sample
|
|
- [x] Update CHEATSHEET.md, USAGE.md
|
|
|
|
## Completed: v0.2 - Remote Management
|
|
|
|
- [x] Firmware: UDP command listener (port 5501)
|
|
- [x] Firmware: LED status indicator (GPIO2)
|
|
- [x] Firmware: NVS config persistence (rate, tx_power)
|
|
- [x] Firmware: REBOOT, IDENTIFY, STATUS commands
|
|
- [x] Firmware: RATE command (10-100 Hz, restarts ping)
|
|
- [x] Firmware: POWER command (2-20 dBm)
|
|
- [x] Pi-side: `esp-cmd` CLI tool
|
|
- [x] Pi-side: `esp-fleet` fleet management tool
|
|
- [x] mDNS hostname, watchdog, human-readable uptime
|
|
|
|
## Completed: v0.1 - Documentation
|
|
|
|
- [x] Copy firmware sources to project
|
|
- [x] Document current firmware and settings
|
|
- [x] Document build & flash workflow
|
|
- [x] Create .gitignore for build artifacts
|
|
- [x] Test building firmware from this repo
|
|
- [x] Document CSI config options
|
|
|
|
## Notes
|
|
|
|
- Adaptive threshold varies by environment; 0.001-0.01 is a good starting range
|
|
- NVS keys: `send_rate`, `tx_power`, `adaptive`, `threshold`
|
|
- EVENT packets sent on CSI UDP port when adaptive rate changes
|
|
- OTA download ~904 KB on LAN takes ~3-5s, well under 30s watchdog
|