Android Book Scanner


Well, my original book scanner project sort of languished. I never got my platen design working really well, and I also never was able to make the CHDK microcode do everything I really wanted to do.


Now that high resolution android cameras are (possibly) coming, I've gotten interested in the idea of a scanner that has no complicated moving parts to build, but just takes pictures of open books on a table and mathematically flattens the pages. An android camera seems ideal for this sort of thing since it can be programmed to interact with book scanning software on a higher speed host system and transfer the images from the android device to the host over wi-fi while the scan is in progress. Android is a system that is intended to be programmed, unlike CHDK which is merely a heroic attempt to force something to be programmable which the manufacturer never indended to be programmable.

No cameras are actually available yet. The first to tease was Polaroid with the SC1630, but it never seemed to materialize.

Next came Nikon with the COOLPIX S800c. It has had an official announcement, and you can even preorder it, but no actual cameras have yet arrived in stores (the rumor is sometime in September of 2012 though, which is this month as I write this paragraph). [It did indeed become available near the end of September, and I even got one, and have now played around with it long enough to be disappointed :-]

Probably to discourage potential early adopters from rushing to buy a Nikon, Samsung made their announcement right after Nikon, but it does not appear possible to locate an actual official samsung web page for the EK-GC100 Galaxy Camera, so I had to go with a link to the engadget article. (Actually, the Samsung India web site has this link, so maybe it is being released in India first). Several weeks after the announcement, and Samsung finally has a Galaxy Camera web page up on their USA site.

Anyway, whichever cameras really arrive, it does seem likely that android cameras will exist, and (you would hope) conform to the standard android Camera APIs (with maybe custom access to extra parameters you can tweak). This gives me a chance to experiment with android programs for fiddling with cameras by using my phone (probably too low resolution for legit scanning activity, but I can test the software on it).


While this new attempt at a scanner will use simpler hardware, it won't be hardware free. I still need lights and something to hold the book open. The idea of mathematically flattening pages is appealing theoretically, but practically, all the paperback books I have like to spring shut, so I can't just lay them open nicely under the camera, and a piece of glass can hold it flat at the same time it holds it open :-).

I'm starting to think of a single page at a time scanner rig with a piece of glass I can lay on the page I'm scanning and some sort of jig to hold the other page open at a little more than 90 degrees to give the camera clear access to the page being photographed. The simplest way to use this would be to go through the odd pages first, then flip the book over and go through the even pages. Photographing just one page at a time might even mean that my phone could be an effective scanner for small books like paperbacks (it has a 5 megapixel camera).

I checked at a picture framing store near work, and was able to pick up a small piece of Museum Glass for $4. It is plenty big enough to cover the page of a paperback, so it will work fine till I have much bigger books I want to scan. A little (careful) work with a sanding block and medium sandpaper eliminated the razor sharp edges, so it is now safe to handle.

I'll also need lights, and I had bought some Cree LEDs and a BuckPuck when working on my old scanner, but never got around to wiring them up. I have now breadboarded that setup and find that 4 LEDs in series can be driven incredibly brightly by the BuckPuck with a 20 or 25 volt power supply.


I plan to stick the LEDs on small squares of aluminum stock I have around (to act as a heat sink and give me something substantial to grab), and attach the squares to some stiff copper wires so I can bend the wires and position the lights pretty much anywhere to adjust things for the best illumination with minimum reflections. I may decide to stick 1/2 of a Styrofoam ball in front of each LED as a diffuser if the bare LEDs seem too bright and harsh.


Once I get this much rigged up, I should be able to experiment with my phone, and worry about getting a better camera when android cameras finally appear in stores (I have to admit that Samsung's strategy of trying to steal Nikon's thunder is working on me. I like the idea of the more modern Android version as well as the bluetooth support and larger brighter screen in the Samsung.)

Anyway, back to mundane stuff like continuing to get the lights rigged, I've now mounted all 4 LEDs on bendable copper wire stalks:

Here you can see a closeup of the LED. I put a tiny blob of heatsink compound on the back of the LED modules before screwing them to the aluminum:

Here are some other angles of the LED mounting:


Next, I need to get all four stalks mounted and the LEDs wired up in series for the BuckPuck to drive. Here's the first cut:

In a wider view you can see the BuckPuck wired up with the pot for brightness adjustment breadboarded into the circuit:

And here is the whole ridiculous kit and kaboodle with the LEDs off, dim, and fully bright (of course a photo doesn't do justice to the eye searing effect of the fully bright LEDs, but you can definitely tell there is a difference).



This definitely needs work. The wire I used isn't stiff enough and the lights wobble all over the place. I need to tie in some much stiffer wire I have to do coarse adjustments, then leave just a little of the existing thin wire free at the end for fine adjustment of the light position. I probably don't really need the wires to be that long either, so I can shorten them up a bit in the next round of tweaks.

Here's the bigger wires pressed into holes drilled in my hunk of 2x4 and wire tied to the skinny wires:

I also shortened the existing stalks a bit and tied up the excess LED wires:

And here's what the whole thing looks like. Note that the stalks are standing much straighter now:

I've now put all the components together in a project box and found a nice 24V switching power supply to use. I've got a socket to plug in an external switch that can turn on the high beams, so if I want to trigger lights from the scanner mechanism I eventually come up with, I can (all it needs is a normally closed circuit to go open).

I think that does it for lights. Now I need to think more about a rig to hold books with one page open flat under the camera (or in my case, phone till I get a better android camera).

Well, I haven't gotten any real book holder put together yet, but the Nikon COOLPIX S800c camera arrived, and I hacked together a quick test rig to see if things look promising. Here's the front side and back views of my kludgery:



And here's a cropped, rotated, and scaled down image of the page I photographed (click on the image to get the full scale raw photo):

Even scaled down the characters seem pretty crisp, so I suspect this will be a decent camera for book scanning. I'm sure in the final version I can position the LEDs to get a bit more uniform illumination and reduce the shadows and get even better page images.


The Andy Scan web page has the details of the operation of the (by no means complete) program I am working on to take advantage of android cameras for book scanning purposes. It also has a link to the binary .apk file if you really want to play with it.

Chapter 6 of my mythical android programming book talks about the design of the internals and has links to the source code.

Page last modified Mon Oct 22 20:54:29 2012