Before reading this page, please keep in mind that it is necessarily out-of-date. Spreads is not maintained by me, and since it is software, it is always changing. The homepage for spreads is spreads.readthedocs.org , and it’s beautiful.

A book scanner is 50% hardware and 50% software. While the DIY Book Scanner project has produced many useful Open Source scanning packages, none integrate the total scanning workflow quite like spreads, by Johannes Baiter.

spreads is a tool that aims to streamline your book scanning workflow. It takes care of every step: Setting up your capturing devices, handling the capturing process, downloading the images to your machine, post-processing them and finally assembling a variety of output formats. The image which runs on the Raspberry Pi computer is called SpreadPi. SpreadPi gives your scanner a web control interface – meaning you can control it from any device with a web browser – even your ebook reader. Here is a very early video that I made about Spreads, with a very early version of the software. You should not judge the performance or functionality of the software based on this video, but it should give you a good overview of what it looked like in early 2014 (several major updates have been made since I posted the video):

Spreadpi marks the second major evolution of the project. In the beginning, the project was founded on a disruptive principle – cameras being cheaper than textbooks (and, it needs mention, they were hackable with Open Source tools). Those foundations got us very, very far. But Spreads and Spreadpi take advantage of the new, cheap, computer – the Raspberry Pi. This second-stage of disruptive tech directly addresses one of the least tractable problems we faced, which was getting the software toolchain to work on essentially every computer ever made.

Spreadpi handles the following (not a complete list):

1. Controlling and configuring the CHDK-capable Canon Powershot cameras.

2. Renaming the images in order.

3. Putting the images into a zip file with appropriate metadata.

4. Preparing the images for final post-processing via Spreads Server (forthcoming).

The scanner control system consists of the following components:


1. The Raspberry Pi (B+) Computer.

2. Two CHDK-capable Canon Powershot cameras. 16MP or higher.

3. Two Canon Powershot Power Supplies.

4. Two SD cards with CHDK installed (one for each camera).

5. One MicroSD card with SpreadPi installed (for the Raspberry Pi)

6. Two Mini-USB cables.

7. One USB power supply with Micro USB cable (for the Raspberry Pi)

8. One Ethernet cable (to connect it to your local network).