/*............................................................................. * 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.
* Copyright (C) 2001-2006 Gerhard Jaeger * * 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' 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 * *
* This file is part of the SANE package. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * * As a special exception, the authors of SANE give permission for * additional uses of the libraries contained in this release of SANE. * * The exception is that, if you link a SANE library with other files * to produce an executable, this does not by itself cause the * resulting executable to be covered by the GNU General Public * License. Your use of that executable is in no way restricted on * account of linking the SANE library code into it. * * This exception does not, however, invalidate any other reasons why * the executable file might be covered by the GNU General Public * License. * * If you submit changes to SANE to the maintainers to be included in * a subsequent release, you agree by submitting the changes that * those changes may be distributed with this exception intact. * * If you write modifications of your own for SANE, it is your choice * whether to permit this exception to apply to your modifications. * If you do not wish that, delete this exception notice. *
*/ /* the other stuff is included by plustek.c ...*/ #include "plustek-usb.h" /** for Register 0x26 */ #define _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: ??? * 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: ??? * KH: NS9831 + 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: NS9831 + 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_USE_ALT_DESC, _MIO5 }; /* 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, /* use default settings during calibration */ 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, /* use default settings during calibration */ 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 }; /******************* 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 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 */ 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, 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.86, /* 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 }; /******************** 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" }, /* 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-0x0017-4", &Cap0x07B3_0x0017_4, &Hw0x07B3_0x0017_4, "OpticPro UT24" }, /* never seen yet */ {"0x07B3-0x0013-0", &Cap0x07B3_0x0013_0, &Hw0x07B3_0x0013_0, "Unknown device" }, {"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-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "Unknown device" }, {"0x07B3-0x0014-4", &Cap0x07B3_0x0014_4, &Hw0x07B3_0x0017_4, "Unknown device" }, {"0x07B3-0x0016-4", &Cap0x07B3_0x0016_4, &Hw0x07B3_0x0016_4, "Unknown device" }, {"0x07B3-0x0017-2", &Cap0x07B3_0x0017_2, &Hw0x07B3_0x0017_2, "Unknown device" }, {"0x07B3-0x0017-3", &Cap0x07B3_0x0017_3, &Hw0x07B3_0x0017_3, "Unknown device" }, {"0x07B3-0x0007", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "Unknown device" }, {"0x07B3-0x000F", &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "Unknown device" }, {"0x07B3-0x000F-4", &Cap0x07B3_0x000F_4, &Hw0x07B3_0x000F_4, "Unknown device" }, {"0x07B3-0x0005-2", &Cap0x07B3_0x0005_2, &Hw0x07B3_0x0007_2, "Unknown device" }, /* TOKYO 600 */ {"0x07B3-0x0014-1", &Cap0x07B3_0x0014_1, &Hw0x07B3_0x0017_1, "Unknown device" }, /* A3 */ {"0x07B3-0x0012-0", &Cap0x07B3_0x0012_0, &Hw0x07B3_0x0012_0, "Unknown device" }, /* Brother Demo */ /* Mustek BearPaw...*/ {"0x0400-0x1000-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, "N650U/N656U" }, {"0x04A9-0x2207", &Cap0x04A9_0x2207, &Hw0x04A9_0x2207, "N1220U" }, {"0x04A9-0x2208", &Cap0x04A9_0x2208, &Hw0x04A9_0x2208, "D660U" }, {"0x04A9-0x220D", &Cap0x04A9_0x220D, &Hw0x04A9_0x220D, "N670U/N676U/LiDE20" }, {"0x04A9-0x220E", &Cap0x04A9_0x220E, &Hw0x04A9_0x220E, "N1240U/LiDE30" }, {"0x04A9-0x2220", &Cap0x04A9_0x2220, &Hw0x04A9_0x2220, "LiDE25" }, /* SYSCAN... */ {"0x0A82-0x6620", &Cap0x0A82_0x6620, &Hw0x0A82_0x6620, "TravelScan 662" }, /* 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 */ #if 0 { 3.5, 3.5, 3.5, 4.0, 6.0, 8.0, 11.5, 11.5, 11.5, 11.5 }, { 3.5, 3.5, 3.5, 4.0, 6.0, 8.0, 11.5, 11.5, 11.5, 11.5 }, #else { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, { 8.0, 8.0, 8.0, 8.0, 8.0, 8.0, 11.5, 11.5, 11.5, 11.5 }, #endif /* Gray mode MCLK settings */ { 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 11.5, 11.5, 11.5, 11.5 }, { 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 11.5, 11.5, 11.5, 11.5 } }, { MODEL_MUSTEK1200, 2, 32, 3, 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 */ /* 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 }, } }; /* END PLUSTEK-USBDEVS.C ....................................................*/