HeadlinesBriefing favicon HeadlinesBriefing.com

Layar Tinta Elektronik sebagai Printer

Hacker News •
×

Saya berencana membangun layar tinta elektronik dan menemukan Xteink X3, yang sepenuhnya dapat diprogram. Terasa kokoh dan datar, tetapi memuat konten membosankan—saya harus menggunakan hotspot dan pengunggah web-nya. Saya ingin ia bertindak seperti kertas, jadi saya menjelajahi Protokol Pencetakan Internet (IPP).

IPP memungkinkan komputer untuk menanyakan kemampuan printer, mengirim dokumen, dan memeriksa status pekerjaan melalui HTTP. Saya mengiklankan output monokrom pada 300 dpi, satu salinan, satu sisi, menerima format raster Apple dan PWG. Kemudian Mac mengonversi halaman menjadi piksel.

Saya mendeklarasikan kertas A5 dan Letter, media alat tulis, dan baki keluaran menghadap ke atas, menamainya "penguin" dengan Bonjour untuk penemuan tanpa driver di macOS. Tantangannya adalah memori: halaman Letter pada 300 dpi tanpa kompresi adalah 8,4 MB, tetapi X3 hanya memiliki 400 KB RAM. Saya menggunakan pipeline transformasi untuk mendekode, menskalakan, dan melakukan dithering pada baris langsung ke layar, menghindari gambar kedua penuh.

RAM layar berfungsi sebagai buffer bingkai, dan saya memproses baris secara berurutan, menampilkan pita seperti pengumpan kertas. Setiap penyegaran memakan waktu setengah detik, jadi saya beralih untuk menampilkan seluruh halaman sekaligus. Saya menyimpan gambar akhir sebagai BMP di kartu SD menggunakan penulis tangkapan layar yang ada.

Ini membebaskan cukup memori untuk buffer jaringan. Mencetak halaman manga dari Preview berhasil—muncul di layar tinta elektronik dalam sekitar satu detik, dan gambar tetap di sana. Proyek ini sukses, mengubah layar tinta elektronik sederhana menjadi printer fungsional.