[sane-devel] driver for LM983x based scanners next shot

Henning Meier-Geinitz henning at meier-geinitz.de
Tue Nov 27 21:39:03 GMT 2001


Hi,

On Mon, Nov 26, 2001 at 09:37:15AM +0100, Jaeger, Gerhard wrote:
> PCB is short for "printed circuit board" (zu deutsch: Platine). Plustek uses 
> the general purpose port for coding some information about the scanner.
> To get this id, register 59 is red during opening the device. Then for the 
> Plustek devices, die ID string consists of Vendor-ID + Product-ID + PCB ID...
> So it's possible for them to have one product with at least 256 different 
> motors and or CCD-chips...

I see. Is this used in the code anywhere? To which value should I set
it?

> bCCD is for specifying the used CCD - see plustek-usb.h for the defines. I 
> think we should use these defines in the structs in plustek_devs.c too.

Ok, I will look into this later. What about the Scannermodel entry?
Ist this just the name or does this have influence on scanning?

The Mustek BearPaw 1200 now also works. Color mode is quite ok, gray
mode has stripes sometimes. Binary doesn't work at all. Resolutions
are as above (75-600 dpi). Preview freezes the scanner because at 50
dpi the motor doesn't move. This time the values are from the Mustek
source code so I'm more confident with them :-)

Here is the data:

/* Mustek BearPaw 1200
 * NS9831 + 5 Buttons + NEC548 (?)
 */
static DCapsDef Cap0x0400_0x1000_0 =
{
	{{ 71, 102}, 55, {2575, 3520}, { 50, 50 }, COLOR_BW },
	{{ 0,  0}, 0, {0, 0}, { 0, 0 }, 0 },
	{{ 0,  0}, 0, {0, 0}, { 0, 0 }, 0 },
	{{ 0,  0}, 0, {0, 0}, { 0, 0 }, 0 },
	{600, 1200},
	0,
	SENSORORDER_bgr,
	8, 5, 2, 0x05
};

static HWDef Hw0x0400_0x1000_0 =
{
	1.25,   /* ok dMaxMotorSpeed (Max_Speed)               */
	1.25,   /* ok dMaxMoveSpeed (Max_Speed)                */
	12,	/* ok wIntegrationTimeLowLamp                  */
	12,	/* ok wIntegrationTimeHighLamp                 */
	600,	/* ok wMotorDpi (Full step DPI)                */
	512,	/* ok wRAMSize (KB)                            */
	9,	/* ok wMinIntegrationTimeLowres (ms)           */
	9,	/* ok wMinIntegrationTimeHighres (ms)          */
	1169,	/* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)  */
	1169,	/* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
	0x02,   /* ok bSensorConfiguration (0x0b) */
	0x7c,   /* ok sensor controll settings (reg 0x0c) */
	0x3f,   /* ok sensor controll settings (reg 0x0d) */
	0x15,   /* ok sensor controll settings (reg 0x0e) */
	{0x04, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x06},
	        /* ok  mono (reg 0x0f to 0x18) */
	{0x04, 0x16, 0x01, 0x02, 0x05, 0x06, 0x00, 0x00, 0x0a, 0x16},
	        /* ok color (reg 0x0f to 0x18)*/
	257,    /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */
	0x0e,   /* ok bOpticBlackStart (reg 0x1c) */
	0x1d,   /* ok bOpticBlackEnd (reg 0x1d) */
	0,      /* ok wActivePixelsStart (reg 0x1e + 0x1f) */
	5369,   /* ok wLineEnd (reg 0x20 + 0x21) */
	0x13,   /* ok stepper motor control (reg 0x45) */
	0,      /* ?  wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
	0xfc,   /* ok acceleration profile (reg 0x51) */
	0,      /* ok lines to process (reg 0x54) */
	0x13,   /* ok kickstart (reg 0x55) */
	0x03,   /* ok pwm freq (reg 0x56) */
	0x20,   /* ok pwm duty cycle (reg 0x57) */
	0x15,   /* ok Paper sense (reg 0x58) */
	0x44,   /* ok misc io12 (reg 0x59) */
	0x44,   /* ok misc io34 (reg 0x5a) */
	0x4f,   /* ok misc io56 (reg 0x5b) */
	0,      /* ok test mode ADC Output CODE MSB (reg 0x5c) */
	0,      /* ok test mode ADC Output CODE LSB (reg 0x5d) */
	0,      /* ok test mode (reg 0x5e) */
	SANE_TRUE, /* lm9831? */
	MODEL_Tokyo600
};

	{"0x0400-0x1000",	&Cap0x0400_0x1000_0, &Hw0x0400_0x1000_0},


Some information including a sane snapshot with these changes is at
http://www.meier-geinitz.de/sane/lm983x.html . So if anyone wants to
try ...

Bye,
  Henning



More information about the sane-devel mailing list