Files
led-sync-studio/.planning/phases/01-esp32-firmware/01-DISCUSSION-LOG.md
2026-04-03 12:52:06 +02:00

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