sane-mustek_pp(5)

NAME
sane-mustek_pp - SANE backend for Mustek parallel port flatbed scanners

DESCRIPTION
The sane-mustek_pp library implements a SANE (Scanner Access Now Easy) backend that provides access to Mustek parallel port flatbed scanners. The following scanners might work with this backend:

    Model: ASIC ID: CCD Type: works:
    -------------------- --------- ---------- -------
    SE 6000 P 1013 00 yes
    SM 4800 P 1013/1015 04/01 yes
    SE 1200 ED Plus 1015 01 partly
    SM 1200 ED Plus 1015 01 partly
    SE 12000 P 1505 05 no
    SE 600 CP 1015 00 no (*)
    SM 600 CP 1015 00 no (*)
    600 III EP Plus 1013/1015 00/01 yes
    SE 600 SEP 1013 ?? yes
    600 II EP ???? ?? no
    MD9848 1015 00 yes
    Gallery 4800 ???? ?? yes
    Viviscan Compact II 1013 00 yes
    MD985x 1015 01/05 no (*)
    LT9891 1015 01 no (*)

(*) These scanners are currently not supported by the default driver, but patches are available; see CIS Scanners.

Please note that this backend is still under construction. I don't know which scanners work or which will work in future releases.

There are two possible reasons a Mustek scanner doesn't work... a) the protcol is still unknown (SE 12000 P) or b) it's a CIS scanner (all the others). See CIS Scanners for an explaination why.

Some scanners work faster when EPP/ECP is enabled in the BIOS.

Note that the backend needs to run as root. To allow user access to the scanner run the backend through the network interface (See saned(1) and sane-net(5)). Note also that the backend does not support parport sharing , i.e. if you try printing while scanning, your computer may crash. This backend also conflicts with the sane-musteka4s2 backend. You can only enable one of them in your dll.conf. However, you have to enable the backend explicitly in your dll.conf, just remove the hash mark in the line "mustek_pp".

DEVICE NAMES
This backend expects device names of the form:

    port addr

Where addr is the base address of the port your scanner is attached to. Known ports are 0x378 (lp1) 0x278 (lp2) and 0x3BC (lp0). Note that if you are using a Kernel 2.2.x or better and you have only one parallel port this port is named lp0 regardless of the base address. However, this backend requires the base address of your port. If you are not sure which port your scanner is connected to, have a look at your /etc/conf.modules. You can rename any device using the

    name devname
    model model
    vendor vendor

options. These options aply to the last port option.

CONFIGURATION
Please make sure to edit mustek_pp.conf before you use the backend.

The contents of the mustek_pp.conf file is a list of options and device names that correspond to Mustek scanners. Empty lines and lines starting with a hash mark (#) are ignored.

The nine options supported are io-mode, wait-bank, strip-height, niceload, auth, wait-lamp, bw, use600, and buffer. Option io-mode defines the mode of the sanei_pa4s2 interface. Possible values are try_mode_uni and alt_lock. This option may appear for each possible value. try_mode_uni allows the UNI port mode, however this may disable the (better) EPP mode. alt_lock toggles between two different ways to lock the port for scanner access. This option must come before any port definition or it won't have the effect you'd expect. Option wait-bank defines the maximal time in msecs the backend waits for the bank to change. The default value is 700. If this option is given after the port option, only this device is affected. If this value is to low, you will get wrong colors and stripes in the scanned image. Option strip-height is a option that limits the maximum height of the strip scanned with a single read command. The height is specified in lines. If this option is given after the port option, only this device is affected. A strip-height of zero allows to scan as much as fits into the scan buffer. Option niceload tries to avoid to heavy load. Note that this reduces scan speed. This is a global option. Option auth turns on user authentification for this scanner. Use this if you want access control and if you have enabled this at compile time. This option must come after a port option. At the moment, this option isn't really supported. Option wait-lamp allows you to control the time the backend waits for the lamp to warm up. The time is specified in secs. The default value is 5 secs. Some scanners need longer to warm up. A value of 0 makes the backend start without waiting. However the backend will wait at least 2 secs before turning the lamp off again. If this option is given after a port option it affects only this device. Option bw defines the maximal color value that is considered black in lineart scans. The default value is 127. Possible values are between 0 and 255. If this option is given after a port option it affects only this device. Option use600 enables the 600 dpi handling code. It's not possible to detect wether a scanner has an optical resolution of 300x600 dpi or 600x1200 dpi. The default is to use the 300x600 dpi code. Use this option only if your scanner has an optical resolution of 600x1200 dpi. This is a local only option. Option buffer allows you to change the size of the scan buffer. The size must be specified in bytes. The default value is 1 megabyte. If this opttion is given after the port option, only this device is affected. If you have limited the strip-height, you only need a scan buffer of

    8.5 * dpi * 3 * strip-height bytes.

A sample configuration file is shown below:

    # GLOBAL #
    # enable this option, if you think your scanner
    # supports the UNI protocol
    # note however that this might disable the better
    # EPP protocol
    #option io-mode try_mode_uni
    # choose between two different ways to lock to port
    option io-mode alt_lock
    # set the maximal height (in lines) of a strip
    # scanned (default: no limit)
    #option strip-height 0
    # wait n msecs for bank to change (default: 700
    # msecs) if this value is to low, stripes my appear
    # in the scanned image
    #option wait-bank 700
    # size (in bytes) of scan buffer (default:
    # 1 megabyte)
    #option buffer 1048576
    # try to avoid to heavy load. Note that this
    # reduces scan speed
    option niceload
    # Define the time the lamp has to be on before
    # scan starts (default 5 secs)
    #option wait-lamp 5
    # DEVICES #
    # specify the port your scanner is connected to.
    # Possible are 0x378 (lp1) 0x278 (lp2) and
    # 0x3bc (lp0)
    port 0x378
    # the following options are local to this scanner
     # scan maximal 16 lines for one sane_read() call
     option strip-height 16
     # we just need 16 * 3 * 300 * 8.5 bytes
     option buffer 122400
     # this scanner needs max 250 msecs to change
     # the bank
     option wait-bank 250
     # My scanner is a MD9848 from Medion using the
     # Mustek chipset
     name MD9848
     vendor Medion
     # Enable this option, if you want user
     # authentification *and* if it's enabled at
     # compile time
     #option auth
     # Some scanners (especially ASIC 1013) need
     # longer to warm up. This option specifies
     # the time to wait for the lamp to get hot
     #option wait-lamp 15
     # Use this option to define the maximal
     # black value in lineart scans
     #option bw 127
     # Use this option for 600 dpi scanners
     # for example ScanExpress 1200 ED Plus
     #option use600

CIS Scanners
Some Mustek Scanners use so called contact image sensors (CIS) instead of cold cathode devices (CCD). These scanners have a totally different protocol; they are currently not supported by the default driver.

However, patches are available that support most of the CIS type scanners. Check out the homepage of Eddy De Greef for these patches (see the SEE ALSO section).

These patches have been reported to work on the Mustek 600CP, 1200CP, and 1200CP+ models, and various OEM versions (LifeTec/Medion 9350, 9351, 9850, 9851, 9858, 9890, and 9891; Trust Easy Connect 9600 plus; Targa Funline TS12EP).

When installing these patches, 3 additional options are available in the mustek_pp.conf configuration file (see CONFIGURATION): cis600, cis1200, cis1200+.

These options select the 600CP, 1200CP, or 1200CP+ version of the driver. One of them must be set.

The 600CP has a maximum resolution of 300x600 DPI, whereas the 1200CP and 1200CP+ have a maximum resolution of 600x1200 DPI. The option must match your scanner. If unsure, check the manual or the box.
Choosing the wrong option could damage your scanner! Especially, using the 1200CP settings on a 600CP can be harmful. If the scanner starts making a loud noice, turn it off immediately !!!

The cis... options cannot be combined with the use600 option.

Currently, when installing the CIS patches, support for CCD type scanners is disabled. In future versions of the sane-mustek_pp backend, the CIS patches will be integrated and support for both types of scanners will co-exist.

FILES

/usr/local/etc/sane.d/mustek_pp.conf
    The backend configuration file (see also description of SANE_CONFIG_DIR below).

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

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

ENVIRONMENT

SANE_CONFIG_DIR
    This environment variable specifies the list of directories that may contain the configuration file. Under UNIX, the directories are separated by a colon (`:'), under OS/2, they are separated by a semi-colon (`;'). If this variable is not set, the configuration file is searched in two default directories: first, the current working directory (".") and then in /usr/local/etc/sane.d. If the value of the environment variable ends with the directory separator character, then the default directories are searched after the explicitly specified directories. For example, setting SANE_CONFIG_DIR to "/tmp/config:" would result in directories "tmp/config", ".", and "/usr/local/etc/sane.d" being searched (in this order).

SANE_DEBUG_MUSTEK_PP
    If the library was compiled with debug support enabled, this environment variable controls the debug level for this backend. E.g., a value of 128 requests all debug output to be printed. Smaller levels reduce verbosity.

    level debug output
    ------- ------------------------------
     0 nothing
     1 errors
     2 warnings & minor errors
     3 additional information
     4 debug information
     5 code flow (not supported yet)
     6 special debug information

SANE_DEBUG_SANEI_PA4S2
    This variable sets the debug level for the SANE interface for the Mustek chipset A4S2. Note that enabling this will spam your terminal with some million lines of debug output.

    level debug output
    ------- -------------------------------
     0 nothing
     1 errors
     2 warnings
     3 things nice to know
     4 code flow
     5 detailed code flow
     6 everything

SEE ALSO
sane(7), sane-mustek(5), sane-net(5), saned(1)

Patches for CIS scanner
    http://home.tiscalinet.be/EddyDeGreef/

For latest bug fixes and information see
    http://www.penguin-breeder.org/?page=mustek_pp

AUTHOR
Jochen Eisinger <jochen.eisinger@gmx.net>

BUGS
Too many... please send bug reports to sane-devel@mostang.com (note that you have to subscribe first to the list before you can send emails... see http://www.mostang.com/sane/mail.html)

    * 1013 support isn't bullet proofed
    * 1505 support isn't even present
    * 1015 only works for CCD type 00 & 01 (01 only bw/grayscale)

BUG REPORTS
If something doesn't work, please contact me. But I need some information about your scanner to be able to help you...

SANE version
    run "scanimage -V" to determine this

the backend version and your scanner hardware
    run "SANE_DEBUG_MUSTEK_PP=128 scanimage -L" as root. If you don't get any output from the mustek_pp backend, make sure a line "mustek_pp" is included into your /usr/local/etc/sane.d/dll.conf. If your scanner isn't detected, make sure you've defined the right port address in your mustek_pp.conf.

the name of your scanner/vendor
    also a worthy information. Please also include the optical resolution and lamp type of your scanner, both can be found in the manual of your scanner.

any further comments
    if you have comments about the documentation (what could be done better), or you think I should know something, please include it.

some nice greetings