Hasty Briefsbeta

Bilingual

Reviving old scanners with an in-browser Linux VM bridged to WebUSB over USB/IP

3 days ago
  • #WebUSB
  • #Scanner Emulation
  • #Legacy Hardware
  • Yes We Scan enables old USB scanners to work with modern computers through a web app.
  • It uses v86 to emulate an x86 CPU in the browser, running SANE on Alpine Linux.
  • A custom C program, aided by Claude, connects to the scanner and streams data via the hypervisor console.
  • Scan data is processed in the browser: previewed on a <canvas> or compressed to JPEG/PNG via Web Workers.
  • USB/IP on Linux packages USB data into TCP packets, with tcpip.js handling Ethernet-to-TCP/IP conversion in JavaScript.
  • WebUSB bridges the USB/IP packets to the computer's USB hardware.
  • Initially developed from printervention.app, the app has been tested on a Canon scanner but supports many models.
  • The code is not open-sourced except where necessary, as of May 2026.