A FPGA based ambilight clone with analog input.

Similar projects worth following
This system is a stand-alone hardware with 6x7,5cm PCB size. The hardware is a ambilight-like clone. You can simply add it to your TV/computer monitor for example. Everything you need is to put a LED strip with WS2811 LEDs at the back of your TV and plug it into the AmbiController hardware. Next you have to plug in a HDMI or analog signal to it and connect a 5V power source. That's it... Its standalone and works without any other user interaction.

The hardware can be controlled and configured using USB. There are different Tools available to configure the behaviour of the AmbiController.

The bluetooth/HDMI version is outdated about a one or two years ago but the tools to manage it using a USB connection have been improved.
The support of HDMI has also been removed because of license costs.

A few months ago I started to add the project files to the following GitHub-repository. The repository does not contain the latest files.

At this point I use a LED strip with 120 LEDs (WS28xx). The AmbiController "generates" 80 channels which were evenly distributed to the 120 LED's. 

The 80 channels (the RGB colors to output) were generated by the AVR controller (using the YCbCr pixel data which is received from the FPGA).

The FPGA generates a 20x20 px image - in realtime - during reception of the original image.

The current hardware synthesis requires 21600 bit On-Chip-RAM (running with a 200 MHz PLL clock) and a FiFo with 4x 19 bit. The upper limit for the frames which could be processed per second is theoretically 1666.66666666667 FPS. Yes 1.6k frames per second. The XMega just runs with only 32MHz.

Have a look at my youtube videos there are even the oldest i uploaded:

  • 1 × FPGA - Altera Cyclone IV - EP4CE6E22C6N Used to decde ITU-R BT.656 data and image downsampling/buffering.
  • 1 × Atmel AVR XMega 192A3 Used to control the LED strip, bluetooth communication and I2C communication master.
  • 1 × Texas Instruments - TVP5146 Analog video processor - manages multiple video input signals and converts the analog data to ITU-R BT.656 encoded data.
  • 1 × WS2811 LED strip - A simple RGB LED strip 120 LED's are used at the moment.
  • 1 × USB - FT232RL Used for debugging and firmware update

View all 6 components

  • AmbiController v0.4.1 general information

    klaute02/22/2017 at 13:38 0 comments

    This is the system architecture overview of the current hardware.

    For the last two years I haven't done any work on the project but I'm using the hardware every day.

    I have a big list of new features and modifications I want to realize but there is no time to.

    I also want to clean up the source code and push it to GitHub but it's still in progress.

    At this point, I do not selling the hardware, you can get a PCB on tindie, but I can not promise a fast delivery.

  • v0.4 Hardware (PCB only) now available

    klaute06/26/2015 at 10:22 0 comments

    If you are interested in one of my AmbiController v0.4.1, you can now order it - have a look at my Tindie store.

  • New hardware - a lot of changes

    klaute06/13/2015 at 17:04 0 comments

    On my blog you can read what happened to this project in the last months.

    Here some Details... I have reduced the size of the PCB and also removed bluetooth and the HDMI processor. I have removed those parts because I haven't used the bluetooth connection so that it pays for itself.

    The HDMI processor is removed because I haven't the time to processor further development. And there are several HDMI2CVBS devices for less than 20€ available.

    Those converter are able to handle up to 1080p Video with HDCP support.

  • FPGA update with USB

    klaute02/24/2015 at 10:27 0 comments

    In the last months I habe eine a lot of work to improve the system update functionality.

    Now it is possible to update the FPGA design, which is stored in a small SPI flash, with a simple terminal tool (called fpga_flash) using USB.

    I also modified the Bluetooth communications protocol, so it is now possible to configure the channel and LED strip configuration.

    With those improvements the enduser is now able to do everything he needs to do if he wants to set up a new PCB or TV setup.

  • I2C-Problem with HDMI processor solved

    klaute07/04/2014 at 09:39 0 comments

    The Problem was that I habe forgot to add a wait cycle beyond the read/write Operation.

    So my software has never received the answer.

  • Color processing rewritten

    klaute04/30/2014 at 11:54 0 comments

    In recent days I have rewritten the algorithm to generate the colors for the LED strip.

    The problem of previous implementation was that it only supported a maximum of 120 LEDs with a fixed arrangement.

    With the new algorithm up to 320 LEDs are possible.

    The type of the WS2811 LED strips that I use, this corresponds to approximately 5.3 meters.

    This length would theoretically suffice for a screen with a diagonal of 72".

    For now on, the arrangement as well as the number of LEDs can be freely configured by the user (more or less).

  • The HDCP problem

    klaute04/17/2014 at 16:51 0 comments

    I'm use the ADV7611 to get HDMI work. The problem is that you can't buy a chip with HDCP keys, in case you haven't bought HDCP-license. You only can buy the "professional" version of the processor - with has no-HDCP support. The name of the part show up if it's a "professional" (or industrial/automotive version). The full name of my chip is "ADV7611BSWZ-P". The "P" at the end means for professional (as I know)...

  • Android-App update

    klaute04/14/2014 at 08:17 0 comments

    At the last week I also did some (very small) changes in the Bluetooth communication and updated the android app.

    The app is now able to view and change the following list of things:

    • enable/disable the color processing
    • reset the system
    • switch to the next video input (There are several input ports: 1xHDMI, 4xCVBS, 1xYPbPr, 1xRGB)
    • "performance configuration" because the AmbiConbtroller is much faster than my TV, so It has to be throttled
    • set the brightness
    • offset color output (RGB)
    • white balance (as a percentage RGB value)
    • output color if no signal is detected (RGB)

  • HDMI processor discard to do it's service

    klaute04/14/2014 at 07:52 0 comments

    Theese days I was fighting with my HDMI DSP. It's kind of weird because I can configure the device by sending data to It using I2C. But it's impossible for me to read any data.

    The result is that the HDMI functionality is still not fully tested or implemented yet, and It will not be fully implemented in future, if this processor continues to refuse the service.

View all 9 project logs

Enjoy this project?



Bluetouffe wrote 02/19/2015 at 11:37 point

Great project! I'm interested in making one, and I found those chips that aren't labelled with the P at the end. Do you  think they would work for HDCP content?

  Are you sure? yes | no

Bagoj wrote 12/07/2014 at 17:18 point
Wow man, if my googling skill would've been better... anyhow I just put up my version (check it under my projects) :) But I'm still like a good year behind you as I see. Amazing work putting this all together, I still have to clear a lot of uncertainties.
Originally I wanted to follow a similar approach with a cheap TQFP Spartan-6 and an AVR32 but then I decided that doing the interfacing between them plus the board size justifies moving to the ZYNQ.
As a quick question, did you do any kind of research on the patent Philips presumably has on Ambilight? Just to see clearly what you can and cannot do with such a clone.

  Are you sure? yes | no

Samuel Wittman wrote 04/08/2014 at 16:28 point
Tell us your secrets!

  Are you sure? yes | no

f0086 wrote 04/04/2014 at 18:21 point
It's just awesome! I've followed your project quite some time now and it is great to see how well crafted this whole project is. In comparison to your first prototype "the tower", the PCB looks perfect! Let me know if you start a Kickstarter project or a group buy, I will throw money at you in high speed :P

  Are you sure? yes | no

Eric Evenchick wrote 04/04/2014 at 15:44 point
Pretty lights, but I'd really like to see what's going on under the hood... Namely how you're dealing with HDMI.

  Are you sure? yes | no

Andreas Dahlberg wrote 04/04/2014 at 12:55 point
Looks really nice! It would be interesting to know more about how it works :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates