Commit Graph

17 Commits

Author SHA1 Message Date
Claude
230be9994e feat(01-02): wifi_server.h/.cpp — AsyncUDP listener with FreeRTOS queue
- RawPacket struct carries raw bytes, IP, port from AsyncUDP callback
- xQueueSendFromISR in callback (ISR-safe) — zero JSON parsing in callback
- parseTask runs in separate FreeRTOS task, drains rawQueue, parses JSON
- STATUS command handled immediately in parseTask with UDP response to sender
- commandQueue declared extern for animation engine (Plan 03) to consume
- main.cpp: include wifi_server.h, call startUdpServer() after WIFI_PS_NONE
2026-04-03 13:25:15 +02:00
Claude
3323a87ce0 feat(01-02): protocol.h/.cpp — JSON parsing into LedCommand
- LedCommand, AnimParams, Zone, CmdType structs with all fields per D-05/D-06
- parseCommand(): validates v:1 version, routes schrank/wand/all zones, parses cmd/animation
- RGBW colors array parsed from params.colors; defaults to single [255,255,255,255]
- buildStatusResponse(): serializes current state to JSON for STATUS cmd reply
- Errors logged to Serial, no UDP response on bad commands (per D-07)
2026-04-03 13:23:48 +02:00
Claude
0d82f9b7ba docs(01-01): complete plan — hardware checkpoint approved, coexistence validated
- Task 4 hardware checkpoint approved: zero flicker during 30s UDP burst test
- WIFI_PS_NONE confirmed working on ESP32-C3 SuperMini
- GPIO3/6/7 pin assignments validated on physical hardware
- Updated SUMMARY.md with hardware test result and plan completion
- STATE.md advanced to plan 3, progress bar updated to 25%
2026-04-03 13:21:53 +02:00
Claude
6548a84ec1 docs(01-01): complete ESP32 firmware scaffold plan — awaiting hardware checkpoint
- 01-01-SUMMARY.md: dual strip driver, WiFi+RMT coexistence test scaffold
- STATE.md: advanced to plan 2, recorded GPIO/SPI/RMT decisions, 25% progress
- ROADMAP.md: phase 1 in-progress (1/4 plans)
- REQUIREMENTS.md: FW-01 marked complete
2026-04-03 13:18:37 +02:00
Claude
88eb8d38c1 feat(01-01): main.cpp — WiFi init, WIFI_PS_NONE, startup animation, coexistence test
- main.cpp: setup() initializes strips, shows green (connecting) then white (connected)
- esp_wifi_set_ps(WIFI_PS_NONE) called immediately after WiFi connects for RMT coexistence
- loop() toggles LED colors every 5s to confirm strip responsiveness
- Coexistence test procedure documented as comment block in main.cpp
- firmware/.gitignore excludes .pio/ and credentials.h
2026-04-03 13:16:34 +02:00
Claude
55aea7a46b feat(01-01): LED driver — dual strip initialization and output
- led_driver.h declares StripWand (NeoGrbwFeature/RMT) + StripSchrank (NeoWs2801Spi2MhzMethod)
- led_driver.cpp implements initStrips, showBothStrips, setAllWand/Schrank, applyBrightness helpers
- showBothStrips calls stripWand.Show() first (non-blocking DMA) then stripSchrank.Show() (blocking SPI)
- Brightness clamped to [0.0f, BRIGHTNESS_MAX] before scaling
2026-04-03 13:15:41 +02:00
Claude
6fe86bc310 feat(01-01): PlatformIO scaffold + config.h
- platformio.ini with -DESP32_ARDUINO_NO_RGB_BUILTIN, NeoPixelBus ^2.8.0, ArduinoJson ^7.4.0
- config.h defines all pin, LED count, brightness, timing, and FreeRTOS constants
2026-04-03 13:15:06 +02:00
Claude
ee1f45b076 docs(state): record phase 1 planning session 2026-04-03 13:12:55 +02:00
Claude
e90cb3fa39 docs(01-esp32-firmware): create phase plan (4 plans, 3 waves) 2026-04-03 13:12:06 +02:00
Claude
028e2891e0 docs(phase-01): research ESP32-C3 firmware domain
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 13:02:30 +02:00
Claude
e591a4e1fa docs(state): record phase 1 context session 2026-04-03 12:52:15 +02:00
Claude
0d0d7e2061 docs(01): capture phase context 2026-04-03 12:52:06 +02:00
Claude
72ed07b0e9 docs: create roadmap (4 phases) 2026-04-03 12:39:17 +02:00
Claude
1d26fc2dc5 docs: define v1 requirements 2026-04-03 12:29:27 +02:00
Claude
c3680306ee docs: research complete 2026-04-03 12:14:03 +02:00
Claude
136a6c877d chore: add project config 2026-04-03 12:05:27 +02:00
Claude
f89ff71fd6 docs: initialize project 2026-04-03 12:02:56 +02:00