sane-project-backends/backend/plustek-devs.c

1806 wiersze
56 KiB
C

/*.............................................................................
* Project : SANE library for Plustek USB flatbed scanners.
*.............................................................................
* File: plustek-devs.c
*.............................................................................
*
* based on sources acquired from Plustek Inc.
* Copyright (C) 2001-2002 Gerhard Jaeger <gerhard@gjaeger.de>
*.............................................................................
* History:
* 0.40 - starting version of the USB support
* 0.41 - added EPSON1250 entries
* - changed reg 0x58 of EPSON Hw0x04B8_0x010F_0 to 0x0d
* - reduced memory size of EPSON to 512
* - adjusted tpa origin of UT24
* 0.42 - added register 0x27, 0x2c-0x37
* tweaked EPSON1250 settings according to Gene and Reinhard
* tweaked HP2200 settings according to Stefan
* added UMAX 3400 entries
* added HP2100 settings according to Craig Smoothey
* added LM9832 based U24
* added CANON650 entry
* 0.43 - tweaked HP 2200C entries
* added _WAF_MISC_IO5 for HP lamp switching
* added motor profiles
* cleanup
*
*.............................................................................
*
* This file is part of the SANE package.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*
* As a special exception, the authors of SANE give permission for
* additional uses of the libraries contained in this release of SANE.
*
* The exception is that, if you link a SANE library with other files
* to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public
* License. Your use of that executable is in no way restricted on
* account of linking the SANE library code into it.
*
* This exception does not, however, invalidate any other reasons why
* the executable file might be covered by the GNU General Public
* License.
*
* If you submit changes to SANE to the maintainers to be included in
* a subsequent release, you agree by submitting the changes that
* those changes may be distributed with this exception intact.
*
* If you write modifications of your own for SANE, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*/
/* the other stuff is included by plustek.c ...*/
#include "plustek-usb.h"
/*
* for Register 0x26
*/
#define _RED_CH 0x00
#define _GREEN_CH 0x08
#define _BLUE_CH 0x10
/* Plustek Model: UT12/UT16
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0017_0 =
{
{ /* Normal */
{0, 93}, /* DataOrigin (X: 0, Y: 8mm from home) */
0, /* ShadingOriginY */
{2550, 3508}, /* Size */
{50, 50}, /* MinDpi */
COLOR_BW /* bMinDataType */
},
{ /* Positive */
{1040 + 15, 744 - 32}, /* DataOrigin (X: 7cm + 1.8cm, Y: 8mm + 5.5cm)*/
543, /* ShadingOriginY (Y: 8mm + 3.8cm) */
{473, 414}, /* Size (X: 4cm, Y: 3.5cm) */
{150, 150}, /* MinDpi */
COLOR_GRAY16 /* bMinDataType */
},
{ /* Negative */
{1004 + 55, 744 + 12}, /* DataOrigin (X: 7cm + 1.5cm, Y: 8mm + 5.5cm)*/
/* 533 blaustichig */
537 /* hell */
/* 543 gruenstichig */
/*543*/, /* ShadingOriginY (Y: 8mm + 3.8cm) */
{567, 414}, /* Size (X: 4.8cm, Y: 3.5cm) */
{150, 150}, /* MinDpi */
COLOR_GRAY16 /* bMinDataType */
},
{ /* Adf */
{0, 95}, /* DataOrigin (X: 0, Y: 8mm from home) */
0, /* ShadingOriginY */
{2550, 3508}, /* Size */
{50, 50}, /* MinDpi */
COLOR_BW /* bMinDataType */
},
{600, 600}, /* OpticDpi */
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, /* wFlags */
SENSORORDER_rgb, /* bSensorOrder */
4, /* bSensorDistance */
4, /* bButtons */
kNEC3799, /* bCCD */
0x07, /* bPCB */
_WAF_NONE, /* no workarounds or other special stuff needed */
_NO_MIO /* does not use misc I/O for lamp */
};
/* Plustek Model: U24
* Description of the entries, see above...
*/
static DCapsDef Cap0x07B3_0x0015_0 =
{
{{0, 93}, 0, {2550, 3508}, {50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, {473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, {567, 414}, {150, 150}, COLOR_GRAY16 },
{{0, 95}, 0, {2550, 3508}, {50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_rgb,
4, 4, kNEC3799, 0x05, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0014_0 =
{
{{0, 93}, 0, {2550, 3508}, {50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, {473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, {567, 414}, {150, 150}, COLOR_GRAY16 },
{{0, 95}, 0, {2550, 3508}, {50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_rgb,
4, 0, kNEC3799, 0x04, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0007_0 =
{
{{0, 124}, 36, {2550, 3508}, { 50, 50 }, COLOR_BW },
{{1040, 744}, 543, { 473, 414 }, {150, 150}, COLOR_GRAY16 },
{{1004, 744}, 543, { 567, 414 }, {150, 150}, COLOR_GRAY16 },
{{0, 95}, 0, {2550, 3508}, { 50, 50 }, COLOR_BW },
{600, 600},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
4, 5, kNEC3799, 0x07, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* Tokyo: NS9832 + Button + NEC548
*/
static DCapsDef Cap0x07B3_0x0005_2 =
{
{{ 0, 64}, 0, {2550, 3508}, { 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, 600},
0,
SENSORORDER_rgb,
8, 2, kSONY548, 0x05, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* Hualien: NS9832 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0007_4 =
{
{{ 0, 111 - 4 }, 0, {2550, 3508}, { 50, 50 }, COLOR_BW },
{{1040 + 5, 744 - 32}, 543, { 473, 414 }, {150, 150}, COLOR_GRAY16 },
{{1040 - 20, 768 }, 543, { 567, 414 }, {150, 150}, COLOR_GRAY16 },
{{ 0, 95 }, 0, {2550, 3508}, { 50, 50 }, COLOR_BW },
{1200, 1200},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
12, 5, kNEC3778, 0x07, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* Hualien: NS9832 + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0005_4 =
{
{{ 0, 111 - 4 }, 0, {2550, 3508}, {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 },
{1200, 1200},
0,
SENSORORDER_rgb,
12, 5, kNEC3778, 0x05, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x000F_0 =
{
{{ 0, 130}, 12, {2550, 3508}, { 50, 50 }, COLOR_BW },
{{1040, 744}, 543, { 473, 414 }, {150, 150}, COLOR_GRAY16 },
{{1004, 744}, 543, { 567, 414 }, {150, 150}, COLOR_GRAY16 },
{{ 0, 244}, 12, {2550, 4200}, { 50, 50 }, COLOR_BW },
{600, 600},
DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf,
SENSORORDER_rgb,
4, 5, kNEC3799, 0x0F, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0013_0 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 30, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
4, 4, kNEC3799, 0x03, _WAF_NONE, _NO_MIO
};
/* Plustek Model: U24
* KH: NS9831 + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0011_0 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_rgb,
4, 4, kNEC3799, 0x01, _WAF_NONE, _NO_MIO
};
/* Plustek Model: U12
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0010_0 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_rgb,
4, 0, kNEC3799, 0x00, _WAF_BSHIFT7_BUG, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0013_4 =
{
{{ 0, 99 /*114*/}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 1055, 744 - 84}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 - 20}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
12, 4, kNEC3778, 0x03, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0011_4 =
{
{{ 0, 99 /*114*/}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 1055, 744 - 84}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 - 20}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
0,
SENSORORDER_rgb,
12, 4, kNEC3778, 0x01, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0010_4 =
{
{{ 0, 99 /*114*/}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 1055, 744 - 84}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 - 20}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
0,
SENSORORDER_rgb,
12, 0, kNEC3778, 0x00, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x000F_4 =
{
{{ 0, 107}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 1040 + 5, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1040 - 20, 768}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 244}, 0, {2550, 4200}, { 50, 50}, COLOR_BW },
{1200, 1200},
DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf,
SENSORORDER_rgb,
12, 5, kNEC3778, 0x0F, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0016_4 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 954, 422}, 272, { 624, 1940}, {150, 150}, COLOR_GRAY16 },
{{1120, 438}, 275, { 304, 1940}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
12, 4, kNEC3778, 0x06, _WAF_NONE, _NO_MIO
};
/* Plustek Model: UT24
* KH: NS9832 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0017_4 =
{
{{ 0, 99 - 6}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1025 /*1055*/, 744 - 84}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1048 /*1024*/, 754/*724*/}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
12, 4, kNEC3778, 0x07, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0015_4 =
{
{{ 0, 99 - 6}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 1055, 744 - 84}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 - 20}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
0,
SENSORORDER_rgb,
12, 4, kNEC3778, 0x05, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3778
*/
static DCapsDef Cap0x07B3_0x0014_4 =
{
{{ 0, 99 - 6}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 1055, 744 - 84}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 - 20}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{1200, 1200},
0,
SENSORORDER_rgb,
12, 0, kNEC3778, 0x04, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + SONY518
*/
static DCapsDef Cap0x07B3_0x0014_1 =
{
{{ 0, 93}, 0, {3600, 5100}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{400, 400},
0,
SENSORORDER_rgb,
8, 0, kSONY518, 0x04, _WAF_NONE, _NO_MIO
};
/* Model: ???
* KH: NS9832 + NEC3799 + 600 DPI Motor (for Brother demo only)
*/
static DCapsDef Cap0x07B3_0x0012_0 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_rgb,
4, 0, kNEC3799, 0x02, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + SONY548
*/
static DCapsDef Cap0x07B3_0x0017_2 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{ 1004, 744}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_bgr,
8, 4, kSONY548, 0x07, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + NEC3799
*/
static DCapsDef Cap0x07B3_0x0017_3 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 30, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
8, 4, kNEC8861, 0x07, _WAF_NONE, _NO_MIO
};
/*
* HEINER: 17_1 and 15_1 are currently not used!!!! Maybe for future models...
*/
#if 0
/* Plustek Model: ???
* A3: NS9832 + TPA + Button + SONY518
*/
static DCapsDef Cap0x07B3_0x0017_1 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 30, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
SENSORORDER_rgb,
8, 4, kSONY518, 0x07, _WAF_NONE, _NO_MIO
};
static DCapsDef Cap0x07B3_0x0015_1 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 200},
0,
SENSORORDER_rgb,
8, 4, kSONY518, 0x05, _WAF_NONE, _NO_MIO
};
static DCapsDef Cap0x07B3_0x0015_2 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_bgr,
8, 4, kSONY548, 0x05, _WAF_NONE, _NO_MIO
};
/* Plustek Model: ???
* KH: NS9831 + TPA + Button + SONY548
*/
static DCapsDef Cap0x07B3_0x0014_2 =
{
{{ 0, 93}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{{1040 + 15, 744 - 32}, 543, { 473, 414}, {150, 150}, COLOR_GRAY16 },
{{1004 + 20, 744 + 32}, 543, { 567, 414}, {150, 150}, COLOR_GRAY16 },
{{ 0, 95}, 0, {2550, 3508}, { 50, 50}, COLOR_BW },
{600, 600},
0,
SENSORORDER_bgr,
8, 0, kSONY548, 0x04, _WAF_NONE, _NO_MIO
};
#endif
/* Model: HP Scanjet 2100C */
static DCapsDef Cap0x03F0_0x0505 =
{
{{ 0, 208}, 100, {2550, 3508}, { 50, 50}, COLOR_BW },
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 }, /* No film scanner module */
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 }, /* No film scanner module */
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 }, /* No ADF */
{600, 600},
0,
SENSORORDER_rgb,
4, 0, kNEC3799, 0x02, _WAF_NONE, _NO_MIO
};
/* Model: HP Scanjet 2200c (thanks to Stefan Nilsen)
* NS9832 + 2 Buttons + NEC3799 + 600 DPI Motor
*/
static DCapsDef Cap0x03F0_0x0605 =
{
/* DataOrigin (x, y), ShadingOriginY */
{{ 0, 209}, 100,
{2550, 3508 }, { 50, 50}, COLOR_BW },
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 }, /* No film scanner module */
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 }, /* No film scanner module */
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 }, /* No ADF */
{600, 600}, /* Motor can handle 1200 DPI */
0, /* OK */
SENSORORDER_rgb, /* OK */
4, 2, kNEC3799, 0x02, _WAF_NONE, _NO_MIO /* OK */
};
/* Mustek BearPaw 1200 (thanks to Henning Meier-Geinitz)
* NS9831 + 5 Buttons + NEC3798
*/
static DCapsDef Cap0x0400_0x1000_0 =
{
{{ 0, 130}, 20, {2550, 3508}, { 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, 600},
0,
SENSORORDER_rgb,
4,
5, kNEC8861, 0x00, _WAF_NONE, _NO_MIO
};
/* Mustek BearPaw 2400
* NS9832 + 5 Buttons + SONY548
*/
static DCapsDef Cap0x0400_0x1001_0 =
{
{{ 0, 130/*209*/}, 35/*20*/, {2550, 3508}, { 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, 600 }, /*{ 1200, 1200 }, */
0,
SENSORORDER_rgb,
4/*16*/, /* sensor distance */
5, /* number of buttons */
kSONY548, /* CCD type */
0, _WAF_NONE, _NO_MIO
};
/* Epson Perfection/Photo1250 (thanks to Gene Heskett and Reinhard Max)
* NS9832 + 4 Buttons + CCD????
*/
static DCapsDef Cap0x04B8_0x010F_0 =
{
{{ 25, 80}, 10, {2550, 3508}, { 100, 100 }, COLOR_BW },
{{ 1055, 744 - 84}, 543, { 473, 414}, { 150, 150 }, COLOR_GRAY16 },
{{1004 + 20, 744 - 20}, 543, { 567, 414}, { 150, 150 }, COLOR_GRAY16 },
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 },
{1200, 1200},
0,
SENSORORDER_rgb,
8, /* sensor distance */
4, /* number of buttons */
kNEC8861, /* use default settings during calibration */
0, /* not used here... */
_WAF_MISC_IO_LAMPS, /* use miscio 6 for lamp switching */
_MIO6 + _TPA(_MIO1) /* and miscio 1 for optional TPA */
};
/* Umax 3400
*/
static DCapsDef Cap0x1606_0x0060_0 =
{
/* the ini file provided by umax says the scanner bed is 11.7", but
setting the value below to 3510 (11.7 * 300) results in the head
hitting the end at the end of the scan. so i'm just guessing that
the scanner bed area in the .ini file includes the dead area at
the beginning, and the number below does not. */
{{ 0, 165}, 0, {2550, 3510 - 165}, {100, 100}, 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, 600},
0,
SENSORORDER_bgr,
8, /* sensor distance */
4, /* number of buttons */
kNEC8861, /* use default settings during calibration */
0, /* not used here... */
_WAF_MISC_IO_LAMPS, /* use miscio 3 for lamp switching */
_MIO3
};
/* Canon N650U/N656U
*/
static DCapsDef Cap0x04A9_0x2206_0 =
{
{{ 0, 165}, 0, {2550, 3510 - 165}, {100, 100}, 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, 600},
0,
SENSORORDER_bgr,
8, /* sensor distance */
4, /* number of buttons */
kNEC8861, /* use default settings during calibration */
0, /* not used here... */
_WAF_NONE, _NO_MIO
};
/******************* additional Hardware descriptions ************************/
static HWDef Hw0x07B3_0x0017_0 =
{
1.5, /* dMaxMotorSpeed (Max_Speed) */
1.2, /* dMaxMoveSpeed (Max_Speed) */
9, /* wIntegrationTimeLowLamp */
9, /* wIntegrationTimeHighLamp */
300, /* wMotorDpi (Full step DPI) */
/* 100, // wStartY (The top scanning origin in Full Steps) */
512, /* wRAMSize (KB) */
4, /* dMinIntegrationTimeLowres (ms) */
5, /* dMinIntegrationTimeHighres (ms) */
3000, /* wGreenPWMDutyCycleLow */
4095, /* wGreenPWMDutyCycleHigh */
0x02, /* bSensorConfiguration (0x0b) */
0x04, /* bReg_0x0c */
0x37, /* bReg_0x0d */
0x13, /* bReg_0x0e */
/* bReg_0x0f_Mono [10] (0x0f to 0x18) */
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
/* bReg_0x0f_Color [10] (0x0f to 0x18) */
{5, 23, 1, 3, 0, 0, 0, 12, 10, 22},
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
0, /* bReg 0x27 color mode */
1, /* bReg 0x29 illumination mode */
1, /* StepperPhaseCorrection (0x1a & 0x1b) */
14, /* 15, bOpticBlackStart (0x1c) */
62, /* 60, bOpticBlackEnd (0x1d) */
110, /* 65, wActivePixelsStart (0x1e & 0x1f) */
5400, /* 5384 ,wLineEnd (0x20 & 0x21) */
0, /* red lamp on (reg 0x2c + 0x2d) */
16383, /* red lamp off (reg 0x2e + 0x2f) */
0, /* green lamp on (reg 0x30 + 0x31) */
0, /* green lamp off (reg 0x32 + 0x33) */
0, /* blue lamp on (reg 0x34 + 0x35) */
16383, /* blue lamp off (reg 0x36 + 0x37) */
/* Misc */
3, /* bReg_0x45 */
0, /* wStepsAfterPaperSensor2 (0x4c & 0x4d) */
0xa8, /* 0xfc -bReg_0x51 */
0, /* bReg_0x54 */
0xff, /* 0xa3 - bReg_0x55 */
64, /* bReg_0x56 */
20, /* bReg_0x57 */
0x0d, /* bReg_0x58 */
0x22, /* bReg_0x59 */
0x82, /* bReg_0x5a */
0x88, /* bReg_0x5b */
0, /* bReg_0x5c */
0, /* bReg_0x5d */
0, /* bReg_0x5e */
_LM9832, /* chip type */
MODEL_KaoHsiung /* motorModel */
};
static HWDef Hw0x07B3_0x0007_0 =
{
1.5, 1.2,
9, 9,
300,
512,
4, 5,
3000, 4095,
0x02, 0x14, 0x27, 0x13,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 23, 1, 3, 0, 0, 0, 6, 10, 22},
_GREEN_CH,
0,
1,
1,
14,
62,
110,
5384,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x0d, 0x88, 0x28, 0x3b,
0, 0, 0,
_LM9832,
MODEL_HuaLien
};
static HWDef Hw0x07B3_0x0007_2 =
{
1.4, 1.2,
9, 9,
600,
512,
4, 5,
3000, 4095,
0x02, 0x3f, 0x2f, 0x36,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{7, 20, 1, 4, 7, 10, 0, 6, 12, 0},
_GREEN_CH,
0,
1,
1,
16,
64,
152,
5416,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xfc,
0,
0xff,
64,
20,
0x0d, 0x88, 0x28, 0x3b,
0, 0, 0,
_LM9832,
MODEL_Tokyo600
};
static HWDef Hw0x07B3_0x0007_4 =
{
1.1, 0.9,
12, 12,
600,
2048,
8, 8,
4095, 4095,
0x06, 0x30, 0x2f, 0x2a,
{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
{20, 4, 13, 16, 19, 22, 0, 6, 23, 11},
_GREEN_CH,
0,
1,
1,
13,
62,
304,
10684,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
24,
40,
0x0d, 0x88, 0x28, 0x3b,
0, 0, 0,
_LM9832,
MODEL_HuaLien
};
static HWDef Hw0x07B3_0x000F_0 =
{
1.5, 1.0,
9, 9,
300,
512,
4, 5,
3000, 4095,
0x02, 0x14, 0x27, 0x13,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 23, 1, 3, 0, 0, 0, 6, 10, 22},
_GREEN_CH,
0,
1,
1,
14,
62,
110,
5384,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x05, 0x88, 0x08, 0x3b,
0, 0, 0,
_LM9832,
MODEL_HuaLien
};
static HWDef Hw0x07B3_0x0013_0 =
{
1.5, 1.2,
9, 9,
300,
512,
4, 5,
3000, 4095,
0x02, 0x04, 0x37, 0x13,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 23, 1, 3, 0, 0, 0, 12, 10, 22},
_GREEN_CH,
0,
1,
1,
14,
62,
110,
5400,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9831,
MODEL_KaoHsiung
};
static HWDef Hw0x07B3_0x0013_4 =
{
1.0, 0.9,
12, 12,
600,
2048,
8, 8,
4095, 4095,
0x06, 0x20, 0x2f, 0x2a,
{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
{20, 4, 13, 16, 19, 22, 0, 0, 23, 11},
_GREEN_CH,
0,
1,
1,
13,
62,
320,
10684,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
10,
48,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9831,
MODEL_KaoHsiung
};
static HWDef Hw0x07B3_0x000F_4 =
{
1.1, 0.9,
12, 12,
600,
2048,
8, 8,
4095, 4095,
0x06, 0x30, 0x2f, 0x2a,
{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
{20, 4, 13, 16, 19, 22, 0, 6, 23, 11},
_GREEN_CH,
0,
1,
1,
13,
62,
304,
10684,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
24,
40,
0x05, 0x88, 0x08, 0x3b,
0, 0, 0,
_LM9832,
MODEL_HuaLien
};
static HWDef Hw0x07B3_0x0016_4 =
{
1.0, 0.9,
12, 12,
600,
2048,
8, 8,
4095, 4095,
0x06, 0x20, 0x2f, 0x2a,
{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
{20, 4, 13, 16, 19, 22, 0, 0, 23, 11},
_GREEN_CH,
0,
1,
1,
13,
62,
320,
10684,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
10,
48,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9832,
MODEL_KaoHsiung
};
/*
* Plustek OpticPro UT24 and others...
*/
static HWDef Hw0x07B3_0x0017_4 =
{
1.0, 0.9,
12, 12,
600,
2048,
8, 8,
4095, 4095,
0x06, 0x20, 0x2f, 0x2a,
{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
{20, 4, 13, 16, 19, 22, 0, 0, 23, 11},
_GREEN_CH,
0,
1,
1,
13,
62,
320,
10684,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
10,
48,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9832,
MODEL_KaoHsiung
};
static HWDef Hw0x07B3_0x0017_1 =
{
1.5, 1.5,
9, 9,
200,
2048,
4, 5,
3000, 4095,
0x02, 0x08, 0x2f, 0x36,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 23, 1, 4, 7, 10, 0, 0, 10, 12},
_GREEN_CH,
0,
1,
1,
15,
60,
110,
5415,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9832,
MODEL_KaoHsiung
};
static HWDef Hw0x07B3_0x0012_0 =
{
1.5, 1.4,
9, 9,
600,
2048,
4, 5,
3000, 4095,
0x02, 0x04, 0x37, 0x13,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 23, 1, 3, 0, 0, 0, 12, 10, 22},
_GREEN_CH,
0,
1,
1,
14,
62,
110,
5400,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9832,
MODEL_KaoHsiung
};
static HWDef Hw0x07B3_0x0017_2 =
{
1.5, 1.2,
9, 9,
300,
512,
4, 5,
3000, 4095,
0x02, 0, 0x2f, 0x36,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 0, 1, 4, 7, 10, 0, 0, 12, 0},
_GREEN_CH,
0,
1,
1,
16,
64,
110,
5416,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9832,
MODEL_KaoHsiung
};
static HWDef Hw0x07B3_0x0017_3 =
{
1.5, 1.2,
9, 9,
300,
512,
4, 5,
3000, 4095,
0x02, 0x04, 0x37, 0x13,
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
{5, 23, 1, 4, 7, 10, 0, 0, 11, 23},
_GREEN_CH,
0,
1,
1,
14,
62,
110,
5400,
0,
16383,
0,
0,
0,
16383,
3,
0,
0xa8,
0,
0xff,
64,
20,
0x0d, 0x22, 0x82, 0x88,
0, 0, 0,
_LM9832,
MODEL_KaoHsiung
};
/* HP Scanjet 2100C */
static HWDef Hw0x03F0_0x0505 =
{
1.05, /* dMaxMotorSpeed (Max_Speed) */
1.05, /* dMaxMoveSpeed (Max_Speed) */
6, /* wIntegrationTimeLowLamp */
8, /* wIntegrationTimeHighLamp */
600, /* ok wMotorDpi (Full step DPI) */
512, /* wRAMSize (KB) */
6, /* dMinIntegrationTimeLowres (ms) */
6, /* dMinIntegrationTimeHighres (ms) */
0, /* wGreenPWMDutyCycleLow */
0, /* wGreenPWMDutyCycleHigh */
0x02, /* bSensorConfiguration (0x0b) */
0x04, /* bReg_0x0c */
0x2F, /* bReg_0x0d */
0x1F, /* bReg_0x0e */
/* bReg_0x0f_Mono[10] (0x0f to 0x18) */
{ 0x02, 0x07, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x04, 0x07 },
/* bReg_0x0f_Color[10] (0x0f to 0x18) */
{ 0x08, 0x17, 0x00, 0x03, 0x08, 0x0b, 0x00, 0x00, 0x0a, 0x14 },
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
0, /* bReg 0x27 color mode */
1, /* bReg 0x29 illumination mode */
1, /* StepperPhaseCorrection (0x1a & 0x1b) */
14, /* bOpticBlackStart (0x1c) */
63, /* bOpticBlackEnd (0x1d) */
140, /* wActivePixelsStart (0x1e & 0x1f) */
5367, /* wLineEnd=(0x20 & 0x21) */
1, /* red lamp on (reg 0x2c + 0x2d) */
16383, /* red lamp off (reg 0x2e + 0x2f) */
16383, /* green lamp on (reg 0x30 + 0x31) */
1, /* green lamp off (reg 0x32 + 0x33) */
16383, /* blue lamp on (reg 0x34 + 0x35) */
1, /* blue lamp off (reg 0x36 + 0x37) */
/* Misc */
0x13, /* bReg_0x45 */
0, /* wStepsAfterPaperSensor2 (0x4c & 0x4d) */
0xfc, /* 0xa8 -bReg_0x51 */
0, /* bReg_0x54 */
0x18, /* bReg_0x55 */
8, /* bReg_0x56 */
60, /* bReg_0x57 */
0x0d, /* bReg_0x58 */
0xcc, /* bReg_0x59 */
0xbc, /* bReg_0x5a */
0xbb, /* bReg_0x5b */
0, /* bReg_0x5c */
0, /* bReg_0x5d */
0, /* bReg_0x5e */
_LM9831, /* chiptype */
MODEL_HP /* motorModel */
};
/* HP 2200C */
static HWDef Hw0x03F0_0x0605 =
{
1.05, /* dMaxMotorSpeed (Max_Speed) */
1.05, /* dMaxMoveSpeed (Max_Speed) */
6, /* wIntegrationTimeLowLamp */
8, /* wIntegrationTimeHighLamp */
600, /* ok wMotorDpi (Full step DPI) */
512, /* wRAMSize (KB) */
6, /* dMinIntegrationTimeLowres (ms) */
6, /* dMinIntegrationTimeHighres (ms) */
0, /* wGreenPWMDutyCycleLow */
0, /* wGreenPWMDutyCycleHigh */
0x02, /* bSensorConfiguration (0x0b) */
0x04, /* bReg_0x0c */
0x2F, /* bReg_0x0d */
0x1F, /* bReg_0x0e */
/* bReg_0x0f_Mono[10] (0x0f to 0x18) */
{ 0x02, 0x07, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x04, 0x07 },
/* bReg_0x0f_Color[10] (0x0f to 0x18) */
{ 0x08, 0x17, 0x00, 0x03, 0x08, 0x0b, 0x00, 0x00, 0x0a, 0x14 },
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
0, /* bReg 0x27 color mode */
1, /* bReg 0x29 illumination mode */
1, /* StepperPhaseCorrection (0x1a & 0x1b) */
14, /* bOpticBlackStart (0x1c) */
63, /* bOpticBlackEnd (0x1d) */
140, /* wActivePixelsStart (0x1e & 0x1f) */
5367, /* wLineEnd=(0x20 & 0x21) */
1, /* red lamp on (reg 0x2c + 0x2d) */
16383, /* red lamp off (reg 0x2e + 0x2f) */
16383, /* green lamp on (reg 0x30 + 0x31) */
1, /* green lamp off (reg 0x32 + 0x33) */
16383, /* blue lamp on (reg 0x34 + 0x35) */
1, /* blue lamp off (reg 0x36 + 0x37) */
/* Misc */
0x13, /* bReg_0x45 */
0, /* wStepsAfterPaperSensor2 (0x4c & 0x4d) */
0xfc, /* 0xa8 -bReg_0x51 */
0, /* bReg_0x54 */
0x18, /* bReg_0x55 */
8, /* bReg_0x56 */
60, /* bReg_0x57 */
0x0d, /* bReg_0x58 */
0xcc, /* bReg_0x59 */
0xbc, /* bReg_0x5a */
0xbb, /* bReg_0x5b */
0, /* bReg_0x5c */
0, /* bReg_0x5d */
0, /* bReg_0x5e */
_LM9832, /* chiptype */
MODEL_HP /* motorModel */
};
/* Mustek BearPaw 1200 */
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 dMinIntegrationTimeLowres (ms) */
9, /* ok dMinIntegrationTimeHighres (ms) */
1169, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
1169, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
0x02, /* ok bSensorConfiguration (0x0b) */
0x7c, /* ok sensor control settings (reg 0x0c) */
0x3f, /* ok sensor control settings (reg 0x0d) */
0x15, /* ok sensor control settings (reg 0x0e) */
/* ok mono (reg 0x0f to 0x18) */
{ 0x04, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x06},
/* ok color (reg 0x0f to 0x18) */
{ 0x04, 0x16, 0x01, 0x02, 0x05, 0x06, 0x00, 0x00, 0x0a, 0x16},
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
0, /* bReg 0x27 color mode */
1, /* bReg 0x29 illumination mode */
257, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */
0x0e, /* ok bOpticBlackStart (reg 0x1c) */
0x1d, /* ok bOpticBlackEnd (reg 0x1d) */
140, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */
5369, /* ok wLineEnd (reg 0x20 + 0x21) */
0, /* red lamp on (reg 0x2c + 0x2d) */
16383, /* red lamp off (reg 0x2e + 0x2f) */
0, /* green lamp on (reg 0x30 + 0x31) */
0, /* green lamp off (reg 0x32 + 0x33) */
0, /* blue lamp on (reg 0x34 + 0x35) */
16383, /* blue lamp off (reg 0x36 + 0x37) */
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) */
0x0d, /* 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) */
_LM9831,
MODEL_MUSTEK600
};
/* BearPaw 2400 */
static HWDef Hw0x0400_0x1001_0 =
{
1.0 /* 1.8*/, /* ok dMaxMotorSpeed (Max_Speed) */
0.9 /*1.8 */, /* ok dMaxMoveSpeed (Max_Speed) */
12, /* ok wIntegrationTimeLowLamp */
12, /* ok wIntegrationTimeHighLamp */
1200 /* 600*/ , /* ok wMotorDpi (Full step DPI) */
2048, /* ok wRAMSize (KB) */
9, /* ok dMinIntegrationTimeLowres (ms) */
9, /* ok dMinIntegrationTimeHighres (ms) */
1169, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
1169, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
0x02 /* 0x06*/, /* ok bSensorConfiguration (0x0b) */
0x3c, /* ok sensor control settings (reg 0x0c) */
0x3f, /* ok sensor control settings (reg 0x0d) */
0x11, /* ok sensor control settings (reg 0x0e) */
/* ok mono (reg 0x0f to 0x18) */
{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
/* {5, 14, 12, 15, 18, 21, 0, 0, 0, 9 },*/
{1, 4, 4, 5, 6, 7, 0, 0, 0, 3 },
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
0, /* bReg 0x27 color mode */
1, /* bReg 0x29 illumination mode */
257, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */
13, /* bOpticBlackStart (reg 0x1c) */
60, /* bOpticBlackEnd (reg 0x1d) */
10, /* wActivePixelsStart (reg 0x1e + 0x1f) */
5416 /* 11000*/, /* wLineEnd (reg 0x20 + 0x21) */
1, /* ok red lamp on (reg 0x2c + 0x2d) */
16383, /* ok red lamp off (reg 0x2e + 0x2f) */
1, /* ok green lamp on (reg 0x30 + 0x31) */
16383, /* ok green lamp off (reg 0x32 + 0x33) */
1, /* ok blue lamp on (reg 0x34 + 0x35) */
16383, /* ok blue lamp off (reg 0x36 + 0x37) */
0x03, /* ok stepper motor control (reg 0x45) */
0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
0xfc, /* ok acceleration profile (reg 0x51) */
0x03, /* ok lines to process (reg 0x54) */
0x13, /* Kickstart 0x55 */
2, /* PWM frequency 0x56 */
32, /* PWM duty cycle 0x57 */
0x15, /* paper sense 0x58 */
0x44, /* misc I/O 0x59 */
0x44, /* misc I/O 0x5a, */
0x46, /* misc I/O 0x5b */
0, 0, 0,/* test registers, set to 0 (0x5c, 0x5d, 0x5e) */
_LM9832,
MODEL_MUSTEK1200
};
/* EPSON Perfection/Photo 1250 */
static HWDef Hw0x04B8_0x010F_0 =
{
1.0, /* dMaxMotorSpeed (Max_Speed) */
0.9, /* dMaxMoveSpeed (Max_Speed) */
12, /* wIntegrationTimeLowLamp */
12, /* wIntegrationTimeHighLamp */
600, /* wMotorDpi (Full step DPI) */
512, /* wRAMSize (KB) */
4, /* dMinIntegrationTimeLowres (ms) */
5, /* dMinIntegrationTimeHighres (ms) */
3000, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
4095, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
0x02, /* ok bSensorConfiguration (0x0b) */
0x04, /* ok sensor control settings (reg 0x0c) */
0x7f, /* ok sensor control settings (reg 0x0d) */
0x13, /* ok sensor control settings (reg 0x0e) */
{0x02, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00},
/* ?? mono (reg 0x0f to 0x18) */
{0x06, 0x16, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x08, 0x14},
/* ok color (reg 0x0f to 0x18) */
_GREEN_CH, /* ok bReg_0x26 color mode - bits 4 and 5 */
0x40, /* ok bReg 0x27 color mode */
3, /* bReg 0x29 illumination mode */
1, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */
0x00, /* ok bOpticBlackStart (reg 0x1c) */
0x42, /* ok bOpticBlackEnd (reg 0x1d) */
69, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */
10766, /* ok wLineEnd (reg 0x20 + 0x21) */
16383, /* ok red lamp on (reg 0x2c + 0x2d) */
0, /* ok red lamp off (reg 0x2e + 0x2f) */
16383, /* ok green lamp on (reg 0x30 + 0x31) */
0, /* ok green lamp off (reg 0x32 + 0x33) */
16383, /* ok blue lamp on (reg 0x34 + 0x35) */
0, /* ok blue lamp off (reg 0x36 + 0x37) */
3, /* ok stepper motor control (reg 0x45) */
0, /* ok wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
0x0c, /* ok acceleration profile (reg 0x51) */
0, /* ok lines to process (reg 0x54) */
0x0f, /* ok kickstart (reg 0x55) */
0x02, /* ok pwm freq (reg 0x56) */
1, /* ok pwm duty cycle (reg 0x57) */
0x0d, /* ok Paper sense (reg 0x58) */
0x41, /* ok misc io12 (reg 0x59) */
0x44, /* ok misc io34 (reg 0x5a) */
0x94, /* 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) */
_LM9832,
MODEL_NOPLUSTEK_1200
};
/* Umax 3400 */
static HWDef Hw0x1606_0x0060_0 =
{
1.7, /* dMaxMotorSpeed (Max_Speed) */
0.8, /* dMaxMoveSpeed (Max_Speed) */
9, /* wIntegrationTimeLowLamp */
9, /* wIntegrationTimeHighLamp */
600, /* wMotorDpi (Full step DPI) */
512, /* wRAMSize (KB) */
8, /* dMinIntegrationTimeLowres (ms) */
8, /* dMinIntegrationTimeHighres (ms) */
4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
0x06, /* bSensorConfiguration (0x0b) */
0x73, /* sensor control settings (reg 0x0c) */
0x77, /* sensor control settings (reg 0x0d) */
0x15, /* sensor control settings (reg 0x0e) */
{0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03},
/* mono (reg 0x0f to 0x18) */
{0x01, 0x0c, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0c},
/* color (reg 0x0f to 0x18) */
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
0x40, /* bReg 0x27 color mode */
1, /* bReg 0x29 illumination mode */
1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */
0x2f, /* bOpticBlackStart (reg 0x1c) */
0x3e, /* bOpticBlackEnd (reg 0x1d) */
110, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */
5469, /* wLineEnd (reg 0x20 + 0x21) */
1, /* red lamp on (reg 0x2c + 0x2d) */
16383, /* red lamp off (reg 0x2e + 0x2f) */
0, /* green lamp on (reg 0x30 + 0x31) */
0, /* green lamp off (reg 0x32 + 0x33) */
32, /* blue lamp on (reg 0x34 + 0x35) */
48, /* blue lamp off (reg 0x36 + 0x37) */
3, /* stepper motor control (reg 0x45) */
0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
0xf4, /* acceleration profile (reg 0x51) */
0, /* lines to process (reg 0x54) */
0xcb, /* kickstart (reg 0x55) */
0x05, /* pwm freq (reg 0x56) */
5, /* pwm duty cycle (reg 0x57) */
0x0d, /* Paper sense (reg 0x58) */
0x44, /* misc io12 (reg 0x59) */
0x45, /* misc io34 (reg 0x5a) */
0x7c, /* misc io56 (reg 0x5b) */
0, /* test mode ADC Output CODE MSB (reg 0x5c) */
0, /* test mode ADC Output CODE LSB (reg 0x5d) */
0, /* test mode (reg 0x5e) */
_LM9832,
MODEL_NOPLUSTEK_1200
};
/* Canon 650 */
static HWDef Hw0x04A9_0x2206_0 =
{
0.7, /* dMaxMotorSpeed (Max_Speed) */
0.7, /* dMaxMoveSpeed (Max_Speed) */
100, /* wIntegrationTimeLowLamp */
100, /* wIntegrationTimeHighLamp */
600, /* wMotorDpi (Full step DPI) */
512, /* wRAMSize (KB) */
3.75, /* dMinIntegrationTimeLowres (ms) */
5.75, /* dMinIntegrationTimeHighres (ms) */
4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
0x15, /* bSensorConfiguration (0x0b) */
0x4c, /* sensor control settings (reg 0x0c) */
0x2f, /* sensor control settings (reg 0x0d) */
0x00, /* sensor control settings (reg 0x0e) */
{0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03},
/* mono (reg 0x0f to 0x18) */
{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
/* color (reg 0x0f to 0x18) */
(_BLUE_CH | 0x05), /* bReg_0x26 color mode */
0x00, /* bReg 0x27 color mode */
2, /* bReg 0x29 illumination mode */
5, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */
1, /* bOpticBlackStart (reg 0x1c) */
52, /* bOpticBlackEnd (reg 0x1d) */
110, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */
5469, /* wLineEnd (reg 0x20 + 0x21) */
100, /* red lamp on (reg 0x2c + 0x2d) */
5100, /* red lamp off (reg 0x2e + 0x2f) */
100, /* green lamp on (reg 0x30 + 0x31) */
3100, /* green lamp off (reg 0x32 + 0x33) */
100, /* blue lamp on (reg 0x34 + 0x35) */
2100, /* blue lamp off (reg 0x36 + 0x37) */
3, /* stepper motor control (reg 0x45) */
0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
0xfc, /* acceleration profile (reg 0x51) */
0, /* lines to process (reg 0x54) */
0x17, /* kickstart (reg 0x55) */
0x08, /* pwm freq (reg 0x56) */
0x1f, /* pwm duty cycle (reg 0x57) */
0x05, /* Paper sense (reg 0x58) */
0x24, /* misc io12 (reg 0x59) */
0x12, /* misc io34 (reg 0x5a) */
0x11, /* misc io56 (reg 0x5b) */
0, /* test mode ADC Output CODE MSB (reg 0x5c) */
0, /* test mode ADC Output CODE LSB (reg 0x5d) */
0, /* test mode (reg 0x5e) */
_LM9832,
MODEL_NOPLUSTEK_600
};
/******************** all available combinations *****************************/
/*
* here we have all supported devices and their settings...
*/
static SetDef Settings[] =
{
/* Plustek devices... */
{"0x07B3-0x0013-0", &Cap0x07B3_0x0013_0, &Hw0x07B3_0x0013_0, "Unknown device" },
{"0x07B3-0x0011-0", &Cap0x07B3_0x0011_0, &Hw0x07B3_0x0013_0, "OpticPro U24" },
{"0x07B3-0x0010-0", &Cap0x07B3_0x0010_0, &Hw0x07B3_0x0013_0, "OpticPro U12" },
{"0x07B3-0x0013-4", &Cap0x07B3_0x0013_4, &Hw0x07B3_0x0013_4, "Unknown device" },
{"0x07B3-0x0011-4", &Cap0x07B3_0x0011_4, &Hw0x07B3_0x0013_4, "Unknown device" },
{"0x07B3-0x0010-4", &Cap0x07B3_0x0010_4, &Hw0x07B3_0x0013_4, "Unknown device" },
{"0x07B3-0x0017-0", &Cap0x07B3_0x0017_0, &Hw0x07B3_0x0017_0, "OpticPro UT12/UT16" },
{"0x07B3-0x0015-0", &Cap0x07B3_0x0015_0, &Hw0x07B3_0x0017_0, "OpticPro U24" },
{"0x07B3-0x0014-0", &Cap0x07B3_0x0014_0, &Hw0x07B3_0x0017_0, "Unknown device" },
{"0x07B3-0x0017-4", &Cap0x07B3_0x0017_4, &Hw0x07B3_0x0017_4, "OpticPro UT24" },
{"0x07B3-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "Unknown device" },
{"0x07B3-0x0014-4", &Cap0x07B3_0x0014_4, &Hw0x07B3_0x0017_4, "Unknown device" },
{"0x07B3-0x0016-4", &Cap0x07B3_0x0016_4, &Hw0x07B3_0x0016_4, "Unknown device" },
{"0x07B3-0x0017-2", &Cap0x07B3_0x0017_2, &Hw0x07B3_0x0017_2, "Unknown device" },
{"0x07B3-0x0017-3", &Cap0x07B3_0x0017_3, &Hw0x07B3_0x0017_3, "Unknown device" },
{"0x07B3-0x0007", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "Unknown device" },
{"0x07B3-0x000F", &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "Unknown device" },
{"0x07B3-0x000F-4", &Cap0x07B3_0x000F_4, &Hw0x07B3_0x000F_4, "Unknown device" },
{"0x07B3-0x0005-2", &Cap0x07B3_0x0005_2, &Hw0x07B3_0x0007_2, "Unknown device" }, /* TOKYO 600 */
{"0x07B3-0x0014-1", &Cap0x07B3_0x0014_1, &Hw0x07B3_0x0017_1, "Unknown device" }, /* A3 */
{"0x07B3-0x0012-0", &Cap0x07B3_0x0012_0, &Hw0x07B3_0x0012_0, "Unknown device" }, /* Brother Demo */
/* Mustek BearPaw...*/
{"0x0400-0x1000", &Cap0x0400_0x1000_0, &Hw0x0400_0x1000_0, "BearPaw 1200" },
{"0x0400-0x1001", &Cap0x0400_0x1001_0, &Hw0x0400_0x1001_0, "BearPaw 2400" },
/* Genius devices... */
{"0x0458-0x2007", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "ColorPage-HR6 V2" },
{"0x0458-0x2008", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "Unknown device" },
{"0x0458-0x2009", &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "Unknown device" },
{"0x0458-0x2013", &Cap0x07B3_0x0007_4, &Hw0x07B3_0x0007_4, "Unknown device" },
{"0x0458-0x2015", &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_4, "Unknown device" },
{"0x0458-0x2016", &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_0, "Unknown device" },
/* Hewlett Packard... */
{"0x03F0-0x0505", &Cap0x03F0_0x0505, &Hw0x03F0_0x0505, "Scanjet 2100c" },
{"0x03F0-0x0605", &Cap0x03F0_0x0605, &Hw0x03F0_0x0605, "Scanjet 2200c" },
/* EPSON... */
{"0x04B8-0x010F", &Cap0x04B8_0x010F_0, &Hw0x04B8_0x010F_0, "Perfection 1250/Photo" },
/* UMAX... */
{"0x1606-0x0060", &Cap0x1606_0x0060_0, &Hw0x1606_0x0060_0, "UMAX 3400" },
/* CANON... */
{"0x04A9-0x2206", &Cap0x04A9_0x2206_0, &Hw0x04A9_0x2206_0, "N650U/N656U" },
/* {"0x04A9-0x220D", ,, "N670U" }, */
/* Please add other devices here...
* The first entry is a string, composed out of the vendor and product id,
* it's used by the driver to select the device settings. For other devices
* than those of Plustek, you'll not need to add the second '-' part
*
* The second entry decribes the capabilities of the device, you may find
* one suitable for your scanner, for a better description of the entries
* have a look at the beginning of this file at Cap0x07B3_0x0017_0 for
* the UT12
*
* The third entry is for the default setting of the LM983x register
* settings, you can often find these in you Windoze driver ini
* Have a look at the Hw0x0400_0x1000_0 or Hw0x07B3_0x0017_0 for further
* description
*
* The fourth entry is simply the name of the device, which will be
* displayed by the frontend
*/
{ NULL, NULL, NULL, NULL } /* last entry, never remove... */
};
/**
* tables for the motor settings
* The models KaoHsiung, HuaLien and Tokyo600 are currently set
* within the code in conjunction with some CCD combinations.
* NOTE: the touples PWM and PWM_Duty are used to set the registers
* 0x56 and 0x57, the recommended setting is 8,10
* if you notice a whining noise and the motor does not move,
* you might increase the MCLK variable.
*/
static ClkMotorDef Motors[] = {
{ MODEL_KaoHsiung,
64, 20, 6, /* PWM, PWM_Duty, MCLK for fast move */
/* Motor settings (PWM and PWM_Duty) */
{{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }},
/* Color mode MCLK settings */
{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
/* Gray mode MCLK settings */
{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }
},
{ MODEL_HuaLien, 64, 20, 6,
/* Motor settings (PWM and PWM_Duty) */
{{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }},
/* Color mode MCLK settings */
{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
/* Gray mode MCLK settings */
{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }
},
{ MODEL_Tokyo600, 4, 4, 6,
/* Motor settings (PWM and PWM_Duty) */
{{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }},
/* Color mode MCLK settings */
{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
/* Gray mode MCLK settings */
{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }
},
{ MODEL_NOPLUSTEK_600, 64, 20, 6,
/* Motor settings (PWM and PWM_Duty) */
{{ 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 },
{ 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 }},
/* Color mode MCLK settings */
{ 4.0, 3.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0 },
/* Gray mode MCLK settings */
{ 3.0, 3.0, 3.0, 3.0, 3.0, 9.0, 9.0, 9.0, 9.0, 9.0 }
},
{ MODEL_NOPLUSTEK_1200, 1, 48, 6,
/* Motor settings (PWM and PWM_Duty) */
/* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */
{{ 1, 48 }, { 1, 48 }, { 1, 48 }, { 1, 48 }, { 1, 48 },
/* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */
{ 2, 48 }, { 8, 48 }, { 2, 48 }, { 1, 48 }, { 1, 48 }},
/* Color mode MCLK settings */
{ 2.0, 2.0, 2.0, 2.0, 2.0, 4.0, 4.0, 4.0, 5.5, 5.5 },
/* Gray mode MCLK settings */
{ 5.0, 5.0, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0, 6.0, 6.0 }
},
{ MODEL_MUSTEK600, 4, 4, 6,
/* Motor settings (PWM and PWM_Duty) */
{{ 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 },
{ 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 }, { 16, 4 }},
/* Color mode MCLK settings */
{ 3.5, 3.5, 3.5, 4.0, 6.0, 8.0, 11.5, 11.5, 11.5, 11.5 },
/* Gray mode MCLK settings */
{ 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 11.5, 11.5, 11.5, 11.5 }
},
{ MODEL_MUSTEK1200, 2, 32, 3,
/* Motor settings (PWM and PWM_Duty) */
/* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */
{{ 2, 32 }, { 2, 32 }, { 2, 32 }, { 2, 32 }, { 2, 32 },
/* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */
{ 2, 32 }, { 2, 32 }, { 2, 32 }, { 2, 32 }, { 2, 32 }},
/* Color mode MCLK settings */
{ 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 },
/* Gray mode MCLK settings */
{ 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 }
},
/* settings good for the HP models */
{ MODEL_HP, 8, 60, 6,
/* Motor settings (PWM and PWM_Duty) */
{{ 23, 60 }, { 23, 60 }, { 23, 60 }, { 23, 60 }, { 23, 60 },
{ 8, 60 }, { 8, 60 }, { 8, 60 }, { 8, 60 }, { 8, 60 }},
/* Color mode MCLK settings */
{ 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 3.5, 3.5, 3.5, 3.5 },
/* Gray mode MCLK settings */
{ 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0 }
}
};
/* END PLUSTEK-DEVS.C .......................................................*/