I bought a cheap HDMI switch; pressing the button cycles through Inputs 1, 2, and 3 to the same output. I like to keep my home laptop closed on my desk with my work laptop open on top of it, and my external monitor switching between the two. If I use both HDMI inputs on the monitor, my home laptop recognizes that it is still connected, even if I am viewing my work laptop, and does not go to sleep.

The problem, though, is that the HDMI switch is cheap. When I'm using the switch and switch away from my (closed) home laptop, the switch shuts off all signals to the laptop; the laptop subsequently recognizes that it has no longer has a display connected, and since it is closed it just goes to sleep. I now have a chicken-and-egg problem: I can't wake the computer via USB keyboard because it has no display attached, and the HDMI switch won't switch to that laptop because it is asleep and outputs no signal.

My question is: how does the laptop detect that HDMI is connected? If it is as simple as seeing +5 volts on the correct pin, I can simply tie all three +5 volt pins together so my laptop will still think it is plugged in and therefore not go to sleep. If it's a more complicated way (e.g. some kind of data transfer between laptop and monitor) then I might be out of luck.

migrated from electronics.stackexchange.com Feb 2 '16 at 0:13

This question came from our site for electronics and electrical engineering professionals, students, and enthusiasts.

  • 1
    hdmi.org/installers/insidehdmicable.aspx suggests 3 possible mechanisms - a dedicated "hot plug" pin, the CEC system (although I think that's in the other direction), and DDC for monitor identification (size etc). – pjc50 Feb 1 '16 at 22:35
  • 1
    Couldn't you just detect your home network and change your power profile on your laptop? – laptop2d Feb 1 '16 at 22:47
  • @laptop2d I could, but I'd prefer a solution that's as device-independent as possible. I don't mind spending the extra time (I have soldering supplies, etc.) if it means I can create something that "just works". – Ryan Kennedy Feb 2 '16 at 0:08

Most pins in HDMI are twisted pairs with shielding. A few are single pins, however. The CEC is only used by some devices and allows multiple HDMI devices to talk to each other and send commands. The hot plug pin is always used and detects a plug unplug event to reinitialize the HDMI driver.

Fun aside, the Raspberry Pi needs to be restarted to reinitialize the driver. If you plug in after start you will not get transmission.

Then there's some pins for power and encrytption. The DDC is device info and HDCP encryption.

To answer your question, it is the hot plug, but you can not just tie it high because then your drivers will only reinitialize on restart. This is bad if there's a hang somewhere. Generally if it is staying high or low it means that something on the line is holding it. There may be another conflicting device, improper isolation, or a bad pull up, pull down. I would duggest trying to go through an HDMI hub and see if that fixes it. It will likely deal with the line pulling better.

  • Excellent, thank you! I'll research HDMI hot plug and see if I can handle it with a simple solution. – Ryan Kennedy Feb 2 '16 at 0:10

What you might be looking for is EDID, which is extended display identification data. EDID is a protocol designed to query a display monitor and return information to the hardware that is driving the display. Information includes timings supported by the display, display size, etc...

EDID is typically hot triggered with a +5V from the HDMI cable, although not all manufacturers have robust hardware (at some point, hot plugging in the HDMI cable will not wake up your monitor.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.