digital image processing, PDF, OCR, Mac, Windows, Linux, Open Source
all made for you in Berlin, Germany.


SANE backend for Avision scanners

The SANE/Avision backend is a high quality SANE scanner driver, supporting a wide range of original Avision as well as Avision OEM scanners. Commonly known OEM scanner include Visioneer, Xerox, Hewlett-Packard (HP 53xx, 74xx and 82xx series), Kodak ixx series, Fujitsu ScanPartner, Mitsubishi sheet-feed scanners as well as Minolta film-scanner.


A short list of the most important features:
all scan-modi ("Line Art", "Dithered", "Gray", "Color", "16bit-Gray" and "16bit-Color")
all resolutions up to whatever the scanner reports as optical resolution (please only use the common modes [like 400 or 600] or you'll get scanner - interpolated images with some artifacts ...)
gamma-table for color-correction in the scanner using the full internal color range
hardware color calibration - for high-precision color correction in scanner
various ADF models including duplex scans are supported
film-scannners support
transparency adapters are supported
first SANE backend with support for monitoring scanner buttons!
fully endianess safe: runs on every day production use on PowerPC, Ultra SPARC and MIPS Linux systems!
In theory all original as well OEM Avision SCSI and USB scanners should work just fine; practice may differ.


Over the last years performance was improved for latest high speed duplex scanners, several new hardware features supported, error conditions handled more gracefully, and driver hooks added for auto-crop & de-skew. Support was added for about hundred new scanners.

In the past year work was done on various fronts, including support for various variants of duplex feeders and many more devices, including the last Minolta Dimage Elite 5400 film scanners.

A lot work as done for better ADF support including duplex scans. A lot of new scanner IDs have been added to the driver (HP 82xx series, Kodak ixx series as well as many many others) and support for USB 2.0 scanners has been added.

The work to support the HP 5370 continued. Various improvements to support the Fujitsu sheet-feed scanners and to fix the support for the HP ScanJet 7400 series and Minolta film-scanners.

Franz Bakan fixed the thread handling for OS/2 and Roberto Di Cosmo sponsored a HP 5370!

The backend got extended to support direct USB access. The hpusbscsi module is no longer needed and considered obsolete. The new user-space USB code should work for all platform where libusb is available - and the solution should become more stable, since the hpusbscsi module was quite touchy when it didn't like some bits.

Compusoft, C.A. Caracas / Venezuela sponsored a HP 7450 scanner and so opened the possibility for proper ADF and calibration support for this kind of Avision ASIC!


Oliver Neukum sponsored a HP 5300 scanner and after two days the Avision backend was able to handle it!
Frank Zago contributed code to recognize and use Mitsubishi sheet-feed scanners.
Jose Paulo Moitinho de Almeida and me worked on the calibration algorithm.
Avision INC sponsored an AV 8000 (A3 size with ADF) for driver development!!! - Many thanks.

Some people found out that some HP USB scanner (HP 53xx and HP 74xx series) are Avision OEM scanners labelled by HP. So people started to ask for an modified backend to support this scanners. But since I did not had one it usually ended in oopsing kernels and endless debug message email handlind ... I asked HP at the CeBIT 2001 if they could provide a scanner for driver development. They tried to organize one - but going from manager to manager, they where not able to to this during one full year?!?
Jose Paulo Moitinho de Almeida started to contribute code to get his MINOLTA FS-V1 (aka: Dimage Scan Dual II) film-scanner to work with the Avision backend.

The Avision backend got included in SANE since the version 1.0.2 (Jan 2000 or so ...). So this page is only presenting some latest news, pictures and FAQs.

I bought a Avision AV630cs in 1997 because it is a really great scanner! But sometime later I completely switched to Linux. The problem was: There was no Avision support in SANE. SANE stands for Scanner Access Now Easy - a package of "scanner drivers" for Linux.


The open source version is included in the official SANE distribution for several years now.

If you need another new scanner supported, commercial support or have a special project, require more features please contact us.

Easy to use

Linux and scanning is difficult to use, isn't it?

No! Once configured (should be quite easy - or happen automatically on modern Linux distributions) it is as easy as it is in Apple's Mac OS or Microsoft's Windows.

It is also nice that you have the same Graphical User Interface regardless which hardware you are acutally using. In Windows for example you get a professional UI with one driver and a car-radio style toy with another. - In Linux you have the same professional User Interface for all scanners.

Other professional features are: a network server and backend for scanning from a remote scanner and a command-line tool, which allows the usage of the scanner from scripts.


Q: Does the backend support the scanner buttons?
A: Yes, the Avision backend was the first one introducing such a functionality. I implemented a tiny demo daemon and there is a graphical KDE systray program available as well.

Q: The backend report a wrong sheet size?
A: Some Avision scanners report no (AV 630) or a wrong scan-area. Use the "option force-a4" option in your sane config file (e.g. /usr/etc/sane.d/avision).

Q: Do the HP (53xx and 74xx series) or other Avision OEM scanner (such as the Minolta Dimage dia/film scanner or Xeros, Kodak, ... document scanner) work?
A: Yes. They should all work now. Only the 5370 has some image-corruption problems and the 7400 needs to be some tweaking for ADF. Please try the latest source available.

You also no longer need Oliver Neukum's hpusbscsi (SCSI emulation) kernel module. The backend now accesses the USB devices via the SANEi/USB and so via libusb.

Q: Does the Avision parallel scanners work?
A: No. I do not own a parallel-port-scanner and at this day of age they are not really important for us. I got private eMails from other people who try to log and "decypher" the parallel-port-traffic, but there is no useable code, yet.


It is always welcome if people report success or ideas for new features. Please also think about the possibility to donate to this project since developing such a high-quality and cross platform driver takes a lot of time.

Mailing list

To subscribe to the sane-avision mailing list, send a mail with the subject subscribe sane-avision to The list will get Subversion commit mails as well as milestone reports. In addition the list is open for general discussion and users are free to ask quetions, outline problems, ask for improvements or just report success.

Reporting bugs/problems

Since I have not all the hardware with all possible features, it might happens from time to time that the backend does not work optimal with a scanner - or maybe doesn't do anything with a new scanner at all.

The first step is to make sure you used the latest Backend version (where the problem might be already fixed). (See Getting the source and Compiling the latest Avision backend above.)

If the latest version still fails, you need to generate some debug information:
scanimage -l 5mm -t 5mm -x 15mm -y 15mm 2> scanner-name.log > scanner-name.png

(It is also possible to use any SANE based application (even GUI based like xscanimage, xsane or kooka) to generate the log. Simply start the GUI application in a xterm (or gnome-terminal, konsole, ...), do the "export SANE_DEBUG_AVISION=7" and start you GUI application in the same terminal)

And send a detailed textual (plain ASCII text please!) information about the problem, the log and image data (if any) to:


Supported devices by SANE/Avision Build: 900:

For an alternative, and up-to-date list please refer to our ExactScan site.


AV100CS (SCSI, untested)
AV100IIICS (SCSI, untested)
AV100S (SCSI, untested)
AV120 (USB, complete, USB ID: 0x0638,0x0A27, sheetfed scanner)
AV121 (USB, complete, USB ID: 0x0638,0x0A3C, sheetfed scanner)
AV122 (USB, complete, USB ID: 0x0638,0x0A33, sheetfed duplex scanner)
AV122 C2 (USB, good, USB ID: 0x0638,0x0A93, sheetfed duplex scanner)
AV176+ (USB, complete, USB sheetfed scanner)
AV186+ (USB, complete, USB sheetfed scanner)
AV1860 (USB, complete, USB sheetfed scanner + flatbed)
AV210 (USB, complete, USB ID: 0x0638,0x0A24, sheetfed scanner)
AV210 (USB, complete, USB ID: 0x0638,0x0A25, sheetfed scanner)
AV210C2 (USB, complete, USB ID: 0x0638,0x0A3A, sheetfed scanner)
AV210C2 (USB, complete, USB ID: 0x0638,0x0A3A, sheetfed scanner)
AV220 (USB, complete, USB ID: 0x0638,0x0A23, duplex! sheetfed scanner)
AV240SC (SCSI, untested)
AV260CS (SCSI, untested)
AV360CS (SCSI, untested)
AV363CS (SCSI, untested)
AV420CS (SCSI, untested)
AV6120 (SCSI, untested)
AV610 (USB, good, USB ID: 0x0638,0x0a19)
AV610C2 (USB, good, USB ID: 0x0638,0x0a5e)
AM3000 Series (USB, basic, USB ID: 0x0638,0x0a41, MFD)
DS610CU Scancopier (USB, good, USB ID: 0x0638,0x0a16, 1 pass, 600 dpi, A4)
AV620CS (SCSI, complete, 1 pass, 600 dpi)
AV620CS Plus (SCSI, complete, 1 pass, 1200 dpi)
AV630CS (SCSI, complete, 1 pass, 1200 dpi - regularly tested)
AV630CSL (SCSI, untested, 1 pass, 1200 dpi)
AV6240 (SCSI, complete, 1 pass, ??? dpi)
AV600U (USB, good, USB ID: 0x0638,0x0A13, 1 pass, 600 dpi)
AV600U Plus (USB, untested, USB ID: 0x0638,0x0A18, 1 pass, ??? dpi)
AV660S (SCSI, untested, 1 pass, ??? dpi)
AV680S (SCSI, untested, 1 pass, ??? dpi)
AV690U (SCSI, untested, 1 pass, 2400 dpi)
AV800S (SCSI, untested, 1 pass, ??? dpi)
AV810C (SCSI, untested, 1 pass, ??? dpi)
AV820 (SCSI, untested, 1 pass, ??? dpi)
AV820C (SCSI, complete, 1 pass, ??? dpi)
AV820C Plus (SCSI, complete, 1 pass, ??? dpi)
AV830C (SCSI, complete, 1 pass, ??? dpi)
AV830C Plus (SCSI, untested, 1 pass, ??? dpi)
AV880 (SCSI, untested, 1 pass, ??? dpi)
AV880C (SCSI, untested, 1 pass, ??? dpi)
AV3200C (SCSI, complete, 1 pass, ??? dpi)
AV3800C (SCSI, complete, 1 pass, ??? dpi)
AV3850SU (USB, complete, USB ID: 0x0638,0x0a66, 1 pass, ??? dpi)
FB6000E (SCSI, complete, 1 pass, 1200 dpi, A3 - duplex! - zero edge!)
FB6080E (USB, complete, USB ID: 0x0638,0x0a82, 1 pass, 1200 dpi, A3 - duplex! - zero edge!)
FB2080E (USB, good, USB ID: 0x0638,0xa84, 1 pass, 600 dpi, zero-edge)
AV8000S (SCSI, complete, 1 pass, 1200 dpi, A3 - regularly tested)
AV8300 (USB, complete, USB ID: 0x0638,0x0A40, 1 pass, 1200 dpi, A3 - duplex!)
AV8350 (USB, complete, USB ID: 0x0638,0x0A68, 1 pass, 1200 dpi, A3 - duplex!)
IT8300 (USB, good, USB ID: 0x0638,0x0A61, 1 pass, 1200 dpi, A3 - duplex!, LCD screen, paper sensors)
@V2500 (USB & network scanner)
@V5100 (USB & network scanner)
AVA3 (SCSI, basic, 1 pass, 600 dpi, A3)


ScanJet 5300C (USB, complete, USB ID: 0x03f0,0x0701, 1 pass, 2400 dpi - regularly tested - some FW revisions have x-axis image scaling problems over 1200 dpi)
ScanJet 5370C (USB, good, USB ID: 0x03f0,0x0701, 1 pass, 2400 dpi - some FW revisions have x-axis image scaling problems over 1200 dpi)
ScanJet 7400c (USB, good, USB ID: 0x03f0,0x0801, 1 pass, 2400 dpi - dual USB/SCSI interface)
ScanJet 7450c (USB, good, USB ID: 0x03f0,0x0801, 1 pass, 2400 dpi - dual USB/SCSI interface - regularly tested)
ScanJet 7490c (USB, good, USB ID: 0x03f0,0x0801, 1 pass, 1200 dpi - dual USB/SCSI interface)
ScanJet 8200 (USB, good, USB ID: 0x03f0,0x0b01, 1 pass, 4800 (?) dpi - USB 2.0)
ScanJet 8250 (USB, good, USB ID: 0x03f0,0x0b01, 1 pass, 4800 (?) dpi - USB 2.0)
ScanJet 8270 (USB, good, USB ID: 0x03f0,0x3905, 1 pass, 4800 (?) dpi - USB 2.0)
ScanJet 8290 (USB, good, USB ID: 0x03f0,0x0b01, 1 pass, 4800 (?) dpi - USB 2.0 and SCSI - only SCSI tested so far)
ScanJet 8390 (USB, good, USB ID: 0x03f0,0x3805, 1 pass, 4800 (?) dpi - USB 2.0)


Dimage Scan Dual I (SCSI, basic) Dimage Scan Dual II (USB, good, USB ID: 0x0638,0x026a, 1 pass, film-scanner)
Elite II (USB, untested, USB ID: 0x0686,0x4004, 1 pass, film-scanner)
Dimage Scan Dual III (USB, basic, USB ID: 0x0686,0x400d, 1 pass, film-scanner)
Dimage Scan Elite 5400 (USB, good,USB ID: 0x0686,0x400e, 1 pass, film-scanner)


SC-110 (USB, untested, USB ID: 0x0638,0x0a15)
SC-215 (USB, good, USB ID: 0x0638,0x0a16)


MCA-ADFC (SCSI, untested)
S1200C (SCSI, untested)
S600C (SCSI, untested)
SS600 (SCSI, good)


ScanPartner (SCSI, untested)
ScanPartner 10 (SCSI, untested)
ScanPartner 10C (SCSI, untested)
ScanPartner 15C (SCSI, untested)
ScanPartner 300C (SCSI, untested)
ScanPartner 600C (SCSI, untested)
ScanPartner 620C (SCSI, good)
ScanPartner Jr (SCSI, untested)
ScanStation (SCSI, untested)
fi-4010CU (USB, untested, USB ID: 0x04c5,0x1029)


i30 (USB, untested, USB ID: 0x040a,0x6001)
i40 (USB, good, USB ID: 0x040a,0x6002)
i50 (USB, untested, USB ID: 0x040a,0x6003)
i50 (USB, untested, USB ID: 0x040a,0x6003)
i60 (USB, untested, USB ID: 0x040a,0x6004)
i60 (USB, untested, USB ID: 0x040a,0x6004)
i80 (USB, good, USB ID: 0x040a,0x6005)


1200U (USB, untested, USB ID: 0x0638,0x0268)


DocuMate152 (USB, good, USB ID: 0x04a7,0x0477)
DocuMate250 (USB, good, USB ID: 0x04a7,0x0448)
DocuMate252 (USB, good, USB ID: 0x04a7,0x0449)
DocuMate262 (USB, good, USB ID: 0x04a7,0x044c)
DocuMate272 (USB, untested, USB ID: 0x04a7,0x0475)
DocuMate520 (USB, untested, USB ID: 0x04a7,0x0447)
DocuMate632 (USB, untested, USB ID: 0x04a7,0x0498)
DocuMate752 (USB, untested, USB ID: 0x04a7,0x0478)


Strobe XP 450 (USB, complete, USB ID: 0x04a7,0x0424, sheetfed scanner)
Patriot 430
Patriot 470
Patriot 680
Patriot 780


S700 Scancopier (USB, good, USB ID: 0x0638,0x0a16, 1 pass, 600 dpi, A4)


2000F (SCSI, basic, 1 pass, ??? dpi, A4)

If you have comments (e.g. about the quality state) for one of the scanners listed above please send us an e-mail. Thanks.

Scanners matching the following names, might/should also be supported: ArtiScan ProA3, FB1065, FB1265, PHI860S, PSDC SCSI, SCSI Scan 19200 and V6240. Please contact me if you want to try the code on one of them ...