More often than not, the fun part of putting together a Raspberry Pi project—or any microelectronics project for that matter—is working out the logistics of what interfaces you need and peripherals to include. Sometimes it takes ingenuity to bring everything together and this is demonstrated quite well in this HDMI to I2C project by maker and developer Solaria123.
The idea to connect a device that relies on an I2C interface to the DDC pins found inside an unused video port isn’t new. However, we still appreciate this project as it demonstrates the compatibility and flexibility of the Raspberry Pi. According to Solaria123, this trick is used often with Linux-based machines that don’t have any I2C devices.
In this case, the hack is useful for situations in which I2C pin access has been blocked by either a case or something like a module. As long as the HDMI port is free, DDC is capable of providing a low-speed I2C bus of 80 KHz.
In this demo, Solaria is using a Raspberry Pi 4 but there’s no reason this couldn’t work on a 3B+ model or even a Pi Zero. There may be some tweaking needed to get the setup just right on other models but the potential is definitely there. In the example, Solaria is controlling an Adafruit Bi-Colo 24-bar bargraph module through the HDMI port with the help of an Adafruit HDMI breakout.
Because of its low speed, users are limited to what they can control and should only use this method for basic I2C interface demands. That said, you’ve got 50mA of 5V to play with so there’s plenty of wiggle room for experimentation. To get a closer look at the Python code that makes this possible, check out the project page shared over at Github.
If you want to recreate this Raspberry Pi project or develop something similar, visit the original thread shared to Reddit to get a better idea of how it all goes together. You can also follow Solaria123 for more cool projects as well as any future updates on this one.