Files
esp32-hacking/TASKS.md
user 18933ea778 feat: Add v0.2 remote management — UDP commands, LED, NVS persistence
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.
2026-02-04 15:36:14 +01:00

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-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

  • 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)