Home About Writings Projects Music Code Photo Links nthpulse.net

< Return to Projects

Experimenting with I2C over HDMI

Disclaimer: Damage to equipment can occur if you try any of this. Don't try anything unless you know what you're doing. Take into account current and voltage limits.

This log follows my experiments with using the DDC pins present at a standard full-size HDMI connector. DDC (display data channel) is an I2C-compatible interface used for digital communication between a display (sink) and the computer it's connected to (source), used for reporting monitor capabilities to the computer (in this setup, the monitor contains an I2C EEPROM flashed with appropriate data). Its compatibility with I2C is useful to a hobbyist such as me as it opens the door for some tinkering. A few possibilities include connecting GPIO expander chips, such as the PCF8574, or I2C modules like a temperature sensor or RTC.
One far-fetched, ludicrous application I thought of was making an HDMI-based GPS receiver. A number GPS receiver chipsets manufactured by u-blox have a configurable I2C interface (referred to as DDC in u-blox docs) that can operate in master and slave modes, allowing the chipset to output data over I2C. It's goofy and impractical but I like the absurdity of this idea, and I happen to own a few genuine u-blox NEO-6 chips that I can execute this with.
This idea soon fell apart when I found that HDMI can only supply about 55 mA max on its power signals, which is well below the power requirements of the mentioned GPS chips, so power will need to be supplied externally. This makes the theoretical HDMI GPS receiver impossible using just the HDMI socket, and using a USB cable to power the receiver, connected to HDMI, kills the novelty of this idea, as the receiver can be interfaced using USB alone.

I have managed to secure a copy of the HDMI 1.3a specification in order to inform some of my electrical design decisions, and from what I can tell, the 5 V supply is only good for really low current devices like i2c EEPROMS, so external power from USB will be needed for whatever circuit I build. Additionally, the HPD (hot plug detect) pin must be pulled high by a resistance of 1 k Ω for devices on the DDC bus to be detected. To see what range of resistances are used in practice, I bought a HDMI breakout board which I used to measure the resistance between HPD and +5V of a few displays, and I measured values of 5kΩ, 20kΩ and even 100kΩ,

Last modified: 31MAY2025