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.
1.4 KiB
1.4 KiB
ESP32 Hacking Tasks
Last Updated: 2026-02-04
Current Sprint: v0.2 - Remote Management
P0 - Critical
- Firmware: UDP command listener (port 5501)
- Firmware: LED status indicator (GPIO2)
- Firmware: NVS config persistence (rate, tx_power)
- [~] Build and flash firmware to device
P1 - Important
- Firmware: REBOOT, IDENTIFY, STATUS commands
- Firmware: RATE command (10-100 Hz, restarts ping)
- Firmware: POWER command (2-20 dBm)
- Firmware: Refactor ping to support restart
- Pi-side:
esp-cmdCLI 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
- 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
- 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)