SourceForge Logo

Home of HP 2200c Scanner SANE USB Scanner Driver

Status | Test it | Docs | Links

HP Scanjet 2200c

Current Status

This project is not needed anymore, the code has been incorporated in the official SANE distribution.

The development of the project is still in early alpha stage.

The source in CVS is now able to scan (100DPI).
Course calibration is done, and some part of the fine calibration.
The Gain Coefficient Data still needs to be calculated and stored before any
high-quality pictures can be scanned in 48bpp.

SANE backend for Epson1250 available

The Epson 1250 Perfection uses the same chip inside as the HP2200c, and a (sort of) working backend is available. Download it here. Follow the instructions in the INSTALL file

Test it !!

What you need for the test

SANE development headers
SANE backend
Netpbm Graphics tools and converters


All commands in this document must be executed as root. Watch out. As root you are able to destroy your Linux installation!!

Setup the device

(info from /usr/src/linux-2.4.8/Documentation/usb/scanner.txt)
Add a device for the USB scanner:
mknod /dev/usbscanner0 c 180 48

ln -s /dev/usbscanner0 /dev/usbscanner

Set appropriate permissions for /dev/usbscanner0.
Both read and write permissions are required for proper

chmod 666 /dev/usbscanner0

Insert HP2200c info into /etc/modules.conf

The standard usb scanner driver doesn't have the vendor and
product numbers compiled into it (at least not in Linux 2.4.8).
You need to inform them via modules.conf. Add the line
below to the end of the file:

options scanner vendor=0x3f0 product=0x605

It the usb scanner driver is already loaded, this will only
take effect after it is reloaded.

Load (or reload) your scanner driver

Check to see if the scanner driver is loaded:


Look for a module like below:
0 (unused)
ModuleSizeUsed by

If it exists, the module is loaded. You need to remove it
first, with the command:

rmmod scanner

Now load the module with the command:

modprobe -v scanner

You should see something similar to:

/sbin/insmod /lib/modules/2.4.8-26mdk/kernel/drivers/usb/scanner.o.gz
Using /lib/modules/2.4.8-26mdk/kernel/drivers/usb/scanner.o.gz
Symbol version prefix ''

Disconnect and reconnect your scanner

Reach for the USB cable at the back of your scanner.
Unplug it. Plug it.

Check the whole process with usbview

If you follow the process using usbview, and have your scanner plugged in,
you'll see it start as red in usbview and then change to
black after you complete the previous step

Get the source (The fun part)


cvs login
(Just hit return when prompted for a password)

Get source

cvs -z3 co sane

Compile it

Get in the lm983x directory
Type make
Note: It's possible sanei.h and sanei_config.h are not found.
You can find them in your sane-backends directory:
[Location where you unpacked it]/sane-backends-1.x.x/include/sane/

And copy them to:



	./lm9832 | rawtoppm 850 325 | ppmtojpeg > test.jpg
Or if you don't have/like ppmjpeg:

	./lm9832 | rawtoppm 850 325 | ppmquant 256 | ppmtogif > test.gif
And take a look at the test picture.
Actually the bulb has to warm up before the first scan (not implemented yet)
so you will get noticably different output from the test driver
the first, second and third times you run it.


National Semiconductor Twain Drivers

The Windows Twain driver sources donated from NS.


The actual chip used in the hp2200c scanner


Older version of the previous chip


This chip is not used in this scanner, but this doc is
good to have for reference when looking for differences)


Remarks, comments or updates about this page mail to: Olivier Van Acker