02 February 2022
ddcui release 0.2.1 better handles DDC communication failures resulting from conflict with other programs. Like dddcutil 1.2.2, ddcui command line option -force-slave-address allows ddcui to override the other program's claim to the display.
For a detailed description of ddcui changes and bug fixes in this release, see ddcui Release Notes.
28 January 2022
ddcutil release 1.2.2 contains one set of changes of interest to general users:
- Handling of DDC communication failures due to conflict with other programs is improved. In particular, conflict occurs when device driver ddcci is loaded. Among the changes:
- If ddcutil detect fails to communicate with a monitor and Linux errno EBUSY is reported, it reports the monitor as "Busy" instead of "Invalid" and suggests the use of option --force-slave-address.
- Messages regarding EBUSY errors are always written to the system log.
- API functions ddca_enable_force_slave_address() and ddca_is_force_slave_address_enabled() have been added.
For a detailed description of ddcutil changes and bug fixes, see Release Notes.
02 December 2021
ddcutil release 1.2.1 contains one change of interest to general users:
- Option --settings. Details of current settings are no longer reported by every command invocation when option --verbose is specified. Use option --settings to control option reporting.
For a detailed description of changes and bug fixes, see Release Notes.
25 November 2021
ddcui release 0.2.0 is is now available on Github, and also from this site as a tarball. While not feature complete, this version should be useful to and usable by most people. For details, see ddcui Release Notes.
24 November 2021
05 October 2021
ddcutil release 1.2.0 contains the following changes of general interest:
- Command ddcutil --verbose now reports the raw EDID.
- Command ddcutil environment --verbose has been enhanced, primarily for remote /sys analysis.
- Major events are written to the system log.
Most visible changes apply to the shared library. In particular:
- The shared library name is now libddcutil.so.4.1.0.
- Improved tracing.
For a complete list of changes and bug fixes, see Release Notes.
Prior announcements can be found here.
05 April 2021
ddcutil release 1.1.0 contains the following changes of general interest:
- Configuration file ddcutilrc, located on the XDG config path (normally $HOME/.config/ddcutil/ddcutilrc) is processed by both ddcutil and libddcutil.
- Monitor capabilities strings are cached to improve performance of the capabilities command.
- Partial workarounds for problems in DRM video drivers (e.g. i915, AMDGPU) when monitors are connected to a docking station. The monitor may not be detected (because no EDID is reported), or the monitor may appear as two different /dev/i2c devices.
- When probing /dev/i2c devices for monitors, ddcutil could put AMD Navi2 devices (e.g. RX6000 series) into an inconsistent state. This is because the driver exposes an I2C device for the SMU. Display detection is modified to avoid probing these devices.
The interface exposed by shared library libddcutil is unchanged. Its SONAME remains "libddcutil.so.4", and the package name is libddcutil4.
For a complete list of ddcutil changes and bug fixes, see Release Notes.
Prior announcements can be found here.
08 February 2021
ddcutil release 1.0.1 addresses the situation wherein a display connected through a docking station is not detected when the i915 video driver is used. (I2C support for docking station connected displays, and more generally displays using DisplayPort Multi Stream Transport. was recently implemented for i915 and amdgpu drivers in Kernel 5.10. Initial ddcutil code for this situation did not adequately work around problems in the driver implementation.
03 February 2021
ddcutil release 1.0.0 marks a milestone. It is time to regard ddcutil as having reached production status. There of course remain features to add, and the codebase warrants cleanup, but the feature set has been stable for some time. Bug reports are infrequent, and reflect unusual situations.
There are two enhancements of general interest:
- User Defined Features, which have existed for some time, are now formally available.
- Option --mccs now applies to getvcp, setvcp, and dumpvcp as well as vcpinfo.
The remaining changes in this release, while extensive, are likely of little interest to most users. The most notable changes are:
- ddcutil no longer by default checks for monitors exposing the Virtual Control Panel over USB. Such monitors have proven rare, and messages about lack of permission to read /dev/usb/hiddev devices can be be needless confusing. Command option --enable-usb will activate handling of USB connected monitors.
- The detect commands provides additional information about the monitors found.
- The capabilities command better handles malformed capabilities strings.
- getvcp has special handling for features x62 (audio volume), x87 (audio treble), x91 (audio bass), and x93 (audio balance). In MCCS 2.2 and 3.0, these otherwise continuous VCP features have special reserved values.
- Parsing setvcp command arguments was incorrect when multiple features are changed on a single setvcp command.
The shared library API has minor, but not upwardly compatible, changes. The current library SONAME is libddcutil.so.4, and the library package is libddcutil4.
Prior announcements can be found here.
09 July 2020
Branch master on github was out of sync with the reference tarball and prebuilt packages on launchpad, COPR, and the openSUSE Build Service. The missing changes have been pushed to the master branch. If you have already built release 0.9.9 from the github master branch, pull the changes and rebuild.
28 June 2020
ddcui release 0.1.2 is an emergency bug fix release.
- Combo boxes for simple Non-Continous features were empty instead of showing the currently selected value and list of allowed values.
24 June 2020
ddcutil release 0.9.9 contains two changes of general interest:
- A new command line option, --less-sleep eliminates many of the delays between the time that ddcutil receives a DDC response from a display and sends the next request, improving performance.
- Support for AMD's old proprietary fglrx driver has been dropped.
The libddcutil shared libray has non-upwardly compatible changes. For details, see Shared Library Changes for Release 0.9.9.
ddcui release 0.1.1 adds additional features and has numerous changes in the "fit and finish" category. In particular:
- Command line options for starting ddcui, corresponding to settings in the Option dialogs, and (if multiple monitors) the initlal monitor selected.
- The Feature Selection Dialog, along with command line option --custom-feature-set, enable the user to specify the VCP features to be shown.
- Better handling of error conditions
- Better Help text
ddcui release 0.1.1 requires ddcutil 0.9.9.
For general information about the graphical user interface, see ddcui.
Lastly, this website has been extensively revised to reflect the current state of ddcutil and ddcui.
Note: Prebuilt packages are now available for ddcutil 0.9.9.
06 December 2019
ddcutil release 0.9.8 contains two changes of general interest:
- A new command line option, --sleep-multiplier, adjusts the time ddcutil pauses between sending a request to the monitor and reading from the monitor.
- A fix for the bug that certain mice would lock up during display detection.
The libddcutil shared library API has some minor extensions. For details, see Library Changes for Release 0.9.8.
Graphical user interface ddcui has reached beta status. Release 0.1.0 contains numermous improvements in the handling of particular VCP feature codes and the user interface generally. Prebuilt packages now exist for many platforms. See ddcui Overview.
08 October 2019
ddcui alpha release 0.0.6 is now available on github. It requires the version of libddcutil provided by ddcutil release 0.9.7.
04 September 2019
ddcutil release 0.9.7 fixes the cause of a segfault during display detection if a monitor appearing to support the USB Monitor Control Class Specification, i.e. one that uses USB to communicate monitor settings, is connected to the system. If also contains some minor code cleanup.
25 August 2019
ddcutil release 0.9.6 contains minor enhancements, bug fixes, and API changes.
SONAME versioning is now enabled for libddcutil.
24 February 2019
ddcutil release 0.9.5 contains minor enhancements, bug fixes, and API changes.
Of particular note:
- Support for feature x72 (gamma) has been added.
- Command setvcp can now take 2 byte values (0..65535) as an argument.
ddcui release 0.0.4 reflects changes to the ddcutil API.
25 December 2018
ddcutil release 0.9.4 fixes a bug that caused the capabilities command to fail, and addresses the failure to build from source for the x32 ABI.
26 November 2018
ddcutil release 0.9.3 reworks display detection to avoid problems encountered with certain recent displays and laptops. There have been extensive internal changes to allow for future support of user supplied definitions for manufacturer-specific features. The API has also been revised to support user supplied feature definitions (see API Changes in Release 0.9.3).
ddcui release 0.0.3 reflects changes to the ddcutil API.
15 September 2018
ddcui is a Qt-based graphical user interface for ddcutil. An initial alpha release is now available on github. ddcui must currently be built from source - there are no pre-built (e.g. dpkg or rpm) packages. For addtional information and rudimentary build instructions, see files README.md and BUILDING.md.
01 September 2018
Release 0.9.2 contains minor enhancements and bug fixes.
27 May 2018
Release 0.9.1 fixes the cause of a failure that may occur on command environment --verbose when examining an extremely large log file.
13 May 2018
Release 0.9.0 contains minor enhancements and a few very minor bug fixes. However. the C API is extensively revised (see API Changes in Release 0.9.0).
Two enhancements will be of interest to general users:
- The setvcp command now allows new values for Continuous type features to be specified as relative values, e.g. the following commands increase or decrease the value of the brightness feature by 5.
$ ddcutil setvcp 10 + 5 $ ddcutil setvcp 10 - 5
Note that parsing requires that "+" and "-" be surrounded by spaces.
- Table type features are by default not included in most feature groups specified on getvcp, e.g. getvcp known.
Features of type Table are rare. The DDC/CI spec does not provide a clean way for getvcp to determine that a table
feature does not exist. As a result, getvcp typically has to exceed its retry count before giving up.
(Exclusion of table features does not occur if a feature is explicitly specified by its hex code, or for feature group TABLE.)
The --no-table (formerly --notable) and -show-table options explicitly control this behavior.
20 January 2018
Release 0.8.6 contains a few minor externally visible enhancements and bug fixes, along with non-upwardly compatible changes to the C API. Most current users will see no need to upgrade.
ddcutil is now in the repositories for the upcoming Ubuntu 18.04 release and the openSUSE Tumbleweed rolling release.
16 November 2017
Release 0.8.5 contains a large number of minor enhancements and bug fixes. Users of ddcutil on 32 bit platforms and those on the Raspberry Pi should upgrade.
15 October 2017
Package ddcutil has been sponsored into Debian and is now included in Debian Testing. It is on track to be part of the next Debian release, which means it should eventually appear in downstream distributions such as Ubuntu. Note that only package ddcutil, containing the command line version of ddcutil, is currently in the Debian repositories. The shared library packages, including the C and Python APIs, are not yet part of Debian.
22 July 2017
Release 0.8.4 primarily contains packaging changes to meet Fedora distribution standards.
17 May 2017
Release 0.8.2 contains minor enhancements, primarily to diagnostics in the environment and interrogate commands.
05 May 2017
Release 0.8.1 is a bugfix release that addresses a segfault that can occur when scanning for USB connected monitors.
01 May 2017
Release 0.8.0 contains new features intended to address issues with particular monitors and user environments, and to improve performance
The most significant changes visible to users are:
- If there are multiple monitors and option --async is specified, initial monitor checks are performed in separate threads. Users with multiple monitors should see significantly better startup time.
- If a display is specified by its I2C bus number (option --bus) and option --nodetect is specified, global display detection is skipped, improving performance.
- By default, setvcp and loadvcp now read the VCP value after it has been set, to confirm that the monitor has made the change requested.
- Command getvcp --terse now reports VCP settings in a form that is easily machine readable.
- The C API has been extensively revised. Many names have changed for consistency and clarity.
(Apologies to those of you who have written applications.)
29 April 2017
At some time in the recent past, the files for release 0.7.3 in the OpenSUSE Build Service were corrupted with files from the test system. Symptoms of this corruption include
- Prefixing a VCP feature code number with "0x" causes a segfault, e.g. "ddcutil setvcp 0x10 50"
- Command line option "--verify" is recognized
As of this morning, the production ddcutil project on OBS was restored to release 0.7.3.
05 March 2017
Release 0.7.3 is a maintenance release. There is no need to install it unless you are experiencing problems.
This release introduces the following features:
- Command ddcutil detect --verbose shows additional information.
- Command ddcutil environment --verbose implements additional diagnostic tests.
- configure option --enable-drm controls whether DRM is used to enhance the diagnostics of command ddcutil environment --verbose. If enable-drm=yes, package libdrm-dev or libdrm-devel (depending on Linux distribution) must be installed to build ddcutil. Setting --enable-drm=no affects only diagnostic output, not normal execution.
01 February 2017
- Fixes a critical bug in release 0.7.1 where insufficient privileges on a /dev/i2c-n device causes program termination.
- ddcutil interrogate always executes with --set-slave-address in effect
- Minor improvements to ddcutil environment and ddcutil interrogate output
- Minor improvements to ddcutil detect --verbose
- Add explanations for additional errno values
27 January 2017
Release 0.7.1 is a maintenance release. There is no need to install it unless you are experiencing problems.
This release introduces the following features:
- Command option --force-slave-address causes ddcutil to attempt to take control of slave addresses on the I2C bus even if they are in use by another driver. This may aid in certain situations where monitors on an I2C bus are not properly detected. See Instrumentation and Tuning)
03 January 2017
Release 0.7 introduces the following features:
- C API, exposed by shared library libddcutil. See API.
- A new command line option --mfg, allows for the 3 character manufaturer id found in the EDID to used as part of monitor selection.
- The monitor feature and capabilities portion of interrogate is also exposed by the new probe command which explores the capabilities string and features found on a single monitor.
openSUSE Build Service packaging of release 0.7.0 is complete. Owing to Launchpad constraints, the PPA will not be correct until ddcutil's release is incremented, i.e. until release 0.7.1
21 November 2016
The most recent release of ddcutil is 0.6.1. This is a maintenance release and need not be installed unless you are experiencing problems. For details, see Release Notes.
01 October 2016
As of release 0.6, the name of this program changed from ddctool to ddcutil to avoid confusion with a commerical datacenter program also named ddctool.
The following are affected:
|Object |Old name | New Name | Comments| |-------------------|--------------------------------------|--------------------------------------| |Repository URL |https://github.com/rockowitz/ddctool.git | https://github.com/rockowitz/ddcutil.git | Old name still works | |Web site URL | http://www.ddctool.com | http://www.ddcutil.com | Old name still works | |Primary executable | ddctool | ddcutil | |Shared library | libddctool.so | libddcutil.so |