docs(01-02): complete UDP protocol plan — LedCommand struct, AsyncUDP two-queue pattern

- SUMMARY.md with protocol schema documentation for Phase 2 Pi-side reference
- STATE.md: advanced to plan 4/4, progress 50%, decisions logged
- ROADMAP.md: phase 1 updated (2/4 summaries complete)
- REQUIREMENTS.md: FW-02 and FW-05 marked complete
This commit is contained in:
Claude
2026-04-03 13:27:33 +02:00
parent 230be9994e
commit 273015a6eb
4 changed files with 182 additions and 12 deletions

View File

@@ -3,14 +3,14 @@ gsd_state_version: 1.0
milestone: v1.0
milestone_name: milestone
status: executing
stopped_at: Completed 01-01-PLAN.md (4/4 tasks) — hardware checkpoint approved, plan complete
last_updated: "2026-04-03T11:21:33.574Z"
stopped_at: Completed 01-02-PLAN.md (2/2 tasks) — protocol.h/.cpp and wifi_server.h/.cpp implemented
last_updated: "2026-04-03T11:27:16.228Z"
last_activity: 2026-04-03
progress:
total_phases: 4
completed_phases: 0
total_plans: 4
completed_plans: 1
completed_plans: 2
percent: 0
---
@@ -26,7 +26,7 @@ See: .planning/PROJECT.md (updated 2026-04-03)
## Current Position
Phase: 01 (esp32-firmware) — EXECUTING
Plan: 3 of 4
Plan: 4 of 4
Status: Ready to execute
Last activity: 2026-04-03
@@ -54,6 +54,7 @@ Progress: [░░░░░░░░░░] 0%
*Updated after each plan completion*
| Phase 01-esp32-firmware P01 | 3 | 3 tasks | 6 files |
| Phase 01-esp32-firmware P01 | 21min | 4 tasks | 7 files |
| Phase 01-esp32-firmware P02 | 3min | 2 tasks | 5 files |
## Accumulated Context
@@ -70,6 +71,9 @@ Recent decisions affecting current work:
- [Phase 01-esp32-firmware]: -DESP32_ARDUINO_NO_RGB_BUILTIN mandatory in platformio.ini to prevent RMT driver conflict with Arduino core 3.x
- [Phase 01-esp32-firmware]: Hardware coexistence validated: WIFI_PS_NONE eliminates RMT flicker on ESP32-C3, zero flicker confirmed during 30s UDP burst test
- [Phase 01-esp32-firmware]: GPIO3/6/7 pin assignments confirmed on physical hardware — no JTAG conflicts, fallback GPIO0/1 not needed
- [Phase 01-esp32-firmware]: Two-queue FreeRTOS pattern: xQueueSendFromISR in AsyncUDP callback, parseTask drains rawQueue and dispatches LedCommand to commandQueue — prevents watchdog resets from JSON heap alloc in callback
- [Phase 01-esp32-firmware]: STATUS cmd handled inline in parseTask (no animation engine route) — needs sender IP/port from raw packet context, responds via udp.writeTo()
- [Phase 01-esp32-firmware]: parseCommand() enforces brightness cap (max 60%) per D-09 — firmware-side safety cap regardless of Pi value
### Pending Todos
@@ -84,6 +88,6 @@ None yet.
## Session Continuity
Last session: 2026-04-03T11:21:33.565Z
Stopped at: Completed 01-01-PLAN.md (4/4 tasks) — hardware checkpoint approved, plan complete
Last session: 2026-04-03T11:27:16.219Z
Stopped at: Completed 01-02-PLAN.md (2/2 tasks) — protocol.h/.cpp and wifi_server.h/.cpp implemented
Resume file: None