To get this steaming pile of excellence working you need 1) an STM32F103 board rated to 72MHz with an 8MHz clock and the PB6 and PB7 pins available eg http://www.ebay.co.uk/itm/132170295715 http://www.ebay.co.uk/itm/132138287991 2) optional (passive adaptors to get to you HDMI or DVI-D from whatever you have, the apple ones work well) 3) Some way of connecting your HDMI/DVI-D to the board: HDMI DVI-D Cortex-M3 15 DDC SCL 6 DDC SCL PB6 (with 10k pull-up to 3V3) 16 DDC SDA 7 DDC SDA PB7 (with 10k pull-up to 3V3) 17 GND 15 GND GND 18 +5V 14 +5V (tie to HPD) 19 HPD 16 HPD (tie to +5V) The code connects a virtual NS16X50 uart to the I2C bus at address 0x90 (like an SC16IS7XX does), and a 24C02 EEPROM containg DDC data for a 1280x1024 monitor at address 0xA0. The virtual UART is connected to the M3's real uart 1 which is enabled, and to a CDC ACM device on USB. The fake monitor is necessary because recent intel GPUs do hot plug detection and powering up the ports in firmware rather than in the driver it also tricks said firmware into configuring the port as HDMI/DVI rather than as Displayport - that way the GPIOs that AX can see get connected to SDA and SCL. The USB interface also offers a DFU device for flashing the firmware without a JTAG/ST-LINK cable, which although very slow is good because it synchronises the board reset with the USB host's rescaning of the device, so you don't need to replug. J.