Энтузиасту удалось подключить миниатюрный OLED экран на базе интерфейсной шины I2C к ноутбуку с помощью кабеля HDMI. Система работает автономно и не требует микроконтроллеров для вывода данных на дисплей. Из минусов можно отметить низкую частоту кадров, но автор проекта уверяет, что это исправимо.
Разработчик под псевдонимом mitxela рассказал в своем блоге, что ему часто в голову приходят идеи «глупых и непрактичных» проектов. Одним из таких проектов стала мысль о том, что подключение I2C OLED экрана к ноутбуку можно реализовать напрямую с помощью HDMI-кабеля. Автор отмечает, что обычно его проекты связаны с низким риском поломки оборудования, но не в этот раз. Разработчик подключал самодельную конструкцию к новому ноутбуку и, по его словам, рисковал повредить порты.
Сперва разработчик получил официальную спецификацию HDMI-кабеля с подробной распиновкой. Для подключения понадобились контакты SCL, SDA, DDC-GND, HPD и 5V. Для автоматического определения подключения потребовалось пробросить между HPD (Hot Plug Detect) и 5V резистор на 20 килоом. В качестве дисплея автор выбрал небольшой OLED экран на контроллере SSD1306 и с I2C интерфейсом для упрощенного подключения.
На Linux-машину автор установил i2c-dev
и i2c-tools
. Первое позволяет видеть на компьютере подключенные I2C-устройства, а второе обеспечивает доступ к ним без sudo
. Во время первичных тестов на экран выводился текст с помощью скрипта на Python.
На втором этапе автор решил написать собственный драйвер для дисплея и планировал использовать его в качестве второго монитора. Для этого разработчик использовал библиотеку xrandr
и скрипты на Python, которые считывали фреймбуфер рабочего стола и отслеживали координаты курсора. В итоге получилось выводить данные с рабочего стола на крошечный OLED. Из минусов можно отметить экстремально низкую частоту кадров и монохромность дисплея.
Автор подробно описал свой проект в личном блоге, опубликовал пошаговые инструкции для каждого этапа работы и выложил Python-скрипты на GitHub.