Commit Graph

12 Commits

Author SHA1 Message Date
user
7ec70a653d feat: Add PROFILE command — heap, stack watermarks, CPU runtime stats
- PROFILE command returns heap usage (free/min/dram/iram),
  per-task stack high watermark, and per-task CPU % (when
  CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is enabled)
- Enable FreeRTOS runtime stats in sdkconfig.defaults
- Enlarge cmd reply buffer to 1400 bytes for multi-line output
- Add esp_heap_caps.h include
2026-02-04 17:59:30 +01:00
user
92e65d8775 feat: Add TARGET command — runtime UDP destination config
- TARGET <ip> [port] command to change data destination live
- NVS persistence for target_ip and target_port
- Falls back to Kconfig defaults when no NVS config
- target= field added to STATUS reply
- config_save_str helper for NVS string storage
2026-02-04 17:47:50 +01:00
user
81c4337646 feat: Add v0.5 BLE scanning — NimBLE passive scan, BLE_DATA UDP stream
- NimBLE stack init with passive BLE scanning
- BLE ON/OFF command with NVS persistence
- BLE_DATA,<mac>,<rssi>,<pub|rnd>,<name> UDP packets
- 30s periodic scan restart to refresh duplicate filter
- ble= field in STATUS reply
- sdkconfig: enable BT+NimBLE, BLE-only mode, disable Bluedroid
2026-02-04 17:40:20 +01:00
user
c922e05266 feat: Add v0.4 adaptive sampling — wander detection, auto rate control
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.
2026-02-04 16:34:19 +01:00
user
efc3fec25f chore: Regenerate sdkconfig.sample with OTA settings 2026-02-04 16:23:19 +01:00
user
d65ac208b9 feat: Add v0.3 OTA updates — dual partition, esp-ota tool, rollback
Dual OTA partition table (ota_0/ota_1, 1920 KB each) on 4MB flash.
Firmware gains OTA command, LED_OTA double-blink, version in STATUS,
and automatic rollback validation. Pi-side esp-ota tool serves firmware
via HTTP and orchestrates the update flow. esp-fleet gains ota subcommand.
2026-02-04 16:19:09 +01:00
user
44bd549761 feat: Add mDNS, watchdog, human-readable uptime, esp-fleet tool
Firmware:
- mDNS announcement as <hostname>.local (configurable via Kconfig)
- Task watchdog with 30s timeout and auto-reboot on hang
- STATUS now returns human-readable uptime (e.g., 3d2h15m) and hostname

Pi-side tools:
- esp-cmd: mDNS hostname resolution (esp-cmd amber-maple.local STATUS)
- esp-fleet: parallel command to all sensors (esp-fleet status)

Tested on amber-maple — mDNS resolves, watchdog active, fleet tool works.
2026-02-04 15:59:18 +01:00
user
0c1a0ccc7f chore: Add sdkconfig.sample with placeholders, gitignore sdkconfig
Prevents WiFi credentials from being committed. Copy sdkconfig.sample
to sdkconfig and fill in SSID/password before building.
2026-02-04 15:37:08 +01:00
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
user
2d52ac6026 chore: Downgrade ESP-IDF from v6.1.0 to v5.5.2
Matches the version deployed on ESP32 sensors. Removes v6.1
workaround, updates all docs to reflect v5.5.2, regenerates
sdkconfig for the correct IDF version.
2026-02-04 15:02:54 +01:00
user
628b84f4f3 docs: Complete v0.1 documentation sprint
- Add build & flash workflow (docs/INSTALL.md)
- Add CSI config reference and firmware comparison (docs/USAGE.md)
- Add quick reference cheatsheet (docs/CHEATSHEET.md)
- Add dependencies.lock to .gitignore (env-specific)
- Update TASKS.md with completed items and build notes
- Verified firmware builds on ESP-IDF v6.1.0 / aarch64
2026-02-04 13:25:26 +01:00
user
298e98befb feat: Initial esp32-hacking project with firmware sources and docs 2026-02-04 12:59:28 +01:00