Hey folks, I’m curious if anyone here knows about the VESA EDID specification and how one might go about creating an EDID emulator.
There are a few products out there which can help with the awful problem of computer displays losing sync when the display (or switcher such as in an audio receiver) is turned off or switched from one source to another. The most famous example is the Gefen HDMI Detective:
I am not in any way attempting to work around HDCP (copy protection) - simply to make it possible to fool the PC into thinking that a monitor/TV is still active, so the PC doesn’t lose its mind when the TV is turned off.
I have found info on the EDID (display identification) spec, but don’t really know what I’m reading here…
I’m wondering if it might be possible to use Arduino to capture and “play” EDID information in an HDMI connector to solve this problem in a DIY fashion. Even without captuer, there are a few tools out there to read EDID from an active monitor, I suppose one could just read these and then hardcode that into an active device to play it back.
That seems like an awfully complicated thing to do, luckily it seemed to be explained what the data is pretty well on wikipedia
you should probably try watching the data transmission with an oscilloscope and see the timing and how it talks, then maybe have the arduino interpret intercepted data
Once you know you can accuratly interpret the data it wont be hard to reverse it and replay the data with proper timing
sounds interesting good luck
Given the description of how to use the Gefen unit, it seems like the EDID is passively read by the source when it attempts an HDCP handshake with the display. I think the rest is just hardwire coupling between in and out hdmi pins. To use the HDMI Detective, you first plug it into your running monitor (or receiver) then hit the store button, then disconnect and plug into the source. After the initial reading, no power need be supplied to the unit. HDMI does not provide power, so somehow the HDMI source is able to read a bunch of display info whenever it needs to. It doesn't seem like there's an issue of timing, just of how to read what's available to read in that connector. It must be storing info in an eeprom or some other non volatile memory.