nyanpasu64 12 hours ago

VGA/DVI/HDMI ports have an I2C interface (though DP tunnels I2C over AUX), which is normally used to read EDID information from monitors and control brightness, but on Linux (not Windows) you can control it as a general-purpose I2C bus, dump and even rewrite EEPROMs placed on the monitor bus. In theory you could even hook up a Nunchuk or Classic Controller to a display output (with level shifters if you want to run the Nunchuk at 5V off a 3.3V bus), and write a Linux driver to communicate with the peripheral and expose it as a game controller.

  • duskwuff 11 hours ago

    I2C is also extremely common as a low-speed peripheral bus in electronic devices - some common applications are:

    - Small EEPROMs, often used for configuration data or small firmware blobs

    - MEMS sensors (accelerometers, gyroscopes, etc)

    - Small LCD/OLED displays (e.g. 128x64)

    - Configuration ports on devices which use other busses for bulk data (e.g. display drivers, audio codecs, etc).

  • mmastrac 11 hours ago

    The I2C part is something of an implementation detail -- it's only _really_ guaranteed to work as an EEPROM interface. It's usable on a lot of platforms, but again, not a guarantee.

  • extraduder_ire 9 hours ago

    I use ddcutil all the time on linux to set my monitor brightness without needing to fiddle with the OSD.

extraduder_ire 9 hours ago

A major disadvantage of using something based on i2c for computer peripherals is being unable to connect two devices with the same ID at a time.