Hasty Briefsbeta

Bilingual

Rescuing old printers with an in-browser Linux VM bridged to WebUSB over USB/IP

7 hours ago
  • #WebUSB
  • #Printer Revival
  • #Linux Emulation
  • Acquired an old Canon SELPHY photo printer from a friend, discovering it was unsupported on modern Macs and Windows, but found a solution using Linux.
  • Set up the printer on a Manjaro Linux machine with CUPS and Gutenprint, shared it over AirPrint for family use, enabling easy photo printing with CMY color magic.
  • Developed a web app using v86 to emulate Linux in the browser, leveraging WebUSB for printer connection, aiming to make old printers usable without Linux expertise.
  • Iterated through bridging methods: initially a custom CUPS backend with data transfer over TTY, then using 9p filesystem, before settling on USB/IP and tcpip.js for bidirectional communication.
  • Added features like PDF embedding for proper photo sizing, HEIC to JPEG conversion with ICC profile retention, affiliate links for consumables, and basic telemetry.
  • The app, printervention.app, is tested on select photo printers, with plans for broader Gutenprint support and potential commercialization or white-labeling.