Posted by khk


My scanner is not listed as supported, what are the chances that it will work?

Pretty good actually. EPSON is using the same set of sanner commands for almost all of their scanners. The backend does support all revisions of this command set up to the current level. Just connect your scanner and give it a try. If it’s a USB scanner, then it’s of course necessary to manually specify the vendor and product IDs.

It is however possible that especially for older devices the backend will not recognize the device ID string that the scanner sends back.

If you run into any problems, please get in touch with me and I’ll try to implement the necessary fixes.

My scanner does not work, I think I did everything that is necessary, but I end up getting an error message on the console. What can I do?

You can enable the debugging messages in the backend and send them to me. To enable debugging you have to set an environment variable:


nnn can be anything between 0 and 128, the higher the number, the more output the software will generate.

In the highest setting the debug log will contain all the information that was sent between the scanner and the software, which is usually what I want.

After setting this variable the frontend software will write this debugging output to stdout and stderr. To capture this in a file it is necessary to “redirect” the output. Here is the command to do this for xscanimage – just replace the frontend name with whatever you are using:

   xscanimage > /tmp/scan.log 2>&1

Please make sure that you first contact me before you sent a huge log file. Usually it’s possible to remove the image data from the log.

… and just one more comment: The two commands I’ve listed will only work with the BASH shell.

My USB scanner is not working. Is there anything I can do?

Sure, but “is not working” is a pretty broad description. Can you give me more details about what is not working and if you receive any messages on the console or in the terminal in which you started the frontend or if the frontend displays anything. You get the picture …

I am getting USB timeout messages in my console window when I try to scan with the TPU. How can I use the TPU as an input device?

There is a problem with the USB scanner driver. It times out way too fast for the EPSON scanners (esp. with the TPU attached). When you scan from the TPU then the scanner needs more time until it sends the first data bytes, and the USB scanner driver interprets this as an error condition. You can patch this driver if you want to recompile your kernel: Edit the file linux/driver/usb/scanner.h and look for the following macro definition:

#define RD_NAK_TIMEOUT (10*HZ) Just change the “10” to “20” and recompile everything. Now the TPU should work without any problems. For some scanners it may be necessary to go even higher than 20 seconds, so try 40. This comes with one drawback: If you want to cancel a scan operation with Ctrl-C, then it will take the number of seconds to actually finish, so if you specify 40 seconds, then you will have to wait 40 seconds after a Ctrl-C, the computer will look like it’s not reacting to the cancel, don’t give up – it will finally cancel the operation.

With newer 2.4.x kernels it is no longer necessary to edit the sources, you can now modify the timeout value through a module parameter. But even this is not necessary for EPSON scanners: Every device with the EPSON vendor ID gets a 40 second timeout automatically.

This worked fine with my older Perfection 1240, but now the Perfection 1640 or 1650 shows this problem again. I do have the long timeout in my kernel. What’s the problem?

The timeout value still has to be increased. The time the scanner needs to complete some operations depends on the resolution and the bit depth. For the newer 1600dpi models it seems to be necessary to increase the timeout to 80 seconds.

I’ve modified the timeout, but my scanner still does not work. Is there anything else that could be wrong?

It is very likely that you are not running the latest – or a fairly new – version of Sane or the EPSON backend. SuSE 7.0 e.g. ships with Sane 1.0.2, which was released right when I finished the USB support. Please upgrade to the latest version you can get. Make sure that you remove the installed version before you install a new version of Sane.

I give up, my USB scanner still does not work. From the debugging output it even looks like the EPSON backend is never called. What is wrong?

I should probably have mentioned this as my first tip… With the current USB scanner driver it is not possible to query the scanner about it’s vendor and product ID, the backend has to send commands to the scanner and wait for a response. This of course causes problems if e.g. the HP backend assumes that it’s dealing with a HP scanner and therefore sends HP scanner commands. The EPSON scanner that is connected receives what it considers “garbage” and of course will not reply. If the backend now waits for a response, it will wait forever. It is also possible, that this “garbage” screws up the EPSON scanner. To avoid this situation comment out all backends in dll.conf but the line containing “epson”.

I am still getting NAKs, and I have a new kernel and a new Sane. I am running SuSE 7.1 that comes with the latest and greatest versions of all the software.

You have to configure SuSE’s usbmgr, please see my SuSE 7.1 instructions for more information.

With my Perfection610 I only have two gamma settings. Why did you not implement more choices as e.g. for the Perfection1200?

Ask EPSON 🙂 EPSON uses the same command set for all their scanners. Some scanners can deal with more options than others. The Perfection610 is a very basic model, therefore it can not do some of the things that the other scanners do. E.g. The Perfection1200 allows all bit depths from 1 to 8, the 610 only allows 1 and 8. The same goes for the gamma correction. The Perfection1200 has some other settings that are preset for certain output methods (e.g. inkjet printers).

You don’t need these however, they are just to make things more conveniant for the user: The user defined settings will eventually result in a gamma curve (256 values) to be sent to the scanner, so you can pretty much do whatever you want with the scanner. The 1.0 or 1.8 settings define just the base to which the curve is applied.

In xsane you can not really create a curve, you are limited to “real” gamma settings, which will then internally be converted to a curve. So if you move the gamma slider, then the application will translate the gamma value into a gamma curve and send this to the scanner. Xscanimage allows you to graphically manipulate a “real” curve, and you can create some strange effects.

The key is that the frontend software can determine if a “user defined” gamma curve is available. This has advantages over applying the gamma correction after the scan in the frontend: The scanner will use the raw image data, which in your case is 3×12 bits instead of the 3×8 bits that you get once the data leaves the scanner.

Can I use the transparency unit (TPU) or the document feeder (ADF) with my scanner?

Yes. For all scanners that have one of the “optional equipment” installed you will see a “Scan source” option that let’s you select either Flatbed, TPU or ADF – of course, you can only select those options which are actually installed.

What is the “Quick format” option in the “Geometry” section?

This allows you to select one of the pre-defined formats with just one mouse click.

My Expression1600 or 1680 works fine most of the time, but with some settings the scanner reports an error. What is wrong?

Nothing. There is a limitation of the scan area when you select a high resolution with 42/48 bits color depth. This should usually not cause any problems, it only effects hight resolution scanning, which is only necessary for slide or negative scanning. And then the images are relatively small. You should never need a full letter (or A4) sized scan in the highest possible resolution anyways. If you think you need to scan a photograph in 1600dpi, you should read an introduction into scanning (for example the excellent Scan Tips site).

How can I scan negatives and get rid of the orange background?

See my page about negative scanning with Gimp for some instructions.

I have a Perfection 1650, why does SANE report it as a GT-8700? Is this a problem?

First of all, this is not a problem: Your scanner will work the same. The GT-XXXX is the internal name that is used by the scanner. It’s also the name under which the device is sold in the Asian market. EPSON just saves some money by not having to create two different firmware versions. The Windows or Mac users never see this internal name, but because we don’t have one backend for every market region/scanner combination, you will see this internal name.