Does Apple support DDC/CI for 3rd party displays via Apple’s Thunderbolt to DVI adapter

displaythunderbolt

I had a Dell 21.5" monitor, which was previously connected to a Windows PC via its DVI port, which has no problem with DDC/CI which allowed me to control brightness and Contrast of the attached display via Windows.

My question is: through Apple's adapter, can I control a non-Apple display within System Preferences?

Best Answer

I wish it were possible too, but the short answer is no, you can't use System Preferences to control the brightness of an external display via DDC/CI.

It might be feasible to write a program that can adjust the brightness of your external display, but it's by no means a sure thing. Read on if you want the gory details…


After doing a fair bit of research, I'm pretty sure that Apple doesn't use DDC/CI to control the brightness of displays, either internal or external.

  1. The brightness of Apple Cinema Displays can only be adjusted when the USB interface is plugged in. With DDC/CI this would not be necessary.

  2. Apple provides (though apparently does not document) an interface to display brightness through their IOKit library, specifically in ioGraphicsLib:

    …but this interface does not seem to work reliably for external displays:

    ( I read up on this a few years ago and while I can't now find a supporting link, I seem to recall that display brightness (at least for internal displays) may be delegated to Apple's System Management Controller (SMC), which has responsibility for all power-related functions: fan speed, monitoring battery level, etc. I wouldn't be surprised if Apple had implemented their own I²C control interface between the SMC and the internal display - but this is pure speculation on my part. )

  3. It is possible to communicate with/control external displays using DDC/CI and custom software, but support for this has been broken more than once in the OS X era. DDC/CI support is also dependent on the graphics chipset and drivers used.

    From http://update.necdisplay.com/spectraview/readmemac_v1_1_12_1.html:

    As of Mac OS 10.8.0, support for monitor connunications[sic] via DDC/CI is not functioning on some Macs, including systems with DVI video outputs, and when using a miniDisplayPort to DVI cable or adapter. NEC is working with Apple to fix this issue in a future Mac OS update.

  4. DDC/CI works over I²C. Apple's IOKit library includes an I²C interface which should make it possible to write a display control program, but there are a few reports that this does not work reliably (specifically, values can be written to the monitor but not read, so you can't tell what the current brightness is):

So that's about the size of it, as far as I can tell.

If you are (or you know) an Objective-C developer, I did find a project on GitHub that you could have a look at tinkering with – however as mentioned above, even assuming the code is OK, it might not work for your combination of monitor, Mac and display drivers.