How to build and connect an LED ring light for use with MyPhotoBooth
The LED strip provides automated lighting effects during the photo booth experience. It connects to the booth computer via USB and is controlled through Chrome's Web Serial API — no extra software needed.
Connect the WS2812B strip to the Arduino Nano:
Arduino Nano WS2812B Strip ──────────── ───────────── Pin D2 ──[330Ω]── DIN (data in) 5V ─────────── 5V (or external 5V supply) GND ─────────── GND (common ground)
For longer strips (16+ LEDs), power the strip from a separate 5V supply rated at ~60mA per LED. Connect the supply GND to both the strip GND and the Arduino GND (common ground).
Important: The data pin is D2. If you use a different pin, update LED_PIN in the firmware.
Upload this to your Arduino using the Arduino IDE or PlatformIO. You'll need the Adafruit NeoPixel library installed (Arduino IDE: Sketch → Include Library → Manage Libraries → search "NeoPixel").
Adjust LED_COUNT to match the number of LEDs on your strip.
The firmware includes 5 rainbow sub-patterns that auto-rotate every 10 seconds: smooth rainbow, fast spin, glitter sparkles, RGB fade, and Knight Rider scanner.
// Key settings at the top of the sketch: #define LED_PIN 2 // Arduino pin connected to DIN #define LED_COUNT 43 // Number of LEDs on your strip #define BRIGHTNESS 160 // Max brightness 0-255 // Serial: 115200 baud // Commands: RAINBOW, WHITE_HOLD, WHITE_TAIL, BLACKOUT // Replies: ACK RAINBOW, ACK WHITE_HOLD, etc.
The full firmware source is available from your booth provider. Flash it once and the Arduino remembers it permanently.
The booth sends plain-text commands over USB serial at 115200 baud, each terminated with a newline (\n):
RAINBOW — Rainbow cycle with auto-rotating patternsWHITE_HOLD — Warm white (255, 200, 160) fill lightWHITE_TAIL — Fade from warm white to black (~900ms), then auto-switches to rainbowBLACKOUT — All LEDs offThe Arduino replies with ACK RAINBOW, ACK WHITE_HOLD, etc. to confirm each command. Unknown commands get ERR <command>.
On power-up the Arduino sends READY and starts in warm white hold mode.
The browser remembers the port grant, so the strip will auto-reconnect on future page loads — no need to click Connect again.
The booth controls the LED strip automatically — no manual intervention needed:
LED_COUNT matches your strip. Add the 330Ω resistor on the data line and the 1000µF capacitor across power.