Wall Light
Addressable LED strips that react to your music
Install from your dashboard:
Library → Install skill → upload this file.
Two WS2812B strips driven by a small wireless controller, rendered entirely by Jarvis and streamed over UDP. Animation runs inside Jarvis, so changing an effect is a settings change -- never a reflash.
What it does
- On/off, colour and brightness by voice
- Reacts to whatever is playing, and to Jarvis speaking
- All the animation is worked out by Jarvis; the controller just displays it
Things you can say
Hardware you need
- ESP32 devkit
-
WS2812B / NeoPixel LED strips (2)
Wired from one end through to the other; lengths are configured in the dashboard.
-
5V power supply sized for your LED count
WS2812B needs real 5V. Do not power the strip from the ESP32's 3V3 pin -- it produces no light at all.
Wiring
| Pin | Connects to |
|---|---|
GPIO18 | Strip 1 data in |
GPIO19 | Strip 2 data in |
GND | Shared ground with the strip power supply |
Supported boards & pins
These GPIO numbers come from the same table the firmware is compiled from, so what you see here is what the board actually drives.
esp32:esp32:esp32
The older, wider devkit with a single micro-USB port.
Relay 1 uses the first pin, relay 2 the second, and so on.
Firmware
Only needs reflashing if the control endpoints change -- never for animation tweaks.
Setting it up
- Flash the sketch to a spare ESP32.
- Wire strip 1 data to GPIO18 and strip 2 data to GPIO19, sharing ground with the strip supply.
- Power the strips from a real 5V supply, and give the ESP32 its own separate supply.
- Set the strip lengths on the Wall Light page.
- Turn on music sync and play something.
Two things cost real hours during bring-up. (1) The ESP32's 3.3V data line is marginal for WS2812B and can fail part-way down a long chain. (2) Powering the ESP32 from the same rail as the LEDs stopped it joining WiFi entirely -- the radio is far more noise-sensitive than the logic. Give the board its own supply and share only ground.