Covers Python, Arduino CLI, AVR core, FastLED/OneButton libraries, make,
and port detection — with platform-specific install paths and a make-free
fallback for Windows.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename all show .txt files with NNN_ numeric prefix so order is explicit
and controlled by filename (001_heartbeat_red through 006_party)
- Drop HOME_SHOW special-casing from convert_all.py; show 0 is simply the
lowest-numbered file
- Add SHOW_FLAG_SPARKLE support: shows can declare '// flags: sparkle' to
overlay random white flashes on top of the base color each frame
- Wire sparkle into led_controller and config.h (SPARKLE_CHANCE/FRAMES)
- Replace old placeholder/example shows with the six production shows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Triple tap turns off LEDs; any subsequent tap or hold resumes the current show
- Change LED_DATA_PIN default from 6 to 5 across config, docs, and wiring diagram
- Fix Makefile upload to pass --input-dir so it uses the pre-built binary
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds converter/simulate.py which renders the LED strip color live in the
terminal using ANSI 24-bit color, running the same step playback logic as
the Arduino firmware (blending, step timing, SHOW_LOOP/SHOW_SINGLE mode).
Keyboard controls mirror the physical button. Also adds 'make simulate'.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Openly documents that the project was built with Claude (AI assistance),
explains the human's role in directing it, and respectfully acknowledges
that people with objections to AI-generated code are free not to use it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Arduino Uno + WS2812B LED strip controller with a text-based lightshow
system. Shows are defined as .txt files (hex color + fade duration per step),
converted to PROGMEM headers by convert_all.py, and navigated at runtime
via a debounced button (tap/double-tap/hold). BSD 2-Clause license.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>