Энтузиаст подключил к ноутбуку I2C OLED-дисплей с помощью HDMI

Энтузиасту удалось подключить миниатюрный OLED экран на базе интерфейсной шины I2C к ноутбуку с помощью кабеля HDMI. Система работает автономно и не требует микроконтроллеров для вывода данных на дисплей. Из минусов можно отметить низкую частоту кадров, но автор проекта уверяет, что это исправимо.

a91d95db1b8695af99b0af8d2ec66970.jpg

Разработчик под псевдонимом mitxela рассказал в своем блоге, что ему часто в голову приходят идеи «глупых и непрактичных» проектов. Одним из таких проектов стала мысль о том, что подключение I2C OLED экрана к ноутбуку можно реализовать напрямую с помощью HDMI-кабеля. Автор отмечает, что обычно его проекты связаны с низким риском поломки оборудования, но не в этот раз. Разработчик подключал самодельную конструкцию к новому ноутбуку и, по его словам, рисковал повредить порты.

Сперва разработчик получил официальную спецификацию HDMI-кабеля с подробной распиновкой. Для подключения понадобились контакты SCL, SDA, DDC-GND, HPD и 5V. Для автоматического определения подключения потребовалось пробросить между HPD (Hot Plug Detect) и 5V резистор на 20 килоом. В качестве дисплея автор выбрал небольшой OLED экран на контроллере SSD1306 и с I2C интерфейсом для упрощенного подключения. 

9510756ba2f9dd08e5a4db9aedf81883.jpg

На Linux-машину автор установил i2c-dev и i2c-tools. Первое позволяет видеть на компьютере подключенные I2C-устройства, а второе обеспечивает доступ к ним без sudo. Во время первичных тестов на экран выводился текст с помощью скрипта на Python. 

На втором этапе автор решил написать собственный драйвер для дисплея и планировал использовать его в качестве второго монитора. Для этого разработчик использовал библиотеку xrandr и скрипты на Python, которые считывали фреймбуфер рабочего стола и отслеживали координаты курсора. В итоге получилось выводить данные с рабочего стола на крошечный OLED. Из минусов можно отметить экстремально низкую частоту кадров и монохромность дисплея.

Автор подробно описал свой проект в личном блоге, опубликовал пошаговые инструкции для каждого этапа работы и выложил Python-скрипты на GitHub.

© Habrahabr.ru