#monitor #vesa #mccs #vcp #ddc #cross-platform #standard

libmonitor

A cross platform library to enable communication with VESA compliant monitors

3 releases

0.1.2 Sep 9, 2024
0.1.1 May 27, 2024
0.1.0 May 26, 2024

#364 in Hardware support

Custom license

96KB
2.5K SLoC

libmonitor

This crate aims to be a unified solution to interacting with display devices. It provides a Monitor class that can be used to set or read settings of a Monitor.

Supported Operations:

  • Read/Set Contrast
  • Read/Set Brightness
  • Read/Set On Screen Display Language
  • Read/Set Monitor Input Source

Lower Level Access

libmonitor also enables lower level access to the monitor communication bus. Per default type safe abstractions are used, but custom messages can also be sent and received.

Supported DDC/CI Operations

  • Read Capabilities
  • Set/Read VcpValue
  • Read Timing Report
  • Set/Read VcpTable

OS Support

  • Linux
  • Windows
  • MacOS

Standards

Display device communication has been standardized by VESA. The current public standards can be found here: VESA Public Standards

Relevant for this Library:

  • E-EDID: Display Device Identification Data
  • E-DDC: I2C-Bus device definition's and communication
  • DDCCI: Display Command Interface for Display Setting Manipulation
  • MCCS: Display Features and Capabilities Definitions

Previous Work

This crate was build after finding previous solutions to be incomplete and fragmented. The following crates deserve an honorable mention for providing inspiration:

Dependencies

~1.2–2.3MB
~47K SLoC