Turning an E-Ink Reader into a Real Printer

How to Build a Printer

Turning an E-Ink Reader into a Real Printer

A developer turns a programmable e-ink reader into a fully functional printer. By implementing the Internet Printing Protocol (IPP) and Bonjour discovery, the device appears as a standard printer on macOS. The challenge of limited RAM is solved by streaming incoming pages directly to the display's frame buffer, enabling a full 300 dpi page to be printed in about a second.

If it looks like paper, it should act like paper.
  1. ValdikSS

    >penguin would shrink the result to fit its screen.

    >I declared A5 and Letter paper, media type stationery, and an output bin called face-up.

    You can (and should!) define exact dimensions of your screen in `media-size-supported`. It will probably be a non-standard IPP name, that's why you should define that in `media-supported` as `om_NNNmmxYYYmm` or `oe_NNNinxYYYin`

    That way you don't need to scale the incoming data, the PC will format it exactly to the dimensions of the screen.

    Both PWG Raster and Apple Raster support 1-bit-per-pixel mode (instead of 8-bit-per-pixel you use), that's why the input could be 8 times less in size. Use `print-color-mode-{supported,default}=bi-level` instead of `monochrome` for that. And also tune `urf-supported`'s `W` option, use `W1` for this case.

    The screen/dithering could be ass in 1-bit mode, see https://github.com/OpenPrinting/libcupsfilters/pull/160 where I added more dithering options (Linux-only though, Apple seems to abandon their CUPS).

  2. alternativeworl

    Very cool. I was expecting to learn about the ins and outs of ink, printheads etc but instead learned "How to build a paper that acts like a printer" which turned out much more entertaining.

  3. ks2048

    Good job, but I’m left wanting to know how to build a printer.

  4. jarboot

    This is amazing!!! It just makes sense. And its just how you would want to use a e reader.

  5. greazy

    I don't understand the purpose. What am I missing?

    The author "prints" to the eink display. Why not load say the pdf directly?

More from this day

2026-09-08