Ambient lighting that responds to the image on your TV is simpler and cheaper than you might think—and it makes your home theater great.
Step 1: Demo
First, a demonstration of what we do. If you’re curious, Electric Sheep’s 3-hour psych trance journey is the perfect showcase for Ambilight. Of course, not all videos will produce the same pleasing results — many movies are too hazy or are presented in cinema format, resulting in black bars (and therefore no color data). I’ve found better results with bright, vibrant colors in most animations, as well as action movies with complex CGI effects.
At the moment it only works with some computer-side signal processing — so it’s great for things like VLC, Popcorn Time, Kodi (formerly known as XBMC) or PC games. Unfortunately, processing a standard HDMI input is more complicated — at the very least, we’ll need an HDMI splitter and some kind of converter to a more readable analog format. I’ll save that for a future project — it only works with a computer for now.
Step 2: You will need
The parts list is short — there are no complex electronics here:
- Arduino Uno
- 10A 5V power supply
- WS2812B 5m led strip
- Double sided tape (don’t make the same mistake I did — use quality 3M materials)
- Processing set
Step 3: Wiring
Note that these bands have a specific direction in which the signal must travel, indicated by the arrows. If you’re connecting multiple strips, you may also need to reconnect the power halfway through to avoid a voltage drop — I’ve found this to be unnecessary with just 5 meters.
Step 4: Upload the Arduino Code and Test
The project has both Arduino and Processing. First make sure you add FastLED to the Arduino libraries directory and then upload this code. Change line 7 for the number of LEDs you have; and if you find that the color profile is broken, change line 47. The strip I purchased uses the WS2812B chipset and the color order is «GRB». See the FastLED documentation on how to calibrate per strip, but the default should be fine if you bought the same LEDs.
Finally, you need the processing components from the Adafruit project code. For testing open Colorswirl.pde . Change the number of LEDs again on line 29; and a serial device on line 44. If the Arduino is the only COM device connected, Serial.list()  fit . If not, try Serial.list()  . Launch the app and with any luck, your stripes will show off a beautiful swirl of colors.