diff options
Diffstat (limited to 'backend/plustek-usbdevs.c')
-rw-r--r-- | backend/plustek-usbdevs.c | 3095 |
1 files changed, 3095 insertions, 0 deletions
diff --git a/backend/plustek-usbdevs.c b/backend/plustek-usbdevs.c new file mode 100644 index 0000000..4f53863 --- /dev/null +++ b/backend/plustek-usbdevs.c @@ -0,0 +1,3095 @@ +/*............................................................................. + * Project : SANE library for Plustek flatbed scanners. + *............................................................................. + */ + +/** @file plustek-usbdevs.c + * @brief Here we have our USB device definitions. + * + * Based on sources acquired from Plustek Inc.<br> + * Copyright (C) 2001-2013 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 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 Canon N650U entry + * - 0.43 - tweaked HP 2200C entries + * - added _WAF_MISC_IO5 for HP lamp switching + * - added motor profiles + * - cleanup + * - 0.44 - added EPSON 1260 and 660 + * - added Genius Model strings + * - added Canon N670U entry + * - added bStepsToReverse to the HwDesc structure + * - tweaked EPSON1250 settings for TPA (thanks to Till Kamppeter) + * - 0.45 - added UMAX motor settings + * - added UMAX 5400 settings + * - added CanoScan1240 settings (thanks to Johann Philipp) + * - tweaked EPSON 1260 settings + * - removed EPSON 660 stuff + * - added Canon 1220U entry + * - added entry for Compaq S4-100 + * - 0.46 - fine-tuning for the CanoScan devices + * - fixed HP2200 shading position + * - renamed to plustek-usbdevs.c + * - 0.47 - added BearPaw 1200 settings for PID 0x4001 (LM9832) + * - tweaked the LiDE20 MCLK setting for 75DPI grayscale + * - enlarged the scan-area of the UMAX3400 to 11.7" + * - added CanoScan D660U + * - 0.48 - added another incarnation of the UMAX 3400 + * - added parameters for UMAX 3450 TPA + * - parameter tuning for CanoScan D660U + * - cleanup + * - 0.49 - tweaked motor settings for EPSON and CANON1200 + * - added support for CanoScan LiDE25 + * - 0.50 - cleanup + * - removed obsolete _WAF_BLACKFINE + * - LiDE20 does not seem to have a reliable black calibration area + * so the devices now will switch off the lamp for dark calibration + * - added Stephan Februarys' <stephanf@singnet.com.sg> LiDE25 changes + * - fixed high-speed feature of CanoScan D660U + * - tweaked LiDE25, LiDE30 and N1220U settings + * - changed high-speed setting for UMAX 3400, due to bugreport #302317 + * - fixed CanoScan N650U settings + * - fixed CanoScan N670U settings, see (bugreport #302738) + * - added high-speed setting for HP2200 + * - 0.51 - tweaked CanoScan N1220U settings again + * - added settings for Syscan TravelScan 662 + * - tweaked settings for Bearpaw 1200 + * - fixed CanoScan LiDE20 settings, cause of various reports, seems + * Canon has built-in different motortypes + * - also fixed Motorsettings for LiDE30 + * - 0.52 - added Q-Scan USB001 settings + * - added Q-Scan USB201 settings (thanks to Hiroshi Miura) + * - tweaked motor settings for Bearpaw 1200 + * - added TravelScan 464 settings + * - tweaked highspeed motor settings for Epson 1260 + * - tweaked CanoScan N650U motor settings + * + * <hr> + * 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. + * <hr> + */ + +/* the other stuff is included by plustek.c ...*/ +#include "plustek-usb.h" + +/** for Register 0x26 + */ +#define _ONE_CH_COLOR 0x04 +#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, -1, /* ShadingOriginY, DarkShadOrgY */ + {2550, 3508}, /* Size */ + {50, 50} /* MinDpi */ + }, + { /* Positive */ + {1040 + 15, 744 - 32},/* DataOrigin (X: 7cm + 1.8cm, Y: 8mm + 5.5cm)*/ + 543, -1, /* ShadingOriginY (Y: 8mm + 3.8cm) */ + {473, 414}, /* Size (X: 4cm, Y: 3.5cm) */ + {150, 150} /* MinDpi */ + }, + { /* Negative */ + {1004 + 55, 744 + 12}, /* DataOrigin (X: 7cm + 1.5cm, Y: 8mm + 5.5cm)*/ + + /* 533 blaustichig */ + 537 /* hell */ + /* 543 gruenstichig */ + + /*543*/, -1, /* ShadingOriginY (Y: 8mm + 3.8cm) */ + {567, 414}, /* Size (X: 4.8cm, Y: 3.5cm) */ + {150, 150} /* MinDpi */ + }, + { /* Adf */ + {0, 95}, /* DataOrigin (X: 0, Y: 8mm from home) */ + 0, -1, /* ShadingOriginY, DarkShadOrgY */ + {2550, 3508}, /* Size */ + {50, 50} /* MinDpi */ + }, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, {473, 414}, {150, 150}}, + {{1004 + 20, 744 + 32}, 543, -1, {567, 414}, {150, 150}}, + {{0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, {473, 414}, {150, 150}}, + {{1004 + 20, 744 + 32}, 543, -1, {567, 414}, {150, 150}}, + {{0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {600, 600}, + 0, + SENSORORDER_rgb, + 4, 0, kNEC3799, 0x04, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: ??? and Genius ColorPage-HR6 V2 + * KH: NS9831 + TPA + Button + NEC3799 +*/ +static DCapsDef Cap0x07B3_0x0007_0 = +{ + {{0, 124}, 36, -1, {2550, 3508}, { 50, 50 }}, + {{1040, 744}, 543, -1, { 473, 414 }, {150, 150}}, + {{1004, 744}, 543, -1, { 567, 414 }, {150, 150}}, + {{0, 95}, 0, -1, {2550, 3508}, { 50, 50 }}, + {600, 600}, + DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, + SENSORORDER_rgb, + 4, 5, kNEC3799, 0x07, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: ??? + * Tokyo: NS9832 + Button + SONY548 + */ +static DCapsDef Cap0x07B3_0x0005_2 = +{ + {{ 0, 64}, 0, -1, {2550, 3508}, { 50, 50 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {600, 600}, + 0, + SENSORORDER_rgb, + 8, 2, kSONY548, 0x05, _WAF_NONE, _NO_MIO +}; + +/* Genius ColorPage-HR7 + * Hualien: NS9832 + TPA + Button + NEC3778 + */ +static DCapsDef Cap0x07B3_0x0007_4 = +{ + {{ 0, 111 - 4 }, 0, -1, {2550, 3508}, { 50, 50 }}, + {{1040 + 5, 744 - 32}, 543, -1, { 473, 414 }, {150, 150}}, + {{1040 - 20, 768 }, 543, -1, { 567, 414 }, {150, 150}}, + {{ 0, 95 }, 0, -1, {2550, 3508}, { 50, 50 }}, + {1200, 1200}, + DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, + SENSORORDER_rgb, + 12, 5, kNEC3778, 0x07, _WAF_NONE, _NO_MIO +}; + +/* Genius ColorPage-HR7LE and ColorPage-HR6X + * Hualien: NS9832 + Button + NEC3778 + */ +static DCapsDef Cap0x07B3_0x0005_4 = +{ + {{ 0, 111 - 4 }, 0, -1, {2550, 3508}, {50, 50}}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {1200, 1200}, + 0, + SENSORORDER_rgb, + 12, 5, kNEC3778, 0x05, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: ???, Genius ColorPage HR6A + * KH: NS9831 + TPA + Button + NEC3799 + */ +static DCapsDef Cap0x07B3_0x000F_0 = +{ + {{ 0, 130}, 12, -1, {2550, 3508}, { 50, 50 }}, + {{1040, 744}, 543, -1, { 473, 414 }, {150, 150}}, + {{1004, 744}, 543, -1, { 567, 414 }, {150, 150}}, + {{ 0, 244}, 12, -1, {2550, 4200}, { 50, 50 }}, + {600, 600}, + DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf, + SENSORORDER_rgb, + 4, 5, kNEC3799, 0x0F, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: UT12 + * KH: NS9831 + TPA + Button + NEC3799 + */ +static DCapsDef Cap0x07B3_0x0013_0 = +{ + {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 30, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 - 20}, 543, -1 ,{ 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {1200, 1200}, + 0, + SENSORORDER_rgb, + 12, 0, kNEC3778, 0x00, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: UA18? + * KH: NS9831 + TPA + Button + NEC3778 + */ +static DCapsDef Cap0x07B3_0x000F_4 = +{ + {{ 0, 107}, 0, -1, {2550, 3508}, { 50, 50}}, + {{ 1040 + 5, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1040 - 20, 768}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 244}, 0, -1, {2550, 4200}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{ 954, 422}, 272, -1, { 624, 1940}, {150, 150}}, + {{1120, 438}, 275, -1, { 304, 1940}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1025 /*1055*/, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, + {{1048 /*1024*/, 754/*724*/}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {1200, 1200}, + DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, + SENSORORDER_rgb, + 12, 4, kNEC3778, 0x07, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: U24 + * KH: NS9832 + Button + NEC3778 + */ +static DCapsDef Cap0x07B3_0x0015_4 = +{ + {{ 0, 99 - 6}, 0, -1, {2550, 3508}, { 50, 50}}, + {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {1200, 1200}, + 0, + SENSORORDER_rgb, + 12, 4, kNEC3778, 0x05, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: ??? + * KH: NS9832 + TPA + Button + NEC3778 + */ +static DCapsDef Cap0x07B3_0x0014_4 = +{ + {{ 0, 99 - 6}, 0, -1, {2550, 3508}, { 50, 50}}, + {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {1200, 1200}, + 0, + SENSORORDER_rgb, + 12, 0, kNEC3778, 0x04, _WAF_NONE, _NO_MIO +}; + +/* Plustek Model: ??? A3 model + * KH: NS9831 + TPA + Button + SONY518 + */ +static DCapsDef Cap0x07B3_0x0014_1 = +{ + {{ 0, 93}, 0, -1, {3600, 5100}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{ 1004, 744}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {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, -1, {2550, 3508}, { 50, 50}}, + {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, + {{1004 + 30, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, + {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, + {600, 600}, + DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, + SENSORORDER_rgb, + 8, 4, kNEC8861, 0x07, _WAF_NONE, _NO_MIO +}; + +/* Model: HP Scanjet 2100c */ +static DCapsDef Cap0x03F0_0x0505 = +{ + {{ 0, 65}, 10, -1, {2550, 3508}, { 50, 50}}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {600, 600}, + 0, + SENSORORDER_rgb, + 4, 0, kNECSLIM, 0x00, _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}, 40, -1, {2550, 3508}, { 50, 50}}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {600, 600}, + 0, + SENSORORDER_rgb, + 4, 2, kNECSLIM, 0x00, _WAF_NONE, _NO_MIO +}; + +/* Mustek BearPaw 1200 (thanks to Henning Meier-Geinitz) + * NS9831 + 5 Buttons + NEC3798 + */ +static DCapsDef Cap0x0400_0x1000_0 = +{ + {{ 0, 130}, 20, -1, {2550, 3508}, { 50, 50 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {600, 600}, + 0, + SENSORORDER_rgb, + 8, + 5, kNEC8861, 0x00, + _WAF_MISC_IO_LAMPS | _WAF_LOFF_ON_START | _WAF_USE_ALT_DESC, + _NO_MIO +}; + +/* Mustek BearPaw 2400 + * NS9832 + 5 Buttons + SONY548 + */ +static DCapsDef Cap0x0400_0x1001_0 = +{ + {{ 0, 130/*209*/}, 35/*20*/, -1, {2550, 3508}, { 50, 50 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + { 600, 600 }, /*{ 1200, 1200 }, */ + 0, + SENSORORDER_rgb, + 4,/*16*/ /* sensor distance */ + 5, /* number of buttons */ + kSONY548, /* CCD type */ + 0, _WAF_USE_ALT_DESC, _NO_MIO +}; + +/* Epson Perfection/Photo1250 (thanks to Gene Heskett and Reinhard Max) + * Epson Perfection/Photo1260 (thanks to Till Kamppeter) + * NS9832 + 4 Buttons + CCD???? + */ +static DCapsDef Cap0x04B8_0x010F = +{ + /* Normal */ + {{ 25, 85}, 10, -1, {2550, 3508}, { 100, 100 }}, + /* Positive */ + {{ 1100, 972}, 720, -1, { 473, 414}, { 150, 150 }}, + /* Negative */ + {{ 1116, 1049}, 720, -1, { 567, 414}, { 150, 150 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {1200, 1200}, + 0, + SENSORORDER_rgb, + 8, /* sensor distance */ + 4, /* number of buttons */ + kEPSON, /* 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/3450 + */ +static DCapsDef Cap0x1606_0x0060 = +{ + /* Normal */ + {{ 30, 105 }, 15, -1, {2550, 3508}, { 100, 100 }}, + /* Positive */ + {{ 700, 760 }, 650, -1, {1200, 1500}, { 150, 150 }}, + /* Negative */ + {{ 700, 760 }, 650, -1, {1200, 1500}, { 150, 150 }}, + {{ 0, 0 }, 0, -1, {0, 0}, { 0, 0 }}, + {600, 600}, + DEVCAPSFLAG_LargeTPA, + 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 + _TPA(_MIO6) /* and miscio 6 for optional TPA */ +}; + +/* Umax 5400 + */ +static DCapsDef Cap0x1606_0x0160 = +{ + {{ 30, 165}, 0, -1, {2550, 3508}, {100, 100}}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, + {1200, 1200}, + 0, + SENSORORDER_bgr, + 12, /* sensor distance */ + 4, /* number of buttons */ + kNEC3778, /* 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, 90}, 45, 10, {2550, 3508}, {75, 75}}, + {{ 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, /* sensor distance */ + 1, /* number of buttons */ + kCIS650, /* use default settings during calibration */ + 0, /* not used here... */ + _WAF_MISC_IO_LAMPS, _NO_MIO +}; + +/* Canon N1220U + */ +static DCapsDef Cap0x04A9_0x2207 = +{ + {{ 0, 85}, 45, 10, {2550, 3508}, {75, 75}}, + {{ 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, + 16, /* sensor distance */ + 1, /* number of buttons */ + kCIS1220, /* use default settings during calibration */ + 0, /* not used here... */ + _WAF_MISC_IO_LAMPS, _NO_MIO +}; + +/* Canon D660U + */ +static DCapsDef Cap0x04A9_0x2208 = +{ + {{ 45, 125}, 15, -1, {2550, 3508}, { 50, 50}}, + {{1060, 744}, 510, -1, { 473, 414}, {150, 150}}, + {{1082, 842}, 610, -1, { 567, 414}, {150, 150}}, + {{ 0, 0}, 0, 0, { 0, 0}, { 0, 0}}, + {600, 600}, + DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, + SENSORORDER_rgb, + 4, + 1, + kNEC8861, /* use default settings during calibration */ + 0, + (_WAF_MISC_IO_LAMPS | _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR), + _MIO5 + _TPA(_MIO6) +}; + +/* Canon N670U/N676U/LiDE20 + */ +static DCapsDef Cap0x04A9_0x220D = +{ + {{ 0, 110}, 45, -1, {2550, 3508}, {75, 75}}, + {{ 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, /* sensor distance */ + 3, /* number of buttons */ + kCIS670, + 0, /* not used here... */ + _WAF_MISC_IO_LAMPS, _NO_MIO +}; + +/* Canon N1240U/LiDE30 + */ +static DCapsDef Cap0x04A9_0x220E = +{ + {{ 0, 100}, 50, 10, {2550, 3508}, {75, 75}}, + {{ 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, + 16, /* sensor distance */ + 3, /* number of buttons */ + kCIS1240, + 0, /* not used here... */ + _WAF_MISC_IO_LAMPS, _NO_MIO +}; + +/* Canon LiDE25 + */ +static DCapsDef Cap0x04A9_0x2220 = +{ + {{ 0, 100}, 50, 10, {2550, 3508}, {75, 75}}, + {{ 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, + 16, /* sensor distance */ + 3, /* number of buttons */ + kCIS1240, + 0, /* not used here... */ + _WAF_MISC_IO_LAMPS, _NO_MIO +}; + +/* Syscan TravelScan 662 A6 sheet-fed scanner + */ +static DCapsDef Cap0x0A82_0x6620 = +{ + {{ 0, 0}, 100, -1, {1226, 3508}, {75, 75}}, + {{ 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}, + DEVCAPSFLAG_SheetFed, + SENSORORDER_rgb, + 8, + 1, + kNEC8861, /* use default settings during calibration */ + 0, /* not used here... */ + (_WAF_MISC_IO_LAMPS | _WAF_MISC_IO_BUTTONS | + _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR), + _MIO5 + _PORT1 + _PS_INP_MIO2 +}; + +/* Syscan TravelScan 464 A4 sheet-fed scanner + */ +static DCapsDef Cap0x0A82_0x4600 = +{ + {{ 0, 0}, 150, -1, {2550, 3508}, {75, 75}}, + {{ 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}, + DEVCAPSFLAG_SheetFed, + SENSORORDER_rgb, + 8, + 1, + kNEC8861, /* use default settings during calibration */ + 0, /* not used here... */ + (_WAF_MISC_IO_LAMPS | _WAF_MISC_IO_BUTTONS | + _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR), + _MIO5 + _PORT1 + _PS_INP_MIO2 +}; + +/* IRIScan/Q-Scan USB001 A4 sheet-fed scanner + */ +static DCapsDef Cap0x0A53_0x1000 = +{ + {{ 0, 0}, 150, -1, {2550, 3508}, {150, 150}}, + {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, + {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, + {300, 300}, + DEVCAPSFLAG_SheetFed, + SENSORORDER_gbr, + 2, /* sensor distance */ + 0, /* number of buttons */ + kNEC8861, /* use default settings during calibration */ + 200, /* threshold for resetting sensor-order */ + (_WAF_MISC_IO_LAMPS | _WAF_RESET_SO_TO_RGB | _WAF_ONLY_8BIT), + _PS_INP1 +}; + +/* PandP USB201 Q-Scan A6 Scanner + */ +static DCapsDef Cap0x0A53_0x2000 = +{ + {{ 0, 0}, 0, -1, {1226, 3508}, { 50, 50 }}, + {{ 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}, + DEVCAPSFLAG_SheetFed, + SENSORORDER_rgb, + 4, + 0, + kNEC8861, + 0, + _WAF_NONE, + _PS_INP1 +}; + +/******************* additional Hardware descriptions ************************/ + +/** U24, UT12 and UT16 + */ +static HWDef Hw0x07B3_0x0017_0 = +{ + 1.5, /* dMaxMotorSpeed */ + 1.2, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 9, /* dIntegrationTimeLowLamp */ + 9, /* dIntegrationTimeHighLamp */ + 300, /* wMotorDpi (Full step DPI) */ + 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 */ + + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 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) */ + 0x1e, /* bstepsToReverse reg 0x50) */ + 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 */ + 1.0 +}; + +/** Genius ColorPage-HR6 V2 and ColorPage-HR6X + */ +static HWDef Hw0x07B3_0x0007_0 = +{ + 1.5, 1.2, 0.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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 14, + 62, + 110, + 5384, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x0d, 0x88, 0x28, 0x3b, + 0, 0, 0, + _LM9832, + MODEL_HuaLien, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0007_2 = +{ + 1.4, 1.2, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 16, + 64, + 152, + 5416, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xfc, + 0, + 0xff, + 64, + 20, + 0x0d, 0x88, 0x28, 0x3b, + 0, 0, 0, + _LM9832, + MODEL_Tokyo600, + 1.0 +}; + +/** Genius ColorPage-HR7 and ColorPage-HR7LE + */ +static HWDef Hw0x07B3_0x0007_4 = +{ + 1.1, 0.9, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 13, + 62, + 304, + 10684, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 24, + 40, + 0x0d, 0x88, 0x28, 0x3b, + 0, 0, 0, + _LM9832, + MODEL_HuaLien, + 1.0 +}; + +/** Genius ColorPage-HR6A + */ +static HWDef Hw0x07B3_0x000F_0 = +{ + 1.5, 1.0, 0.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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 14, + 62, + 110, + 5384, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x05, 0x88, 0x08, 0x3b, + 0, 0, 0, + _LM9832, + MODEL_HuaLien, + 1.0 +}; + +/** U12/UT12 and U24 + */ +static HWDef Hw0x07B3_0x0013_0 = +{ + 1.5, 1.2, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 14, + 62, + 110, + 5400, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9831, + MODEL_KaoHsiung, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0013_4 = +{ + 1.0, 0.9, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 13, + 62, + 320, + 10684, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 10, + 48, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9831, + MODEL_KaoHsiung, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x000F_4 = +{ + 1.1, 0.9, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 13, + 62, + 304, + 10684, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 24, + 40, + 0x05, 0x88, 0x08, 0x3b, + 0, 0, 0, + _LM9832, + MODEL_HuaLien, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0016_4 = +{ + 1.0, 0.9, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 13, + 62, + 320, + 10684, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 10, + 48, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9832, + MODEL_KaoHsiung, + 1.0 +}; + +/** Plustek OpticPro UT24 and others... + */ +static HWDef Hw0x07B3_0x0017_4 = +{ + 1.0, 0.9, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 13, + 62, + 320, + 10684, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 10, + 48, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9832, + MODEL_KaoHsiung, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0017_1 = +{ + 1.5, 1.5, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 15, + 60, + 110, + 5415, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9832, + MODEL_KaoHsiung, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0012_0 = +{ + 1.5, 1.4, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 14, + 62, + 110, + 5400, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9832, + MODEL_KaoHsiung, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0017_2 = +{ + 1.5, 1.2, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 16, + 64, + 110, + 5416, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9832, + MODEL_KaoHsiung, + 1.0 +}; + +/** unknown + */ +static HWDef Hw0x07B3_0x0017_3 = +{ + 1.5, 1.2, 0.0, + 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, + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 1, + 14, + 62, + 110, + 5400, + 0, + 16383, + 0, + 0, + 0, + 16383, + 3, + 0, + 0x1e, + 0xa8, + 0, + 0xff, + 64, + 20, + 0x0d, 0x22, 0x82, 0x88, + 0, 0, 0, + _LM9832, + MODEL_KaoHsiung, + 1.0 +}; + +/** HP Scanjet 2100C + */ +static HWDef Hw0x03F0_0x0505 = +{ + 1.05, /* dMaxMotorSpeed */ + 1.05, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 6, /* dIntegrationTimeLowLamp */ + 8, /* dIntegrationTimeHighLamp */ + 600, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 6, /* dMinIntegrationTimeLowres (ms) */ + 6, /* dMinIntegrationTimeHighres (ms) */ + 0, /* wGreenPWMDutyCycleLow */ + 0, /* wGreenPWMDutyCycleHigh */ + 0x02, /* bSensorConfiguration (0x0b) */ + 0x00, /* bReg_0x0c */ + 0x2F, /* bReg_0x0d */ + 0x13, /* 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 */ + + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 1, /* StepperPhaseCorrection (0x1a & 0x1b) */ + 15, /* bOpticBlackStart (0x1c) */ + 50, /* bOpticBlackEnd (0x1d) */ + 140, /* wActivePixelsStart (0x1e & 0x1f) */ + 5414, /* 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) */ + 0x1e, /* steps to reverse on buffer full reg 0x50 */ + 0xfc, /* 0xa8 -bReg_0x51 */ + 0, /* bReg_0x54 */ + 0x18, /* bReg_0x55 */ + 8, /* bReg_0x56 */ + 60, /* bReg_0x57 */ + 0x0d, /* bReg_0x58 */ + 0xaa, /* bReg_0x59 */ + 0xba, /* bReg_0x5a */ + 0xbb, /* bReg_0x5b */ + 0, /* bReg_0x5c */ + 0, /* bReg_0x5d */ + 0, /* bReg_0x5e */ + _LM9831, + MODEL_HP, + 1.0 +}; + +/** HP Scanjet 2200C */ +static HWDef Hw0x03F0_0x0605 = +{ + 1.05, /* dMaxMotorSpeed */ + 1.05, /* dMaxMoveSpeed */ + 2.2, /* dHighSpeed */ + 6, /* dIntegrationTimeLowLamp */ + 8, /* dIntegrationTimeHighLamp */ + 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 */ + + /* illumination mode settings (not used for CCD devices)*/ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 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) */ + 0x1e, /* steps to reverse on buffer full (0x50) */ + 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, + MODEL_HP, + 1.0 +}; + +/** Mustek BearPaw 1200 */ +static HWDef Hw0x0400_0x1000_0 = +{ + 1.75, /* ok dMaxMotorSpeed */ + 1.25, /* ok dMaxMoveSpeed */ + 0.0, /* ok dHighSpeed */ + 12, /* ok dIntegrationTimeLowLamp */ + 12, /* ok dIntegrationTimeHighLamp */ + 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 */ + /* illumination mode settings (not used for CCD devices)*/ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 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) */ + 0x1e, /* steps to reverse on buffer full (reg 0x50) */ + 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) */ + 0x16, /* 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, + 1.5 +}; + +/** Mustek BearPaw 1200 (LM9832) */ +static HWDef Hw0x0400_0x1001_1 = +{ + 1.25, /* ok dMaxMotorSpeed */ + 1.25, /* ok dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 12, /* ok dIntegrationTimeLowLamp */ + 12, /* ok dIntegrationTimeHighLamp */ + 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 */ + /* illumination mode settings (not used for CCD devices)*/ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + 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) */ + 0x1e, /* steps to reverse on buffer full (reg 0x50) */ + 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) */ + 0x16, /* 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_MUSTEK600, + 1.5 +}; + +/** BearPaw 2400 */ +static HWDef Hw0x0400_0x1001_0 = +{ + 1.0/*1.8*/, /* ok dMaxMotorSpeed */ + 0.9/*1.8*/, /* ok dMaxMoveSpeed */ + 0.0, /* ok dHighSpeed */ + 12, /* ok dIntegrationTimeLowLamp */ + 12, /* ok dIntegrationTimeHighLamp */ + 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 */ + /* illumination mode settings (not used for CCD devices)*/ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 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) */ + 0x1e, /* steps to reverse on buffer full (reg 0x50) */ + 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, + 1.0 +}; + +/** EPSON Perfection/Photo 1250 */ +static HWDef Hw0x04B8_0x010F = +{ + 0.8, /* dMaxMotorSpeed */ + 0.8, /* dMaxMoveSpeed */ + 4.1, /* dHighSpeed */ + 12, /* dIntegrationTimeLowLamp */ + 12, /* dIntegrationTimeHighLamp */ + 600, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 4, /* dMinIntegrationTimeLowres (ms) */ + 5, /* dMinIntegrationTimeHighres (ms) */ + 1, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 1, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x02, /* ok bSensorConfiguration (0x0b) */ + 0x04, /* ok sensor control settings (reg 0x0c) */ + 0x7d, /* ok sensor control settings (reg 0x0d) */ + 0x37, /* ok sensor control settings (reg 0x0e) */ + + {0x02, 0x07, 0x00, 0x01, 0x04, 0x07, 0x00, 0x00, 0x03, 0x07}, + /* ok mono (reg 0x0f to 0x18) */ + {0x06, 0x16, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x0a, 0x17}, + /* 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 */ + /* illumination mode settings (not used for CCD devices)*/ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 1, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0x00, /* ok bOpticBlackStart (reg 0x1c) */ + 0x42, /* ok bOpticBlackEnd (reg 0x1d) */ + 69, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */ + 10758, /* 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) */ + 0x1e, /* steps to reverse on buffer full (reg 0x50) */ + 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) */ + 0x14, /* 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_EPSON, + 1.0 +}; + +/** EPSON Perfection/Photo 1260 */ +static HWDef Hw0x04B8_0x011D = +{ + 0.9, /* dMaxMotorSpeed */ + 0.8, /* dMaxMoveSpeed */ + 3.0, /* dHighSpeed */ + 12, /* dIntegrationTimeLowLamp */ + 12, /* dIntegrationTimeHighLamp */ + 600, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 4, /* dMinIntegrationTimeLowres (ms) */ + 5, /* dMinIntegrationTimeHighres (ms) */ + 1, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 1, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x02, /* ok bSensorConfiguration (0x0b) */ + 0x04, /* ok sensor control settings (reg 0x0c) */ + 0x7d, /* ok sensor control settings (reg 0x0d) */ + 0x37, /* ok sensor control settings (reg 0x0e) */ + + {0x02, 0x07, 0x00, 0x01, 0x04, 0x07, 0x00, 0x00, 0x03, 0x07}, + /* ok mono (reg 0x0f to 0x18) */ + {0x06, 0x0b, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x0a, 0x17}, + /* ok color (reg 0x0f to 0x18) */ + _GREEN_CH, /* ok bReg_0x26 color mode - bits 4 and 5 */ + 0x42, /* ok bReg 0x27 color mode */ + 3, /* bReg 0x29 illumination mode */ + /* illumination mode settings (not used for CCD devices)*/ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 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) */ + 0x1e, /* steps to reverse on buffer full (reg 0x50) */ + 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) */ + 0x14, /* 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_EPSON, + 1.5 +}; + +/** Umax 3400/3450 */ +static HWDef Hw0x1606_0x0060 = +{ + 1.5, /* dMaxMotorSpeed */ + 0.8, /* dMaxMoveSpeed */ + 2.75, /* dHighSpeed */ + 9, /* dIntegrationTimeLowLamp */ + 9, /* dIntegrationTimeHighLamp */ + 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 */ + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 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) */ + 11, /* steps to reverse on buffer full (reg 0x50)*/ + 0xfc, /* acceleration profile (reg 0x51) */ + 3, /* 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) */ + 0x74, /* 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_UMAX, + 1.0 +}; + +/** Umax 5400 */ +static HWDef Hw0x1606_0x0160 = +{ + 1.1, /* dMaxMotorSpeed */ + 0.9, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 9, /* dIntegrationTimeLowLamp */ + 9, /* dIntegrationTimeHighLamp */ + 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) */ + 0x25, /* sensor control settings (reg 0x0e) */ + + /* mono (reg 0x0f to 0x18) */ + {0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03}, + + /* color (reg 0x0f to 0x18) */ + {0x01, 0x0c, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0c}, + + _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ + 0x40, /* bReg 0x27 color mode */ + 1, /* bReg 0x29 illumination mode */ + + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 20, /* bOpticBlackStart (reg 0x1c) */ + 45, /* bOpticBlackEnd (reg 0x1d) */ + 110, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */ + 10669, /* 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) */ + 11, /* steps to reverse on buffer full (reg 0x50)*/ + 0xfc, /* acceleration profile (reg 0x51) */ + 3, /* 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_UMAX1200, + 1.0 +}; + +/** Canon N650U/N656U */ +static HWDef Hw0x04A9_0x2206 = +{ + 0.76, /* dMaxMotorSpeed */ + 0.243, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* dIntegrationTimeLowLamp */ + 100, /* dIntegrationTimeHighLamp */ + 1200, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 0, /* 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) */ + + /* mono & color (reg 0x0f to 0x18) the + same for CIS devices */ + + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode (runtime) */ + /* illumination mode settings */ + { 3, 0, 0, 23, 850, 0, 0 }, + { 2, 23, 2500, 23, 1800, 23, 950 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0, /* bOpticBlackStart (reg 0x1c) */ + 0, /* bOpticBlackEnd (reg 0x1d) */ + 89, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */ + 6074, /* wLineEnd (reg 0x20 + 0x21) */ + + 23, /* red lamp on (reg 0x2c + 0x2d) */ + 2500, /* red lamp off (reg 0x2e + 0x2f) */ + 23, /* green lamp on (reg 0x30 + 0x31) */ + 1800, /* green lamp off (reg 0x32 + 0x33) */ + 23, /* blue lamp on (reg 0x34 + 0x35) */ + 950, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + 0x3f, /* steps to reverse when buffer is full reg 0x50) */ + 0xfc, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x0f, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x1f, /* pwm duty cycle (reg 0x57) */ + + 0x05, /* Paper sense (reg 0x58) */ + + 0x66, /* misc io12 (reg 0x59) */ + 0x16, /* misc io34 (reg 0x5a) */ + 0x91, /* misc io56 (reg 0x5b) */ + 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ + 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ + 0, /* test mode (reg 0x5e) */ + _LM9832, + MODEL_CANON600, + 2.0 +}; + +/** Canon N1220U */ +static HWDef Hw0x04A9_0x2207 = +{ + 0.72, /* dMaxMotorSpeed */ + 0.36, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 1200, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 0, /* 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) */ + + /* mono (reg 0x0f to 0x18) */ + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + + /* color (reg 0x0f to 0x18) */ + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + { 3, 0, 0, 23, 2200, 0, 0 }, + { 2, 23, 16383, 23, 15000, 23, 6600 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0, /* bOpticBlackStart (reg 0x1c) */ + 0, /* bOpticBlackEnd (reg 0x1d) */ + 124, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 10586, /* wLineEnd (reg 0x20 + 0x21) */ + + 23, /* red lamp on (reg 0x2c + 0x2d) */ + 16383, /* red lamp off (reg 0x2e + 0x2f) */ + 23, /* green lamp on (reg 0x30 + 0x31) */ + 15000, /* green lamp off (reg 0x32 + 0x33) */ + 23, /* blue lamp on (reg 0x34 + 0x35) */ + 6600, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + 0, /* steps to reverse when buffer is full reg 0x50) */ + 0xfc, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x0f, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x1f, /* pwm duty cycle (reg 0x57) */ + + 0x05, /* Paper sense (reg 0x58) */ + + 0x66, /* misc io12 (reg 0x59) */ + 0x16, /* misc io34 (reg 0x5a) */ + 0x91, /* misc io56 (reg 0x5b) */ + 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ + 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ + 0, /* test mode (reg 0x5e) */ + _LM9832, + MODEL_CANON1200, + 2.0 +}; + +/** Canon D660U */ +static HWDef Hw0x04A9_0x2208 = +{ + 1.2, /* dMaxMotorSpeed */ + 1.1, /* dMaxMoveSpeed */ + 2.75, /* dHighSpeed */ + 9, /* dIntegrationTimeLowLamp */ + 9, /* dIntegrationTimeHighLamp */ + 300, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 8, /* dMinIntegrationTimeLowres (ms) */ + 8, /* dMinIntegrationTimeHighres (ms) */ + 4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x02, /* bSensorConfiguration (0x0b) */ + 0x60, /* sensor control settings (reg 0x0c) */ + 0x2f, /* sensor control settings (reg 0x0d) */ + 0x13, /* sensor control settings (reg 0x0e) */ + + {0x06, 0x17, 0x01, 0x03, 0x05, 0x07, 0x00, 0x00, 0x0b }, + {0x06, 0x17, 0x01, 0x03, 0x05, 0x07, 0x00, 0x00, 0x0b }, + _GREEN_CH, + 0, /* bReg 0x27 color mode */ + 1, /* bReg 0x29 illumination mode */ + + /* illumination mode settings (not used for CCD devices) */ + { 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0 }, + + 0, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 13, /* bOpticBlackStart (reg 0x1c) */ + 33, /* bOpticBlackEnd (reg 0x1d) */ + 64, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 5440, /* wLineEnd (reg 0x20 + 0x21) */ + + 16383, /* red lamp on (reg 0x2c + 0x2d) */ + 1, /* 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) */ + 0, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + 0x20, /* steps to reverse when buffer is full reg 0x50) */ + 0xfc, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0, /* kickstart (reg 0x55) */ + 0x02, /* pwm freq (reg 0x56) */ + 0x1f, /* pwm duty cycle (reg 0x57) */ + 0x05, /* Paper sense (reg 0x58) */ + 0x44, /* misc io12 (reg 0x59) */ + 0x14, /* 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_CANONCCD1200, + 1.5 +}; + +/** Canon 670/676/LiDE20 */ +static HWDef Hw0x04A9_0x220D = +{ + 0.72, /* dMaxMotorSpeed */ + 0.23, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* dIntegrationTimeLowLamp */ + 100, /* dIntegrationTimeHighLamp */ + 1200, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 0, /* 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, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + /* mono (reg 0x0f to 0x18) */ + + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode (runtime) */ + + { 3, 0, 0, 23, 1800, 0, 0 }, + { 2, 23, 3800, 23, 3300, 23, 2700 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0, /* bOpticBlackStart (reg 0x1c) */ + 0, /* bOpticBlackEnd (reg 0x1d) */ + 75, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 6074, /* wLineEnd (reg 0x20 + 0x21) */ + + 23, /* red lamp on (reg 0x2c + 0x2d) */ + 3800, /* red lamp off (reg 0x2e + 0x2f) */ + 23, /* green lamp on (reg 0x30 + 0x31) */ + 3300, /* green lamp off (reg 0x32 + 0x33) */ + 23, /* blue lamp on (reg 0x34 + 0x35) */ + 2700, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + 0x3f, /* steps to reverse when buffer is full reg 0x50) */ + 0xfc, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x0f, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x1f, /* pwm duty cycle (reg 0x57) */ + + 0x04, /* Paper sense (reg 0x58) */ + + 0x66, /* misc io12 (reg 0x59) */ + 0x16, /* misc io34 (reg 0x5a) */ + 0x91, /* misc io56 (reg 0x5b) */ + 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ + 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ + 0, /* test mode (reg 0x5e) */ + _LM9833, + MODEL_CANON600, + 2.0 +}; + +/** Canon N1240U/LiDE30 */ +static HWDef Hw0x04A9_0x220E = +{ + 0.72, /* dMaxMotorSpeed */ + 0.30, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 1200, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 0, /* 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, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + /* mono (reg 0x0f to 0x18) */ + + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + + { 3, 0, 0, 23, 3000, 0, 0 }, + { 2, 23, 16383, 23, 6500, 23, 4900 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0, /* bOpticBlackStart (reg 0x1c) */ + 0, /* bOpticBlackEnd (reg 0x1d) */ + 52, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 10586, /* wLineEnd (reg 0x20 + 0x21) */ + + 23, /* red lamp on (reg 0x2c + 0x2d) */ + 16383, /* red lamp off (reg 0x2e + 0x2f) */ + 23, /* green lamp on (reg 0x30 + 0x31) */ + 6500, /* green lamp off (reg 0x32 + 0x33) */ + 23, /* blue lamp on (reg 0x34 + 0x35) */ + 4900, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + 0x20, /* steps to reverse when buffer is full reg 0x50) */ + 0xfc, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x0f, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x1f, /* pwm duty cycle (reg 0x57) */ + + 0x04, /* Paper sense (reg 0x58) */ + + 0x66, /* misc io12 (reg 0x59) */ + 0x16, /* misc io34 (reg 0x5a) */ + 0x91, /* misc io56 (reg 0x5b) */ + 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ + 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ + 0, /* test mode (reg 0x5e) */ + _LM9833, + MODEL_CANON1200, + 2.0 +}; + +/** Canon LiDE25 */ +static HWDef Hw0x04A9_0x2220 = +{ + 0.70, /* dMaxMotorSpeed */ + 0.25, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 1200, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 0, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x11, /* bSensorConfiguration (0x0b) */ + 0x4d, /* sensor control settings (reg 0x0c) */ + 0x2f, /* sensor control settings (reg 0x0d) */ + 0x00, /* sensor control settings (reg 0x0e) */ + + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x07}, + /* mono (reg 0x0f to 0x18) */ + + {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x07}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + + { 3, 0, 0, 50, 3700, 0, 0 }, + { 2, 50, 5600, 50, 7100, 50, 4600 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0, /* bOpticBlackStart (reg 0x1c) */ + 0, /* bOpticBlackEnd (reg 0x1d) */ + 0x7f, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 10559, /* wLineEnd (reg 0x20 + 0x21) */ + + 50, /* red lamp on (reg 0x2c + 0x2d) */ + 5600, /* red lamp off (reg 0x2e + 0x2f) */ + 50, /* green lamp on (reg 0x30 + 0x31) */ + 7100, /* green lamp off (reg 0x32 + 0x33) */ + 50, /* blue lamp on (reg 0x34 + 0x35) */ + 4600, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + 0x20, /* steps to reverse when buffer is full reg 0x50) */ + 0xfc, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x0f, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x1f, /* pwm duty cycle (reg 0x57) */ + + 0x04, /* Paper sense (reg 0x58) */ + + 0x66, /* misc io12 (reg 0x59) */ + 0x16, /* misc io34 (reg 0x5a) */ + 0x91, /* misc io56 (reg 0x5b) */ + 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ + 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ + 0, /* test mode (reg 0x5e) */ + _LM9833, + MODEL_CANON_LIDE25, + 2.0 +}; + +/** TravelScan 662 */ +static HWDef Hw0x0A82_0x6620 = +{ + 0.72, /* dMaxMotorSpeed */ + 0.188, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 740, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 3000, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 3000, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x0d, /* bSensorConfiguration (0x0b) */ + 0x00, /* sensor control settings (reg 0x0c) */ + 0x25, /* sensor control settings (reg 0x0d) */ + 0x00, /* sensor control settings (reg 0x0e) */ + + {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, + /* mono (reg 0x0f to 0x18) */ + + {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + + { 3, 0, 0, 10, 450, 0, 0 }, + { 2, 10, 1000, 10, 880, 10, 630 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 1, /* bOpticBlackStart (reg 0x1c) */ + 2, /* bOpticBlackEnd (reg 0x1d) */ + 0x17, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 2600, /* wLineEnd (reg 0x20 + 0x21) */ + + 10, /* red lamp on (reg 0x2c + 0x2d) */ + 1000, /* red lamp off (reg 0x2e + 0x2f) */ + 10, /* green lamp on (reg 0x30 + 0x31) */ + 880, /* green lamp off (reg 0x32 + 0x33) */ + 10, /* blue lamp on (reg 0x34 + 0x35) */ + 630, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + + 0, /* steps to reverse when buffer is full reg 0x50) */ + 0, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x09, /* kickstart (reg 0x55) */ + 0x02, /* pwm freq (reg 0x56) */ + 0x16, /* pwm duty cycle (reg 0x57) */ + + 0x01, /* Paper sense (reg 0x58) */ + + 0x0e, /* misc io12 (reg 0x59) */ + 0x96, /* misc io34 (reg 0x5a) */ + 0x01, /* 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) */ + _LM9833, + MODEL_TSCAN, + 1.8 +}; + +/** TravelScan 464 */ +static HWDef Hw0x0A82_0x4600 = +{ + 0.72, /* dMaxMotorSpeed */ + 0.26, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 740, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 3000, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 3000, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x0d, /* bSensorConfiguration (0x0b) */ + 0x00, /* sensor control settings (reg 0x0c) */ + 0x25, /* sensor control settings (reg 0x0d) */ + 0x00, /* sensor control settings (reg 0x0e) */ + + {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, + /* mono (reg 0x0f to 0x18) */ + + {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + + { 3, 500, 1045, 500, 990, 500, 990 }, + { 2, 500, 1045, 500, 990, 500, 990 }, + + 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 1, /* bOpticBlackStart (reg 0x1c) */ + 2, /* bOpticBlackEnd (reg 0x1d) */ + 0x17, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 5300, /* wLineEnd (reg 0x20 + 0x21) */ + + 500, /* red lamp on (reg 0x2c + 0x2d) */ + 1045, /* red lamp off (reg 0x2e + 0x2f) */ + 500, /* green lamp on (reg 0x30 + 0x31) */ + 990, /* green lamp off (reg 0x32 + 0x33) */ + 500, /* blue lamp on (reg 0x34 + 0x35) */ + 990, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + + 0, /* steps to reverse when buffer is full reg 0x50) */ + 0, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x09, /* kickstart (reg 0x55) */ + 0x02, /* pwm freq (reg 0x56) */ + 0x16, /* pwm duty cycle (reg 0x57) */ + + 0x01, /* Paper sense (reg 0x58) */ + + 0x0e, /* misc io12 (reg 0x59) */ + 0x96, /* misc io34 (reg 0x5a) */ + 0x01, /* 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) */ + _LM9833, + MODEL_TSCAN_A4, + 1.8 +}; + +/** IRIScan/Q-Scan USB001 - Portable Peripheral Co., Ltd. */ +static HWDef Hw0x0A53_0x1000 = +{ + 0.50, /* dMaxMotorSpeed */ + 0.40, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 300, /* 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) */ + + 0x09, /* bSensorConfiguration (0x0b) */ + 0x00, /* sensor control settings (reg 0x0c) */ + 0x65, /* sensor control settings (reg 0x0d) */ + 0x13, /* sensor control settings (reg 0x0e) */ + + {0x02, 0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02}, + /* mono (reg 0x0f to 0x18) */ + + {0x02, 0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + + { 3, 0, 0, 2593, 4600, 0, 0 }, + { 2, 2593, 7100, 2593, 4600, 2593, 4480 }, + + 256, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0, /* bOpticBlackStart (reg 0x1c) */ + 0x15, /* bOpticBlackEnd (reg 0x1d) */ + 0x15, /* wActivePixelsStart (reg 0x1e + 0x1f) */ + 5500, /* wLineEnd (reg 0x20 + 0x21) */ + + 2593, /* red lamp on (reg 0x2c + 0x2d) */ + 7100, /* red lamp off (reg 0x2e + 0x2f) */ + 2593, /* green lamp on (reg 0x30 + 0x31) */ + 4600, /* green lamp off (reg 0x32 + 0x33) */ + 2593, /* blue lamp on (reg 0x34 + 0x35) */ + 4480, /* blue lamp off (reg 0x36 + 0x37) */ + + 3, /* stepper motor control (reg 0x45) */ + 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + + 0, /* steps to reverse when buffer is full reg 0x50) */ + 0, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x1b, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x15, /* pwm duty cycle (reg 0x57) */ + + 0x00, /* Paper sense (reg 0x58) */ + + 0x00, /* misc io12 (reg 0x59) */ + 0x00, /* misc io34 (reg 0x5a) */ + 0x00, /* 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_QSCAN, + 1.1 +}; + +/** PandP USB201 Q-Scan A6 Scanner */ +static HWDef Hw0x0A53_0x2000 = +{ + 0.5, /* dMaxMotorSpeed */ + 0.2, /* dMaxMoveSpeed */ + 0.0, /* dHighSpeed */ + 100, /* wIntegrationTimeLowLamp */ + 100, /* wIntegrationTimeHighLamp */ + 570, /* wMotorDpi (Full step DPI) */ + 512, /* wRAMSize (KB) */ + 3.75, /* dMinIntegrationTimeLowres (ms) */ + 5.75, /* dMinIntegrationTimeHighres (ms) */ + 0x0fff, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ + 0x0fff, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ + + 0x02, /* bSensorConfiguration (0x0b) */ + 0x00, /* sensor control settings (reg 0x0c) */ + 0x25, /* sensor control settings (reg 0x0d) */ + 0x06, /* sensor control settings (reg 0x0e) */ + + {0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07}, + /* mono (reg 0x0f to 0x18) */ + + {0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07}, + /* color (reg 0x0f to 0x18) */ + + (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ + + 0x00, /* bReg 0x27 color mode */ + 2, /* bReg 0x29 illumination mode */ + + { 3, 0, 0, 10, 450, 0, 0 }, + /* initial illumination settings - mono */ + { 2, 10, 1000, 10, 880, 10, 630 }, + /* initial illumination settings - color */ + + 0x0101, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ + 0x004d, /* bOpticBlackStart (reg 0x22 + 0x23) */ + 0x11, /* bOpticBlackEnd */ + 0x0011, /* wActivePixelsStart */ + 0x0bb8, /* wLineEnd (reg 0x20 + 0x21) */ + + 10, /* red lamp on (reg 0x2c + 0x2d) */ + 1000, /* red lamp off (reg 0x2e + 0x2f) */ + 10, /* green lamp on (reg 0x30 + 0x31) */ + 880, /* green lamp off (reg 0x32 + 0x33) */ + 10, /* blue lamp on (reg 0x34 + 0x35) */ + 630, /* blue lamp off (reg 0x36 + 0x37) */ + + 0x13, /* stepper motor control (reg 0x45) */ + 0x0000, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ + + 0, /* steps to reverse when buffer is full reg 0x50) */ + 0, /* acceleration profile (reg 0x51) */ + 0, /* lines to process (reg 0x54) */ + 0x1b, /* kickstart (reg 0x55) */ + 0x08, /* pwm freq (reg 0x56) */ + 0x15, /* pwm duty cycle (reg 0x57) */ + + 0x00, /* Paper sense (reg 0x58) */ + + 0x20, /* misc io12 (reg 0x59) */ + 0x02, /* misc io34 (reg 0x5a) */ + 0x90, /* 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_QSCAN_A6, + 1.8 +}; + +/******************** all available combinations *****************************/ + +/** here we have all supported devices and their settings... + */ +static SetDef Settings[] = +{ + /* Plustek devices... */ + /* LM9831 based */ + {"0x07B3-0x0010-0", &Cap0x07B3_0x0010_0, &Hw0x07B3_0x0013_0, "OpticPro U12" }, + {"0x07B3-0x0011-0", &Cap0x07B3_0x0011_0, &Hw0x07B3_0x0013_0, "OpticPro U24" }, + {"0x07B3-0x0013-0", &Cap0x07B3_0x0013_0, &Hw0x07B3_0x0013_0, "OpticPro UT12" }, + + /* LM9832 based */ + {"0x07B3-0x0017-0", &Cap0x07B3_0x0017_0, &Hw0x07B3_0x0017_0, "OpticPro UT12/UT16" }, + {"0x07B3-0x0015-0", &Cap0x07B3_0x0015_0, &Hw0x07B3_0x0017_0, "OpticPro U24" }, + {"0x07B3-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "OpticPro U24" }, + {"0x07B3-0x0017-4", &Cap0x07B3_0x0017_4, &Hw0x07B3_0x0017_4, "OpticPro UT24" }, + + /* never seen yet */ + {"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-0x0014-0", &Cap0x07B3_0x0014_0, &Hw0x07B3_0x0017_0, "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-0", &Cap0x0400_0x1000_0, &Hw0x0400_0x1000_0, "BearPaw 1200" }, + {"0x0400-0x1001-1", &Cap0x0400_0x1000_0, &Hw0x0400_0x1001_1, "BearPaw 1200" }, + {"0x0400-0x1001-0", &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, "ColorPage-HR6 V2" }, + {"0x0458-0x2009", &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "ColorPage-HR6A" }, + {"0x0458-0x2013", &Cap0x07B3_0x0007_4, &Hw0x07B3_0x0007_4, "ColorPage-HR7" }, + {"0x0458-0x2015", &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_4, "ColorPage-HR7LE" }, + {"0x0458-0x2016", &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_0, "ColorPage-HR6X" }, + + /* Hewlett Packard... */ + {"0x03F0-0x0505", &Cap0x03F0_0x0505, &Hw0x03F0_0x0505, "Scanjet 2100c" }, + {"0x03F0-0x0605", &Cap0x03F0_0x0605, &Hw0x03F0_0x0605, "Scanjet 2200c" }, + + /* EPSON... */ + {"0x04B8-0x010F", &Cap0x04B8_0x010F, &Hw0x04B8_0x010F, "Perfection 1250/Photo" }, + {"0x04B8-0x011D", &Cap0x04B8_0x010F, &Hw0x04B8_0x011D, "Perfection 1260/Photo" }, + + /* UMAX... */ + {"0x1606-0x0050", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "3400" }, + {"0x1606-0x0060", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "3400" }, + {"0x1606-0x0160", &Cap0x1606_0x0160, &Hw0x1606_0x0160, "5400" }, + + /* COMPAQ... */ + {"0x049F-0x001A", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "S4-100" }, + + /* CANON... */ + {"0x04A9-0x2206", &Cap0x04A9_0x2206, &Hw0x04A9_0x2206, "CanoScan N650U/N656U" }, + {"0x04A9-0x2207", &Cap0x04A9_0x2207, &Hw0x04A9_0x2207, "CanoScan N1220U" }, + {"0x04A9-0x2208", &Cap0x04A9_0x2208, &Hw0x04A9_0x2208, "CanoScan D660U" }, + {"0x04A9-0x220D", &Cap0x04A9_0x220D, &Hw0x04A9_0x220D, "CanoScan N670U/N676U/LiDE20" }, + {"0x04A9-0x220E", &Cap0x04A9_0x220E, &Hw0x04A9_0x220E, "CanoScan N1240U/LiDE30" }, + {"0x04A9-0x2220", &Cap0x04A9_0x2220, &Hw0x04A9_0x2220, "CanoScan LiDE25" }, + + /* SYSCAN... */ + {"0x0A82-0x4600", &Cap0x0A82_0x4600, &Hw0x0A82_0x4600, "TravelScan 460/464" }, + {"0x0A82-0x6620", &Cap0x0A82_0x6620, &Hw0x0A82_0x6620, "TravelScan 662" }, + + /* Visioneer... */ + {"0x04A7-0x0427", &Cap0x0A82_0x4600, &Hw0x0A82_0x4600, "Strobe XP100" }, + + /* Portable Peripheral Co., Ltd. */ + {"0x0A53-0x1000", &Cap0x0A53_0x1000, &Hw0x0A53_0x1000, "Q-Scan USB001" }, + {"0x0A53-0x2000", &Cap0x0A53_0x2000, &Hw0x0A53_0x2000, "Q-Scan USB201" }, + + /* 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 your 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 */ + 0, 0, /* for lineend adjustment, here disabled */ + /* 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, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}, + /* Color mode MCLK settings */ + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + /* Gray mode MCLK settings */ + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 } + }, + + { MODEL_HuaLien, 64, 20, 6, 0, 0, + /* 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, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}, + /* Color mode MCLK settings */ + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + /* Gray mode MCLK settings */ + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 } + }, + + { MODEL_Tokyo600, 4, 4, 6, 0, 0, + /* 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, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}, + /* Color mode MCLK settings */ + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + /* Gray mode MCLK settings */ + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, + { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 } + }, + + { MODEL_MUSTEK600, 4, 4, 6, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + {{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, + { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }}, + /* Color mode MCLK settings */ + { 4.0, 3.5, 3.5, 4.0, 4.0, 5.0, 5.0, 7.5, 7.5, 7.5 }, + { 4.0, 3.5, 3.5, 4.0, 4.0, 5.0, 5.0, 7.5, 7.5, 7.5 }, + /* Gray mode MCLK settings */ + { 7.5, 7.0, 6.5, 5.5, 5.5, 5.5, 7.0, 7.0, 7.0, 7.0 }, + { 7.5, 7.0, 6.5, 5.5, 5.5, 5.5, 7.0, 7.0, 7.0, 7.0 } + }, + + { MODEL_MUSTEK1200, 2, 32, 3, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }}, + /* Color mode MCLK settings */ + { 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 }, + { 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 }, + { 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 (tested with 2200)*/ + { MODEL_HP, 8, 60, 6, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + {{ 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, + { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }}, + /* Color mode MCLK settings */ + { 4.0, 4.0, 4.0, 4.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0 }, + { 4.0, 4.0, 4.0, 4.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 8.0, 8.0, 8.0, 8.0, 8.0, 13.0, 13.0, 13.0, 13.0, 13.0 }, + { 8.0, 8.0, 8.0, 8.0, 8.0, 13.0, 13.0, 13.0, 13.0, 13.0 } + }, + + { MODEL_CANON600, 8, 31, 12, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }}, + /* Color mode MCLK settings */ + { 7.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 7.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 15.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0 }, + { 15.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0 } + }, + + { MODEL_CANON1200, 8, 31, 8, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }}, + /* Color mode MCLK settings */ + { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0 }, + { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 5.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 8.5, 7.0, 5.0, 4.0, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5 }, + { 8.5, 6.5, 6.0, 6.0, 6.0, 6.0, 8.0, 12.0, 12.0, 12.0 } + }, + + /* settings good for the UMAX models (tested with 3400) */ + { MODEL_UMAX, 16, 4, 6, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + {{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, + { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }}, + /* Color mode MCLK settings */ + { 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 }, + { 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.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5 }, + { 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5 } + }, + + { MODEL_UMAX1200, 16, 4, 6, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + {{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, + { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }}, + /* Color mode MCLK settings */ + { 3.0, 3.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 }, + /* Gray mode MCLK settings */ + { 6.0, 6.0, 6.0, 6.0, 6.0, 13.0, 13.0, 13.0, 13.0, 13.0 }, + { 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0 } + }, + + /* settings good for the EPSON models */ + { MODEL_EPSON, 2, 1, 6, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }}, + /* Color mode MCLK settings */ + { 2.0, 2.0, 2.5, 2.5, 2.5, 2.5, 4.0, 4.0, 6.0, 6.0 }, + { 2.0, 2.0, 2.5, 2.5, 3.0, 3.0, 3.0, 4.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 9.0, 9.0, 18.0, 18.0 }, + { 6.0, 6.0, 6.0, 6.0, 6.0, 8.0, 9.0, 9.0, 18.0, 18.0 } + }, + + { MODEL_CANONCCD1200, 2, 31, 3, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }}, + /* Color mode MCLK settings */ + { 2.0, 2.0, 2.0, 2.5, 2.5, 2.5, 3.0, 3.5, 5.0, 5.0 }, + { 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 5.0, 5.0 }, + /* Gray mode MCLK settings */ + { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 6.5, 6.5, 6.5, 7.0, 8.0, 8.0, 8.0, 10.0, 10.0, 10.0 } + }, + + { MODEL_CANON_LIDE25, 8, 31, 3, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }}, + /* Color mode MCLK settings */ + { 3.0, 3.0, 3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 3.0, 3.0 }, + { 3.0, 3.0, 3.0, 3.0, 3.5, 3.5, 5.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 8.5, 7.0, 5.0, 4.0, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5 }, + { 7.5, 6.5, 6.0, 6.0, 6.0, 6.0, 8.0, 12.0, 12.0, 12.0 } + }, + + { MODEL_TSCAN, 2, 22, 6, 75, 4000, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }}, + /* Color mode MCLK settings */ + { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, + { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, + }, + + { MODEL_TSCAN_A4, 2, 22, 6, 75, 8400, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }}, + /* Color mode MCLK settings */ + { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, + { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, + }, + + { MODEL_QSCAN, 8, 21, 6, 300, 4600, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }}, + /* Color mode MCLK settings */ + { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + /* Gray mode MCLK settings */ + { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, + }, + + { MODEL_QSCAN_A6, 8, 15, 6, 0, 0, + /* Motor settings (PWM and PWM_Duty) */ + /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ + {{ 8, 15, 1}, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, + /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ + { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }}, + /* Color mode MCLK settings */ + { 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 }, + { 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 }, + /* Gray mode MCLK settings */ + { 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 }, + { 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 }, + } +}; + +/* END PLUSTEK-USBDEVS.C ....................................................*/ |