sane-plustek(5)

NAME
sane-plustek - SANE backend for Plustek parallel port and LM983[1/2/3] based USB flatbed scanners

DESCRIPTION
The sane-plustek library implements a SANE (Scanner Access Now Easy) backend that provides access to Plustek parallel port and USB flatbed scanners. The USB support is part of the SANE package but for usage with parallel port scanners you will need a kernel module, called pt_drv which currently can be downloaded from
http://www.gjaeger.de/scanner/plustek.html

!!!Please note that you need the kernel module only for parallel port scanners!!!

PARALLEL PORT SUPPORT
At present, the following scanners should work with this backend and the corresponding kernel module:

PLUSTEK SCANNERS

Parallelport Model: ASIC: Properties:
---------------------- ----- ------------------------
OpticPro PT12 98003 600x1200 dpi 36bit 512Kb
OpticPro P12 98003 600x1200 dpi 36bit 512Kb
OpticPro 9636T/12000T 98001 600x1200 dpi 36bit 512Kb
OpticPro 12000P Turbo 98001 600x1200 dpi 36bit 512Kb
OpticPro 9636P+/Turbo 98001 600x1200 dpi 36bit 512Kb
OpticPro 9636P 96003 600x1200 dpi 36bit 128Kb
OpticPro 12000P/96000P 96003 600x1200 dpi 36bit 128Kb
OpticPro 1236P 96003 600x1200 dpi 30bit 128Kb
OpticPro 9600P 96003 600x1200 dpi 30bit 128Kb
OpticPro 9630P/FBIV 96003 600x1200 dpi 30bit 128Kb
OpticPro 9630PL (14") 96003 600x1200 dpi 30bit 128Kb
OpticPro A3I 96003 400x800 dpi 36bit 128Kb
OpticPro 600P/6000P 96003 300x600 dpi 30bit 32Kb
OpticPro 4831P 96003 300x600 dpi 30bit 32Kb
OpticPro 4830P/FBIII 96003 300x600 dpi 30bit 32Kb
OpticPro 4800P/FBII 96001 300x600 dpi 24bit 32Kb

PRIMAX SCANNERS There are some scanners sold by Primax, but they are in fact Plustek devices. These scanners are also supported. The following table will show the relationship:

Model: Plustek Model: Remarks:
--------------------------- -------------- ------------
Colorado 4800 OpticPro 4800 not tested
Compact 4800 Direct OpticPro 600 mov=2
Compact 4800 Direct 30bit OpticPro 4830 not tested
Compact 9600 Direct 30bit OpticPro 9630 works

GENIUS SCANNERS The following devices are sold as Genius Scanners, but are in fact Plustek devices. The table will show the relationship:

Model: Remarks:
--------------------------- ----------------------------
Colorpage Vivid III V2 Like P12 but has two buttons
                        and Wolfson DAC

ARIES SCANNERS There's one scanner sold as Aries Scanner, but is in fact a Plustek device. The following table will show the relationship:

Model: Plustek Model: Remarks:
--------------------------- -------------- ------------
Scan-It 4800 OpticPro 600 mov=2

BrightScan SCANNERS There's one scanner sold as BrightScan OpticPro Scanner, this is also rebadged Plustek device. The following table will show the relationship:

Model: Remarks:
--------------------------- ----------------------------
BrightScan OpticPro OpticPro P12

USB SUPPORT
The Backend is able to support USB scanner based on the National Semiconductor chipset LM9831, LM9832 and LM9833. The following tables show various devices which are currently reported to work. If your Plustek scanner has another Product ID, then the device is NOT supported, as it contains unsupported ASICs inside.
Vendor Plustek - ID: 0x07B3
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
OpticPro U12 LM9831 600x1200dpi 42bit 512Kb 0x0010
OpticPro UT12 LM9831 600x1200dpi 42bit 512Kb 0x0013
OpticPro UT12 LM9832 600x1200dpi 42bit 512Kb 0x0017
OpticPro UT16 LM9832 600x1200dpi 42bit 512Kb 0x0017
OpticPro U24 LM9831 1200x2400dpi 42bit 2Mb 0x0011
OpticPro U24 LM9832 1200x2400dpi 42bit 2Mb 0x0015
OpticPro UT24 LM9832 1200x2400dpi 42bit 2Mb 0x0017

Vendor KYE/Genius - ID: 0x0458
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
Colorpage HR6 V2 LM9832 600x1200dpi 42bit 512Kb 0x2007
Colorpage HR6 V2 LM9832 600x1200dpi 42bit 512Kb 0x2008
Colorpage HR6A LM9832 600x1200dpi 42bit 512Kb 0x2009
Colorpage HR7 LM9832 600x1200dpi 42bit 512Kb 0x2013
Colorpage HR7LE LM9832 600x1200dpi 42bit 512Kb 0x2015
Colorpage HR6X LM9832 600x1200dpi 42bit 512Kb 0x2016

Vendor Hewlett-Packard - ID: 0x03F0
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
ScanJet 2100C LM9831 600x1200dpi 42bit 512Kb 0x0505
ScanJet 2200C LM9832 600x1200dpi 42bit 512Kb 0x0605

Vendor Mustek - ID: 0x0400
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
BearPaw 1200 LM9831 600x1200dpi 42bit 512Kb 0x1000
BearPaw 2400 LM9832 1200x2400dpi 42bit 2Mb 0x1001

Vendor UMAX - ID: 0x1606
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
UMAX 3400/2420 LM9832 600x1200dpi 42bit 512Kb 0x0060
UMAX 5400 LM9832 1200x2400dpi 42bit 512Kb 0x0160

Vendor Epson - ID: 0x04B8
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
Perfection 1250 LM9832 1200x2400dpi 42bit 512Kb 0x010F
Perfection 1260 LM9832 1200x2400dpi 42bit 512Kb 0x011D

Vendor CANON - ID: 0x04A9
----------------------------------------------------------
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
CanoScan N650/656U LM9832 600x1200dpi 42bit 512Kb 0x2206
CanoScan N1220U LM9832 1200x2400dpi 42bit 512Kb 0x2207
CanoScan N670/676U LM9833 600x1200dpi 48bit 512Kb 0x220D
CanoScan N1240U LM9833 1200x2400dpi 48bit 512Kb 0x220E
CanoScan LIDE20 LM9833 600x1200dpi 48bit 512Kb 0x220D
CanoScan LIDE30 LM9833 1200x2400dpi 48bit 512Kb 0x220E

OTHER PLUSTEK SCANNERS
The SCSI scanner OpticPro 19200S is a rebadged Artec AM12S scanner and is supported by the Artec backend.
Only the National Semiconductor LM9831/2 based devices of Plustek are supported by this driver. Older versions of the U12, the UT12, the U1212 and U1248 (GrandTech chipset are not supported)

DEVICE NAMES
This backend expects a default device called:

    /dev/pt_drv

This default device will be used, if no configuration file can be found.

The device-driver is currently not part of the SANE distribution. It has to be downloaded from:
http://www.gjaeger.de/scanner/plustek.html
See the INSTALL file there for a proper setup. Currently only Linux is supported by this driver (Kernel 2.2.x and higher).

As the backend and the driver support up to four devices per system, it is possible to specify them in the configuration file

    /etc/sane.d/plustek.conf

See the plustek.conf file for examples.

CONFIGURATION

The configuration of this backend can be divided into two sections:

CONFIGURATION - parallel port scanner

CONFIGURATION - USB scanner

Please make sure, that the configuration matches the real world, namely your configuration. And note again, .I pt_drv is only needed

CONFIGURATION - PARALLEL PORT SCANNER

Beside the kernel-module options, which are described below, you need to enable the parallel port device in the configuration file

    /etc/sane.d/plustek.conf

For a proper setup, you will need at least two entries:

[parport]

device /dev/pt_drv

parport tells the backend, that the following devicename (here /dev/pt_drv ) has to be interpreted as parallel port scanner device.

To have this device, you will need to setup the kernel module. As the driver is a loadable kernel module, it is configured by invoking insmod with the appropriate parameters or appending the options to the file /etc/conf.modules

The Options:
lampoff=lll
    The value lll tells the driver, after how many seconds to switch-off the lamp(s). The default value is 180. 0 will disable this feature.
    HINT: Do not use a value that is too small, because often switching on/off the lamps will reduce their lifetime.

port=ppp
    ppp specifies the port base address, where the scanner is connected to. The default value is 0x378 which normaly is standard.

warmup=www
    www specifies the time in seconds, how long a lamp has to be on, until the driver will start to scan. The default value is 30.

lOffonEnd=e
    e specifies the behaviour when unloading the driver, 1 --> switch lamps off, 0 --> do not change lamp status

slowIO=s
    s specifies which I/O functions the driver should use, 1 --> use delayed functions, 0 --> use the non-delayed ones

forceMode=fm
    fm specifies port mode which should be used, 0 --> autodetection, 1 --> use SPP mode and 2 --> use EPP mode

mov=m
    m =0 - default: no override
    m =1 - OpticPro 9630PL override (works if OP9630
           has been detected) forces legal size (14")
    m =2 - Primax 4800Direct override (works if OP600
           has been detected) swaps red/green color
    m =3 - OpticPro 9636 override (works if OP9636 has
           been detected) disables backends
           transparency/negativ capabilities
    m =4 - OpticPro 9636P override (works if OP9636 has
           been detected) disables backends
           transparency/negativ capabilities
    m =5 - OpticPro A3I override (works if OP12000 has
           been detected) enables A3 scanning
    m =6 - OpticPro 4800P override (works if OP600
           has been detected) swaps red/green color

Sample entry for file /etc/modules.conf :
alias char-major-40 pt_drv
pre-install pt_drv modprobe -k parport
options pt_drv lampoff=180 warmup=15 port=0x378 lOffonEnd=0 mov=0 slowIO=0 forceMode=0

For multidevice support, simply add values separated by commas to the different options
options pt_drv port=0x378,0x278 mov=0,4 slowIO=0,1 forceMode=0,1

Remember to call depmod after changing /etc/conf.modules.

PARALLEL PORT MODES

The current driver works best, when the parallel port has been set to EPP-mode. When detecting any other mode such as ECP or PS/2 the driver tries to set to a faster, supported mode. If this fails, it will use the SPP mode, as this mode should work with all Linux supported parallel ports.

Former Plustek scanner models (4830, 9630) supplied a ISA parallel port adapter card. This card is not supported by the driver.

The ASIC 96001/3 based models have sometimes trouble with high resolution modes. If you encounter sporadic corrupted images (parts duplicated or shifted horizontally) kill all other applications before scanning and (if sufficient memory available) disable swapping.

CONFIGURATION - USB SCANNER

To use the USB device with this backend, you need at least two entries in the configuration file
/etc/sane.d/plustek.conf

[usb] vendor-id product-id

device /dev/usbscanner

usb tells the backend, that the following devicename (here /dev/usbscanner ) has to be interpreted as USB scanner device. If vendor- and product-id has not been specified, the backend tries to detect this by its own. If device ist set to auto
 then the next matching device is used.

The Options:

option warmup t
    t specifies the warmup period in seconds

option lampOff t
    t is the time in seconds for switching off the lamps in standby mode

option lOffonEnd b
    b specifies the behaviour when closing the backend, 1 --> switch lamps off, 0 --> do not change lamp status

option invertNegatives b
    b 0 --> do not invert the picture during negativ scans, 1 --> invert picture

option skipCalibration b
    b 0 --> perform calibration, 1 --> skip calibration (only non Plustek devices)

option enableTPA b
    b 0 --> default behaviour, specified by the internal tables, 1 --> override internal tables and allow TPA mode (EPSON only)

option posOffX x
option posOffY y
option tpaOffX x
option tpaOffY y
option negOffX x
option negOffY y
    x y By using this settings, the user can adjust the given image positions. Please note, that there's no internal range checking for this feature.

option posShadingY p
option tpaShadingY p
option negShadingY p
    p overrides the internal shading position. The values are in steps. Please note, that there's no internal range checking for this feature.

option redGamma r
option greenGamma g
option blueGamma b
option grayGamma gr
    r g b gr
By using these values, the internal linear gamma table (r,g,b,gr = 1.0) can be adjusted.

option red_gain r
option green_gain g
option blue_gain b
    r g b These values can be used to adjust the internally detected gain values of the AFE for each channel. The range is between 0 and 63.

See the plustek.conf file for examples.

Note:
You have to make sure, that the USB subsystem is loaded correctly and the module scanner has been loaded too. To make this module recognize your scanner, you might have to add the following line to your /etc/modules.conf :
options scanner vendor=0x7b3 product=0x17

If you're not sure about the vendor and product id of your device, simply load the USB subsystem and plug in your scanner. Then do a cat /proc/bus/usb/devices and look for the scanner.

FILES

/etc/sane.d/plustek.conf
    The backend configuration file

/usr/lib/sane/libsane-plustek.a
    The static library implementing this backend.

/usr/lib/sane/libsane-plustek.so
    The shared library implementing this backend (present on systems that support dynamic loading).

/lib/modules/<Kernel-Version>/misc/pt_drv.o
    The Linux Kernelmodule.

CONTACT AND BUG-REPORTS

Please send any information and bug-reports to:
Plustek Driver Mailing List <plustek@linuxhacker.org>
or directly to:
Gerhard Jaeger <gerhard@gjaeger.de>

Additional info and hints can be obtained from our
Mailing-List archive at:
http://www.linuxhacker.org/cgi-bin/ezmlm-cgi/3

or directly from the projects' homepage at:
http://www.gjaeger.de/scanner/plustek.html

KNOWN BUGS & RESTRICTIONS

* The Halftoning works, but the quality is poor
* Printers (especially HP models) will start to
  print during scanning. This in fact is a problem
  to other printers too, using bidirectional protocol
  (see www.plustek.com (TAIWAN) page for further details)
* The driver does not support these manic scalings up
  to 16 times the physical resolution. The only scaling
  is done on resolutions between the physical resolution
  of the CDD-sensor and the stepper motor i.e. you have a
  600x1200 dpi scanner and you are scanning using 800dpi,
  so scaling is necesary, because the sensor only delivers
  600dpi but the motor is capable to perform 800dpi steps.
* On some devices, the pictures seems to be bluished

ASIC 98001 based models:
* The 300dpi transparency and negative mode does not work
  correctly.
* There is currently no way to distinguish a model with
  and without transpareny unit.
* The scanned images seem to be too dark (P9636T)

ASIC 96003/1 based models:
* 30bit mode is currently not supported.
* On low-end systems and under heavy system load, the
  driver will loosing data, this might causes the sensor
  to hit the scan-bed and/or the picture is corrupted.
* The scanspeed on 600x1200 dpi models is slow.
* The scanquality of the A3I is poor

USB models:
* Plusteks' model policy is somewhat inconsistent. This
  means, they sell technical different devices under the
  same product name. Therefore it is possible that some
  devices like the UT12 or U12 won't work - please check
  the model list above and compare the product-id to
  the one your device has.
* Negative scanning quality is poor.