Close

Cursory research

A project log for EDIDone - Disable DisplayPort Hotplug

Tired of computers rearranging your screen when monitors turn off? I am.

torbjrn-lindholmTorbjörn Lindholm 04/12/2021 at 11:030 Comments

We're interested in those three (or 5) pins highlighted: GND, DP_PWR, and Hot Plug. (AUX CH+ and CH- is for DDC, and we want that for the EDID)

We could just forget about the DDC EDID, but this may cause some problems if the host device attempts to read the EDID when the display is turned off or the Hot Plug pin is used to initiate a specific function on AUX pins. Some devices also use DDC to control the parameters of the display, which means it gets very very tedious to manage all of that.

I think there are few options on this one:

  1. Completely ignore the DDC channel, only intercept Hot Plug signal (breaks USB-over-DP and possibly more features)
  2. Intercept both HPD and AUX pins, force the computer to think there's a display attached (easiest, but obviously breaks some features unless other data streams are passed through)
  3. Attempt to intercept only EDID and HPD, let the source and sink device data through (hardest)

Come to think of it, I might be (50% sure I am) making a mountain out of a molehill; Probably most computer monitors only use the DDC channel exclusively for EDID (so the OS remembers the monitor) and HPD pin, and doesn't utilize other functions, especially on the lower-end, consumer devices. Moreover, VESA specifications only say (paraphrasing) "AUX lines also can carry other data, such as USB" but doesn't elaborate further, which might signify that this specific function is not used. Now all I have to do is to find the way DP dummy plugs work (there's literally zero documentation on this, I've ordered one and I'm taking it to bits once it arrives), and combine it with a regular cable. If I make the trace as short as possible, I might be able to get away with just using regular "breakout module" type traces, instead of the impedance-matched circuit (I'll still need to make each wire the same length if I were to use the circuit board, but if I make the board a "parasite" I might be able to get away without it)

This project (https://hackaday.io/project/18634-edid-inserter) might come in handy also because in this case, it worked just fine (albeit it's HDMI, not DisplayPort)

Discussions