Project ideas from Hacker News discussions.

How to build a printer

📝 Discussion Summary (Click to expand)

1. Excitement about a paper‑like e‑ink experience
Many commenters loved the idea of a device that feels and behaves like paper, evoking Star Trek PADDs and the simple joy of a readable, foldable screen.
- “Outstanding! This is so…correct.” – Brian_K_White
- “We finally have PADDs from Star Trek!” – andyfilms1
- “if it looks like a paper, it should act like a paper” – cat‑whisperer
- “This is amazing!!! It just makes sense. And its just how you would want to use a e reader.” – jarboot
- “You can even fold it, once!” – nomel
- “This is a fantastic idea!” – sho_hn

2. Technical limits of PDF rendering on low‑resource hardware
A recurring thread pointed out that the device’s modest RAM (≈400 KB) and CPU make full PDF rendering impractical, pushing the conversation toward raster‑based printer standards (PWG Raster, Apple Raster) and the complexities of the PDF format.
- “I love the concept, but I wonder why he wasn’t printing to PDF. Can this device not render PDFs?” – joshmarinacci
- “rendering PDF takes a lot out of a 400KB RAM'd device. It also needs a ton of things to actually work which the ROM can't hold.” – cat‑whisperer
- “Probably not. It doesn't appear to have enough ram. I'm not sure the CPU is up to that either.” – bluGill
- ValdikSS listed PDF hurdles: “4 font formats, 9 image formats, blending with transparency, different colorspaces… the page can have elements from another pages …”
- “It's an esp32 MCU, even if it can somehow run the PDF render pipeline, it won't be more ideal than just accept the raw byte stream and display.” – mrheosuper

3. Appreciation for the DIY, creative spirit and suggestions for improvement
Participants praised the project’s ingenuity, shared ideas for building their own printers or plotters, noted the eco‑friendly angle, and offered concrete enhancements (e.g., better media‑size handling, backlight models).
- “Good job, but I’m left wanting to know how to build a printer.” – ks2048
- “I'd say it's an eco-friendly printer” – cat‑whisperer
- “I bought an x4 a month or so ago, zero regrets. It’s finally been the thing to actually decouple me from my phone.” – hamaluik
- “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.” – alternativeworl
- “This is why I like it here. Somebody does irrefutably incredible work outside of their comfort zone, and somebody else goes 'yeah actually I was born in that zone… Here's how to improve it'” – Neywiny
- ValdikSS described diving into the printer stack, fixing bugs, and even building his own print server device.
- cat‑whisperer welcomed the memory‑saving suggestions: “lovely, this would save me a bunch of memory during transformation and dithering. Will do!”


🚀 Project Ideas

EInkPrint CUPS Backend

Summary

  • A CUPS filter/backend that converts incoming print jobs (PDF, PS, text) to optimized 1‑bit raster using dithering, then stores the result on the e‑ink device and updates the display.
  • Enables any application that can print to treat the e‑ink screen as a native printer without needing PDF rendering on the low‑RAM device.

Details

Key Value
Target Audience Developers and power users who own low‑RAM e‑ink readers (Xteink, Kindle‑like devices) and want to print from any desktop/laptop program.
Core Feature Accepts IPP/USB print jobs, converts to 1‑bit PNG/PWG Raster with Floyd‑Steinberg dithering, saves multi‑page output as PDF or image stack, and triggers a screen refresh.
Tech Stack CUPS (C), libcupsfilters, Ghostscript for PDF→raster, libpng, optional libdither, runs on Linux host or Raspberry Pi attached to e‑ink via USB/gadget.
Difficulty Medium
Monetization Hobby

Notes

  • HN users lamented the tedious hotspot upload website and lack of PDF support on 400 KB RAM devices (stdatomic, ValdikSS). This backend removes those steps by leveraging the host’s powerful rasterizer.
  • Provides a practical path to “print to e‑ink” from VSCode, Obsidian, or kitchen recipe pages, directly addressing comments by sowbug and maybewhenthesun about wanting a one‑step print‑to‑e‑ink workflow.

PrintToEInk Virtual Printer App

Summary

  • A cross‑platform virtual printer that appears in the system’s print dialog (via IPP Everywhere or a custom driver) and forwards print jobs to the e‑ink device over Wi‑Fi/BLE, performing PDF → raster conversion on the host.
  • Delivers a seamless “print to e‑ink” experience akin to printing to a PDF, but with the output shown instantly on the e‑ink screen.

Details

Key Value
Target Audience Everyday users who want to print recipes, documents, or code snippets from any program (including text editors) without manual file transfers.
Core Feature Virtual printer driver that spools jobs, converts PDF/PS to 1‑bit bitmap using optimized dithering, transmits the bitmap to the e‑ink device, and optionally stores a multi‑page PDF on the device for later viewing.
Tech Stack Electron or Flutter for UI, cups‑ipp driver or Windows/macOS printer plugin, PDF rendering via Poppler/MuPDF, BLE/Wi‑Fi communication (ESP32‑hosted e‑ink or Android/iOS bridge).
Difficulty Medium
Monetization Revenue-ready: Freemium – free local printing; $2/month cloud‑rendering tier for higher‑quality dithering profiles and OTA firmware updates.

Notes

  • Commenters like maybewhenthesun and sowbug explicitly wanted “print to e‑ink” as a printer target and to avoid the hotspot upload website; this app satisfies that by appearing as a normal printer.
  • The idea invites discussion on optimizing dithering for e‑ink (referenced by ValdikSS and namibj) and could spawn a plugin ecosystem for VSCode/Obsidian, echoing the thread’s desire for printer support in text editors.

EInkPrinter Firmware Upgrade

Summary

  • Open‑source firmware for e‑ink readers (e.g., Xteink) that adds native IPP printer support with bi‑level (1‑bit) raster input, configurable media sizes, and a simple file‑system to store and browse multi‑page PDFs/images.
  • Turns the e‑ink device into a true network printer, eliminating the need for host‑side conversion and enabling direct printing from any OS.

Details

Key Value
Target Audience Hackers and makers who own hackable e‑ink devices and want to expose them as IPP printers on their local network.
Core Feature IPP listener that accepts PWG Raster/Apple Raster (bi‑level), stores incoming pages as image strips, assembles them into a PDF or image buffer, and refreshes the display; includes a UI to view printed documents.
Tech Stack ESP‑IDF or Zephyr RTOS, lwIP IPP stack, TinyPDF or custom raster‑to‑framebuffer driver, FATFS/SD card storage, optional littlefs for wear leveling.
Difficulty High
- Monetization Hobby

Notes

  • Users such as ValdikSS and d--b discussed the complexity of printing stacks and the need for an open‑source print server device; this firmware puts that server directly on the e‑ink hardware.
  • The ability to define exact media size and use bi‑level mode (as ValdikSS recommended) would save memory and improve dithering quality, directly addressing concerns about PDF rendering on low‑RAM devices (cat‑whisperer, bluGill). This would likely spark further discussion in the HN community about extending e‑ink utility beyond reading.

Read Later