How to build your own ambilight for XBMC

Do you want to build your own ambilight, but you don’t know where to start or what to buy?

In this tutorial I’ll try to cover what parts I brought for my build and how I configured the software. While I’m still not done creating a 3D-printed case for my Raspberry Pi and providing it with an ordinary power supply, this guide should help you a long way.

I’ll be using the following hardware, hardware tools are not included in the list:

  • Raspberry Pi
  • 4GB SD card
  • USB WiFi adapter (Optional: You could also use LAN)
  • WS2801 LED Strip
  • 5V Power supply (I used an old PC PSU)
  • Some wires and a soldering iron

Software

03In order to be able to test the LED strip before mounting it on the screen, I recommend to start with configuring the Raspberry Pi. Download the lastest version of Raspberian and use Win32 Disk Imager (Windows) to write the image to the SD card. Once done, insert it into the Raspberry Pi, connect a screen and keyboard and power it on. The default username for Raspberian is Pi and the password Raspberry. When it has finished booting you should be presented with the “Raspberry Pi Software Configuration Tool)”. If not, you can use the following command to launch it:

First of all you should expand the filesystem in order to use all of the available storage space. Select “1. Expand Filesystem” and Select YES to expand. We also need to enable SSH and SPI support under “8. Advanced Options”. Reboot the Raspberry Pi when prompted. In case your are using wireless and not LAN, you’ll have to configure your network before continuing. I recommend you follow this guide for that. It’s now time to install the requirements by issuing the following command:

Once this is done you can go ahead and install Hyperion which is the software that will control the lights. Issue these commands, line by line:

There you go! Hyperion is installed and you almost done with the software part.

hypercon_mainscreen_01

Configuring the LED’s

Before you’ll be able to test or use your LED’s you’ll have to configure Hyperion. The good thing is that it has a pretty good utility to do that. Just download HyperCon.jar and run it. If you haven’t mounted the LED’s to your TV yet and want to try them out to see that all of them light up, you can change “Horizontal #”, “Vertical #” and “Bottom Gap #” just so you match the number of LED’s you brought. You’ll see the number of LED’s in the right bottom of the screen. You don’t have to worry about the other settings for now, just hit “Create Hyperion Configuration” and save it somewhere.

Copying the configuration to the Raspberry Pi

In order to copy the file to the Raspberry Pi, you’ll need to know its IP-address and use WinSCP or similar to copy the file over. I’m not going to cover the basics here, just connect using SCP, its IP and Pi/Raspberry as username/password. Once logged in, upload the file to “/opt/hyperion/config/”. Reboot your Raspberry Pi and you should see all light light up when it has finished booting. If you want you can also remote control it using the Android or iPhone app. If you have done everything right it should work pretty nicely.

Connecting the LED’s to your Raspberry Pi

2015-02-04 21.38.27Connecting power to the LED’s and Raspberry Pi might be a bit tricky, at least to explain. For now I’m using an old PC power supply because that’s what I had lying around. What I did was to remove the black and red wire from a Molex connector as this will give me access to the 5v I need to power both the Raspberry Pi and the LED’s. Next I used a wire connector to connect the black wire to the Raspberry Pi and to the LED strip. Follow this image from bite-in.com and be careful that the colors of the wires may differ (the black wire on my LED strip wasn’t ground). Red (5V) goes also to both the LED strip and your Raspberry Pi as the image illustrates. Now there are only two cables left from the LED that go to two of the GPIO pins of your Raspberry.

Mounting the LED’s to you TV

2015-01-17 21.49.32I highly recommend to watch this video on YouTube. There’s not much more to add, just take your time and don’t rush it! It wasn’t that hard.

Creating a new Hyperion configuration

Once you have mounted the LED’s, you’ll need to count the number of LED’s and create a new configuration. I recommend to start off with the default, just changing the following:

  • Direction: Depending on where you started, you might have to change this.
  • Led in top corners/bottom corners: false
  • Horizontal #, Vertical #, Bottom Gap # should match the number of LED’s you have.
  • 1st LED offset: Use this to set the offset so that LED 0 is where the LED strip starts.

Make sure that the preview-image on the right matches your TV, then save the configuration and upload it to your Raspberry Pi. Now you just need to reboot and you’re done! Now you can install the XBMC addon following this guide and everything should work.

Make your Raspberry read-only

While I haven’t tried it myself yet, I may suggest this guide in order to make your Raspberry Pi’s SD card read-only. The reason you might want to do that is that the Pi doesn’t like it if you just pull the power without shutting it down properly. You might experience file system errors or corrupt the SD card if you do. This guide should make it possible though, preventing potential errors to occur. 🙂

 

Good luck! If you need any help, please let me know! 🙂

Share this:

2 comments, add yours.

Marius

Will this work with Plex for windows?

Benjamin Krause

Benjamin Krause

Author

I’m currently using Hyperion to control my ambilight. As far as I know there is no Plex support yet, but I guess it could be implemented rather easily. You could also use Plexbmc addon for Kodi/XBMC to tunnel Plex through XBMC and then you have native support for ambilight through the hyperion xbmc addon.

I’ve also tried to use a USB video grabber in order to be able to use the ambilight with any HDMI source, but the quality and lag were too noticeable in my opinion. You can read more about that here.

I plan to develop a driver for Windows, so anything compatible with a Windows based media center should work (including Plex), but I’m not quite there yet…
Personally I’m only using Plex for transcoding purposes, not local streaming. If you subscribe to IDmedia on Facebook I’ll keep you automatically updated. 🙂

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.