Here's the scanner first being assembled:
The completed scanner ready to scan:
The scanner on its new rolling stand:
The original LED light was replaced with a larger LED array. To avoid glare, the array is mounted perpendicularly so the long side is parallel with the spine of the book. All of the interior surfaces of the book scanner are painted black, to avoid casting reflections on the glass. The glass was taken from two flatbed scanners and cut down to size by hand.
We use two Canon cameras connected with USB to a computer and remote-controlled with a Python script that uses the gphoto2 library. You can find the full list of cameras supported by gphoto2 here. The pictures are transferred to the computer as soon as they are taken, rather than stored on an SD card.
The settings as of this revision are the following
mode: M aperture: F14 shutter: 1/20 ISO: auto zoom: 24mm stabilizer: on auto focus
The cameras are triggered by pressing the enter key on the computer keyboard.
A cool upgrade would be a foot switch to trigger the shutter. This would free up the operator's hands to be dedicated to the book parts. This could be a cheap MIDI keyboard sustain pedal or a guitar pedal type switch.
The scanning is handled by a Python script that uses gphoto2 to connect with the cameras and displays images of the scanned pages in an HTML view. Three USB ports are required for the monitoring computer: One each for the two cameras, and one for the keyboard or triggering mechanism. Post-processing is handled with ScanTailor, an OCR script using Tessaract, and various other scripts.
Live View is obtained through a utility called Darktable. It supports "tethering mode". It may even be possible to use Darktable as a complete book assembly application. Not sure yet.
Alternative for liveview from a python library http://magiclantern.wikia.com/wiki/Remote_control_with_PTP_and_Python
Step-by-step Bookscanner Instructions are available for anyone who would like to use the Bookscanner.