The scanner drivers and front ends shipped with the LIDE 20 scanner are, like the scanners themselves, consumer products. This means that they are closed-source; the software has been compiled, which converts it from human-readable code written in programming languages like C and C++ into machine language, which is impossible to read or modify. When using this software, you’re stuck with what you get.
The software that the LIDE 20 ships with (ScanGear CS) is also very cautious – before a scan is ever started, the driver software checks the hardware of the scanner, to make sure that it is in good working order. If the drivers do not think that the scanner is working properly, they shut it down, ensuring that no further damage takes place. Unfortunately, these out of the box drivers interpret many of the modifications made to a scanner for photographic purposes as damage, and won’t work for scanner camera purposes. So we’ve got to find some other alternatives.
The VueScan application, a Hamrick software product, is a good beginners front end for scanner photography. VueScan is also closed source commercial software, but it is much more usable than ScanGear CS for the scanner photographer. For one thing, it allows a much greater control over the functions of the scanner. Because it is designed for imaging professionals, it allows you to access many features that ScanGear does not. For example, 16 bit per channel images can be captured, allowing for a greater tonal range in the scanned image. While VueScan still performs hardware checks at startup, it performs a lot fewer of them than ScanGear CS does. For example, as long as there is enough ambient light around the CIS sensor, a scanner with the lamp disabled will be recognized by VueScan. ScanGear CS will not recognize any scanner with the lamp removed. Still, VueScan can act flaky while working with extensively hacked scanners.
VueScan is a better solution than ScanGear CS, but it’s still not perfect. For an optimal scanner camera software solution, an open source system must be used. Open source software is not commercial. It is freely available to the public both in compiled and uncompiled versions. The writing of open source software is looked at as a hobby by some programmers, and as a moral obligation by others. The most well known piece of open source software is Linux, a popular version of the UNIX operating system.
The SANE (Scanner Access Now Easy) project is made up of a wide assortment of open source scanner back ends and front ends. All of the SANE drivers have been reverse-engineered by talented programmers who desired to use their scanners in unsupported operating systems. The source code to these drivers can be legally modified by any user with knowledge of the C programming language, and then recompiled into binary files understood by the computer. It’s difficult code, though – driver programming is one of the more difficult types of programming out there. Installation of the SANE software also requires a bit more system level knowledge than the average user possesses, although there are step-by-step installation guides available online.
Although the SANE system is more complex and difficult to install than either VueScan or ScanGear CS, it has many benefits. For example, it supports many different types of front-end applications.
The scanimage application is a command line interface for SANE devices included with the default SANE distribution. It allows any SANE supported scanner to be controlled from a UNIX shell, and can be accessed by any shell-scripted commands. This means that routines of performing scans can be coded easily and quickly, and that the data can be saved and analyzed in many different ways.
The SANE-TWAIN interface is another useful SANE front-end. It allows any TWAIN-compliant application, such as Photoshop, Illustrator, or the GIMP (Gnu IMage Processing) to use SANE devices via a comprehensive GUI. It’s easy to use and install, and allows for transparent access to the SANE drivers.
The true usefulness of the SANE drivers lies not in the front-end applications, but rather in the fact that the raw code for the back-end is open source. This means that the LIDE 20 driver itself can be modified and changed, allowing the scanner to perform functions that the manufacturer never intended.
Unfortunately, driver programming is a complex thing, and is an art in itself. Years of dedicated study are required before a programmer can successfully attempt to write a device driver from the ground up. However, those with a decent amount of programming skill can easily use a combination of detective work and intuitive guesswork in order to modify aspects of the SANE drivers.
I was able, with a bit of practice and programming study, to disable the calibration and error correction routines found in the driver for the Canon LIDE 20. This allowed me to use the more extensively modified scanners easily and effectively, and was vital in letting me create the higher quality photographs of the later-model scanner cameras.