Skip to content
Fons van der Plas edited this page Dec 5, 2018 · 8 revisions

Welcome to the printi wiki!

There is no clear goal to this wiki, but I will use it to explain some of the challenges that I encountered while working on this project. I hope you find this wiki interesting, and don't hesitate to contact me! -Fons

first printout

Some highlights:

  • 🖨 Hardware: HOIN HOP H58 (€20) as printer, Onion Omega2+ (€15) as IoT computer.
  • async RESTful API: the server now hosts an HTTP web server, along with a (yet to be documented) public API, allowing file uploads and queue requests.
  • 🌈 Open Source (MIT): anyone with similar hardware can run my client, and the public server can be used to provide UI (at any printi.me/subdomain) and to process image files.
  • 🦓 Custom image processing: Because of the Omega's limited storage, I wrote my own image processor (which uses the pretty Burkes dithering algorithm) and I reverse engineered the printer driver, which now run on the server.
  • Speed: When an image is sent through the custom image processor, queued and received by a remote printer client, the image will still be printed within 1 second, which is up to 3x quicker than an image processed and printed by CUPS on the server, despite the more expensive dithering algorithm and the extra layer of networking!
  • 👶 User friendly: the printi mini hosts a configuration web site on its own Wi-Fi hotspot, which any modern device can connect with to enter the Wi-Fi password. Instructions are printed on paper when no network is detected!

Next: Background