User Tools

DIY Scanner

The DIY Scanner is a non-destructive book scanning option for NNELS. Assembly Manual

The assembly manual for the current version of the "Archivist" scanner can be found here:

DIY was a big hit at CLA in Victoria here is the article about us from the Victoria Times Colonist PDF

Resources online for DIY Scanner are lively in their Forums and on their wiki.

In particular, check the documentation for Spreads:

Instructions for Peripherals

See also:

This was written in an email by a DIY Scanner staff member (October 2014).

the SpreadPi system is already available, although it's changing on a weekly basis, since there are programmers that are working a lot in order to make it more usable for everyone. Just to be clear, right now the Archivist/SpreadPi combo produces a .zip file of the page images, in order, with a sidecar XML of metadata.We're also currently working on a new model of postprocessing, which will consist of an external server to do all your postprocessing remotely. You'll be able to upload the scan from your Archivist and generate a PDF/DjVU. This is still under development. It's well-suited to any kind of postprocessing with any software as-is, and it will be supported by our forthcoming postprocessing server software. So there's no harm in starting now.

Although our postprocessor is not ready yet, there are software tools that you can use in order to postprocess your pictures. ScanTailor is the right way to go: . Watch the video tutorials that will save you tons of hours of work: After that, you can bind your postprocessed images in a PDF or a DjVU using tools such as Adobe Acrobat Professional or DjVuBind: . If you want to OCR, you can use AbbyFineReader or Adobe Acrobat Professional in Windows, or Tesseract in Linux. Or just hang tight for the postprocessing engine.

We don't yet sell complete control systems, but they're easy to buy and set up. Everything is already available. Here's a Shopping List for the Raspi Control System:

  1. Raspberry Pi B or B+ (B+ has 4 USB ports, so it's better if you can purchase that one).
  2. SD card for Raspi: unlike the camera cards, this card needs to be FAST and BIG. Class 10 is the minimum. 16GB is a good idea.
  3. Some kind of outlet strip for your Pi and cameras.Get one with at least 4 plugs.
  4. A USB keyboard or foot pedal. Keyboard can be any USB keyboard. Pedal should be this one: . A keyboard is just as good. Gamepads work, too. And you don't need a pedal or keyboard at all if you control it from a smartphone or tablet.
  5. If you're working with a Pi model B (not B+) you might want a USB 2.0 hub.
  6. The latest software is currently being developed here:

We don't have yet a fully complete set of manuals, but we're working on that. Anyway, if you decide to buy The Archivist, we provide support to guide you in the whole process.

DIYbookscanner build using Raspberry Pi2

This is just a collection of notes on Manitoba’s build. Components
• RPi2 starter kit, includes case, power
• 2 Canon Powershot A590 IS cameras
• 2 small SD cards for the cameras; we ended up with a 2GB and an 8GB (which gave some trouble… more on this later)
• Powered USB hub (required for stable wireless networking)
• ASUS USB-N13 ireless-N300 Adapter, hardware version B1 (uses rtl8192cu chipset, supported out of the box)
• USB Keyboard, USB mouse, and HDMI monitor (just for configuring… once we’re set up, we’ll run headless.)
• Linux laptop to do setup/configuration stuff on

Set up CHDK on the cameras

Get CHDK files

First, we need to find the CHDK firmware version for the cameras. We used a utility called ACID (Automatic Camera Identifier and Downloader), found here:

ACID is a Java application. Steps:
1. Take a picture with the camera
2. Put the camera card into a card reader
3. Run ACID and drag the photo from the card, drop it onto the ACID window.

ACID will analyzes the photo, extract the model and firmware version, and download the appropriate build of CHDK.

Unzip the resulting file; you’ll end up with a directory containing a handful of files and one subdirs:
• changelog.txt
• PS.FI2
• readme.txt
• vers.req

Prepare your SD cards

Refer to
We want to do the “Bootable SD Card Method”

Really important note that would have saved me a bunch of time: The SD card needs to be bootable. For cameras released before January 2011 (such as the Canon Powershot A590 that we’re using), this means that there needs to be a FAT16 partition with a slightly modified boot block.

No problem with our 2GB card, but 8GB is more than FAT16 can handle… use ‘gparted’ on the laptop to create one (small) FAT16 partition and one large FAT32 partition. The FAT16 partition must be the first partition, and must be made bootable:
1. in gparted, set the “boot” flag for the FAT16 partition
2. from the command line:
echo –n BOOTDISK | dd bs=1 count=8 seek=64 of=/dev/sdx1
(replace /dev/sdx1 with the correct location of the card… you will have seen it in gparted.)

From the “Bootable_SD_card” link above, scroll down to “Linux Method #1: Smaller SD Cards” and “Linux Method #2a: Larger SD Cards (>4G) for cameras released before 2011” Copy the file DISKBOOT.BIN to the FAT16 partition, and all other files/folders to the FAT32 partition.

Unmount and eject the SD card, and flick the little switch dealy to write-protect it. Put the card back in the camera. Make sure the camera is in “Play” mode, not “Rec” mode! When you power up, you should see the CHDK logo.

Spreads-ready Raspbian for Pi2

Important safety note: Pi2 uses micro-SD cards, not SD.
 Trying to get Spreads running on the Pi2 was… complicated. Fortunately, there’s an easy solution.

From this forum topic: …there’s a link to download a Spreads-ready Raspbian build:

Unzip the image, and use k3b to copy it to the micro-SD card. Insert it into the Pi2, and power up.
Username: pi password: raspberry

Note: Unlike the spreadpi image, this one does not include any GUI. I’ve played around with installing lightdm, but there are issues (the lightdm-gtk-greeter has lost its mind….). But we don’t need a GUI anyway.

Check that the cameras work

Plug in a camera to the Pi2, turn it on (in ‘Play’ mode, not ‘Rec’ mode), boot up, and log in.

Use the chdkptp utility from the command line to test that the camera can actually be software-controlled. Here’s a link:
Start up chdkptp, and then:
• ‘c’ to connect to the camera
• ‘rec’ to switch to record mode
• ‘shoot’ to take a picture
• ‘d’ to disconnect from the camera

Verify that there is, in fact, an image on the SD card (I popped the card out of the camera and looked at it on the laptop).

Wireless network

Up until now, we’ve been using ethernet plugged directly into the Pi2… but we want to move the DIY to a non-wired room.
It was a fair bit of work to find a supported USB wireless network dongle that was supported. The ASUS USB-N13 hw rev B1 works flawlessly (but it must be the hw rev B1, which uses the RTL8192CU chipset – hw rev A1 doesn’t….)
With the ethernet cable plugged into the Pi2, plug the USB-N13 into the powered USB hub (we had some issues with plugging it directly into the Pi2 – apparently it draws power right at the edge of what the Pi2 can provide, which lead to flaky connections….)
Take a look at this: - but ignore the bits about running startx or wicd-gtk (remember that we don’t have a GUI). Instead,
apt-get install wicd-curses
On your router, create a DHCP reservation for the USB-N13. (Note the IP addy. In our case,
At this point, you can power down the Pi2 and remove the ethernet, USB mouse, USB keyboard, and HDMI monitor… everything from here on you can do with ssh. (You could actually do most of the previous steps through ssh… but it’s *way* more convenient to have the keyboard / monitor)
Make sure you can connect from the laptop:
$ ssh –l pi
Note: unlike the regular spreadpi distro, this one does NOT have the ‘spreads’ user.
Log in as the ‘pi’ user, password ‘raspberry’.

Set up spreads

In the directory /home/pi/spreads-src, there is spreads.tar.gz
Uncompress it (tar xzvf spreads.tar.gz) , it will create a new dir (on ours, ‘spreads-0.5git20150611.c802’)
In that directory is a file, “README.rst”. Take a look through it; we want to set up the Web interface, which starts with installing system dependencies:
$ sudo apt-get install python2.7-dev python-pip build-essential pkg-config libffi-dev libturbojpeg-dev libmagickwand-dev python-cffi
(Hmm. “Unable to locate package libturbojpeg-dev”….)

The quest continues….

This is (obviously) a work in progress. The final piece of this puzzle is getting spreads running on the Pi2, which I think is very close now. This page will be updated as I figure things out….

public/nnels/production_centre_diy.txt · Last modified: 2020/07/20 13:42 by jonathan.schatz