HeadlinesBriefing favicon HeadlinesBriefing.com

Электронные чернила как принтер

Hacker News •
×

Я планировал создать дисплей на электронных чернилах и нашел Xteink X3, который был полностью программируемым. Он казался прочным и плоским, но загрузка контента была утомительной — мне приходилось использовать его точку доступа и веб-загрузчик. Я хотел, чтобы он работал как бумага, поэтому я исследовал Интернет-протокол печати (IPP). IPP позволяет компьютеру запрашивать возможности принтера, отправлять документы и проверять статус заданий через HTTP. Я заявил о монохромной печати с разрешением 300 точек на дюйм, одной копии, односторонней печати, принимая растровые форматы Apple и PWG. Затем Mac преобразовал страницы в пиксели. Я объявил бумагу A5 и Letter, обычные носители и лоток вывода лицевой стороной вверх, назвав его "penguin" с Bonjour для обнаружения без драйверов в macOS. Проблемой была память: страница Letter при 300 dpi в несжатом виде составляет 8,4 МБ, но у X3 было всего 400 КБ ОЗУ. Я использовал конвейер преобразования для декодирования, масштабирования и дизеринга строк непосредственно на дисплее, избегая полного второго изображения. ОЗУ дисплея служило буфером кадра, и я обрабатывал строки последовательно, показывая полосы, как подача бумаги. Каждое обновление занимало полсекунды, поэтому я переключился на отображение всей страницы сразу. Я сохранил окончательное изображение в формате BMP на SD-карту, используя существующий модуль записи снимков экрана. Это освободило достаточно памяти для сетевых буферов. Печать страницы манги из Preview сработала — она появилась на экране с электронными чернилами примерно за секунду, и изображение осталось там. Проект удался, превратив простой дисплей на электронных чернилах в функциональный принтер.