Pages: [1]   Go Down
Author Topic: Arduino HDMI input to RGB LED output  (Read 7588 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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. 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It's not exactly related to arduino but you could check http://www.overclock.net/t/1347100/diy-rgb-ambilight A user is building a HDMI processor for an ambilight clone using microcontrollers.
Logged

Maine
Offline Offline
Sr. Member
****
Karma: 14
Posts: 417
Caution: Explosives in use.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 22, 2013, 12:49:03 am by wizdum » Logged

"Anyone who isn't confused really doesn't understand the situation."

Electronic props for Airsoft, paintball, and laser tag -> www.nightscapetech.com

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 302
Posts: 26249
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Composite would be a lot easier to work with.
Component would be better, but neither is really Arduino territory.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

- PINS
http://www.hdmi.org/installers/insidehdmicable.aspx
https://en.wikipedia.org/wiki/HDMI

- TMDS signaling
https://en.wikipedia.org/wiki/Transition-minimized_differential_signaling
http://www.ramelectronics.net/tmds.aspx

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
« Last Edit: January 28, 2013, 02:11:02 am by deshi » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:

http://www.digikey.com/product-search/en?mpart=ADV7611BSWZ-P&vendor=505

This is the datasheet:

http://datasheet.octopart.com/ADV7611BSWZ-P-RL-Analog-Devices-datasheet-10618233.pdf

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?
 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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://www.analog.com/en/audiovideo-products/analoghdmidvi-interfaces/adv7614/products/product.html
http://ez.analog.com/docs/DOC-1547

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: http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10113&cs_id=1011306&p_id=8204&seq=1&format=2

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. smiley 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).
« Last Edit: January 30, 2013, 08:39:23 pm by deshi » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.     
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry for the lack of response... Real Life TM... why does work get in the way of my hobbies?  smiley-mr-green

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 smiley

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
- ATX Bench Breakout Board (I have a Zalman 300W 80% ATX PSU lying around)
http://www.seeedstudio.com/depot/atx-breakout-board-bench-power-supply-p-1222.html?cPath=155

--- HDMI
- receiver IC with HDMI 1.3/1.4 support
http://www.findchips.com/avail?part=ADV7612

- transmitter IC with HDMI 1.3/1.4 support (to work as a passthrough to the TV)
http://www.findchips.com/avail?part=ADV7511

- HDMI connectors for breadboard
open to suggestions

- Breadboard adapter for the 100 pin TQFP 14 mm x 14 mm (I am sure we can get it cheaper .... hopefully)
http://www.proto-advantage.com/store/product_info.php?products_id=2200161

--- Prototyping
- breadboard
http://www.adafruit.com/products/239
http://www.adafruit.com/products/443
http://www.seeedstudio.com/depot/basic-bread-board-16555-cm-p-4.html?cPath=175_176

- breadboard wire male male
http://www.adafruit.com/products/153

- breadboard wire female female
http://www.adafruit.com/products/266

- breadboard wire female male
http://www.seeedstudio.com/depot/1-pin-femalemale-jumper-wire-125mm-50pcs-pack-p-1319.html

- fuse
https://www.sparkfun.com/products/11252

- misc parts
http://www.seeedstudio.com/depot/pin-headers-experimental-pack-p-615.html?cPath=156
http://www.seeedstudio.com/depot/20-in-1basic-components-mixed-pack-p-304.html?cPath=156

- soldering kit
(already working on it)

- Raspberry Pi
(just got it this weekend)

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

- USB FTDI TTL-232 cable
https://www.adafruit.com/products/70
https://www.sparkfun.com/products/9717

- Digital Osciloscope
http://www.seeedstudio.com/depot/digital-storage-oscilloscope-with-panels-p-514.html?cPath=174
http://www.seeedstudio.com/depot/dso-nano-v3-p-1358.html?cPath=174

- bus pirate
http://www.seeedstudio.com/depot/bus-pirate-v36-universal-serial-interface-p-609.html?cPath=174
http://www.seeedstudio.com/depot/bus-pirate-v4-p-740.html?cPath=174
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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-grin

Thanks in advance
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: