Arduino to switch HDMI on/off ???

Hi all

Looking for a little expertise from the forum gurus...

I would like to use an Arduino UNO to control whether an HDMI signal can be sent over a cable. The UNO would sit between the HMDI source (PS3) and receiver (TV)... and depending on certain conditions will either allow the HMDI signal to pass through or not.

I know that HMDI cable contain a number of channels for various things over 19 separate wires. Is there one of these that I could isolate that would have the desired result ? I was antipcating some surgery to the cable.

Any ideas around a possible circuit that could be used to acheive this (i.e. UNO PIN high allows pass through, UNO PIN low blocks signal) ?

Thanks in advance for your help.

If you only want the Uno to control the connection, you don't need to feed any of the wires from the HDMI cable into the Arduino. Instead, you'd have the Uno control some appropraitely rated transistors (one for each wire) setup as simple on/off switches.

Edit: If you aren't that familiar with electronics this is the type of circuit I'm refering to, again you'd need one transistor per wire in the HDMI cable. Depending upon the exact type of transistor you use, it might be possible to use only one pin from the Arduino to control all the transistors. The only limiting factor would be the total current draw on that pin, but if the current drawn per transistor is less than 1.5 mA then it should be OK.

Thanks for the reply.

Do you think I could get away with doing this to just some of the wires within the cable? I presume that some of them are more critical than others for sending the video signal? Any ideas on the minimum number I would need to block to effectively turn off the signal?

Thanks.

red_car:
Thanks for the reply.

Do you think I could get away with doing this to just some of the wires within the cable? I presume that some of them are more critical than others for sending the video signal? Any ideas on the minimum number I would need to block to effectively turn off the signal?

Thanks.

I don't know for sure, it would depend the purpose of each wire and I'm not familiar with any of the details for the HDMI standards and specifications. My advice is plan to use a MOSFET for each contact. Keep in mind though, there are ways to tie them all together so they could all be switched at the same time and probably with just one digital pin.

Also have you looked for HDMI connectors? You'll need two and buying them, even at low volume prices, is going to be significantly less expensive than sacrificing a store bought cable. If you can find ready-made break-out boards (especially populated ones) that will make things easier still.

One alternative is to use an HDMI switcher. You can get these cables for $5-10 from Hong Kong merchants. Here is the cable sold by an Amazon reseller: http://www.amazon.com/SANOXY-Switch-Switcher-Blu-Ray-HD-DVD/dp/B0040G5KY6/ref=sr_1_2?ie=UTF8&qid=1345843556&sr=8-2&keywords=hdmi+switch+boxes

I would imagine if you open the box, it should be fairly easy to have the arduino control the switcher by simulating the button press with an opto-isolator.

Then you can switch from the live cable to the 2 other cable slots. If for some reason you don't want to open (and possibly destroy) a $5 box, you could always use a servo to press the button (but then this forum is named device hacking).

In terms of HDMI breakout cables, I did a google search, and the first link wanted $60 for the breakout box, and it only seems to give you the DDC information (http://www.totalphase.com/products/video_hdmi/). However, given the Arduino is generally too slow with limited memory to deal with normal video, it would probably be like drinking from a firehose to keep up with hdmi.

MichaelMeissner:
One alternative is to use an HDMI switcher. You can get these cables for $5-10 from Hong Kong merchants. Here is the cable sold by an Amazon reseller: http://www.amazon.com/SANOXY-Switch-Switcher-Blu-Ray-HD-DVD/dp/B0040G5KY6/ref=sr_1_2?ie=UTF8&qid=1345843556&sr=8-2&keywords=hdmi+switch+boxes

I would imagine if you open the box, it should be fairly easy to have the arduino control the switcher by simulating the button press with an opto-isolator.

That's a very good suggestion! It should be cheaper and easier to wire into a switching hub like that one. The schematics probably aren't easily available, but it should be fairly simple to identify the trace connected to the switch.

However, I would be sure to measue the voltage outputed by the switch before connecting it to an Arduino. It appears to not have any dedicated power supply. So the voltage levels are likely whatever the manufacturer considered most convenient to get from the HDMI cables, and that could be something either higher or lower than the 5 VDC from an Arduino pin. At worst that means a bit additional level shifting circuitry, but it's something that should be detemined before connecting the Arduino.

Far-seeker:
However, I would be sure to measue the voltage outputed by the switch before connecting it to an Arduino. It appears to not have any dedicated power supply. So the voltage levels are likely whatever the manufacturer considered most convenient to get from the HDMI cables, and that could be something either higher or lower than the 5 VDC from an Arduino pin. At worst that means a bit additional level shifting circuitry, but it's something that should be detemined before connecting the Arduino.

That's the point of using an opto-isolator. That way there is no electrical connection between the arduino and hdmi switch (opto-isolator is a chip with a LED and a photo-sensor inside, the arduino turns on the LED, and then the photo-sensor closes the circuit on the other side when it senses light). If it is high voltage, or A/C, you probably want to use a relay instead of opto-isolator.

Otherwise if you connect an Arduino directly to the switch, you need to make sure the grounds are connected, and the voltages are safe, etc.

Thanks for the replies guys.

Yep..definitely an opto isolator to trigger the circuit.

One thing I did notice about these switches was that they not only switch based on the button, but also if there is only one live input. Presumably they sense the signal somehow. Unfortunately this isn't desirable in my case... As this would bypass my Arduino logic.

I might still get one and crack it open... Could still be an option if I can disable the auto switching function.

Re the transistor option... I don't quite understand how this would work. I can see that it provides a switch but don't quite see how I could use this to pass the signal down the cable.

Thanks

Another option I thought of was using a digital switch.. such as this ... http://www.ebay.com/itm/400312722729?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_1950wt_1095

I could use it to interrupt the data transmission in the cable (seems there are 3 separate data channels in HDMI).

Anyone have experience with this type of digital switch ? I was looking for an 8 bit one but there don't seem to be any around in the DIP package style.

MichaelMeissner:
That's the point of using an opto-isolator. That way there is no electrical connection between the arduino and hdmi switch (opto-isolator is a chip with a LED and a photo-sensor inside, the arduino turns on the LED, and then the photo-sensor closes the circuit on the other side when it senses light). If it is high voltage, or A/C, you probably want to use a relay instead of opto-isolator.

Otherwise if you connect an Arduino directly to the switch, you need to make sure the grounds are connected, and the voltages are safe, etc.

Sorry, I didn't notice the part about the opto-isolator in your initial reply.:blush: Even so, while the optio-isolator will protect the Arduino there's still no guarentee that 0 to 5 VDC is the proper voltage level for the logic inside the swticher box. It could easily be higher or lower, so one would want to know this ahead of time so they could setup the opto-isolator circuit on the "recieving side" correctly.

red_car:
One thing I did notice about these switches was that they not only switch based on the button, but also if there is only one live input. Presumably they sense the signal somehow. Unfortunately this isn't desirable in my case... As this would bypass my Arduino logic.

I might still get one and crack it open... Could still be an option if I can disable the auto switching function.

This isn't an insurmountable problem, if you need to bypass the automatic switching logic most likely it could be done simply by cutting the trace(s). There are also ways to incorporate it into your Arduino control circuit.

red_car:
Re the transistor option... I don't quite understand how this would work. I can see that it provides a switch but don't quite see how I could use this to pass the signal down the cable.

Basically it's the same as putting physical toggle switches, and two attached HDMI connectors, between two HDMI cables. If the transistor is off, open circuit on all the wires in the cables. If the transistor is on, it's a conduction path much like a trace or wire. The only difference is you are using signals from Arduino to control the transistors instead of physically flipping all the those switches.

red_car:
Another option I thought of was using a digital switch.. such as this ... http://www.ebay.com/itm/400312722729?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_1950wt_1095

That would function similarly to using individual MOSFET transistors. The CMOS implementation allows it to work with some analog signals a single MOSFET couldn't, but that's not important when you are just using digital logic. The main difference would be that less space to implement your logic, because there are four switches packaged together (versus using separately packaged transistors and resistors, although there are ICs that are just multiple FETs or opto-isolators together and resistor arrays and networks).

red_car:
I could use it to interrupt the data transmission in the cable (seems there are 3 separate data channels in HDMI).

IMHO, I would just switch all the contacts/pins on then HDMI cable at the same time, even if it means a number of opto-isolator or transistors need to be used. If you just have the data channels turned off the other channels that can cause strange behavior. For example, the clock used by the data channels will be separate, so if you only switch off the data channels the clock signal will still continue to the cable's ultimate destination. If you have an extra clock signal coming into your TV (or whatever) it shouldn't cause permentant damage, but it may result in your TV displaying an error message or acting weird.

Thanks for all the ideas.. off to try some out. Will let you know how I get on.

This is a better explanation of the HDMI cable

http://www.hdmi.org/installers/insidehdmicable.aspx

april:
This is a better explanation of the HDMI cable

http://www.hdmi.org/installers/insidehdmicable.aspx

Thank you, having a clear pin-out should prove helpful. Especially because it indicates a nominal 5 VDC can be supplied through the cable.

The 5V DC supplied trough the cable is what tells the auto-switch to switch over to the appliance last turned on.
Regarding turning off HDMI, you just need to cut a single wire in the video link and that disables the HDMI link alltogether.

Remember that HDMI are very highspeed signals, so using an analog switch IC will add too much capacitance, so that won't work.

Use a small DIL Reed-relay to cut one of the data wires. Keep all wiring very short to avoid problems!

// Per.