Hacker News new | ask | show | jobs
by nkrisc 1645 days ago
Speaking from experience, download a program that can show what DDC commands your monitor supports before you bother. Mine supports many except… switching inputs (0x60 if I recall).

Documentation for most consumer monitors is pretty lacking in this regard, it seems to be a feature mostly on monitors targeted to the professional market.

3 comments

I was pretty shocked that most of the ddcutil & other similar programs on Linux weren't working for two of my monitors. The utils couldn't even detect the DDC display. But I told it what i2c bus to send to & what commands to issue, and it turns out my monitors had a pretty wide range of commands.

Reminds me of an i2c motor controller I bought years ago, based off some avr microcontroller. I spent an afternoon trying to understand how I'd hooked things up wrong, trying to understand why I couldn't read the control values. Turns the soft i2c interface just didn't implement reading values off the controller at all, but served ok if I treated it as a write-only device. Frustrating tricky devices. Sometimes they lie.

But yeah, also a >15% chance your monitor doesn't support switching inputs via DDC/CI. Would be so nice if review sites would cover this sort of thing. As it is, it's just a tech-secret, something invisible to the market, no push to include it, no points deducted for getting it wrong/bad. It leaves a lot of room for the situation to sit & not improve. Better reviewing would help move things along.

Sometimes it also the availability of commands depends on the cable/adapter used. If I connect my monitor directly via HDMI to my laptop I can send all the DDC commands I want, but when I use an USB-C -> DisplayPort cable ddcutil couldn't event detect the monitor. Sadly I must use this cable, because it's the only way I can get 4K@60FPS.
Probably that cable contains a set of EDID chips to fool your laptop and the monitor - and as EDID works over DDC, obviously no DDC commands will pass.
Is that USB-C or thunderbolt over USB-C? One is an entire graphics card and the other is just a muxer.
No idea really (that's the problem with usb-c stuff), it didn't say thunderbolt anywhere and it was cheap, so I suppose it's just usb-c.
If you want to hack, you should be able to connect to the i2c directly on the monitor end.
I connected a Raspberry Pi I keep under the desk as a server via HDMI and I could easily issue commands. Wanted to write a deamon that translates MQTT -> DDC, but never got to that and I removed the cable last time i needed it for something else.
I couldn’t even find any documentation for my monitor. ddcutil worked great for everything it did support, just not the one thing I actually cared about.
Before we get that deep down on monitor tech, I want review sites to tell me whether I can use the monitor/tablet/phone/laptop with sunglasses.
That’s more about whether your sunglasses are polarized.
I know! All sunglasses are polarized the same way. Gadgets seem to not be consistently designed to work with that polarization and review sites don't tell you. Phones are often diagonally polarized to work around this regardless of landscape/portrait viewing. But you don't swap orientation on a laptop.

My corporate Dell XPS 13 is completely useless outdoors because it's incompatible with sunglasses.

Do you know of any such programs? I've been wanting to experiment with DDC but like you said, monitor support is sporadic and tooling isn't well known
Another commenter mentioned ddcutil which had forgotten about but did use. In my case I used it in a MacBook (Computer #1) and used a different GUI program I can’t remember the name of on my v windows machine (Computer #2).
In my case (Samsung), only HDMI supports 0x60 to switch input. DisplayPort had DDC support for many things but strangely switching inputs does not work.