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.
46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
# ESP32 Hacking Tasks
|
|
|
|
**Last Updated:** 2026-02-04
|
|
|
|
## Current Sprint: v0.2 - Remote Management
|
|
|
|
### P0 - Critical
|
|
- [x] Firmware: UDP command listener (port 5501)
|
|
- [x] Firmware: LED status indicator (GPIO2)
|
|
- [x] Firmware: NVS config persistence (rate, tx_power)
|
|
- [~] Build and flash firmware to device
|
|
|
|
### P1 - Important
|
|
- [x] Firmware: REBOOT, IDENTIFY, STATUS commands
|
|
- [x] Firmware: RATE command (10-100 Hz, restarts ping)
|
|
- [x] Firmware: POWER command (2-20 dBm)
|
|
- [x] Firmware: Refactor ping to support restart
|
|
- [x] Pi-side: `esp-cmd` CLI tool
|
|
- [ ] Update CHEATSHEET.md with esp-cmd usage
|
|
|
|
### P2 - Normal
|
|
- [ ] Document esp-cmd in USAGE.md
|
|
- [ ] Add Kconfig CSI_CMD_PORT option
|
|
|
|
### P3 - Low
|
|
- [ ] Document esp-crab dual-antenna capabilities
|
|
- [ ] Document esp-radar console features
|
|
|
|
## 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
|
|
- [x] Compare csi_recv vs csi_recv_router differences
|
|
|
|
## Notes
|
|
|
|
- Build confirmed working on ESP-IDF v5.5.2 (aarch64/Pi 5)
|
|
- v0.2 firmware adds ~1.5 KB heap + 6 KB stack usage
|
|
- NVS namespace: `csi_config` (keys: `send_rate`, `tx_power`)
|
|
- LED uses GPIO2 (built-in on most ESP32 dev boards)
|
|
- Command port default: 5501 (configurable via menuconfig)
|