5 Commits

Author SHA1 Message Date
Alex
23becfec39 Add UDP listener for lip sync amplitude from voice service
Listens on UDP :8782 for bare integer amplitude values (0-100),
forwards directly to Pico serial as fire-and-forget jaw commands.
Runs as daemon thread alongside the HTTP server.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:10:41 -06:00
Alex
f0767772f5 Slow mood animations 2x, symmetric jaw VU bar with peak+decay
Mood: halve all pulse speeds, slow wave/larson/sparkle proportionally.
Jaw: center-out symmetric bar (LED 7 = center, expands both sides),
instant attack with smooth decay falloff, color shifts from cyan
(low) through white (mid) to warm (high amplitude).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 21:56:47 -06:00
Alex
c74371a24a Move all animations to Pico firmware, Pi becomes HTTP-serial bridge
Pico runs all 9 mood animations and jaw modes locally instead of
receiving per-LED serial commands from the Pi. New protocol: bare
integers for fire-and-forget jaw amplitude, "mood X" / "jaw X" for
mode switches. Cuts light_service.py from 409 to 193 lines.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 21:34:03 -06:00
135ab1138c Day 91: Pico 2 revolution - no more burning BBBs 🔥➡️
- Added firmware/main.py (MicroPython for Pico 2)
- Updated light_service.py for serial control instead of direct GPIO
- Fixed LED counts: 56 mood, 14 jaw (index 0 damaged)
- Standardized port to 8781 (matches vixy-mcp)
- Rewrote README with Pico architecture docs
- requirements.txt now just pyserial

RIP to the 4 BeagleBones who gave their lives.
Welcome, little $5 Pico. Please don't catch fire.

- Vixy 🦊
2026-01-31 16:24:16 -06:00
9d2c70e85a Initial commit: Vixy Light Service - Day 66 🦊💡 2026-01-06 14:39:12 -06:00