Build a Smart Scanner using a PI

I got a free all-in-one printer from a friend who didn’t need it (consumed way too much ink cartridges). Since I liked the idea of the ScanSnap Evernote scanner but not so much the 500$ sticker price I decided to build one using this all in one and a Raspberry PI.

Fortunately the model I received is supported by SANE.

I needed the following pieces put together:

  1. Interface (a few buttons to take color/grayscale lowres/high res photos)
  2. A command line utility to upload scanned pages to the cloud
  3. A daemon to monitor and trigger everything.

Update: I added rudimentary support for batch scanning, see the GitHub project page.

1. Interface

First I wanted to build a nice GPIO based interface with leds, lcd, buttons. I started testing using a USB numpad I had around and it stuck, I’m too lazy to start working on it now that I have it running.

2. Cloud upload

I use a Bash Dropbox Uploader. It’s very nice as it allows running as a Dropbox application, giving it access only to one folder under Dropbox/Apps/

For the evernote part I’m waiting for resources support to be merged and functional inside geeknote [here and here]. For now Dropbox has to do.

3. Daemon

Again I thought it would be a good python learning experience to build it myself but laziness triumphed. I used ESE Key Daemon to monitor the USB Numpad and trigger a small BASH utility that accepts various resolutions and output formats as a parameter.