USB Connected Monitors

ddcutil has support for monitors that implement the Monitor Control Command Set (MCCS) over USB. The support is considered initial in that it has only been tested with only a few models of USB connected monitors.

Note that some monitors use USB to communicate, but do not follow the specification for MCCS over USB. For example, the HP Dreamcolor 2480zx uses a proprietary, undocumented protocol.

Limitations:
- The MCCS over USB specification has no method for querying a capabilities string. The ddcutil capabilities command synthesizes a response based on the feature codes it detects.
- Table type features are completely unsupported.
- Apple Thunderbolt displays might work, but are not supported. Thunderbolt integrates video, USB, and ethernet into a single cable, and appears to require a Thunderbolt capable capable computer, as I can find no adapters that split out all the signals. Other than actual Macs, these are uncommon.

On the other hand, MCCS over USB has advantages:
- Unlike I2C, the protocol is inherently reliable. No retry logic is needed.
- Unlike I2C, USB communication does not require waits between system calls. It is therefore faster.

Thanks to Ojdrej Zary, whose usbmonctl was used as the basis for USB support in ddcutil.

Command ddcutil chkusbmon

Command ddcutil chkusbmon helps to detect USB HID compliant monitors. It is intended for use in udev rules.

ddcutil chkusbmon ***hiddev device name***

e.g.

ddcutil chkusbmon /dev/usb/hiddev3 

Returns 0 if a device represents a USB attached monitor, non-zero if not. See Device Permissions

Command option --usb

USB connected monitors can be specified by their USB bus number and device number. The numbers are separated by either a period or colon.

For example:

ddcutil --usb 3.5 ...

selects the monitor at USB bus number 3, device number 5.

To see a list of all USB devices:

lsusb