Or did you end up coding your own raw I2C implementation?
A lot of what was available seemed to be Arduino based with Arduino specific calls in the libraries. I'm using standard ESP32 libs/build system and am trying to keep this one generic.
I hope I’m not stepping over the line, but if it’s not already open source, would you be willing to send me a source code tarball? I’d love to prototype a DIY solution with it for the people having trouble with DDC on DisplayLink connected monitors.
My email is on my HN user page in the About section.
I maybe could have been clearer on this, but the DDC dongle I made isn't using this library, just hardcoded i2c calls for input switching. I started working on the library to eventually integrate with that dongle, but I'm still using the 'hacky' firmware on the dongles hooked to my monitors.
The HDMI dongle repo is still private, and I really want to do some cleanup before making it public. But, as for parts, I just used a breakout off amazon, and some cheap perfboard to make a hat containing the ESP32.
USB Switch Repo: https://github.com/byt3swap/mqtt_usb_switch
HDMI Breakout: https://www.amazon.com/gp/product/B075Q83W5F
Both of the monitors on my desk have ESP32 based HDMI dongles plugged into a spare HDMI port. I have 2 USB 3.0 switches that have been retrofitted with ESP32s as well, one for my keyboard and mouse, and one for a hub on my desk. A short press of the button on the switch on my desk will switch my keyboard/mouse between my desktop and a thunderbolt 4 dock, which will then trigger both of the monitors to switch the the inputs that are also connected to the dock. A long press of the button will do the same, but will also switch the secondary hub over (speakers, mic, webcam, and a few free ports for flash drives and the like).
I was looking for an alternative option to an expensive KVM that would do the job I needed. As a 'poor man's KVM' it works pretty well, though I do hope to flesh out the rest of DDC/CI to get some of these other features implemented as well.