Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно
Всем привет. Давно хотел собрать большой E-Ink дисплей, который можно поставить на стол и отображать на нем полезную информацию (погоду, календарь и т.д.) В этой статье расскажу, как можно собрать такое устройство на базе ESP32 и дисплея от Kindle DX значительно дешевле, чем Waveshare.
Идея собрать такое устройство возникла еще зимой. Отдавать 120 вечнозеленых за дисплей от Waveshare и 30 за их контроллер совсем не хотелось. Поиск на али показал, что можно купить 9.7 дисплей ED097OC4 от Kindle DX за 30 долларов с доставкой. На нем и решил остановиться.
После гугления решил остановиться на вот этом самодельном контроллере hackaday.io/project/168193-epdiy-976-e-paper-controller и он же на гитхабе github.com/vroland/epdiy Проект активно развивается и я решил к нему присоединиться.
Дальше, как мне казалось, все будет просто: заказываем платы и компоненты, собираем, подключаем и радуемся. Но не тут то было. Спаяв плату и скомпилировав демку, я получил вот такую картинку.
Связался с автором проекта, пришли к выводу, что причиной мог стать сдвиговый регистр (я применил немного не тот, который указан). Но предположение не подтвердилось. После ковыряния кода и экспериментов с частотой сигнала было найдено решение.
Как оказалось, дисплеи ED097OC4 бывают как минимум трех типов: обычный ED097OC4, высоко контрастный ED097TC2 (если хотите такой, стоит уточнить у продавца) и низкого качестве, которые и попались мне. Подробности изучения проблемы доступны вот здесь github.com/vroland/epdiy/issues/15
Тем не менее, фикс в прошивке сделан и все заработало с почти незаметными артефактами в виде сжатия нескольких пикселей в районе полос на ⅓ и 2/3 экрана (обратите внимание на показания температуры на первой картинке в статье).
Пришло время написать программу для отображения погоды. Тут пришлось допилить драйвер и добавить недостающие функции отрисовки. А дальше портируем вот этот замечательный проект github.com/G6EJD/ESP32-e-Paper-Weather-Display под наш дисплей и драйвер, немного меняем расположения элементов, убираем рамки и делаем прочие украшательства на свой вкус. Подробно останавливаться на коде не буду, все описал на гитхабе github.com/vroland/epdiy/tree/master/examples/weather
В итоге имеем интересное многофункциональное устройство на базе уже народного модуля умного дома ESP32 и одного из самых больших и доступных E-Ink дисплеев на рынке. Все вместе (дисплей, компоненты, печатные платы) мне обошлось около 70 долларов.
Полезные ссылки:
essentialscrap.com/eink/waveforms.html
hackaday.io/project/21607-paperback-a-desktop-epaper-monitor
hackaday.io/project/11537-nekocal-an-e-ink-calendar