2.5 KiB
Phase 1: ESP32 Firmware - Discussion Log
Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
Date: 2026-04-03 Phase: 01-esp32-firmware Areas discussed: Animation design, JSON protocol, Power & safety, Development setup Mode: auto (all areas auto-selected, recommended defaults chosen)
Animation Design
| Option | Description | Selected |
|---|---|---|
| Palette-based with RGBW | Each animation accepts color palette + params | [auto] |
| Single color per animation | Simpler but limiting | |
| HSV color space | Alternative representation |
User's choice: [auto] Palette-based with RGBW support (recommended default) Notes: SK6812 is RGBW — palette approach keeps JSON commands simple while supporting rich effects. W channel auto-derived from RGB when not specified.
JSON Protocol
| Option | Description | Selected |
|---|---|---|
| Flat JSON | {"zone":"wall","animation":"chase","params":{}} |
[auto] |
| Nested/hierarchical | More structured but complex | |
| Binary protocol | Lower overhead but harder to debug |
User's choice: [auto] Flat JSON with zone, animation, and params fields (recommended default) Notes: Matches research recommendation. Simple, debuggable with netcat.
Power & Safety
| Option | Description | Selected |
|---|---|---|
| 40% brightness cap | Safe for power budget | [auto] |
| No cap (user responsibility) | Full brightness available | |
| Dynamic cap based on animation | Complex but optimal |
User's choice: [auto] 40% firmware-enforced cap, adjustable to max 60% (recommended default) Notes: Research flagged 27A peak at full brightness across 460 LEDs.
Development Setup
| Option | Description | Selected |
|---|---|---|
| PlatformIO + Arduino | NeoPixelBus + ArduinoJson ecosystem | [auto] |
| ESP-IDF native | More control, steeper learning curve | |
| Arduino IDE | Simpler but no dependency management |
User's choice: [auto] PlatformIO + Arduino framework (recommended default) Notes: Research validated NeoPixelBus RMT + ArduinoJson work well on ESP32-C3.
Claude's Discretion
- FreeRTOS task priorities and stack sizes
- GPIO pin assignments (hardware validation needed)
- DMA buffer sizing for RMT
- WiFi reconnection strategy
Deferred Ideas
None — auto mode, discussion stayed within phase scope