After UART OTA the master reads the staged partition in 4 KiB blocks (200 B ESP-NOW chunks), waits for per-slave block ACKs, and fixes the final partial block. Slaves reuse ota_uart; send pacing and logging improve reliability.
Co-authored-by: Cursor <cursoragent@cursor.com>
Firmware buffers 200-byte chunks into 4 KiB blocks for esp_ota_write; goTool
uploads with per-block ACK flow control and larger UART buffers to avoid stalls.
Co-authored-by: Cursor <cursoragent@cursor.com>
JSON configs describe network and node MACs; scenarios run command
sequences with expect checks. Share UART client API across CLI and tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose common gotool targets (build, clients, version, unicast-test,
deadzone) with configurable PORT, and add goTool/.gitignore for gotool.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add esp_now_messages.proto with EspNowMessage types, encode/decode helpers,
and Makefile targets to regenerate firmware and UART schemas together.
Co-authored-by: Cursor <cursoragent@cursor.com>