Thursday, March 1, 2012

No Signal After Turning TV Off and Back On

I built a Media PC out of some older parts I got from a friend.

It’s fantastic having a Media PC, and I love using it, but because it’s made of older parts, I come up against a problem every once in while.
 
The biggest problem I had on a regular basis was that when I turn off my Sony Bravia television and then turn it back on, the TV no longer has the HDMI signal from the PC (I get a blank screen that states simply “no signal”).
 
I searched for a long time for the answer before stumbling upon this solution.
 
User “th3dude” at Superuser.com states:
This problem seems to affect many people (as per search engines) with the most suspected/mentioned cause being insufficient drivers from ATI (NVIDIA apparently has updated its drivers for related issues successfully, while ATI tried that too, but some users still seem to have the same issue afterwards).
I tried updating my ATI Radeon HD 3200 video drivers to the latest version before coming across the solution below; it didn’t work.  I even installed AMD Catalyst when another thread suggested there’s a setting in there that will help (there isn’t, and I’ll likely be uninstalling AMD Catalyst as it’s just bloatware taking up space).
 
User Steffen Opel points out that the cause is EDID, or extended display identification data.  When you turn of your TV, the “handshake” between PC and TV is lost, thus when the TV is turned back on, the PC no longer has the information identifying the television and can’t communicate properly.
 
The solution?  There are evidently physical devices that can store the HDMI ID, but why spend money on a physical device (not to mention add that eyesore to your hardware setup) when Travis Hydzik has your back?  Travis created a three line program called hdmiOn.exe that goes something like this:
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // Turn off monitor SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2); // Turn on monitor SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) -1); return 0; }
It just turns the HDMI signal off and back on, thus your PC is able to reacquaint itself with your television.
 
Because you won’t be able to see your computer screen to mouse-click a shortcut or the actual program (to run hdmiOn.exe), you’ll need to assign the program to a hotkey.  Luckily god gave us AutoHotkey. (Don’t worry; it’s easy!)
 
Here are all the steps to fix your “no HDMI signal” problem:
 
1. Download hdmiOn.exe and place it in the root directory of your system drive (you can put it anywhere you want, but this location makes it easy to find and access).
 
2. Download and install AutoHotkey.
 
3. Create a hotkey script as follows.
  1. Right-click an empty spot on your desktop or in a folder of your choice.

  2. In the menu that appears, select New -> AutoHotkey Script. (Alternatively, select New -> Text Document.)
  3. Type a name for the file, ensuring that it ends in .ahk. For example: hdmiOn.ahk
  4. Right-click the file and choose “Edit Script.”
  5. On a new blank line, type the following:

    #space::run C:\hdmiOn.exe (obviously you’ll need to be sure the path matches the location where you installed hdmiOn.exe)
  6. Save and close the file.

  7. Double-click the file to launch it. A new icon appears in the taskbar notification area.

  8. Hold down the Windows key and press the space key.  Your screen will cycle, letting you know that the computer in fact ran hdmiOn.exe

  9. To have this script launch automatically when you start your computer, create a shortcut in the Start Menu's Startup folder like this:

    1. Find the script file, select it, and press “Control-C” (copy).

    2. Right-click the Start button (typically at the lower left corner of the screen) and choose "Explore All Users."  In Windows 7 you need to go to All Programs>"right-click" on the Startup folder and then select "Open All Users" so you're not just altering the Startup folder for the account you're currently logged into.

    3. Navigate to the “Startup” folder inside the “Programs” folder.
    4. From the menu bar, choose Edit -> Paste Shortcut (or right-click Paste, or Control-V).  The shortcut to the script should now be in the Startup folder and will automagically run each time you start your computer.

You’re golden.  Turn your TV on and off all you want, all you need to do is click your windows key and the spacebar at the same time and your PC screen will reappear on your television.


6 comments:

Anonymous said...

you are "GOD". Havent tried it yet but am sure it will work.

The Invisible said...

Figuring this one out seriously changed my life drastically. Hopefully it does the same for you!

Anonymous said...

I thought this would be my life saver. Woke up this morning and it didn't work. Had to restart htpc to get TV synced

The Invisible said...

If it didn't work, you may have set up your script incorrectly, or you may not have configured the autostart for the script program correctly (making hotkey run on startup). Also, if you have an on board AMD video card, the latest driver update addressed the issue (thus it's no longer an issue with the latest video drivers). Just update your video driver and the issue will be solved!

Unknown said...

The command is actually #space::run C:\hdmiOn.exe.

This took me a bit to figure out but I finally got it, lol.

The Invisible said...

Oops. Thanks, Dusty Countryman. Post updated with correct command. It should also be noted that simply updating the AMD drivers will now solve the problem as the issue has been addressed by the manufacturer.