Modifying an HDMI dummy plug's EDID using a Raspberry Pi

downtowndougbrown.com

301 points by zdw 16 days ago


aappleby - 16 days ago

Minor note for those wanting to try this at home - these cheap dummy plugs only have a 256 byte eeprom, which is not enough for storing the various extended EDID blocks needed to specify high-refresh high-resolution configs. If you just want 1080p60 they're fine, but you won't be able to simulate a 4k240 monitor with them.

Also, some of them have the write-protect line pulled high (or low? don't remember) and you'll need a bit of surgery to actually write to them.

avidiax - 16 days ago

One caveat of these dummy plugs is that they don't do HDCP. They handle the typical use case of forcing a specific resolution output for headless machines rather well, but fail for the use case that you need to run something that expects HDCP.

This seems a good place to ask: does anyone know of a good solution like this HDMI dummy plug, but that negotiates HDCP? I need to test video streaming apps that require HDCP to play at full resolution, but it is inconvenient to have a full TV for every test.

The one solution I've found is an HDMI multiviewer, which seems to negotiate HDCP to each port individually.

slipheen - 16 days ago

Relatedly, is there a good archive of EDID binaries somewhere, or a better program to make them?

I have an nice programmable EDID emulator plug, and I can clone my monitor and others, but there's some times there's a specific resolution or feature I want to set and I don't have a way to. (Like 8K with DSC, etc)

I'm aware of https://github.com/bsdhw/EDID but it's rather limited in terms of modern monitors.

I've also written by own using https://www.analogway.com/products/aw-edid-editor but getting all the nuances of various modes, and setting preference order, etc, is rather difficult, at least for me :)

zdw - 16 days ago

You can also buy these with a passthrough, which is useful for older systems that balk at higher resolution monitors.

I have a 2011 era AMD FX8350 system where the onboard 880G northbridge+video chipset doesn't output video over HDMI correctly with a 4k display. Hooking up one of these inline to tell it to send a 1080p image works great, which the monitor does a 2x integer upscale to 4k.

mrheosuper - 15 days ago

hdmi dummy plug is a hardware solution to solve a software problem that should not exist in first place at all.

ashirviskas - 16 days ago

Why are dummy plugs a thing? What can you do with them that you cannot do in software? (asking as a person who had no issues with having 18 virtual displays and no dummies).

dishsoap - 16 days ago

Fun tip: the same process works to modify the edid stored on a typical monitor or laptop screen. Sometimes you can even change various settings on the tcon by writing to other i2c addresses. You also don't need a raspberry pi, any computer works.

m000 - 15 days ago

I'm confused. I was expecting to see th plug hooked to the GPIO i2c pins, but just plugging it to the RPi appears to be enough. So, does HDMI directly expose an i2c interface?

01100011 - 16 days ago

Does anyone know of a cheap DisplayPort EDID emulator to fix issues with a KVM and linux? Last time I checked, they were much more expensive than HDMI, to the point where it would be better to buy a new KVM.

1vuio0pswjnm7 - 15 days ago

Can dummy plugs be used to change device fingerprinting

awaymazdacx5 - 16 days ago

hex dump for the USB ibus2 plug extract is concatenated to EDID

cdg007 - 15 days ago

been eyeing this kind of solution

Simon_O_Rourke - 15 days ago

I don't get it - why do you need to spoof having a monitor connected for a Raspberry Pi? Surely they boot up fine regardless?