Ambilight Clone Built From Arduino And ShiftBrite Modules

[Don] put together a guide that will help you build your own Ambilight Clone for about $40 plus the cost of an Arduino. He’s using it with the HTPC seen above, and utilized modular concepts in building it so that you can easily disconnect your Arduino board when you want to use it for prototyping.

For RGB light sources [Don] grabbed six ShiftBrite modules. These are fully addressable cascading modules which make for very easy hardware setup. Instead of buying a driver shield he built his own using an LM317, heat sink, and wall wart to source enough current to drive all of the modules.

We really enjoy the mounting scheme used. Each module is attached to a piece of acrylic which is then mounted using the standard threaded VESA mounting holes on the back of the monitor. As with other Ambilight clones this one uses the Boblight package to get color information from the video as it plays.

17 thoughts on “Ambilight Clone Built From Arduino And ShiftBrite Modules

  1. Another nice clone, I still however would like to see a computer independent implementation of one.

    I have 3 LCD TV’s of varying ages all of which have composite A/V output, perhaps there is some simple processing that can be done on this port.

    1. I know that boblight supports V4L devices, so it would be possible to have a small PC with a composite capture card that can take this data, process it, and output it to a rig like mine.

      I’m not sure the Arduino has enough processing power to decode composite in a way to get this data, but maybe the new ARM-based Arduino devices will have sufficient power to do so.

    2. Composite would be very hard. VGA is probably an easier bet. I read an article that described a VGA-based board like this. Basically you need a sync separator to drive timing, and you need 3 ADC chips with 8-bit or more of parallel output, one for each color channel RGB. Then you need a micro that can use the timing information and sample the ADC values at the correct time for the edges and top of the screen. It’s going to be a fairly involving project, and you’ll still only end up with VGA input, which is obviously less ideal than HDMI or something else.

  2. How about taking the composite output of a TV, using a USB capture card, and feeding it into a Beagle Board, or Raspbery Pi board, rather than requiring the media to be played back from a PC.

  3. To avoid the high amp draw, I split power when I use these and try to string no more than 2 on the same power injection line. Since he did a top and bottom row, I would think sep power for both would have been fine though and easy enough to implement.

    1. That could be a solution, but since the total maximum power draw is 60mA/LED and I’m planning on having a total of 8 on the chain when I’m done, .5A at 8V is not very much power, so I did not see a need to split power lines and use 2 wall warts and potentially build 2 power regulators. If we were talking about pushing 3A to a chain of LEDs, I would consider doing something differently.

  4. Where are you guys finding these TVs with composite outputs? Yes that would be an ideal solution, but I’ve only seen TVs with composite inputs only. Maybe a cable box or DVD player would have a composite output that is always on regardless of whether HDMI is being used…not sure.

    1. I’ve not seen a TV with composite (or otherwise) output. If we didn’t need it to work with over-the-air signals being decoded by the internal tuner, it might be possible to tap the composite input and then post-process it.

      Most people are going to want to use HDMI inputs, not composite. If you need HDCP support (for HD playback from a PC or ???), it won’t be easy to “tap” that signal between the vidcard and TV.

      1. “Most people are going to want to use HDMI inputs” @Bryan Thompson

        No – think this through.

        First, most devices that offer an HTMI signal – your cable decoder box or Playstation 3 – it is only going to have ONE HDMI output.

        Give that HDMI output to something like this, and where are you going to get your TV signal from?

        Additionally, the LED matrix is sized at 3×2 pixels: all formats will be complete overkill as an input. There will be some people who do not understand that and want to use HDMI anyways, sure, but I would not champion for them. :)

  5. (for some reason I couldn’t hit reply)

    Yes, most devices only have one output, but HDMI spliters do exist(though some what expensive). The real issue is from what I understand there doesn’t exist any HDMI input cards that work in Linux.(if you know any please link them!)

    Main thing I want to hook up to boblight is my ps3, and the PS3 only allows one output choice. (either composite video, or HDMI)

    I don’t have any other HDMI devices, but I suspect it’s the same issue.

    The best solution I can think of is doing something like spliting the HDMI, then using HDFury to a PC input card.

    On another note, I’m wondering if anyone has written any code to use their ambilight systems to sync with music? I briefly looked around to see if there was any python modules one could use to capture and process sound coming from alsa but I had no luck.

  6. @jjrh

    HDMI splitter. Google on it – lots of people agree it’s the only way to get dual video (mirroring) from a PS3. You may also need to get something to convert HDMI to composite, for this HAD method.

    I would not go with a HDMI video capture solution (unless you want just video capture also). If you run your primary HTML source into a PC and then try to watch it realtime, it may or may not have sync issues. At least by splitting the signal, you avoid any possible latency issues. But that’s just me, I am a cranky old man.

    1. Thanks for the tip Scott. I had been looking for a way to split the HDMI signal from my PS3 and I was able to find a good solution. One issue I ran into however was that my HDMI cables were not good enough to handle the split so I had to swap them with lower gauge cables.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

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