Arduino HDMI input to RGB LED output

I was wondering if anyone could point me in the right direction with a device concept I had in mind. Essentially, I'd like to use a small Arduino board with an HDMI plug that could receive information from my cable box or XBOX and break that information down into colors that could then be transferred into PWM output to illuminate the LEDs in correct correspondence with the color that would be displayed on the screen. I was figuring I could use a splitter from my Xbox into my LCD and the board simultaneously. Perhaps connect 12 RGB LEDs (with use of 2 shift registers) from Arduino board to the back of my wall-mounted LCD. A very similar idea to the "Ambilight" project, but I'd find doing it this way far more effective and could be applied virtually to anything with an HDMI output.

Any advice or even help coding would be greatly appreciated. Thanks in advance.

It's not exactly related to arduino but you could check DIY RGB AmbiLight | Overclock.net A user is building a HDMI processor for an ambilight clone using microcontrollers.

Working with HDMI will be difficult. Its a really high-speed data transfer method, and anti-piracy measures can be a PITA. Since you are essentially attempting to extend the colors from the edge of the screen onto a surface behind it, could you possibly use an array of sensors around the edge of the screen to detect color?

EDIT: Also, there are ways to get the xbox to output both HDMI and composite video. Either with direct hacking of the console, or with an external box (usually used for splitting the video signal so it can be recorded, some TVs have this built in). Composite would be a lot easier to work with.

Composite would be a lot easier to work with.

Component would be better, but neither is really Arduino territory.

HDCP shouldn't be an issue IMHO (should be checked though). You should receive a 480p signal if you can't negotiate encryption. 480p should be more than enough for an ambilight-ike solution.

My background is in programming so I would be very comfortable with a RGB matrix.... if we could recover a RGB signal from HDMI that would be optimal. A clean in the middle ambilight-like solution.

If you intend to work with HDMI, you should start by trying to understand the protocol and pin out of the cable

You should be able to derive RGB information from each TMDS group. However, Arduino IMHO is not suitable for the job since it probably is not fast enough to process HDMI on your time constraint... no lag.

You could try this instead:

http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10114&cs_id=1011410&p_id=8126&seq=1&format=2

it seems to even handle HDCP so you would end up handling the much simpler VGA signaling. I am interested on following your progress.

Or, HDMI to component if that's what you prefer

http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10114&cs_id=1011410&p_id=8125&seq=1&format=2

I'm fairly sure I've made a break through in my research (about time) and I think I may have figured it out.

At first I decided to take Wizdum's advice and look into a component solution. After hours of reading and reading my head was starting to spin with the terminology, analog conversion, encoders, decoders, video processors... I have read more data sheets today than I think I have ever read in a about a month, but it wasn't a complete waste of time.

Deshi,

I read all of the links you sent. VERY informational. I have a couple for you too, to see if you would confirm my "would-be" solution. Rather than paying close to $35 for a big ugly converter box, I was thinking about going with an HDMI Receiver chip for a few reasons:
1.) It can process the TMDS that Adruino would not be able to handle.
2.) The receiver has multiple output formats (giving us more options) for coding.
3.) Could be mounted via protoshield (I think) and is an internal component (no bulky box).
4.) Costs half the price when said and done.

Of course maybe only half the ports on this thing will actually get used, but that doesn't really matter. This is the product:

This is the datasheet:

My thinking is we can use one of these to convert the TMDS into a workable output, then input it into an AtMega328. We then tell the AtMega what pixels where (outter edge) we want it to sample colors from and based on those values designate a series of leds to match that color. Of course, this is way out of my league as a programmer, but the hardware end shouldn't be a problem for me. Let me know if this will work and if you might be able to help me with the coding. Thanks.

P.S. I like your idea about the led matrix. Were you thinking about (for lack of a better word) "unraveling" the led matrix so that it lined the edges behind the flatscreen?

I was mooning over a ADV7614 but I only found them on alibaba and aliexpress... if you are able to get them to work they should be a very nice thing as well. It already supports HDMI 1.4.

http://uk.alibaba.com/trading-search/products/ADV7614/--------------------Y--0.html
http://www.aliexpress.com/item/ADV7614-ADV7614BBCZ-ADV7614BBC-ADI/740714222.html
http://www.aliexpress.com/store/product/ADV7614-ADV7614BBCZ-ADV7614BBC-ADI/505739_740714222.html

As per the Arduino, you should get a faster one to try to keep up with the HDMI throughput. I got a quote "HDMI Rev 1.4 supports bandwidths up to 340 MHz or 3.4 GB for each color, 10.2 GB in total just like Rev 1.3." How fast a micro controller has to be to keep up? Is a DUE 84Mhz enough? We just need to analyze color at the edges.

We can't forget that we will probably need a HDMI splitter: Products no longer Available

You receive a connection, duplicate it: feed one to the TV and the other to the ambilight processor. Of course, if you are comfortable with ICs, we could just add an additional IC to either HDMI split (split inside the box) or HDMI transmit (reencode the decoded signal). That would make the solution even more compact.

I don't feel confident I could get these ICs to work. I have never tried doing that. :slight_smile: However, if you have the experience, I can help with coding.

On a side note, there have been some experiments with ADV7611 on the Raspberry Pi forums. They translated the HDMI output of the RPi to control a LCD panel. They have the schematics.

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=41&t=2288&start=25
http://www.raspberrypi.org/phpBB3/viewtopic.php?p=74207#p74207
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=64&t=9982

It could be helpful. Let me know if there is anything I can do to help. I'll try within my limitations (specially hardware wise).

Hello again, Deshi.

I'm pleased to inform you that I am very comfortable with IC's. I looked into the RaspPi as a possible solution and found myself optimistic and frustrated at the same time. Considering they have a library for HDMI output and an HDMI jack, you'd think perhaps they would design it as an input as well. I looked everywhere and it doesn't look like anyone has done it yet. I'm not experienced enough of a programmer to figure that out for myself yet, as I have no background in the Python IDE. I'm thinking if I can prototype a shield for the RaspPi in Eagle, perhaps you could start on a code? The shield concept is to have an HDMI IN (utilizing one of these "splitter chips") to X2 HDMI OUT. Check this puppy out:

http://www.ineltek.com/de/files/Explore/DVIHDCPTXRX/EP9122_UG_V04.pdf

This chip is perfect for the job. I could make the shield so the pins were set from one series of output pins of that IC to the RaspPi it's self. My only question is, would the RaspPi need the signal to be encoded or decoded? I've glazed over the datasheet for this particular IC and I think I saw there was a way to get either one of them, but I'm going to have to dive further into that anyway. Another problem is availability with this IC. I'm going to have to do a lot of looking around to see if I can get my hands on a couple of these without buying 1000+.

So, lets pretend for a second that I have the IC all figured out and mounted to RaspPi. I'm assuming I'd really only have to give you the pin information from the splitter IC to the RaspPi for you to start on a code (in the event that my board in eagle isn't complete). Let's talk LEDs.

I'm thinking if we are going to do this thing, I want to do it the right way. A lot of what you see out there is 3-4 led strips illuminating 3-4 different colors corresponding with the average pixel color on the designated edge and location of the screen. Also, it's not common practice (don't know why) to have leds on the bottom edge of the screen. I don't know about you, but my flat screen in mounted to the wall and I think I could benefit from have some leds on the bottom there. Also, I'd like to have just a little more variety in color. I understand we can't go all out because of limitations in the hardware, but I was thinking 8; 2 per edge. I'd do this by assigning 3 shift registers their own color (green, red, and blue). If I remember correctly, the RaspPi has an oscillator on board, so the leds shouldn't be an issue.

I want to collaborate on this project closer with you. Considering the project is taking a RaspberryPi turn, it would be best if we didn't continue this conversation here. My AIM s/n is Cursedonthe31st

I'm almost always logged into it. A way of corresponding with other computer nerds like myself. Hope to see you on. Thanks again.

Sorry for the lack of response... Real Life TM... why does work get in the way of my hobbies? :grin:

I figure I should buy some basic items if we are going the circuit route. I made a small list... what do you suggest I get?

I have a doubt regarding the Raspberry Pi. I am not sure the GPIO has the required bandwidth/latency for what we need. We should move all this to their forum... though, we might come back if we decide to work with microcontrollers :slight_smile:

Parts usually take 4 weeks to arrive so I have to be preemptive. On a side note, if I can order things to be delivered up to Friday, a friend can bring items to me from the US.

I want to buy all we need... however, money is an issue so I wish to buy only what we need. I'll buy an oscilloscope if it will help though.

My list follows, please add anything you think we will need... including ICs and microcontrollers. I have nothing here to work with electronics. This will be the beginning of my kit.

--- Power

--- HDMI

--- Prototyping

--- Debug ? Should I get any of these?

Have you reached anything yet? please share your progress or something! I needed something like that and the post & your replies were really helpful and to the point! I wanted to receive HDMI do some processing & then re-transmit it again! I hope you're still active though :smiley:

Thanks in advance

I too am interested in this project. Have there been any updates? Have you moved the discussion to a different forum?

Hello group... Someone has done this project recently?

ChangchungLeds:
Hello group... Someone has done this project recently?

Given the last post was 6 years ago and most of the original posters have canceled their membership ( they show up as Guest ) I would guess no.

Grumpy_Mike:
Given the last post was 6 years ago and most of the original posters have canceled their membership ( they show up as Guest ) I would guess no.

Wow... I think that I am the only interested in make this... I dont find any ambient light project using arduino online...

I dont find any ambient light project using arduino online.

That has to tell you something about the feasibility of what you are trying to do.