Supported scanners
Getting it working
USB scanners
Known problems

SANE homepage

SnapScan Backend for SANE

This page provides information on the SnapScan Backend for SANE. This driver is compatible with a wide range of scanners from Afga, Acer, Benq, Vuego, Epson, Guillemot, Hercules and Mitsubishi.

Agfa has released the specs for their older SCSI scanner models. Other vendors have released no specs at all, so it is usually not possible to support all features of every scanner.

We used information provided by many existing web site to try to create an exhaustive page. Thanks to the original authors.

If you're looking for Windows drivers for your scanner please contact the vendors (Agfa, Acer / Benq, Epson) of your scanner directly. Please don't send me emails relating to Windows drivers.


  • 11/27/05: Benq 5000 (USB Id 0x04a5, 0x20f8) now working
  • 11/13/05: 16 bit support for Epson 2480 and 3490 added
  • 08/16/05: Added support for Epson 3490/3590
  • 02/09/04: Added support for Epson 2480 / 2580
  • 01/12/04: Added support for Epson 1270

Supported Scanners

Here is a list of scanners that have at least worked at one time in the past. I'd like to complete this list, so if you own one of the scanners below and there's a blank field, please send me a mail .

Benq (formerly known as Acer Peripherals) sell their scanners under a number of names, e.g. Vuego, Scan2Web, ScanPrisa and possibly others. The important part of the model name is the number which you'll find in the table below.

Parallel port scanners by Agfa use an unknown protocol for communication. There are currently no plans to support these scanners.

If you own a SCSI or USB scanner form Acer, Benq or Agfa which is not listed on this page and you're willing to run some tests, please send me a mail.
ID String 
(after firmware upload)
Firmware file
Acer / Benq 300f SCSI - "ACERSCAN_A4____1" -  
Acer / Benq 310s SCSI - "FlatbedScanner_2" -  
Acer / Benq 610s SCSI - "FlatbedScanner_4" -  
Acer / Benq 620S SCSI - "FlatbedScanner_9"
Acer / Benq 620ST SCSI - "FlatbedScanner_9"
- Transparency adapter supported
Acer / Benq 620+ SCSI - ?
Acer / Benq 640s SCSI - "FlatbedScanner18" -  
Acer / Benq
0x04a5, 0x1a20

Acer / Benq 320U USB 0x04a5, 0x2022
Acer / Benq 340U USB 0x04a5, 0x2022
"FlatbedScanner13" u34v110.bin
Acer / Benq 620U USB 0x04a5, 0x1a2a
0x04a5, 0x2040
Acer / Benq 620UT USB 0x04a5, 0x2040 "FlatbedScanner16" u64v120.bin Transparency adapter supported
Acer / Benq 640U USB 0x04a5, 0x2060 "FlatbedScanner20" u96v121.bin  
Acer / Benq 640UT USB ?
u64v120.bin Transparency adapter supported
Acer / Benq 640BU USB 0x04a5, 0x207e "FlatbedScanner13"
Acer / Benq 640BT
0x04a5, 0x20be
Transparency adapter supported
Acer / Benq 1240 USB 0x04a5, 0x20c0 "FlatbedScanner19" u192v074.bin  
Acer / Benq
3300 / 4300
0x04a5, 0x20b0

Acer / Benq 3300 / 4300 USB 0x04a5, 0x20de
0x04a5, 0x20fc
Working up to 600 DPI
0x04a5, 0x20fc
Same as 5000E?
0x04a5, 0x20f8
Requires sane-backends 1.0.16 or later
Benq 5300 USB 0x04a5, 0x20fe
"FlatbedScanner24" u254v042.bin
Problems with firmware upload reported
Agfa SnapScan 300 SCSI - "SNAPSCAN 300" -  
Agfa SnapScan 310s SCSI - "SNAPSCAN 310" -  
Agfa SnapScan 600 SCSI - "SNAPSCAN 600" -  
Agfa SnapScan 1236s SCSI - "SNAPSCAN 1236" -  
Agfa SnapScan 1236u USB 0x06bd, 0x0002 "SNAPSCAN 1236U" ?
Agfa SnapScan 1212U USB 0x06bd, 0x0001
0x06bd, 0x2061
"SNAPSCAN 1212U_2"
not necessary(?)
Snapscan 1212U_2.bin

Remove spaces from firmware filename!
SnapScan e10
0x06bd, 0x2093
Agfa SnapScan e20 USB 0x06bd, 0x2091 "SNAPSCAN e20" Snapscan e20.bin Remove spaces from firmware filename!
Agfa SnapScan e25 USB 0x06bd, 0x2095 "SNAPSCAN e25" snape25.bin  
Agfa SnapScan e26 USB 0x06bd, 0x2097 "SNAPSCAN e26" snape26.bin Some models don't need firmware upload
Agfa SnapScan e40 USB 0x06bd, 0x208d "SNAPSCAN e40" snape40.bin  
Agfa SnapScan e42 USB 0x06bd, 0x20ff "SNAPSCAN e42" snape42.bin quality calibration not working as specified
Agfa SnapScan e50 USB 0x06bd, 0x208f "SNAPSCAN e50" snape50.bin  
Agfa SnapScan e52 USB 0x06bd, 0x20fd "SNAPSCAN e52" snape52.bin quality calibration not working as specified
Arcus 1200
Perfection 660
0x04b8, 0x0114
"Perfection 660"
Some models don't need firmware upload
Perfection 1270
0x04b8, 0x0120
"Epson Scanner1"
Added in SANE-backends-1.0.15-CVS
Perfection 1670
0x04b8, 0x011f
"Epson Scanner"
Added in SANE-backends-1.0.13
Epson Perfection 2480
0x04b8, 0x0121
"Epson Scanner1" esfw41.bin
Added in SANE-backends-1.0.14-CVS
Needs firmware version > 1.16 (Oct 28 2004) to make transparency adapter work
Epson Perfection 2580
0x04b8, 0x0121
"Epson Scanner1" esfw41.bin
Problems reported, solution pending
Perfection 3490
0x04b8, 0x0122
"Epson Scanner2"
added in SANE-backends-1.0.16-CVS
Perfection 3590
0x04b8, ???
"Epson Scanner2"
unested, added in SANE-backends-1.0.16-CVS
Guillemot / Hercules MaxiScan A4 Deluxe SCSI  
"FlatbedScanner_9" -
Relabeled Acer 620S
Guillemot / Hercules
Scan @home Touch 1248
0x04a5, 0x20de
Relabeled Acer 3300
Guillemot / Hercules
Maxi A4 36bit
0x04a5, 0x2060
Relabeled Benq 620U, needs firmware from Benq
Diamondview 648UT
Relabeled Acer 320
Diamondview 650U
0x04a5, 0x20b0
Relabeled Acer 4300

Note:  The Agfa SnapScan Touch uses a different protocol and will not be supported by the Snapscan backend. It may possibly be supported by the HP3300 backend (see the SourceForge  project and Bertrik Sikkens  homepage for more information.

Getting it working

Get the latest version of SANE from the SANE homepage. Development of the SnapScan backend is now done in SANE CVS, so there's no need to download a separate source package for the backend anymore.

To correctly install your scanner, you should 
  1. detect your scanner device
  2. machine# tools/find-scanner
       find-scanner: found scanner "AGFA SNAPSCAN 310 1.20" at device
  3. if you want your scanner to be recognized easily, create a link. For SCSI scanners use:
  4. machine# ln -s /dev/XXXXX /dev/scanner
    For USB scanners use:
    machine# ln -s /dev/XXXXX /dev/usbscanner
  5. you should now scan using xscanimage
  6. machine$ xscanimage

USB scanners

For USB scanners, you need  libusb or the USB scanner module. Somewhere in the future the support for the scanner module will probably be dropped in favour of libusb.


If you use libusb, make sure you don't have the scanner module loaded ("rmmod scanner"). Your distribution may have installed a hotplug manager that loads the module again once the scanner is detected. In this case you should find the configuration file for the hotplug manager and change it accordingly.
Also make sure that you have read/write access to the files in /proc/bus/usb/001/*. The scanner will be autodetected, be sure to remove any device filename entry from snapscan.conf.

Scanner module

The scanner module can be found in recent 2.3+ kernel versions. During kernel configuration, you have to say "m" to option CONFIG_USB_SCANNER. 

The module needs to detect your scanner. It will prompt for known scanners during initialization automatically, but some newer scanner won't be found. To find out if the module detected your scanner, examine the output of "cat /proc/bus/usb/devices".  You should see an entry like this:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1
P:  Vendor=04a5 ProdID=2040 Rev= 1.00
S:  Manufacturer=Color
S:  Product= FlatbedScanner 13
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbscanner
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=   8 Ivl=  0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl= 16ms
If the module didn't detect your scanner, the line starting with I: will "read Driver=(none)" instead. In this case you have to supply the vendor and product ID during module loading. Either specify vendor and product ID directly during modprobe, e.g.:
modprobe  scanner vendor=0xVVVV product=0xPPPP
or (more convenient) put the options in /etc/modules.conf:
options scanner vendor=0xVVVV product=0xPPPP
Some additional general hints for configuration of USB devices in SANE can be found in the sane-usb manpage.

Scanner firmware

Most USB models need a firmware upload in order to work (see table above). The bin file can be found in the windows drivers coming with your scanner. For scanners from Acer / Benq the last three digits of the firmware file depend on the version of your driver CD. The files listed in the table are known to work, other versions will probably work as well.

If you have a scanner from Acer or Benq and are uncertain which firmware file to use, run " acerfirm  -q".

You have to specify the firmware file in snapscan.conf, which can usually be found in /usr/local/etc/sane.d/ if you compiled SANE yourself or /etc/sane.d if you installed SANE from your distribution. The line should start with 'firmware' and contain the fully qualified path to your firmware file, e.g.
firmware /path/to/my/firmware.bin
You can also upload the firmware to your scanner manually. You need to launch one of agfafirm or acerfirm perl scripts:
acerfirm /dev/usbscanner u34v101.bin
Note: acerfirm and agfafirm will only work if you use the scanner module to access your USB scanner. It does not work with libusb.

The original version of agfafirm can be found at Henri's page

Known problems

Here is a list of known problems that will probably be solved in future releases or that need to be confirmed by users:
  • My snapscan model is not recognized 

  • "export SANE_DEBUG_SNAPSCAN=2" to see error messages. If you get this message:
    "XXX YYY" is not one of AGFA SnapScan 300, 310, 600 or 1236s, Acer
    VUEGO 300f, 310S, 610S, or 610plus, Acer PRISA model 620S
    please submit XXX YYY and your scanner model number to the bug system so we can add it to the driver.
  • For any other problem, make sure you have read SANE FAQ then fill a bug . Please try to supply important information like: Vendor, Model, sane version, snapscan version, detailed description of the problem...

SourceForge Logo Last updated: June 25, 2004
Oliver Schwartz <>