Check off sensor ID, deauth detection, chip temperature, BLE alerting, dwell time, timestamped logging. Advance TASKS sprint to v1.1. Clean completed items from TODO.
3.6 KiB
3.6 KiB
ESP32 Hacking Tasks
Last Updated: 2026-02-04
Current Sprint: v1.1 - Passive Sensing & Multi-Sensor
P1 - Important
- Build + flash firmware (sensor ID, temp, deauth detection)
- OTA update remaining fleet (muddy-storm, hollow-acorn)
- WiFi probe request capture (PROBE_DATA via promiscuous mode)
P2 - Normal
- Multi-sensor BLE correlation in esp-ctl (zone tracking)
- Test OTA rollback (flash bad firmware, verify auto-revert)
P3 - Low
- Document esp-crab dual-antenna capabilities
- Document esp-radar console features
- Pin mapping for ESP32-DevKitC V1
Completed: v1.1 (partial)
- Sensor ID in data packets (hostname prefix on CSI_DATA, BLE_DATA, EVENT)
- Deauth/disassoc frame detection (ALERT_DATA via promiscuous mode)
- Chip temperature reporting in STATUS reply
- BLE alerting (
esp-ctl ble --known, alert on unknown MACs) - BLE dwell time tracking (dwell column in
--tracksummary) - Timestamped event logging (
esp-ctl listen --timestamp) - Alert filter in esp-ctl (
listen -f alert)
Completed: v0.5 - BLE Scanning
- Enable Bluetooth alongside WiFi (NimBLE, BLE ON/OFF command)
- Periodic BLE advertisement scanning
- Report device MAC, RSSI, name via UDP
- Pi-side BLE device tracking (
esp-ctl ble --track) - PROFILE command (heap, stack watermarks, CPU runtime stats)
- TARGET command (runtime UDP destination config)
Completed: v0.4 - Adaptive Sampling
- On-device CSI wander calculation (coefficient of variation)
- Adaptive rate: 10 pkt/s idle (3s holdoff) → 100 pkt/s on motion
- EVENT notification to Pi on rate change
- ADAPTIVE ON/OFF command (NVS persisted)
- THRESHOLD command for tuning sensitivity (NVS persisted)
- RATE command disables adaptive mode
- adaptive/motion fields in STATUS reply
- OTA deployed and verified on amber-maple
Completed: v0.3 - OTA Updates
- Dual OTA partition table (
partitions.csv) - 4MB flash, custom partitions, rollback in sdkconfig.defaults
- Firmware: OTA command, ota_task, LED_OTA, rollback validation
- Firmware: version in STATUS reply
- Pi-side
esp-otatool (HTTP server + OTA orchestration) esp-fleet otasubcommand (sequential fleet update)- Build and USB-flash amber-maple (partition table change)
- End-to-end OTA test verified
- Regenerate sdkconfig.sample
- Update CHEATSHEET.md, USAGE.md
Completed: v0.2 - Remote Management
- Firmware: UDP command listener (port 5501)
- Firmware: LED status indicator (GPIO2)
- Firmware: NVS config persistence (rate, tx_power)
- Firmware: REBOOT, IDENTIFY, STATUS commands
- Firmware: RATE command (10-100 Hz, restarts ping)
- Firmware: POWER command (2-20 dBm)
- Pi-side:
esp-cmdCLI tool - Pi-side:
esp-fleetfleet management tool - mDNS hostname, watchdog, human-readable uptime
Completed: v0.1 - Documentation
- Copy firmware sources to project
- Document current firmware and settings
- Document build & flash workflow
- Create .gitignore for build artifacts
- Test building firmware from this repo
- 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,ble_scan,target_ip,target_port - EVENT packets now include sensor hostname:
EVENT,<hostname>,motion=... rate=... wander=... - ALERT_DATA format:
ALERT_DATA,<hostname>,<deauth|disassoc>,<sender_mac>,<target_mac>,<rssi> - STATUS now includes
temp=field (chip temperature in Celsius)