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.
I wonder if the chips on these dummy plugs are powerful enough to hack in HDCP support though.
It terminates as an HDCP 2.0 endpoint and converts to HDCP 1.4. You’d still need an HDCP 1.4 sink to make it work though.
I found the same device in generic packaging on AliExpress, but haven't had the chance to order that version, yet.
There are lots of professional SDI converters and such, but they are either $3k+ or "call for price".
I don't agree with this section:
> The HDCP converter simply announces itself as a final video endpoint… yet still repeats the content to its output port. Without a very expensive HDMI protocol analyzer, we can’t check if the source is tagging the content as type 0 or type 1, but there is no reason now to think that it’s not type 1.
There's no magic in the HDMI protocol that says type 1 vs type 0. Its just another HDCP message over DDC, but it is only sent to repeaters. In this case, since the HDCP Repeater is lying about not being a repeater, it isn't getting sent the StreamID Type information.
I used a similar solution once in an AV context and it has been running reliably for years now.
If you want something less hacky Blackmagic has the Atem Mini, a good HDMI switcher that can also store multiple stills and can be switched via ethernet (among other things)
This and an RP2040 to generate the second signal would probably work just fine; see https://learn.adafruit.com/picodvi-arduino-library-video-out... for an example of how to stretch the rp2040 to do HDMI
I agree that DisplayPort was better for monitors, but HDMI has basically become DisplayPort so these days they're more or less two sides of the same coin. Both use data packets over fixed rate links now.
The situation is so bad Intel has pretty much skipped native HDMI ports in recent chipset graphics to focus on DP only (motherboards can still install off the shelf DP->HDMI converters), while on AMD the newer HDMI features won't be supported at all on Linux.
No, I'm referring to how HDMI 2.1 changed basically everything but the connector to become a multi-lane packet based protocol like DisplayPort instead of being a direct descendant of DVI, which itself was basically digital VGA.
I realize the licensing situation is a disaster.
Upside? There is no, and never was, an upside. Not for the user, and not for anyone else. Video DRM literally never worked.
Nonetheless, it exists, and it makes things worse for everyone by existing.
https://www.decimator.com/Products/MiniConverters/12G-CROSS/...
>If you attempt these commands on a PC, it’s possible that you could accidentally flash hardware that isn’t an EDID, like a RAM module’s SPD EEPROM.
> At one point, Linus had implemented device files in /dev, and wanted to dial up the university computer and debug his terminal emulation code again. So he starts his terminal emulator program and tells it to use /dev/hda. That should have been /dev/ttyS1. Oops. Now his master boot record started with "ATDT" and the university modem pool phone number. I think he implemented permission checking the following day.
That would be a strange oversight by the hardware developers.
Typically they would buy pre-programmed EPPROMs and then place it on to a board where the write enable pin is never pulled high.
It would be strange to put an EEPROM into a product like a monitor and leave it writable, but I’ve seen stranger things on shipping hardware.
Tools like ddcutil aren't very well-known, but they can be quite useful if you want to do something like DIYing a KVM switch by just having the PC tell the monitor to switch to a different input!
There are two main issues here. The first is that the standard EDID EEPROM is very limited in size, and a lot of monitors need more space. VESA solved this by adding a dummy "segment selector" register, located on a separate I2C address. This makes it incompatible with off-the-shelf I2C EEPROM chips, so you'd need some kind of custom EDID-specific EEPROM chip anyways.
The second issue is that most monitors have multiple input ports. A regular EEPROM chip can only be hooked up to a single port (I2C itself supports it, but the spec forbids it), so you'd need one EEPROM chip per port. That gets expensive quite quickly.
If you're already implementing DDC/CI via some kind of microcontroller, why not have it deal with EDID as well? Heck, you could even give the microcontroller a separate connection to an EEPROM to make it easier to program! The EDID part is absolutely trivial, I bet you could implement it in two dozen instructions without even trying very hard. No reason to make it even harder for yourself by keeping it separate.
I have another broken monitor's mainboard where the VGA and DVI's EDID pins go through 100 ohm resistors to {unpopulated 8-pin footprints, as well as the main chip}. I think this means the design considered saving EDID on dedicated EEPROM chips, but ended up integrating the data on the display receiver instead.
I made a tiny contribution to the ddcutil-db database when I did exactly that. My monitor wasn't supported initially, but it wasn't hard to use the utils and templates to poke around and find the correct addresses for basic settings and input switching.
It was a nice afternoon's work to get it all working.
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.
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 :)
- AW EDID Editor as you mentioned.
- CRU is a Windows-only tool, and will modify the EDID files it dumps from monitors (removing serial/etc. descriptors to make room for detailed resolutions), but will work. It does not run under Wine.
- 010 Hex Editor has an EDID template.
- On Linux you can install wxEDID from Flatpak (IIRC the distribution packages would crash in WxWidgets). I don't think it can create sections though.
- v4l-utils has edid-decode (which can be used as a git diff textconv tool), though this does not help you encode EDID files.
I found that HDMI EDIDs have a CEA extension block while DP EDIDs have a DisplayID extension block. I haven't done any work in multi-page EDIDs with over 256 bytes (and don't know what EEPROM chip you'd use to emulate them, nor the protocol or APIs to read and write them).
https://www1.kramerav.com/au/product/edid%20designer
Both are free but not free to distribute. The Extron one may require you to be working on projects / orgs using their hardware.
Some years ago it's kind a worked for me on Linux with Xorg and open source drivers and Windows with Nvidia, but when it comes to MacOS or Windows+AMD or Intel GPU it simply doesn't work that well.
Basically use the dummy plug screen for PowerPoint’s output and the laptop screen for the presenter notes. Then share the dummy plug’s screen.
Might not be the best answer for the citizens of Hacker News but so, so easy for teachers and salespeople.
It lets a macbook operate with the lid closed.
As the article notes, the rpi has an i2c controller wired up to those hdmi port pins, because it needs to be able to read the EDID over the DDC.
zdw•7mo ago
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.
dougg3•7mo ago
Another awesome thing is it can force the monitor to always be detected. One of my monitors virtually unplugs itself when I shut it off, which causes a bunch of issues for me, and the passthrough completely solved it. The one I use is the HD-EWB by THWT.
gadiyar•7mo ago
dougg3•7mo ago
I guess I should reword the way I said something in the previous message: when I said "it can force the monitor to always be detected", I really should have said "it forces the monitor to always be detected".