In a nutshell, an HDMI cable, through its 19 pins, carries:
- On pins 1 to 12, audio and video (A/V) using 4 TMDS channels
- On pin 13, the Consumer Electronic Control (CEC) serial connection
- On pin 14, the HDMI Ethernet Channel (HEC), a 100Mbps Ethernet connection
- On pins 15 and 16, the Display Data Channel (DDC), an I²C bus
- Stuff (5V power, hot plug detection, grounds, etc.) on remaining pins
Display Data Channel
Believed by some to be the source of all evil, the Display Data Channel is a point to point connection between each device pair which allows the “HDMI source” to read the Extended Extended Display Identification Data (E-EDID) describing the capabilities of the “HDMI sink”.
In simpler terms, the DVD player (the source) figures out the resolution of the TV (the sink) by “downloading“ some information from the TV. DDC is the standard describing the “download” protocol and E-EDID the one describing the “file” format.
This may all sound new and exciting but in fact the first versions of these standards were published more than 15 years ago by the Video Electronics Standards Association (VESA). Plain old analog VGA connectors already carry a DDC channel, which is used by the graphics card to “auto-configure“ itself in most cases to the monitor resolution and refresh rate. It is also used by DVI.
The EDID standard allows for private extensions and one is defined in HDMI (hence the “Enhanced-EDID” moniker). The presence of this specific extension is in fact used by HDMI sources to detect if the sink is HDMI or DVI.
Consumer Electronic Control
Contrary to DDC which is point to point, CEC is shared between all devices in the HDMI “tree” (so it’s a bus), and should be interconnected between all inputs and one output of all devices, even those not implementing CEC.
Messages are exchanged over CEC using logical addresses (“TV”, “Player”, etc.) and physical addresses (obtained from a DDC-based sing and dance).
CEC is well suited to home installations. Some very nice features are a single button press away:
- System Standby: switches all devices to standby mode.
- One Touch Play: allows a device to be played and become the active source.
- One Touch Record: start a recording of the source that is being displayed on the TV
- System Audio Control : allows the volume of an AV receiver or amplifier to be controlled using the remote control of any device
In theory, this should all work seamlessly across devices and brands, in a joyous worldwide universal harmony. In practice, there are discordances, some of them kwikwai can help diagnose and/or alleviate. More on this in future posts.
Home automation applications
In addition to the features above (which an HA system can exploit), the CEC spec defines some additional messages that could prove useful:
- Status: query for the power status of a device
- Timer Programming: program the timer in recording devices
- OSD Display: transfer a text string to the TV for On Screen Display
Arguably, some of these are very difficult to provide reliably with infrared…
Stay tuned for more in future posts!
In the meantime, the reader with time to spare is encouraged to peruse the complete HDMI 1.3a specification, which is available for free on the HDMI website, once registered (and the source of the 2 diagrams above). The 1.4 spec is currently restricted to HDMI adopters, that is, paying members of the club.