1 /*............................................................................. 2 * Project : SANE library for Plustek flatbed scanners. 3 *............................................................................. 4 */ 5 6 /** @file plustek-usbdevs.c 7 * @brief Here we have our USB device definitions. 8 * 9 * Based on sources acquired from Plustek Inc.<br> 10 * Copyright (C) 2001-2013 Gerhard Jaeger <gerhard@gjaeger.de> 11 * 12 * History: 13 * - 0.40 - starting version of the USB support 14 * - 0.41 - added EPSON1250 entries 15 * - changed reg 0x58 of EPSON Hw0x04B8_0x010F to 0x0d 16 * - reduced memory size of EPSON to 512 17 * - adjusted tpa origin of UT24 18 * - 0.42 - added register 0x27, 0x2c-0x37 19 * - tweaked EPSON1250 settings according to Gene and Reinhard 20 * - tweaked HP2200 settings according to Stefan 21 * - added UMAX 3400 entries 22 * - added HP2100 settings according to Craig Smoothey 23 * - added LM9832 based U24 24 * - added Canon N650U entry 25 * - 0.43 - tweaked HP 2200C entries 26 * - added _WAF_MISC_IO5 for HP lamp switching 27 * - added motor profiles 28 * - cleanup 29 * - 0.44 - added EPSON 1260 and 660 30 * - added Genius Model strings 31 * - added Canon N670U entry 32 * - added bStepsToReverse to the HwDesc structure 33 * - tweaked EPSON1250 settings for TPA (thanks to Till Kamppeter) 34 * - 0.45 - added UMAX motor settings 35 * - added UMAX 5400 settings 36 * - added CanoScan1240 settings (thanks to Johann Philipp) 37 * - tweaked EPSON 1260 settings 38 * - removed EPSON 660 stuff 39 * - added Canon 1220U entry 40 * - added entry for Compaq S4-100 41 * - 0.46 - fine-tuning for the CanoScan devices 42 * - fixed HP2200 shading position 43 * - renamed to plustek-usbdevs.c 44 * - 0.47 - added BearPaw 1200 settings for PID 0x4001 (LM9832) 45 * - tweaked the LiDE20 MCLK setting for 75DPI grayscale 46 * - enlarged the scan-area of the UMAX3400 to 11.7" 47 * - added CanoScan D660U 48 * - 0.48 - added another incarnation of the UMAX 3400 49 * - added parameters for UMAX 3450 TPA 50 * - parameter tuning for CanoScan D660U 51 * - cleanup 52 * - 0.49 - tweaked motor settings for EPSON and CANON1200 53 * - added support for CanoScan LiDE25 54 * - 0.50 - cleanup 55 * - removed obsolete _WAF_BLACKFINE 56 * - LiDE20 does not seem to have a reliable black calibration area 57 * so the devices now will switch off the lamp for dark calibration 58 * - added Stephan Februarys' <stephanf@singnet.com.sg> LiDE25 changes 59 * - fixed high-speed feature of CanoScan D660U 60 * - tweaked LiDE25, LiDE30 and N1220U settings 61 * - changed high-speed setting for UMAX 3400, due to bugreport #302317 62 * - fixed CanoScan N650U settings 63 * - fixed CanoScan N670U settings, see (bugreport #302738) 64 * - added high-speed setting for HP2200 65 * - 0.51 - tweaked CanoScan N1220U settings again 66 * - added settings for Syscan TravelScan 662 67 * - tweaked settings for Bearpaw 1200 68 * - fixed CanoScan LiDE20 settings, cause of various reports, seems 69 * Canon has built-in different motortypes 70 * - also fixed Motorsettings for LiDE30 71 * - 0.52 - added Q-Scan USB001 settings 72 * - added Q-Scan USB201 settings (thanks to Hiroshi Miura) 73 * - tweaked motor settings for Bearpaw 1200 74 * - added TravelScan 464 settings 75 * - tweaked highspeed motor settings for Epson 1260 76 * - tweaked CanoScan N650U motor settings 77 * 78 * <hr> 79 * This file is part of the SANE package. 80 * 81 * This program is free software; you can redistribute it and/or 82 * modify it under the terms of the GNU General Public License as 83 * published by the Free Software Foundation; either version 2 of the 84 * License, or (at your option) any later version. 85 * 86 * This program is distributed in the hope that it will be useful, but 87 * WITHOUT ANY WARRANTY; without even the implied warranty of 88 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 89 * General Public License for more details. 90 * 91 * You should have received a copy of the GNU General Public License 92 * along with this program. If not, see <https://www.gnu.org/licenses/>. 93 * 94 * As a special exception, the authors of SANE give permission for 95 * additional uses of the libraries contained in this release of SANE. 96 * 97 * The exception is that, if you link a SANE library with other files 98 * to produce an executable, this does not by itself cause the 99 * resulting executable to be covered by the GNU General Public 100 * License. Your use of that executable is in no way restricted on 101 * account of linking the SANE library code into it. 102 * 103 * This exception does not, however, invalidate any other reasons why 104 * the executable file might be covered by the GNU General Public 105 * License. 106 * 107 * If you submit changes to SANE to the maintainers to be included in 108 * a subsequent release, you agree by submitting the changes that 109 * those changes may be distributed with this exception intact. 110 * 111 * If you write modifications of your own for SANE, it is your choice 112 * whether to permit this exception to apply to your modifications. 113 * If you do not wish that, delete this exception notice. 114 * <hr> 115 */ 116 117 /* the other stuff is included by plustek.c ...*/ 118 #include "plustek-usb.h" 119 120 /** for Register 0x26 121 */ 122 #define _ONE_CH_COLOR 0x04 123 #define _RED_CH 0x00 124 #define _GREEN_CH 0x08 125 #define _BLUE_CH 0x10 126 127 128 /* Plustek Model: UT12/UT16 129 * KH: NS9831 + TPA + Button + NEC3799 130 */ 131 static DCapsDef Cap0x07B3_0x0017_0 = 132 { 133 { /* Normal */ 134 {0, 93}, /* DataOrigin (X: 0, Y: 8mm from home) */ 135 0, -1, /* ShadingOriginY, DarkShadOrgY */ 136 {2550, 3508}, /* Size */ 137 {50, 50} /* MinDpi */ 138 }, 139 { /* Positive */ 140 {1040 + 15, 744 - 32},/* DataOrigin (X: 7cm + 1.8cm, Y: 8mm + 5.5cm)*/ 141 543, -1, /* ShadingOriginY (Y: 8mm + 3.8cm) */ 142 {473, 414}, /* Size (X: 4cm, Y: 3.5cm) */ 143 {150, 150} /* MinDpi */ 144 }, 145 { /* Negative */ 146 {1004 + 55, 744 + 12}, /* DataOrigin (X: 7cm + 1.5cm, Y: 8mm + 5.5cm)*/ 147 148 /* 533 blaustichig */ 149 537 /* hell */ 150 /* 543 gruenstichig */ 151 152 /*543*/, -1, /* ShadingOriginY (Y: 8mm + 3.8cm) */ 153 {567, 414}, /* Size (X: 4.8cm, Y: 3.5cm) */ 154 {150, 150} /* MinDpi */ 155 }, 156 { /* Adf */ 157 {0, 95}, /* DataOrigin (X: 0, Y: 8mm from home) */ 158 0, -1, /* ShadingOriginY, DarkShadOrgY */ 159 {2550, 3508}, /* Size */ 160 {50, 50} /* MinDpi */ 161 }, 162 {600, 600}, /* OpticDpi */ 163 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, /* wFlags */ 164 SENSORORDER_rgb, /* bSensorOrder */ 165 4, /* bSensorDistance */ 166 4, /* bButtons */ 167 kNEC3799, /* bCCD */ 168 0x07, /* bPCB */ 169 _WAF_NONE, /* no workarounds or other special stuff needed */ 170 _NO_MIO /* does not use misc I/O for lamp */ 171 }; 172 173 /* Plustek Model: U24 174 * Description of the entries, see above... 175 */ 176 static DCapsDef Cap0x07B3_0x0015_0 = 177 { 178 {{0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 179 {{1040 + 15, 744 - 32}, 543, -1, {473, 414}, {150, 150}}, 180 {{1004 + 20, 744 + 32}, 543, -1, {567, 414}, {150, 150}}, 181 {{0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 182 {600, 600}, 183 0, 184 SENSORORDER_rgb, 185 4, 4, kNEC3799, 0x05, _WAF_NONE, _NO_MIO 186 }; 187 188 /* Plustek Model: ??? 189 * KH: NS9831 + TPA + Button + NEC3799 190 */ 191 static DCapsDef Cap0x07B3_0x0014_0 = 192 { 193 {{0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 194 {{1040 + 15, 744 - 32}, 543, -1, {473, 414}, {150, 150}}, 195 {{1004 + 20, 744 + 32}, 543, -1, {567, 414}, {150, 150}}, 196 {{0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 197 {600, 600}, 198 0, 199 SENSORORDER_rgb, 200 4, 0, kNEC3799, 0x04, _WAF_NONE, _NO_MIO 201 }; 202 203 /* Plustek Model: ??? and Genius ColorPage-HR6 V2 204 * KH: NS9831 + TPA + Button + NEC3799 205 */ 206 static DCapsDef Cap0x07B3_0x0007_0 = 207 { 208 {{0, 124}, 36, -1, {2550, 3508}, { 50, 50 }}, 209 {{1040, 744}, 543, -1, { 473, 414 }, {150, 150}}, 210 {{1004, 744}, 543, -1, { 567, 414 }, {150, 150}}, 211 {{0, 95}, 0, -1, {2550, 3508}, { 50, 50 }}, 212 {600, 600}, 213 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 214 SENSORORDER_rgb, 215 4, 5, kNEC3799, 0x07, _WAF_NONE, _NO_MIO 216 }; 217 218 /* Plustek Model: ??? 219 * Tokyo: NS9832 + Button + SONY548 220 */ 221 static DCapsDef Cap0x07B3_0x0005_2 = 222 { 223 {{ 0, 64}, 0, -1, {2550, 3508}, { 50, 50 }}, 224 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 225 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 226 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 227 {600, 600}, 228 0, 229 SENSORORDER_rgb, 230 8, 2, kSONY548, 0x05, _WAF_NONE, _NO_MIO 231 }; 232 233 /* Genius ColorPage-HR7 234 * Hualien: NS9832 + TPA + Button + NEC3778 235 */ 236 static DCapsDef Cap0x07B3_0x0007_4 = 237 { 238 {{ 0, 111 - 4 }, 0, -1, {2550, 3508}, { 50, 50 }}, 239 {{1040 + 5, 744 - 32}, 543, -1, { 473, 414 }, {150, 150}}, 240 {{1040 - 20, 768 }, 543, -1, { 567, 414 }, {150, 150}}, 241 {{ 0, 95 }, 0, -1, {2550, 3508}, { 50, 50 }}, 242 {1200, 1200}, 243 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 244 SENSORORDER_rgb, 245 12, 5, kNEC3778, 0x07, _WAF_NONE, _NO_MIO 246 }; 247 248 /* Genius ColorPage-HR7LE and ColorPage-HR6X 249 * Hualien: NS9832 + Button + NEC3778 250 */ 251 static DCapsDef Cap0x07B3_0x0005_4 = 252 { 253 {{ 0, 111 - 4 }, 0, -1, {2550, 3508}, {50, 50}}, 254 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 255 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 256 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 257 {1200, 1200}, 258 0, 259 SENSORORDER_rgb, 260 12, 5, kNEC3778, 0x05, _WAF_NONE, _NO_MIO 261 }; 262 263 /* Plustek Model: ???, Genius ColorPage HR6A 264 * KH: NS9831 + TPA + Button + NEC3799 265 */ 266 static DCapsDef Cap0x07B3_0x000F_0 = 267 { 268 {{ 0, 130}, 12, -1, {2550, 3508}, { 50, 50 }}, 269 {{1040, 744}, 543, -1, { 473, 414 }, {150, 150}}, 270 {{1004, 744}, 543, -1, { 567, 414 }, {150, 150}}, 271 {{ 0, 244}, 12, -1, {2550, 4200}, { 50, 50 }}, 272 {600, 600}, 273 DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf, 274 SENSORORDER_rgb, 275 4, 5, kNEC3799, 0x0F, _WAF_NONE, _NO_MIO 276 }; 277 278 /* Plustek Model: UT12 279 * KH: NS9831 + TPA + Button + NEC3799 280 */ 281 static DCapsDef Cap0x07B3_0x0013_0 = 282 { 283 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 284 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 285 {{1004 + 30, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, 286 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 287 {600, 600}, 288 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 289 SENSORORDER_rgb, 290 4, 4, kNEC3799, 0x03, _WAF_NONE, _NO_MIO 291 }; 292 293 /* Plustek Model: U24 294 * KH: NS9831 + Button + NEC3799 295 // */ 296 static DCapsDef Cap0x07B3_0x0011_0 = 297 { 298 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 299 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 300 {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, 301 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 302 {600, 600}, 303 0, 304 SENSORORDER_rgb, 305 4, 4, kNEC3799, 0x01, _WAF_NONE, _NO_MIO 306 }; 307 308 /* Plustek Model: U12 309 * KH: NS9831 + TPA + Button + NEC3799 310 */ 311 static DCapsDef Cap0x07B3_0x0010_0 = 312 { 313 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 314 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 315 {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, 316 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 317 {600, 600}, 318 0, 319 SENSORORDER_rgb, 320 4, 0, kNEC3799, 0x00, _WAF_BSHIFT7_BUG, _NO_MIO 321 }; 322 323 /* Plustek Model: ??? 324 * KH: NS9831 + TPA + Button + NEC3778 325 */ 326 static DCapsDef Cap0x07B3_0x0013_4 = 327 { 328 {{ 0, 99 /*114*/}, 0, -1, {2550, 3508}, { 50, 50}}, 329 {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, 330 {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, 331 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 332 {1200, 1200}, 333 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 334 SENSORORDER_rgb, 335 12, 4, kNEC3778, 0x03, _WAF_NONE, _NO_MIO 336 }; 337 338 /* Plustek Model: ??? 339 * KH: NS9831 + Button + NEC3778 340 */ 341 static DCapsDef Cap0x07B3_0x0011_4 = 342 { 343 {{ 0, 99 /*114*/}, 0, -1, {2550, 3508}, { 50, 50}}, 344 {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, 345 {{1004 + 20, 744 - 20}, 543, -1 ,{ 567, 414}, {150, 150}}, 346 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 347 {1200, 1200}, 348 0, 349 SENSORORDER_rgb, 350 12, 4, kNEC3778, 0x01, _WAF_NONE, _NO_MIO 351 }; 352 353 /* Plustek Model: ??? 354 * KH: NS9831 + TPA + Button + NEC3778 355 */ 356 static DCapsDef Cap0x07B3_0x0010_4 = 357 { 358 {{ 0, 99 /*114*/}, 0, -1, {2550, 3508}, { 50, 50}}, 359 {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, 360 {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, 361 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 362 {1200, 1200}, 363 0, 364 SENSORORDER_rgb, 365 12, 0, kNEC3778, 0x00, _WAF_NONE, _NO_MIO 366 }; 367 368 /* Plustek Model: UA18? 369 * KH: NS9831 + TPA + Button + NEC3778 370 */ 371 static DCapsDef Cap0x07B3_0x000F_4 = 372 { 373 {{ 0, 107}, 0, -1, {2550, 3508}, { 50, 50}}, 374 {{ 1040 + 5, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 375 {{1040 - 20, 768}, 543, -1, { 567, 414}, {150, 150}}, 376 {{ 0, 244}, 0, -1, {2550, 4200}, { 50, 50}}, 377 {1200, 1200}, 378 DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf, 379 SENSORORDER_rgb, 380 12, 5, kNEC3778, 0x0F, _WAF_NONE, _NO_MIO 381 }; 382 383 /* Plustek Model: ??? 384 * KH: NS9831 + TPA + Button + NEC3778 385 */ 386 static DCapsDef Cap0x07B3_0x0016_4 = 387 { 388 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 389 {{ 954, 422}, 272, -1, { 624, 1940}, {150, 150}}, 390 {{1120, 438}, 275, -1, { 304, 1940}, {150, 150}}, 391 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 392 {1200, 1200}, 393 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 394 SENSORORDER_rgb, 395 12, 4, kNEC3778, 0x06, _WAF_NONE, _NO_MIO 396 }; 397 398 /* Plustek Model: UT24 399 * KH: NS9832 + TPA + Button + NEC3778 400 */ 401 static DCapsDef Cap0x07B3_0x0017_4 = 402 { 403 {{ 0, 99 - 6}, 0, -1, {2550, 3508}, { 50, 50}}, 404 {{1025 /*1055*/, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, 405 {{1048 /*1024*/, 754/*724*/}, 543, -1, { 567, 414}, {150, 150}}, 406 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 407 {1200, 1200}, 408 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 409 SENSORORDER_rgb, 410 12, 4, kNEC3778, 0x07, _WAF_NONE, _NO_MIO 411 }; 412 413 /* Plustek Model: U24 414 * KH: NS9832 + Button + NEC3778 415 */ 416 static DCapsDef Cap0x07B3_0x0015_4 = 417 { 418 {{ 0, 99 - 6}, 0, -1, {2550, 3508}, { 50, 50}}, 419 {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, 420 {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, 421 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 422 {1200, 1200}, 423 0, 424 SENSORORDER_rgb, 425 12, 4, kNEC3778, 0x05, _WAF_NONE, _NO_MIO 426 }; 427 428 /* Plustek Model: ??? 429 * KH: NS9832 + TPA + Button + NEC3778 430 */ 431 static DCapsDef Cap0x07B3_0x0014_4 = 432 { 433 {{ 0, 99 - 6}, 0, -1, {2550, 3508}, { 50, 50}}, 434 {{ 1055, 744 - 84}, 543, -1, { 473, 414}, {150, 150}}, 435 {{1004 + 20, 744 - 20}, 543, -1, { 567, 414}, {150, 150}}, 436 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 437 {1200, 1200}, 438 0, 439 SENSORORDER_rgb, 440 12, 0, kNEC3778, 0x04, _WAF_NONE, _NO_MIO 441 }; 442 443 /* Plustek Model: ??? A3 model 444 * KH: NS9831 + TPA + Button + SONY518 445 */ 446 static DCapsDef Cap0x07B3_0x0014_1 = 447 { 448 {{ 0, 93}, 0, -1, {3600, 5100}, { 50, 50}}, 449 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 450 {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, 451 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 452 {400, 400}, 453 0, 454 SENSORORDER_rgb, 455 8, 0, kSONY518, 0x04, _WAF_NONE, _NO_MIO 456 }; 457 458 /* Model: ??? 459 * KH: NS9832 + NEC3799 + 600 DPI Motor (for Brother demo only) 460 */ 461 static DCapsDef Cap0x07B3_0x0012_0 = 462 { 463 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 464 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 465 {{1004 + 20, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, 466 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 467 {600, 600}, 468 0, 469 SENSORORDER_rgb, 470 4, 0, kNEC3799, 0x02, _WAF_NONE, _NO_MIO 471 }; 472 473 /* Plustek Model: ??? 474 * KH: NS9831 + TPA + Button + SONY548 475 */ 476 static DCapsDef Cap0x07B3_0x0017_2 = 477 { 478 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 479 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 480 {{ 1004, 744}, 543, -1, { 567, 414}, {150, 150}}, 481 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 482 {600, 600}, 483 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 484 SENSORORDER_bgr, 485 8, 4, kSONY548, 0x07, _WAF_NONE, _NO_MIO 486 }; 487 488 /* Plustek Model: ??? 489 * KH: NS9831 + TPA + Button + NEC3799 490 */ 491 static DCapsDef Cap0x07B3_0x0017_3 = 492 { 493 {{ 0, 93}, 0, -1, {2550, 3508}, { 50, 50}}, 494 {{1040 + 15, 744 - 32}, 543, -1, { 473, 414}, {150, 150}}, 495 {{1004 + 30, 744 + 32}, 543, -1, { 567, 414}, {150, 150}}, 496 {{ 0, 95}, 0, -1, {2550, 3508}, { 50, 50}}, 497 {600, 600}, 498 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 499 SENSORORDER_rgb, 500 8, 4, kNEC8861, 0x07, _WAF_NONE, _NO_MIO 501 }; 502 503 /* Model: HP Scanjet 2100c */ 504 static DCapsDef Cap0x03F0_0x0505 = 505 { 506 {{ 0, 65}, 10, -1, {2550, 3508}, { 50, 50}}, 507 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 508 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 509 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 510 {600, 600}, 511 0, 512 SENSORORDER_rgb, 513 4, 0, kNECSLIM, 0x00, _WAF_NONE, _NO_MIO 514 }; 515 516 /* Model: HP Scanjet 2200c (thanks to Stefan Nilsen) 517 * NS9832 + 2 Buttons + NEC3799 + 600 DPI Motor 518 */ 519 static DCapsDef Cap0x03F0_0x0605 = 520 { 521 /* DataOrigin (x, y), ShadingOriginY */ 522 {{ 0, 209}, 40, -1, {2550, 3508}, { 50, 50}}, 523 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 524 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 525 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 526 {600, 600}, 527 0, 528 SENSORORDER_rgb, 529 4, 2, kNECSLIM, 0x00, _WAF_NONE, _NO_MIO 530 }; 531 532 /* Mustek BearPaw 1200 (thanks to Henning Meier-Geinitz) 533 * NS9831 + 5 Buttons + NEC3798 534 */ 535 static DCapsDef Cap0x0400_0x1000_0 = 536 { 537 {{ 0, 130}, 20, -1, {2550, 3508}, { 50, 50 }}, 538 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 539 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 540 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 541 {600, 600}, 542 0, 543 SENSORORDER_rgb, 544 8, 545 5, kNEC8861, 0x00, 546 _WAF_MISC_IO_LAMPS | _WAF_LOFF_ON_START | _WAF_USE_ALT_DESC, 547 _NO_MIO 548 }; 549 550 /* Mustek BearPaw 2400 551 * NS9832 + 5 Buttons + SONY548 552 */ 553 static DCapsDef Cap0x0400_0x1001_0 = 554 { 555 {{ 0, 130/*209*/}, 35/*20*/, -1, {2550, 3508}, { 50, 50 }}, 556 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 557 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 558 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 559 { 600, 600 }, /*{ 1200, 1200 }, */ 560 0, 561 SENSORORDER_rgb, 562 4,/*16*/ /* sensor distance */ 563 5, /* number of buttons */ 564 kSONY548, /* CCD type */ 565 0, _WAF_USE_ALT_DESC, _NO_MIO 566 }; 567 568 /* Epson Perfection/Photo1250 (thanks to Gene Heskett and Reinhard Max) 569 * Epson Perfection/Photo1260 (thanks to Till Kamppeter) 570 * NS9832 + 4 Buttons + CCD???? 571 */ 572 static DCapsDef Cap0x04B8_0x010F = 573 { 574 /* Normal */ 575 {{ 25, 85}, 10, -1, {2550, 3508}, { 100, 100 }}, 576 /* Positive */ 577 {{ 1100, 972}, 720, -1, { 473, 414}, { 150, 150 }}, 578 /* Negative */ 579 {{ 1116, 1049}, 720, -1, { 567, 414}, { 150, 150 }}, 580 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 581 {1200, 1200}, 582 0, 583 SENSORORDER_rgb, 584 8, /* sensor distance */ 585 4, /* number of buttons */ 586 kEPSON, /* use default settings during calibration */ 587 0, /* not used here... */ 588 _WAF_MISC_IO_LAMPS, /* use miscio 6 for lamp switching */ 589 _MIO6 + _TPA(_MIO1) /* and miscio 1 for optional TPA */ 590 }; 591 592 /* Umax 3400/3450 593 */ 594 static DCapsDef Cap0x1606_0x0060 = 595 { 596 /* Normal */ 597 {{ 30, 105 }, 15, -1, {2550, 3508}, { 100, 100 }}, 598 /* Positive */ 599 {{ 700, 760 }, 650, -1, {1200, 1500}, { 150, 150 }}, 600 /* Negative */ 601 {{ 700, 760 }, 650, -1, {1200, 1500}, { 150, 150 }}, 602 {{ 0, 0 }, 0, -1, {0, 0}, { 0, 0 }}, 603 {600, 600}, 604 DEVCAPSFLAG_LargeTPA, 605 SENSORORDER_bgr, 606 8, /* sensor distance */ 607 4, /* number of buttons */ 608 kNEC8861, /* use default settings during calibration */ 609 0, /* not used here... */ 610 _WAF_MISC_IO_LAMPS, /* use miscio 3 for lamp switching */ 611 _MIO3 + _TPA(_MIO6) /* and miscio 6 for optional TPA */ 612 }; 613 614 /* Umax 5400 615 */ 616 static DCapsDef Cap0x1606_0x0160 = 617 { 618 {{ 30, 165}, 0, -1, {2550, 3508}, {100, 100}}, 619 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 620 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 621 {{ 0, 0}, 0, -1, {0, 0}, { 0, 0 }}, 622 {1200, 1200}, 623 0, 624 SENSORORDER_bgr, 625 12, /* sensor distance */ 626 4, /* number of buttons */ 627 kNEC3778, /* use default settings during calibration */ 628 0, /* not used here... */ 629 _WAF_MISC_IO_LAMPS, /* use miscio 3 for lamp switching */ 630 _MIO3 631 }; 632 633 /* Canon N650U/N656U 634 */ 635 static DCapsDef Cap0x04A9_0x2206 = 636 { 637 {{ 0, 90}, 45, 10, {2550, 3508}, {75, 75}}, 638 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 639 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 640 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 641 {600, 600}, 642 0, 643 SENSORORDER_rgb, 644 8, /* sensor distance */ 645 1, /* number of buttons */ 646 kCIS650, /* use default settings during calibration */ 647 0, /* not used here... */ 648 _WAF_MISC_IO_LAMPS, _NO_MIO 649 }; 650 651 /* Canon N1220U 652 */ 653 static DCapsDef Cap0x04A9_0x2207 = 654 { 655 {{ 0, 85}, 45, 10, {2550, 3508}, {75, 75}}, 656 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 657 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 658 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 659 {1200, 1200}, 660 0, 661 SENSORORDER_rgb, 662 16, /* sensor distance */ 663 1, /* number of buttons */ 664 kCIS1220, /* use default settings during calibration */ 665 0, /* not used here... */ 666 _WAF_MISC_IO_LAMPS, _NO_MIO 667 }; 668 669 /* Canon D660U 670 */ 671 static DCapsDef Cap0x04A9_0x2208 = 672 { 673 {{ 45, 125}, 15, -1, {2550, 3508}, { 50, 50}}, 674 {{1060, 744}, 510, -1, { 473, 414}, {150, 150}}, 675 {{1082, 842}, 610, -1, { 567, 414}, {150, 150}}, 676 {{ 0, 0}, 0, 0, { 0, 0}, { 0, 0}}, 677 {600, 600}, 678 DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative, 679 SENSORORDER_rgb, 680 4, 681 1, 682 kNEC8861, /* use default settings during calibration */ 683 0, 684 (_WAF_MISC_IO_LAMPS | _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR), 685 _MIO5 + _TPA(_MIO6) 686 }; 687 688 /* Canon N670U/N676U/LiDE20 689 */ 690 static DCapsDef Cap0x04A9_0x220D = 691 { 692 {{ 0, 110}, 45, -1, {2550, 3508}, {75, 75}}, 693 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 694 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 695 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 696 {600, 600}, 697 0, 698 SENSORORDER_rgb, 699 8, /* sensor distance */ 700 3, /* number of buttons */ 701 kCIS670, 702 0, /* not used here... */ 703 _WAF_MISC_IO_LAMPS, _NO_MIO 704 }; 705 706 /* Canon N1240U/LiDE30 707 */ 708 static DCapsDef Cap0x04A9_0x220E = 709 { 710 {{ 0, 100}, 50, 10, {2550, 3508}, {75, 75}}, 711 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 712 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 713 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 714 {1200, 1200}, 715 0, 716 SENSORORDER_rgb, 717 16, /* sensor distance */ 718 3, /* number of buttons */ 719 kCIS1240, 720 0, /* not used here... */ 721 _WAF_MISC_IO_LAMPS, _NO_MIO 722 }; 723 724 /* Canon LiDE25 725 */ 726 static DCapsDef Cap0x04A9_0x2220 = 727 { 728 {{ 0, 100}, 50, 10, {2550, 3508}, {75, 75}}, 729 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 730 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 731 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 732 {1200, 1200}, 733 0, 734 SENSORORDER_rgb, 735 16, /* sensor distance */ 736 3, /* number of buttons */ 737 kCIS1240, 738 0, /* not used here... */ 739 _WAF_MISC_IO_LAMPS, _NO_MIO 740 }; 741 742 /* Syscan TravelScan 662 A6 sheet-fed scanner 743 */ 744 static DCapsDef Cap0x0A82_0x6620 = 745 { 746 {{ 0, 0}, 100, -1, {1226, 3508}, {75, 75}}, 747 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 748 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 749 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 750 {600, 600}, 751 DEVCAPSFLAG_SheetFed, 752 SENSORORDER_rgb, 753 8, 754 1, 755 kNEC8861, /* use default settings during calibration */ 756 0, /* not used here... */ 757 (_WAF_MISC_IO_LAMPS | _WAF_MISC_IO_BUTTONS | 758 _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR), 759 _MIO5 + _PORT1 + _PS_INP_MIO2 760 }; 761 762 /* Syscan TravelScan 464 A4 sheet-fed scanner 763 */ 764 static DCapsDef Cap0x0A82_0x4600 = 765 { 766 {{ 0, 0}, 150, -1, {2550, 3508}, {75, 75}}, 767 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 768 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 769 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 770 {600, 600}, 771 DEVCAPSFLAG_SheetFed, 772 SENSORORDER_rgb, 773 8, 774 1, 775 kNEC8861, /* use default settings during calibration */ 776 0, /* not used here... */ 777 (_WAF_MISC_IO_LAMPS | _WAF_MISC_IO_BUTTONS | 778 _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR), 779 _MIO5 + _PORT1 + _PS_INP_MIO2 780 }; 781 782 /* IRIScan/Q-Scan USB001 A4 sheet-fed scanner 783 */ 784 static DCapsDef Cap0x0A53_0x1000 = 785 { 786 {{ 0, 0}, 150, -1, {2550, 3508}, {150, 150}}, 787 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 788 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 789 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 790 {300, 300}, 791 DEVCAPSFLAG_SheetFed, 792 SENSORORDER_gbr, 793 2, /* sensor distance */ 794 0, /* number of buttons */ 795 kNEC8861, /* use default settings during calibration */ 796 200, /* threshold for resetting sensor-order */ 797 (_WAF_MISC_IO_LAMPS | _WAF_RESET_SO_TO_RGB | _WAF_ONLY_8BIT), 798 _PS_INP1 799 }; 800 801 /* PandP USB201 Q-Scan A6 Scanner 802 */ 803 static DCapsDef Cap0x0A53_0x2000 = 804 { 805 {{ 0, 0}, 0, -1, {1226, 3508}, { 50, 50 }}, 806 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 807 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 808 {{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }}, 809 {600, 600}, 810 DEVCAPSFLAG_SheetFed, 811 SENSORORDER_rgb, 812 4, 813 0, 814 kNEC8861, 815 0, 816 _WAF_NONE, 817 _PS_INP1 818 }; 819 820 /******************* additional Hardware descriptions ************************/ 821 822 /** U24, UT12 and UT16 823 */ 824 static HWDef Hw0x07B3_0x0017_0 = 825 { 826 1.5, /* dMaxMotorSpeed */ 827 1.2, /* dMaxMoveSpeed */ 828 0.0, /* dHighSpeed */ 829 9, /* dIntegrationTimeLowLamp */ 830 9, /* dIntegrationTimeHighLamp */ 831 300, /* wMotorDpi (Full step DPI) */ 832 512, /* wRAMSize (KB) */ 833 4, /* dMinIntegrationTimeLowres (ms) */ 834 5, /* dMinIntegrationTimeHighres (ms) */ 835 3000, /* wGreenPWMDutyCycleLow */ 836 4095, /* wGreenPWMDutyCycleHigh */ 837 0x02, /* bSensorConfiguration (0x0b) */ 838 0x04, /* bReg_0x0c */ 839 0x37, /* bReg_0x0d */ 840 0x13, /* bReg_0x0e */ 841 /* bReg_0x0f_Mono [10] (0x0f to 0x18) */ 842 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 843 /* bReg_0x0f_Color [10] (0x0f to 0x18) */ 844 {5, 23, 1, 3, 0, 0, 0, 12, 10, 22}, 845 846 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 847 0, /* bReg 0x27 color mode */ 848 849 1, /* bReg 0x29 illumination mode */ 850 851 /* illumination mode settings (not used for CCD devices) */ 852 { 0, 0, 0, 0, 0, 0, 0 }, 853 { 0, 0, 0, 0, 0, 0, 0 }, 854 855 1, /* StepperPhaseCorrection (0x1a & 0x1b) */ 856 14, /* 15, bOpticBlackStart (0x1c) */ 857 62, /* 60, bOpticBlackEnd (0x1d) */ 858 110, /* 65, wActivePixelsStart (0x1e & 0x1f) */ 859 5400, /* 5384 ,wLineEnd (0x20 & 0x21) */ 860 861 0, /* red lamp on (reg 0x2c + 0x2d) */ 862 16383, /* red lamp off (reg 0x2e + 0x2f) */ 863 0, /* green lamp on (reg 0x30 + 0x31) */ 864 0, /* green lamp off (reg 0x32 + 0x33) */ 865 0, /* blue lamp on (reg 0x34 + 0x35) */ 866 16383, /* blue lamp off (reg 0x36 + 0x37) */ 867 868 /* Misc */ 869 3, /* bReg_0x45 */ 870 0, /* wStepsAfterPaperSensor2 (0x4c & 0x4d) */ 871 0x1e, /* bstepsToReverse reg 0x50) */ 872 0xa8, /* 0xfc -bReg_0x51 */ 873 0, /* bReg_0x54 */ 874 0xff, /* 0xa3 - bReg_0x55 */ 875 64, /* bReg_0x56 */ 876 20, /* bReg_0x57 */ 877 0x0d, /* bReg_0x58 */ 878 0x22, /* bReg_0x59 */ 879 0x82, /* bReg_0x5a */ 880 0x88, /* bReg_0x5b */ 881 0, /* bReg_0x5c */ 882 0, /* bReg_0x5d */ 883 0, /* bReg_0x5e */ 884 _LM9832, /* chip type */ 885 MODEL_KaoHsiung,/* motorModel */ 886 1.0 887 }; 888 889 /** Genius ColorPage-HR6 V2 and ColorPage-HR6X 890 */ 891 static HWDef Hw0x07B3_0x0007_0 = 892 { 893 1.5, 1.2, 0.0, 894 9, 9, 895 300, 896 512, 897 4, 5, 898 3000, 4095, 899 0x02, 0x14, 0x27, 0x13, 900 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 901 {5, 23, 1, 3, 0, 0, 0, 6, 10, 22}, 902 _GREEN_CH, 903 0, 904 1, 905 /* illumination mode settings (not used for CCD devices) */ 906 { 0, 0, 0, 0, 0, 0, 0 }, 907 { 0, 0, 0, 0, 0, 0, 0 }, 908 1, 909 14, 910 62, 911 110, 912 5384, 913 0, 914 16383, 915 0, 916 0, 917 0, 918 16383, 919 3, 920 0, 921 0x1e, 922 0xa8, 923 0, 924 0xff, 925 64, 926 20, 927 0x0d, 0x88, 0x28, 0x3b, 928 0, 0, 0, 929 _LM9832, 930 MODEL_HuaLien, 931 1.0 932 }; 933 934 /** unknown 935 */ 936 static HWDef Hw0x07B3_0x0007_2 = 937 { 938 1.4, 1.2, 0.0, 939 9, 9, 940 600, 941 512, 942 4, 5, 943 3000, 4095, 944 0x02, 0x3f, 0x2f, 0x36, 945 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 946 {7, 20, 1, 4, 7, 10, 0, 6, 12, 0}, 947 _GREEN_CH, 948 0, 949 1, 950 /* illumination mode settings (not used for CCD devices) */ 951 { 0, 0, 0, 0, 0, 0, 0 }, 952 { 0, 0, 0, 0, 0, 0, 0 }, 953 1, 954 16, 955 64, 956 152, 957 5416, 958 0, 959 16383, 960 0, 961 0, 962 0, 963 16383, 964 3, 965 0, 966 0x1e, 967 0xfc, 968 0, 969 0xff, 970 64, 971 20, 972 0x0d, 0x88, 0x28, 0x3b, 973 0, 0, 0, 974 _LM9832, 975 MODEL_Tokyo600, 976 1.0 977 }; 978 979 /** Genius ColorPage-HR7 and ColorPage-HR7LE 980 */ 981 static HWDef Hw0x07B3_0x0007_4 = 982 { 983 1.1, 0.9, 0.0, 984 12, 12, 985 600, 986 2048, 987 8, 8, 988 4095, 4095, 989 0x06, 0x30, 0x2f, 0x2a, 990 {2, 7, 5, 6, 6, 7, 0, 0, 0, 5}, 991 {20, 4, 13, 16, 19, 22, 0, 6, 23, 11}, 992 _GREEN_CH, 993 0, 994 1, 995 /* illumination mode settings (not used for CCD devices) */ 996 { 0, 0, 0, 0, 0, 0, 0 }, 997 { 0, 0, 0, 0, 0, 0, 0 }, 998 1, 999 13, 1000 62, 1001 304, 1002 10684, 1003 0, 1004 16383, 1005 0, 1006 0, 1007 0, 1008 16383, 1009 3, 1010 0, 1011 0x1e, 1012 0xa8, 1013 0, 1014 0xff, 1015 24, 1016 40, 1017 0x0d, 0x88, 0x28, 0x3b, 1018 0, 0, 0, 1019 _LM9832, 1020 MODEL_HuaLien, 1021 1.0 1022 }; 1023 1024 /** Genius ColorPage-HR6A 1025 */ 1026 static HWDef Hw0x07B3_0x000F_0 = 1027 { 1028 1.5, 1.0, 0.0, 1029 9, 9, 1030 300, 1031 512, 1032 4, 5, 1033 3000, 4095, 1034 0x02, 0x14, 0x27, 0x13, 1035 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1036 {5, 23, 1, 3, 0, 0, 0, 6, 10, 22}, 1037 _GREEN_CH, 1038 0, 1039 1, 1040 /* illumination mode settings (not used for CCD devices) */ 1041 { 0, 0, 0, 0, 0, 0, 0 }, 1042 { 0, 0, 0, 0, 0, 0, 0 }, 1043 1, 1044 14, 1045 62, 1046 110, 1047 5384, 1048 0, 1049 16383, 1050 0, 1051 0, 1052 0, 1053 16383, 1054 3, 1055 0, 1056 0x1e, 1057 0xa8, 1058 0, 1059 0xff, 1060 64, 1061 20, 1062 0x05, 0x88, 0x08, 0x3b, 1063 0, 0, 0, 1064 _LM9832, 1065 MODEL_HuaLien, 1066 1.0 1067 }; 1068 1069 /** U12/UT12 and U24 1070 */ 1071 static HWDef Hw0x07B3_0x0013_0 = 1072 { 1073 1.5, 1.2, 0.0, 1074 9, 9, 1075 300, 1076 512, 1077 4, 5, 1078 3000, 4095, 1079 0x02, 0x04, 0x37, 0x13, 1080 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1081 {5, 23, 1, 3, 0, 0, 0, 12, 10, 22}, 1082 _GREEN_CH, 1083 0, 1084 1, 1085 /* illumination mode settings (not used for CCD devices) */ 1086 { 0, 0, 0, 0, 0, 0, 0 }, 1087 { 0, 0, 0, 0, 0, 0, 0 }, 1088 1, 1089 14, 1090 62, 1091 110, 1092 5400, 1093 0, 1094 16383, 1095 0, 1096 0, 1097 0, 1098 16383, 1099 3, 1100 0, 1101 0x1e, 1102 0xa8, 1103 0, 1104 0xff, 1105 64, 1106 20, 1107 0x0d, 0x22, 0x82, 0x88, 1108 0, 0, 0, 1109 _LM9831, 1110 MODEL_KaoHsiung, 1111 1.0 1112 }; 1113 1114 /** unknown 1115 */ 1116 static HWDef Hw0x07B3_0x0013_4 = 1117 { 1118 1.0, 0.9, 0.0, 1119 12, 12, 1120 600, 1121 2048, 1122 8, 8, 1123 4095, 4095, 1124 0x06, 0x20, 0x2f, 0x2a, 1125 {2, 7, 5, 6, 6, 7, 0, 0, 0, 5}, 1126 {20, 4, 13, 16, 19, 22, 0, 0, 23, 11}, 1127 _GREEN_CH, 1128 0, 1129 1, 1130 /* illumination mode settings (not used for CCD devices) */ 1131 { 0, 0, 0, 0, 0, 0, 0 }, 1132 { 0, 0, 0, 0, 0, 0, 0 }, 1133 1, 1134 13, 1135 62, 1136 320, 1137 10684, 1138 0, 1139 16383, 1140 0, 1141 0, 1142 0, 1143 16383, 1144 3, 1145 0, 1146 0x1e, 1147 0xa8, 1148 0, 1149 0xff, 1150 10, 1151 48, 1152 0x0d, 0x22, 0x82, 0x88, 1153 0, 0, 0, 1154 _LM9831, 1155 MODEL_KaoHsiung, 1156 1.0 1157 }; 1158 1159 /** unknown 1160 */ 1161 static HWDef Hw0x07B3_0x000F_4 = 1162 { 1163 1.1, 0.9, 0.0, 1164 12, 12, 1165 600, 1166 2048, 1167 8, 8, 1168 4095, 4095, 1169 0x06, 0x30, 0x2f, 0x2a, 1170 {2, 7, 5, 6, 6, 7, 0, 0, 0, 5}, 1171 {20, 4, 13, 16, 19, 22, 0, 6, 23, 11}, 1172 _GREEN_CH, 1173 0, 1174 1, 1175 /* illumination mode settings (not used for CCD devices) */ 1176 { 0, 0, 0, 0, 0, 0, 0 }, 1177 { 0, 0, 0, 0, 0, 0, 0 }, 1178 1, 1179 13, 1180 62, 1181 304, 1182 10684, 1183 0, 1184 16383, 1185 0, 1186 0, 1187 0, 1188 16383, 1189 3, 1190 0, 1191 0x1e, 1192 0xa8, 1193 0, 1194 0xff, 1195 24, 1196 40, 1197 0x05, 0x88, 0x08, 0x3b, 1198 0, 0, 0, 1199 _LM9832, 1200 MODEL_HuaLien, 1201 1.0 1202 }; 1203 1204 /** unknown 1205 */ 1206 static HWDef Hw0x07B3_0x0016_4 = 1207 { 1208 1.0, 0.9, 0.0, 1209 12, 12, 1210 600, 1211 2048, 1212 8, 8, 1213 4095, 4095, 1214 0x06, 0x20, 0x2f, 0x2a, 1215 {2, 7, 5, 6, 6, 7, 0, 0, 0, 5}, 1216 {20, 4, 13, 16, 19, 22, 0, 0, 23, 11}, 1217 _GREEN_CH, 1218 0, 1219 1, 1220 /* illumination mode settings (not used for CCD devices) */ 1221 { 0, 0, 0, 0, 0, 0, 0 }, 1222 { 0, 0, 0, 0, 0, 0, 0 }, 1223 1, 1224 13, 1225 62, 1226 320, 1227 10684, 1228 0, 1229 16383, 1230 0, 1231 0, 1232 0, 1233 16383, 1234 3, 1235 0, 1236 0x1e, 1237 0xa8, 1238 0, 1239 0xff, 1240 10, 1241 48, 1242 0x0d, 0x22, 0x82, 0x88, 1243 0, 0, 0, 1244 _LM9832, 1245 MODEL_KaoHsiung, 1246 1.0 1247 }; 1248 1249 /** Plustek OpticPro UT24 and others... 1250 */ 1251 static HWDef Hw0x07B3_0x0017_4 = 1252 { 1253 1.0, 0.9, 0.0, 1254 12, 12, 1255 600, 1256 2048, 1257 8, 8, 1258 4095, 4095, 1259 0x06, 0x20, 0x2f, 0x2a, 1260 {2, 7, 5, 6, 6, 7, 0, 0, 0, 5}, 1261 {20, 4, 13, 16, 19, 22, 0, 0, 23, 11}, 1262 _GREEN_CH, 1263 0, 1264 1, 1265 /* illumination mode settings (not used for CCD devices) */ 1266 { 0, 0, 0, 0, 0, 0, 0 }, 1267 { 0, 0, 0, 0, 0, 0, 0 }, 1268 1, 1269 13, 1270 62, 1271 320, 1272 10684, 1273 0, 1274 16383, 1275 0, 1276 0, 1277 0, 1278 16383, 1279 3, 1280 0, 1281 0x1e, 1282 0xa8, 1283 0, 1284 0xff, 1285 10, 1286 48, 1287 0x0d, 0x22, 0x82, 0x88, 1288 0, 0, 0, 1289 _LM9832, 1290 MODEL_KaoHsiung, 1291 1.0 1292 }; 1293 1294 /** unknown 1295 */ 1296 static HWDef Hw0x07B3_0x0017_1 = 1297 { 1298 1.5, 1.5, 0.0, 1299 9, 9, 1300 200, 1301 2048, 1302 4, 5, 1303 3000, 4095, 1304 0x02, 0x08, 0x2f, 0x36, 1305 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1306 {5, 23, 1, 4, 7, 10, 0, 0, 10, 12}, 1307 _GREEN_CH, 1308 0, 1309 1, 1310 /* illumination mode settings (not used for CCD devices) */ 1311 { 0, 0, 0, 0, 0, 0, 0 }, 1312 { 0, 0, 0, 0, 0, 0, 0 }, 1313 1, 1314 15, 1315 60, 1316 110, 1317 5415, 1318 0, 1319 16383, 1320 0, 1321 0, 1322 0, 1323 16383, 1324 3, 1325 0, 1326 0x1e, 1327 0xa8, 1328 0, 1329 0xff, 1330 64, 1331 20, 1332 0x0d, 0x22, 0x82, 0x88, 1333 0, 0, 0, 1334 _LM9832, 1335 MODEL_KaoHsiung, 1336 1.0 1337 }; 1338 1339 /** unknown 1340 */ 1341 static HWDef Hw0x07B3_0x0012_0 = 1342 { 1343 1.5, 1.4, 0.0, 1344 9, 9, 1345 600, 1346 2048, 1347 4, 5, 1348 3000, 4095, 1349 0x02, 0x04, 0x37, 0x13, 1350 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1351 {5, 23, 1, 3, 0, 0, 0, 12, 10, 22}, 1352 _GREEN_CH, 1353 0, 1354 1, 1355 /* illumination mode settings (not used for CCD devices) */ 1356 { 0, 0, 0, 0, 0, 0, 0 }, 1357 { 0, 0, 0, 0, 0, 0, 0 }, 1358 1, 1359 14, 1360 62, 1361 110, 1362 5400, 1363 0, 1364 16383, 1365 0, 1366 0, 1367 0, 1368 16383, 1369 3, 1370 0, 1371 0x1e, 1372 0xa8, 1373 0, 1374 0xff, 1375 64, 1376 20, 1377 0x0d, 0x22, 0x82, 0x88, 1378 0, 0, 0, 1379 _LM9832, 1380 MODEL_KaoHsiung, 1381 1.0 1382 }; 1383 1384 /** unknown 1385 */ 1386 static HWDef Hw0x07B3_0x0017_2 = 1387 { 1388 1.5, 1.2, 0.0, 1389 9, 9, 1390 300, 1391 512, 1392 4, 5, 1393 3000, 4095, 1394 0x02, 0, 0x2f, 0x36, 1395 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1396 {5, 0, 1, 4, 7, 10, 0, 0, 12, 0}, 1397 _GREEN_CH, 1398 0, 1399 1, 1400 /* illumination mode settings (not used for CCD devices) */ 1401 { 0, 0, 0, 0, 0, 0, 0 }, 1402 { 0, 0, 0, 0, 0, 0, 0 }, 1403 1, 1404 16, 1405 64, 1406 110, 1407 5416, 1408 0, 1409 16383, 1410 0, 1411 0, 1412 0, 1413 16383, 1414 3, 1415 0, 1416 0x1e, 1417 0xa8, 1418 0, 1419 0xff, 1420 64, 1421 20, 1422 0x0d, 0x22, 0x82, 0x88, 1423 0, 0, 0, 1424 _LM9832, 1425 MODEL_KaoHsiung, 1426 1.0 1427 }; 1428 1429 /** unknown 1430 */ 1431 static HWDef Hw0x07B3_0x0017_3 = 1432 { 1433 1.5, 1.2, 0.0, 1434 9, 9, 1435 300, 1436 512, 1437 4, 5, 1438 3000, 4095, 1439 0x02, 0x04, 0x37, 0x13, 1440 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1441 {5, 23, 1, 4, 7, 10, 0, 0, 11, 23}, 1442 _GREEN_CH, 1443 0, 1444 1, 1445 /* illumination mode settings (not used for CCD devices) */ 1446 { 0, 0, 0, 0, 0, 0, 0 }, 1447 { 0, 0, 0, 0, 0, 0, 0 }, 1448 1, 1449 14, 1450 62, 1451 110, 1452 5400, 1453 0, 1454 16383, 1455 0, 1456 0, 1457 0, 1458 16383, 1459 3, 1460 0, 1461 0x1e, 1462 0xa8, 1463 0, 1464 0xff, 1465 64, 1466 20, 1467 0x0d, 0x22, 0x82, 0x88, 1468 0, 0, 0, 1469 _LM9832, 1470 MODEL_KaoHsiung, 1471 1.0 1472 }; 1473 1474 /** HP Scanjet 2100C 1475 */ 1476 static HWDef Hw0x03F0_0x0505 = 1477 { 1478 1.05, /* dMaxMotorSpeed */ 1479 1.05, /* dMaxMoveSpeed */ 1480 0.0, /* dHighSpeed */ 1481 6, /* dIntegrationTimeLowLamp */ 1482 8, /* dIntegrationTimeHighLamp */ 1483 600, /* wMotorDpi (Full step DPI) */ 1484 512, /* wRAMSize (KB) */ 1485 6, /* dMinIntegrationTimeLowres (ms) */ 1486 6, /* dMinIntegrationTimeHighres (ms) */ 1487 0, /* wGreenPWMDutyCycleLow */ 1488 0, /* wGreenPWMDutyCycleHigh */ 1489 0x02, /* bSensorConfiguration (0x0b) */ 1490 0x00, /* bReg_0x0c */ 1491 0x2F, /* bReg_0x0d */ 1492 0x13, /* bReg_0x0e */ 1493 /* bReg_0x0f_Mono[10] (0x0f to 0x18) */ 1494 1495 { 0x02, 0x07, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x04, 0x07 }, 1496 1497 /* bReg_0x0f_Color[10] (0x0f to 0x18) */ 1498 { 0x08, 0x17, 0x00, 0x03, 0x08, 0x0b, 0x00, 0x00, 0x0a, 0x14 }, 1499 1500 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 1501 0, /* bReg 0x27 color mode */ 1502 1503 1, /* bReg 0x29 illumination mode */ 1504 1505 /* illumination mode settings (not used for CCD devices) */ 1506 { 0, 0, 0, 0, 0, 0, 0 }, 1507 { 0, 0, 0, 0, 0, 0, 0 }, 1508 1509 1, /* StepperPhaseCorrection (0x1a & 0x1b) */ 1510 15, /* bOpticBlackStart (0x1c) */ 1511 50, /* bOpticBlackEnd (0x1d) */ 1512 140, /* wActivePixelsStart (0x1e & 0x1f) */ 1513 5414, /* wLineEnd=(0x20 & 0x21) */ 1514 1515 1, /* red lamp on (reg 0x2c + 0x2d) */ 1516 16383, /* red lamp off (reg 0x2e + 0x2f) */ 1517 16383, /* green lamp on (reg 0x30 + 0x31) */ 1518 1, /* green lamp off (reg 0x32 + 0x33) */ 1519 16383, /* blue lamp on (reg 0x34 + 0x35) */ 1520 1, /* blue lamp off (reg 0x36 + 0x37) */ 1521 1522 /* Misc */ 1523 0x13, /* bReg_0x45 */ 1524 0, /* wStepsAfterPaperSensor2 (0x4c & 0x4d) */ 1525 0x1e, /* steps to reverse on buffer full reg 0x50 */ 1526 0xfc, /* 0xa8 -bReg_0x51 */ 1527 0, /* bReg_0x54 */ 1528 0x18, /* bReg_0x55 */ 1529 8, /* bReg_0x56 */ 1530 60, /* bReg_0x57 */ 1531 0x0d, /* bReg_0x58 */ 1532 0xaa, /* bReg_0x59 */ 1533 0xba, /* bReg_0x5a */ 1534 0xbb, /* bReg_0x5b */ 1535 0, /* bReg_0x5c */ 1536 0, /* bReg_0x5d */ 1537 0, /* bReg_0x5e */ 1538 _LM9831, 1539 MODEL_HP, 1540 1.0 1541 }; 1542 1543 /** HP Scanjet 2200C */ 1544 static HWDef Hw0x03F0_0x0605 = 1545 { 1546 1.05, /* dMaxMotorSpeed */ 1547 1.05, /* dMaxMoveSpeed */ 1548 2.2, /* dHighSpeed */ 1549 6, /* dIntegrationTimeLowLamp */ 1550 8, /* dIntegrationTimeHighLamp */ 1551 600, /* ok wMotorDpi (Full step DPI) */ 1552 512, /* wRAMSize (KB) */ 1553 6, /* dMinIntegrationTimeLowres (ms) */ 1554 6, /* dMinIntegrationTimeHighres (ms) */ 1555 0, /* wGreenPWMDutyCycleLow */ 1556 0, /* wGreenPWMDutyCycleHigh */ 1557 0x02, /* bSensorConfiguration (0x0b) */ 1558 0x04, /* bReg_0x0c */ 1559 0x2F, /* bReg_0x0d */ 1560 0x1F, /* bReg_0x0e */ 1561 1562 /* bReg_0x0f_Mono[10] (0x0f to 0x18) */ 1563 { 0x02, 0x07, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x04, 0x07 }, 1564 1565 /* bReg_0x0f_Color[10] (0x0f to 0x18) */ 1566 { 0x08, 0x17, 0x00, 0x03, 0x08, 0x0b, 0x00, 0x00, 0x0a, 0x14 }, 1567 1568 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 1569 0, /* bReg 0x27 color mode */ 1570 1, /* bReg 0x29 illumination mode */ 1571 1572 /* illumination mode settings (not used for CCD devices)*/ 1573 { 0, 0, 0, 0, 0, 0, 0 }, 1574 { 0, 0, 0, 0, 0, 0, 0 }, 1575 1576 1, /* StepperPhaseCorrection (0x1a & 0x1b) */ 1577 14, /* bOpticBlackStart (0x1c) */ 1578 63, /* bOpticBlackEnd (0x1d) */ 1579 140, /* wActivePixelsStart (0x1e & 0x1f) */ 1580 5367, /* wLineEnd=(0x20 & 0x21) */ 1581 1582 1, /* red lamp on (reg 0x2c + 0x2d) */ 1583 16383, /* red lamp off (reg 0x2e + 0x2f) */ 1584 16383, /* green lamp on (reg 0x30 + 0x31) */ 1585 1, /* green lamp off (reg 0x32 + 0x33) */ 1586 16383, /* blue lamp on (reg 0x34 + 0x35) */ 1587 1, /* blue lamp off (reg 0x36 + 0x37) */ 1588 1589 /* Misc */ 1590 0x13, /* bReg_0x45 */ 1591 0, /* wStepsAfterPaperSensor2 (0x4c & 0x4d) */ 1592 0x1e, /* steps to reverse on buffer full (0x50) */ 1593 0xfc, /* 0xa8 -bReg_0x51 */ 1594 0, /* bReg_0x54 */ 1595 0x18, /* bReg_0x55 */ 1596 8, /* bReg_0x56 */ 1597 60, /* bReg_0x57 */ 1598 0x0d, /* bReg_0x58 */ 1599 0xcc, /* bReg_0x59 */ 1600 0xbc, /* bReg_0x5a */ 1601 0xbb, /* bReg_0x5b */ 1602 0, /* bReg_0x5c */ 1603 0, /* bReg_0x5d */ 1604 0, /* bReg_0x5e */ 1605 _LM9832, 1606 MODEL_HP, 1607 1.0 1608 }; 1609 1610 /** Mustek BearPaw 1200 */ 1611 static HWDef Hw0x0400_0x1000_0 = 1612 { 1613 1.75, /* ok dMaxMotorSpeed */ 1614 1.25, /* ok dMaxMoveSpeed */ 1615 0.0, /* ok dHighSpeed */ 1616 12, /* ok dIntegrationTimeLowLamp */ 1617 12, /* ok dIntegrationTimeHighLamp */ 1618 600, /* ok wMotorDpi (Full step DPI) */ 1619 512, /* ok wRAMSize (KB) */ 1620 9, /* ok dMinIntegrationTimeLowres (ms) */ 1621 9, /* ok dMinIntegrationTimeHighres (ms) */ 1622 1169, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 1623 1169, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 1624 0x02, /* ok bSensorConfiguration (0x0b) */ 1625 0x7c, /* ok sensor control settings (reg 0x0c) */ 1626 0x3f, /* ok sensor control settings (reg 0x0d) */ 1627 0x15, /* ok sensor control settings (reg 0x0e) */ 1628 /* ok mono (reg 0x0f to 0x18) */ 1629 { 0x04, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x06}, 1630 /* ok color (reg 0x0f to 0x18) */ 1631 { 0x04, 0x16, 0x01, 0x02, 0x05, 0x06, 0x00, 0x00, 0x0a, 0x16}, 1632 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 1633 0, /* bReg 0x27 color mode */ 1634 1, /* bReg 0x29 illumination mode */ 1635 /* illumination mode settings (not used for CCD devices)*/ 1636 { 0, 0, 0, 0, 0, 0, 0 }, 1637 { 0, 0, 0, 0, 0, 0, 0 }, 1638 257, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */ 1639 0x0e, /* ok bOpticBlackStart (reg 0x1c) */ 1640 0x1d, /* ok bOpticBlackEnd (reg 0x1d) */ 1641 140, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */ 1642 5369, /* ok wLineEnd (reg 0x20 + 0x21) */ 1643 0, /* red lamp on (reg 0x2c + 0x2d) */ 1644 16383, /* red lamp off (reg 0x2e + 0x2f) */ 1645 0, /* green lamp on (reg 0x30 + 0x31) */ 1646 0, /* green lamp off (reg 0x32 + 0x33) */ 1647 0, /* blue lamp on (reg 0x34 + 0x35) */ 1648 16383, /* blue lamp off (reg 0x36 + 0x37) */ 1649 0x13, /* ok stepper motor control (reg 0x45) */ 1650 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 1651 0x1e, /* steps to reverse on buffer full (reg 0x50) */ 1652 0xfc, /* ok acceleration profile (reg 0x51) */ 1653 0, /* ok lines to process (reg 0x54) */ 1654 0x13, /* ok kickstart (reg 0x55) */ 1655 0x03, /* ok pwm freq (reg 0x56) */ 1656 0x20, /* ok pwm duty cycle (reg 0x57) */ 1657 0x0d, /* ok Paper sense (reg 0x58) */ 1658 0x44, /* ok misc io12 (reg 0x59) */ 1659 0x44, /* ok misc io34 (reg 0x5a) */ 1660 0x16, /* ok misc io56 (reg 0x5b) */ 1661 0, /* ok test mode ADC Output CODE MSB (reg 0x5c) */ 1662 0, /* ok test mode ADC Output CODE LSB (reg 0x5d) */ 1663 0, /* ok test mode (reg 0x5e) */ 1664 _LM9831, 1665 MODEL_MUSTEK600, 1666 1.5 1667 }; 1668 1669 /** Mustek BearPaw 1200 (LM9832) */ 1670 static HWDef Hw0x0400_0x1001_1 = 1671 { 1672 1.25, /* ok dMaxMotorSpeed */ 1673 1.25, /* ok dMaxMoveSpeed */ 1674 0.0, /* dHighSpeed */ 1675 12, /* ok dIntegrationTimeLowLamp */ 1676 12, /* ok dIntegrationTimeHighLamp */ 1677 600, /* ok wMotorDpi (Full step DPI) */ 1678 512, /* ok wRAMSize (KB) */ 1679 9, /* ok dMinIntegrationTimeLowres (ms) */ 1680 9, /* ok dMinIntegrationTimeHighres (ms) */ 1681 1169, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 1682 1169, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 1683 0x02, /* ok bSensorConfiguration (0x0b) */ 1684 0x7c, /* ok sensor control settings (reg 0x0c) */ 1685 0x3f, /* ok sensor control settings (reg 0x0d) */ 1686 0x15, /* ok sensor control settings (reg 0x0e) */ 1687 /* ok mono (reg 0x0f to 0x18) */ 1688 { 0x04, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x06}, 1689 /* ok color (reg 0x0f to 0x18) */ 1690 { 0x04, 0x16, 0x01, 0x02, 0x05, 0x06, 0x00, 0x00, 0x0a, 0x16}, 1691 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 1692 0, /* bReg 0x27 color mode */ 1693 1, /* bReg 0x29 illumination mode */ 1694 /* illumination mode settings (not used for CCD devices)*/ 1695 { 0, 0, 0, 0, 0, 0, 0 }, 1696 { 0, 0, 0, 0, 0, 0, 0 }, 1697 257, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */ 1698 0x0e, /* ok bOpticBlackStart (reg 0x1c) */ 1699 0x1d, /* ok bOpticBlackEnd (reg 0x1d) */ 1700 140, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */ 1701 5369, /* ok wLineEnd (reg 0x20 + 0x21) */ 1702 0, /* red lamp on (reg 0x2c + 0x2d) */ 1703 16383, /* red lamp off (reg 0x2e + 0x2f) */ 1704 0, /* green lamp on (reg 0x30 + 0x31) */ 1705 0, /* green lamp off (reg 0x32 + 0x33) */ 1706 0, /* blue lamp on (reg 0x34 + 0x35) */ 1707 16383, /* blue lamp off (reg 0x36 + 0x37) */ 1708 0x13, /* ok stepper motor control (reg 0x45) */ 1709 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 1710 0x1e, /* steps to reverse on buffer full (reg 0x50) */ 1711 0xfc, /* ok acceleration profile (reg 0x51) */ 1712 0, /* ok lines to process (reg 0x54) */ 1713 0x13, /* ok kickstart (reg 0x55) */ 1714 0x03, /* ok pwm freq (reg 0x56) */ 1715 0x20, /* ok pwm duty cycle (reg 0x57) */ 1716 0x0d, /* ok Paper sense (reg 0x58) */ 1717 0x44, /* ok misc io12 (reg 0x59) */ 1718 0x44, /* ok misc io34 (reg 0x5a) */ 1719 0x16, /* ok misc io56 (reg 0x5b) */ 1720 0, /* ok test mode ADC Output CODE MSB (reg 0x5c) */ 1721 0, /* ok test mode ADC Output CODE LSB (reg 0x5d) */ 1722 0, /* ok test mode (reg 0x5e) */ 1723 _LM9832, 1724 MODEL_MUSTEK600, 1725 1.5 1726 }; 1727 1728 /** BearPaw 2400 */ 1729 static HWDef Hw0x0400_0x1001_0 = 1730 { 1731 1.0/*1.8*/, /* ok dMaxMotorSpeed */ 1732 0.9/*1.8*/, /* ok dMaxMoveSpeed */ 1733 0.0, /* ok dHighSpeed */ 1734 12, /* ok dIntegrationTimeLowLamp */ 1735 12, /* ok dIntegrationTimeHighLamp */ 1736 1200 /* 600*/ , /* ok wMotorDpi (Full step DPI) */ 1737 2048, /* ok wRAMSize (KB) */ 1738 9, /* ok dMinIntegrationTimeLowres (ms) */ 1739 9, /* ok dMinIntegrationTimeHighres (ms) */ 1740 1169, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 1741 1169, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 1742 1743 0x02 /*0x06*/, /* ok bSensorConfiguration (0x0b) */ 1744 0x3c, /* ok sensor control settings (reg 0x0c) */ 1745 0x3f, /* ok sensor control settings (reg 0x0d) */ 1746 0x11, /* ok sensor control settings (reg 0x0e) */ 1747 /* ok mono (reg 0x0f to 0x18) */ 1748 1749 {2, 7, 0, 1, 0, 0, 0, 0, 4, 0}, 1750 1751 /* {5, 14, 12, 15, 18, 21, 0, 0, 0, 9 },*/ 1752 {1, 4, 4, 5, 6, 7, 0, 0, 0, 3 }, 1753 1754 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 1755 0, /* bReg 0x27 color mode */ 1756 1, /* bReg 0x29 illumination mode */ 1757 /* illumination mode settings (not used for CCD devices)*/ 1758 { 0, 0, 0, 0, 0, 0, 0 }, 1759 { 0, 0, 0, 0, 0, 0, 0 }, 1760 1761 257, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 1762 13, /* bOpticBlackStart (reg 0x1c) */ 1763 60, /* bOpticBlackEnd (reg 0x1d) */ 1764 10, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 1765 5416 /* 11000*/, /* wLineEnd (reg 0x20 + 0x21) */ 1766 1767 1, /* ok red lamp on (reg 0x2c + 0x2d) */ 1768 16383, /* ok red lamp off (reg 0x2e + 0x2f) */ 1769 1, /* ok green lamp on (reg 0x30 + 0x31) */ 1770 16383, /* ok green lamp off (reg 0x32 + 0x33) */ 1771 1, /* ok blue lamp on (reg 0x34 + 0x35) */ 1772 16383, /* ok blue lamp off (reg 0x36 + 0x37) */ 1773 1774 0x03, /* ok stepper motor control (reg 0x45) */ 1775 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 1776 0x1e, /* steps to reverse on buffer full (reg 0x50) */ 1777 0xfc, /* ok acceleration profile (reg 0x51) */ 1778 0x03, /* ok lines to process (reg 0x54) */ 1779 0x13, /* Kickstart 0x55 */ 1780 2, /* PWM frequency 0x56 */ 1781 32, /* PWM duty cycle 0x57 */ 1782 0x15, /* paper sense 0x58 */ 1783 0x44, /* misc I/O 0x59 */ 1784 0x44, /* misc I/O 0x5a, */ 1785 0x46, /* misc I/O 0x5b */ 1786 0, 0, 0,/* test registers, set to 0 (0x5c, 0x5d, 0x5e) */ 1787 _LM9832, 1788 MODEL_MUSTEK1200, 1789 1.0 1790 }; 1791 1792 /** EPSON Perfection/Photo 1250 */ 1793 static HWDef Hw0x04B8_0x010F = 1794 { 1795 0.8, /* dMaxMotorSpeed */ 1796 0.8, /* dMaxMoveSpeed */ 1797 4.1, /* dHighSpeed */ 1798 12, /* dIntegrationTimeLowLamp */ 1799 12, /* dIntegrationTimeHighLamp */ 1800 600, /* wMotorDpi (Full step DPI) */ 1801 512, /* wRAMSize (KB) */ 1802 4, /* dMinIntegrationTimeLowres (ms) */ 1803 5, /* dMinIntegrationTimeHighres (ms) */ 1804 1, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 1805 1, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 1806 1807 0x02, /* ok bSensorConfiguration (0x0b) */ 1808 0x04, /* ok sensor control settings (reg 0x0c) */ 1809 0x7d, /* ok sensor control settings (reg 0x0d) */ 1810 0x37, /* ok sensor control settings (reg 0x0e) */ 1811 1812 {0x02, 0x07, 0x00, 0x01, 0x04, 0x07, 0x00, 0x00, 0x03, 0x07}, 1813 /* ok mono (reg 0x0f to 0x18) */ 1814 {0x06, 0x16, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x0a, 0x17}, 1815 /* ok color (reg 0x0f to 0x18) */ 1816 _GREEN_CH, /* ok bReg_0x26 color mode - bits 4 and 5 */ 1817 0x40, /* ok bReg 0x27 color mode */ 1818 3, /* bReg 0x29 illumination mode */ 1819 /* illumination mode settings (not used for CCD devices)*/ 1820 { 0, 0, 0, 0, 0, 0, 0 }, 1821 { 0, 0, 0, 0, 0, 0, 0 }, 1822 1823 1, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */ 1824 0x00, /* ok bOpticBlackStart (reg 0x1c) */ 1825 0x42, /* ok bOpticBlackEnd (reg 0x1d) */ 1826 69, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */ 1827 10758, /* ok wLineEnd (reg 0x20 + 0x21) */ 1828 1829 16383, /* ok red lamp on (reg 0x2c + 0x2d) */ 1830 0, /* ok red lamp off (reg 0x2e + 0x2f) */ 1831 16383, /* ok green lamp on (reg 0x30 + 0x31) */ 1832 0, /* ok green lamp off (reg 0x32 + 0x33) */ 1833 16383, /* ok blue lamp on (reg 0x34 + 0x35) */ 1834 0, /* ok blue lamp off (reg 0x36 + 0x37) */ 1835 1836 3, /* ok stepper motor control (reg 0x45) */ 1837 0, /* ok wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 1838 0x1e, /* steps to reverse on buffer full (reg 0x50) */ 1839 0x0c, /* ok acceleration profile (reg 0x51) */ 1840 0, /* ok lines to process (reg 0x54) */ 1841 0x0f, /* ok kickstart (reg 0x55) */ 1842 0x02, /* ok pwm freq (reg 0x56) */ 1843 1, /* ok pwm duty cycle (reg 0x57) */ 1844 1845 0x0d, /* ok Paper sense (reg 0x58) */ 1846 1847 0x41, /* ok misc io12 (reg 0x59) */ 1848 0x44, /* ok misc io34 (reg 0x5a) */ 1849 0x14, /* ok misc io56 (reg 0x5b) */ 1850 0, /* ok test mode ADC Output CODE MSB (reg 0x5c) */ 1851 0, /* ok test mode ADC Output CODE LSB (reg 0x5d) */ 1852 0, /* ok test mode (reg 0x5e) */ 1853 _LM9832, 1854 MODEL_EPSON, 1855 1.0 1856 }; 1857 1858 /** EPSON Perfection/Photo 1260 */ 1859 static HWDef Hw0x04B8_0x011D = 1860 { 1861 0.9, /* dMaxMotorSpeed */ 1862 0.8, /* dMaxMoveSpeed */ 1863 3.0, /* dHighSpeed */ 1864 12, /* dIntegrationTimeLowLamp */ 1865 12, /* dIntegrationTimeHighLamp */ 1866 600, /* wMotorDpi (Full step DPI) */ 1867 512, /* wRAMSize (KB) */ 1868 4, /* dMinIntegrationTimeLowres (ms) */ 1869 5, /* dMinIntegrationTimeHighres (ms) */ 1870 1, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 1871 1, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 1872 1873 0x02, /* ok bSensorConfiguration (0x0b) */ 1874 0x04, /* ok sensor control settings (reg 0x0c) */ 1875 0x7d, /* ok sensor control settings (reg 0x0d) */ 1876 0x37, /* ok sensor control settings (reg 0x0e) */ 1877 1878 {0x02, 0x07, 0x00, 0x01, 0x04, 0x07, 0x00, 0x00, 0x03, 0x07}, 1879 /* ok mono (reg 0x0f to 0x18) */ 1880 {0x06, 0x0b, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x0a, 0x17}, 1881 /* ok color (reg 0x0f to 0x18) */ 1882 _GREEN_CH, /* ok bReg_0x26 color mode - bits 4 and 5 */ 1883 0x42, /* ok bReg 0x27 color mode */ 1884 3, /* bReg 0x29 illumination mode */ 1885 /* illumination mode settings (not used for CCD devices)*/ 1886 { 0, 0, 0, 0, 0, 0, 0 }, 1887 { 0, 0, 0, 0, 0, 0, 0 }, 1888 1889 1, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */ 1890 0x00, /* ok bOpticBlackStart (reg 0x1c) */ 1891 0x42, /* ok bOpticBlackEnd (reg 0x1d) */ 1892 69, /* ok wActivePixelsStart (reg 0x1e + 0x1f) */ 1893 10766, /* ok wLineEnd (reg 0x20 + 0x21) */ 1894 1895 16383, /* ok red lamp on (reg 0x2c + 0x2d) */ 1896 0, /* ok red lamp off (reg 0x2e + 0x2f) */ 1897 16383, /* ok green lamp on (reg 0x30 + 0x31) */ 1898 0, /* ok green lamp off (reg 0x32 + 0x33) */ 1899 16383, /* ok blue lamp on (reg 0x34 + 0x35) */ 1900 0, /* ok blue lamp off (reg 0x36 + 0x37) */ 1901 1902 3, /* ok stepper motor control (reg 0x45) */ 1903 0, /* ok wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 1904 0x1e, /* steps to reverse on buffer full (reg 0x50) */ 1905 0x0c, /* ok acceleration profile (reg 0x51) */ 1906 0, /* ok lines to process (reg 0x54) */ 1907 0x0f, /* ok kickstart (reg 0x55) */ 1908 0x02, /* ok pwm freq (reg 0x56) */ 1909 1, /* ok pwm duty cycle (reg 0x57) */ 1910 1911 0x0d, /* ok Paper sense (reg 0x58) */ 1912 1913 0x41, /* ok misc io12 (reg 0x59) */ 1914 0x44, /* ok misc io34 (reg 0x5a) */ 1915 0x14, /* ok misc io56 (reg 0x5b) */ 1916 0, /* ok test mode ADC Output CODE MSB (reg 0x5c) */ 1917 0, /* ok test mode ADC Output CODE LSB (reg 0x5d) */ 1918 0, /* ok test mode (reg 0x5e) */ 1919 _LM9832, 1920 MODEL_EPSON, 1921 1.5 1922 }; 1923 1924 /** Umax 3400/3450 */ 1925 static HWDef Hw0x1606_0x0060 = 1926 { 1927 1.5, /* dMaxMotorSpeed */ 1928 0.8, /* dMaxMoveSpeed */ 1929 2.75, /* dHighSpeed */ 1930 9, /* dIntegrationTimeLowLamp */ 1931 9, /* dIntegrationTimeHighLamp */ 1932 600, /* wMotorDpi (Full step DPI) */ 1933 512, /* wRAMSize (KB) */ 1934 8, /* dMinIntegrationTimeLowres (ms) */ 1935 8, /* dMinIntegrationTimeHighres (ms) */ 1936 4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 1937 4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 1938 1939 0x06, /* bSensorConfiguration (0x0b) */ 1940 0x73, /* sensor control settings (reg 0x0c) */ 1941 0x77, /* sensor control settings (reg 0x0d) */ 1942 0x15, /* sensor control settings (reg 0x0e) */ 1943 1944 {0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03}, 1945 /* mono (reg 0x0f to 0x18) */ 1946 1947 {0x01, 0x0c, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0c}, 1948 /* color (reg 0x0f to 0x18) */ 1949 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 1950 0x40, /* bReg 0x27 color mode */ 1951 1, /* bReg 0x29 illumination mode */ 1952 /* illumination mode settings (not used for CCD devices) */ 1953 { 0, 0, 0, 0, 0, 0, 0 }, 1954 { 0, 0, 0, 0, 0, 0, 0 }, 1955 1956 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 1957 0x2f, /* bOpticBlackStart (reg 0x1c) */ 1958 0x3e, /* bOpticBlackEnd (reg 0x1d) */ 1959 110, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */ 1960 5469, /* wLineEnd (reg 0x20 + 0x21) */ 1961 1962 1, /* red lamp on (reg 0x2c + 0x2d) */ 1963 16383, /* red lamp off (reg 0x2e + 0x2f) */ 1964 0, /* green lamp on (reg 0x30 + 0x31) */ 1965 0, /* green lamp off (reg 0x32 + 0x33) */ 1966 32, /* blue lamp on (reg 0x34 + 0x35) */ 1967 48, /* blue lamp off (reg 0x36 + 0x37) */ 1968 1969 3, /* stepper motor control (reg 0x45) */ 1970 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 1971 11, /* steps to reverse on buffer full (reg 0x50)*/ 1972 0xfc, /* acceleration profile (reg 0x51) */ 1973 3, /* lines to process (reg 0x54) */ 1974 0xcb, /* kickstart (reg 0x55) */ 1975 0x05, /* pwm freq (reg 0x56) */ 1976 5, /* pwm duty cycle (reg 0x57) */ 1977 1978 0x0d, /* Paper sense (reg 0x58) */ 1979 1980 0x44, /* misc io12 (reg 0x59) */ 1981 0x45, /* misc io34 (reg 0x5a) */ 1982 0x74, /* misc io56 (reg 0x5b) */ 1983 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 1984 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 1985 0, /* test mode (reg 0x5e) */ 1986 _LM9832, 1987 MODEL_UMAX, 1988 1.0 1989 }; 1990 1991 /** Umax 5400 */ 1992 static HWDef Hw0x1606_0x0160 = 1993 { 1994 1.1, /* dMaxMotorSpeed */ 1995 0.9, /* dMaxMoveSpeed */ 1996 0.0, /* dHighSpeed */ 1997 9, /* dIntegrationTimeLowLamp */ 1998 9, /* dIntegrationTimeHighLamp */ 1999 600, /* wMotorDpi (Full step DPI) */ 2000 512, /* wRAMSize (KB) */ 2001 8, /* dMinIntegrationTimeLowres (ms) */ 2002 8, /* dMinIntegrationTimeHighres (ms) */ 2003 4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2004 4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2005 2006 0x06, /* bSensorConfiguration (0x0b) */ 2007 0x73, /* sensor control settings (reg 0x0c) */ 2008 0x77, /* sensor control settings (reg 0x0d) */ 2009 0x25, /* sensor control settings (reg 0x0e) */ 2010 2011 /* mono (reg 0x0f to 0x18) */ 2012 {0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03}, 2013 2014 /* color (reg 0x0f to 0x18) */ 2015 {0x01, 0x0c, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0c}, 2016 2017 _GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */ 2018 0x40, /* bReg 0x27 color mode */ 2019 1, /* bReg 0x29 illumination mode */ 2020 2021 /* illumination mode settings (not used for CCD devices) */ 2022 { 0, 0, 0, 0, 0, 0, 0 }, 2023 { 0, 0, 0, 0, 0, 0, 0 }, 2024 2025 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2026 20, /* bOpticBlackStart (reg 0x1c) */ 2027 45, /* bOpticBlackEnd (reg 0x1d) */ 2028 110, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */ 2029 10669, /* wLineEnd (reg 0x20 + 0x21) */ 2030 2031 1, /* red lamp on (reg 0x2c + 0x2d) */ 2032 16383, /* red lamp off (reg 0x2e + 0x2f) */ 2033 0, /* green lamp on (reg 0x30 + 0x31) */ 2034 0, /* green lamp off (reg 0x32 + 0x33) */ 2035 32, /* blue lamp on (reg 0x34 + 0x35) */ 2036 48, /* blue lamp off (reg 0x36 + 0x37) */ 2037 2038 3, /* stepper motor control (reg 0x45) */ 2039 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2040 11, /* steps to reverse on buffer full (reg 0x50)*/ 2041 0xfc, /* acceleration profile (reg 0x51) */ 2042 3, /* lines to process (reg 0x54) */ 2043 0xcb, /* kickstart (reg 0x55) */ 2044 0x05, /* pwm freq (reg 0x56) */ 2045 5, /* pwm duty cycle (reg 0x57) */ 2046 2047 0x0d, /* Paper sense (reg 0x58) */ 2048 2049 0x44, /* misc io12 (reg 0x59) */ 2050 0x45, /* misc io34 (reg 0x5a) */ 2051 0x7c, /* misc io56 (reg 0x5b) */ 2052 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2053 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2054 0, /* test mode (reg 0x5e) */ 2055 _LM9832, 2056 MODEL_UMAX1200, 2057 1.0 2058 }; 2059 2060 /** Canon N650U/N656U */ 2061 static HWDef Hw0x04A9_0x2206 = 2062 { 2063 0.76, /* dMaxMotorSpeed */ 2064 0.243, /* dMaxMoveSpeed */ 2065 0.0, /* dHighSpeed */ 2066 100, /* dIntegrationTimeLowLamp */ 2067 100, /* dIntegrationTimeHighLamp */ 2068 1200, /* wMotorDpi (Full step DPI) */ 2069 512, /* wRAMSize (KB) */ 2070 3.75, /* dMinIntegrationTimeLowres (ms) */ 2071 5.75, /* dMinIntegrationTimeHighres (ms) */ 2072 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2073 0, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2074 2075 0x15, /* bSensorConfiguration (0x0b) */ 2076 0x4c, /* sensor control settings (reg 0x0c) */ 2077 0x2f, /* sensor control settings (reg 0x0d) */ 2078 0x00, /* sensor control settings (reg 0x0e) */ 2079 2080 /* mono & color (reg 0x0f to 0x18) the 2081 same for CIS devices */ 2082 2083 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2084 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2085 2086 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2087 2088 0x00, /* bReg 0x27 color mode */ 2089 2, /* bReg 0x29 illumination mode (runtime) */ 2090 /* illumination mode settings */ 2091 { 3, 0, 0, 23, 850, 0, 0 }, 2092 { 2, 23, 2500, 23, 1800, 23, 950 }, 2093 2094 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2095 0, /* bOpticBlackStart (reg 0x1c) */ 2096 0, /* bOpticBlackEnd (reg 0x1d) */ 2097 89, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */ 2098 6074, /* wLineEnd (reg 0x20 + 0x21) */ 2099 2100 23, /* red lamp on (reg 0x2c + 0x2d) */ 2101 2500, /* red lamp off (reg 0x2e + 0x2f) */ 2102 23, /* green lamp on (reg 0x30 + 0x31) */ 2103 1800, /* green lamp off (reg 0x32 + 0x33) */ 2104 23, /* blue lamp on (reg 0x34 + 0x35) */ 2105 950, /* blue lamp off (reg 0x36 + 0x37) */ 2106 2107 3, /* stepper motor control (reg 0x45) */ 2108 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2109 0x3f, /* steps to reverse when buffer is full reg 0x50) */ 2110 0xfc, /* acceleration profile (reg 0x51) */ 2111 0, /* lines to process (reg 0x54) */ 2112 0x0f, /* kickstart (reg 0x55) */ 2113 0x08, /* pwm freq (reg 0x56) */ 2114 0x1f, /* pwm duty cycle (reg 0x57) */ 2115 2116 0x05, /* Paper sense (reg 0x58) */ 2117 2118 0x66, /* misc io12 (reg 0x59) */ 2119 0x16, /* misc io34 (reg 0x5a) */ 2120 0x91, /* misc io56 (reg 0x5b) */ 2121 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2122 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2123 0, /* test mode (reg 0x5e) */ 2124 _LM9832, 2125 MODEL_CANON600, 2126 2.0 2127 }; 2128 2129 /** Canon N1220U */ 2130 static HWDef Hw0x04A9_0x2207 = 2131 { 2132 0.72, /* dMaxMotorSpeed */ 2133 0.36, /* dMaxMoveSpeed */ 2134 0.0, /* dHighSpeed */ 2135 100, /* wIntegrationTimeLowLamp */ 2136 100, /* wIntegrationTimeHighLamp */ 2137 1200, /* wMotorDpi (Full step DPI) */ 2138 512, /* wRAMSize (KB) */ 2139 3.75, /* dMinIntegrationTimeLowres (ms) */ 2140 5.75, /* dMinIntegrationTimeHighres (ms) */ 2141 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2142 0, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2143 2144 0x15, /* bSensorConfiguration (0x0b) */ 2145 0x4c, /* sensor control settings (reg 0x0c) */ 2146 0x2f, /* sensor control settings (reg 0x0d) */ 2147 0x00, /* sensor control settings (reg 0x0e) */ 2148 2149 /* mono (reg 0x0f to 0x18) */ 2150 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2151 2152 /* color (reg 0x0f to 0x18) */ 2153 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2154 2155 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2156 2157 0x00, /* bReg 0x27 color mode */ 2158 2, /* bReg 0x29 illumination mode */ 2159 { 3, 0, 0, 23, 2200, 0, 0 }, 2160 { 2, 23, 16383, 23, 15000, 23, 6600 }, 2161 2162 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2163 0, /* bOpticBlackStart (reg 0x1c) */ 2164 0, /* bOpticBlackEnd (reg 0x1d) */ 2165 124, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2166 10586, /* wLineEnd (reg 0x20 + 0x21) */ 2167 2168 23, /* red lamp on (reg 0x2c + 0x2d) */ 2169 16383, /* red lamp off (reg 0x2e + 0x2f) */ 2170 23, /* green lamp on (reg 0x30 + 0x31) */ 2171 15000, /* green lamp off (reg 0x32 + 0x33) */ 2172 23, /* blue lamp on (reg 0x34 + 0x35) */ 2173 6600, /* blue lamp off (reg 0x36 + 0x37) */ 2174 2175 3, /* stepper motor control (reg 0x45) */ 2176 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2177 0, /* steps to reverse when buffer is full reg 0x50) */ 2178 0xfc, /* acceleration profile (reg 0x51) */ 2179 0, /* lines to process (reg 0x54) */ 2180 0x0f, /* kickstart (reg 0x55) */ 2181 0x08, /* pwm freq (reg 0x56) */ 2182 0x1f, /* pwm duty cycle (reg 0x57) */ 2183 2184 0x05, /* Paper sense (reg 0x58) */ 2185 2186 0x66, /* misc io12 (reg 0x59) */ 2187 0x16, /* misc io34 (reg 0x5a) */ 2188 0x91, /* misc io56 (reg 0x5b) */ 2189 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2190 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2191 0, /* test mode (reg 0x5e) */ 2192 _LM9832, 2193 MODEL_CANON1200, 2194 2.0 2195 }; 2196 2197 /** Canon D660U */ 2198 static HWDef Hw0x04A9_0x2208 = 2199 { 2200 1.2, /* dMaxMotorSpeed */ 2201 1.1, /* dMaxMoveSpeed */ 2202 2.75, /* dHighSpeed */ 2203 9, /* dIntegrationTimeLowLamp */ 2204 9, /* dIntegrationTimeHighLamp */ 2205 300, /* wMotorDpi (Full step DPI) */ 2206 512, /* wRAMSize (KB) */ 2207 8, /* dMinIntegrationTimeLowres (ms) */ 2208 8, /* dMinIntegrationTimeHighres (ms) */ 2209 4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2210 4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2211 2212 0x02, /* bSensorConfiguration (0x0b) */ 2213 0x60, /* sensor control settings (reg 0x0c) */ 2214 0x2f, /* sensor control settings (reg 0x0d) */ 2215 0x13, /* sensor control settings (reg 0x0e) */ 2216 2217 {0x06, 0x17, 0x01, 0x03, 0x05, 0x07, 0x00, 0x00, 0x0b }, 2218 {0x06, 0x17, 0x01, 0x03, 0x05, 0x07, 0x00, 0x00, 0x0b }, 2219 _GREEN_CH, 2220 0, /* bReg 0x27 color mode */ 2221 1, /* bReg 0x29 illumination mode */ 2222 2223 /* illumination mode settings (not used for CCD devices) */ 2224 { 0, 0, 0, 0, 0, 0, 0 }, 2225 { 0, 0, 0, 0, 0, 0, 0 }, 2226 2227 0, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2228 13, /* bOpticBlackStart (reg 0x1c) */ 2229 33, /* bOpticBlackEnd (reg 0x1d) */ 2230 64, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2231 5440, /* wLineEnd (reg 0x20 + 0x21) */ 2232 2233 16383, /* red lamp on (reg 0x2c + 0x2d) */ 2234 1, /* red lamp off (reg 0x2e + 0x2f) */ 2235 0, /* green lamp on (reg 0x30 + 0x31) */ 2236 0, /* green lamp off (reg 0x32 + 0x33) */ 2237 0, /* blue lamp on (reg 0x34 + 0x35) */ 2238 0, /* blue lamp off (reg 0x36 + 0x37) */ 2239 2240 3, /* stepper motor control (reg 0x45) */ 2241 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2242 0x20, /* steps to reverse when buffer is full reg 0x50) */ 2243 0xfc, /* acceleration profile (reg 0x51) */ 2244 0, /* lines to process (reg 0x54) */ 2245 0, /* kickstart (reg 0x55) */ 2246 0x02, /* pwm freq (reg 0x56) */ 2247 0x1f, /* pwm duty cycle (reg 0x57) */ 2248 0x05, /* Paper sense (reg 0x58) */ 2249 0x44, /* misc io12 (reg 0x59) */ 2250 0x14, /* misc io34 (reg 0x5a) */ 2251 0x11, /* misc io56 (reg 0x5b) */ 2252 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2253 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2254 0, /* test mode (reg 0x5e) */ 2255 _LM9832, 2256 MODEL_CANONCCD1200, 2257 1.5 2258 }; 2259 2260 /** Canon 670/676/LiDE20 */ 2261 static HWDef Hw0x04A9_0x220D = 2262 { 2263 0.72, /* dMaxMotorSpeed */ 2264 0.23, /* dMaxMoveSpeed */ 2265 0.0, /* dHighSpeed */ 2266 100, /* dIntegrationTimeLowLamp */ 2267 100, /* dIntegrationTimeHighLamp */ 2268 1200, /* wMotorDpi (Full step DPI) */ 2269 512, /* wRAMSize (KB) */ 2270 3.75, /* dMinIntegrationTimeLowres (ms) */ 2271 5.75, /* dMinIntegrationTimeHighres (ms) */ 2272 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2273 0, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2274 2275 0x15, /* bSensorConfiguration (0x0b) */ 2276 0x4c, /* sensor control settings (reg 0x0c) */ 2277 0x2f, /* sensor control settings (reg 0x0d) */ 2278 0x00, /* sensor control settings (reg 0x0e) */ 2279 2280 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2281 /* mono (reg 0x0f to 0x18) */ 2282 2283 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2284 /* color (reg 0x0f to 0x18) */ 2285 2286 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2287 2288 0x00, /* bReg 0x27 color mode */ 2289 2, /* bReg 0x29 illumination mode (runtime) */ 2290 2291 { 3, 0, 0, 23, 1800, 0, 0 }, 2292 { 2, 23, 3800, 23, 3300, 23, 2700 }, 2293 2294 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2295 0, /* bOpticBlackStart (reg 0x1c) */ 2296 0, /* bOpticBlackEnd (reg 0x1d) */ 2297 75, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2298 6074, /* wLineEnd (reg 0x20 + 0x21) */ 2299 2300 23, /* red lamp on (reg 0x2c + 0x2d) */ 2301 3800, /* red lamp off (reg 0x2e + 0x2f) */ 2302 23, /* green lamp on (reg 0x30 + 0x31) */ 2303 3300, /* green lamp off (reg 0x32 + 0x33) */ 2304 23, /* blue lamp on (reg 0x34 + 0x35) */ 2305 2700, /* blue lamp off (reg 0x36 + 0x37) */ 2306 2307 3, /* stepper motor control (reg 0x45) */ 2308 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2309 0x3f, /* steps to reverse when buffer is full reg 0x50) */ 2310 0xfc, /* acceleration profile (reg 0x51) */ 2311 0, /* lines to process (reg 0x54) */ 2312 0x0f, /* kickstart (reg 0x55) */ 2313 0x08, /* pwm freq (reg 0x56) */ 2314 0x1f, /* pwm duty cycle (reg 0x57) */ 2315 2316 0x04, /* Paper sense (reg 0x58) */ 2317 2318 0x66, /* misc io12 (reg 0x59) */ 2319 0x16, /* misc io34 (reg 0x5a) */ 2320 0x91, /* misc io56 (reg 0x5b) */ 2321 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2322 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2323 0, /* test mode (reg 0x5e) */ 2324 _LM9833, 2325 MODEL_CANON600, 2326 2.0 2327 }; 2328 2329 /** Canon N1240U/LiDE30 */ 2330 static HWDef Hw0x04A9_0x220E = 2331 { 2332 0.72, /* dMaxMotorSpeed */ 2333 0.30, /* dMaxMoveSpeed */ 2334 0.0, /* dHighSpeed */ 2335 100, /* wIntegrationTimeLowLamp */ 2336 100, /* wIntegrationTimeHighLamp */ 2337 1200, /* wMotorDpi (Full step DPI) */ 2338 512, /* wRAMSize (KB) */ 2339 3.75, /* dMinIntegrationTimeLowres (ms) */ 2340 5.75, /* dMinIntegrationTimeHighres (ms) */ 2341 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2342 0, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2343 2344 0x15, /* bSensorConfiguration (0x0b) */ 2345 0x4c, /* sensor control settings (reg 0x0c) */ 2346 0x2f, /* sensor control settings (reg 0x0d) */ 2347 0x00, /* sensor control settings (reg 0x0e) */ 2348 2349 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2350 /* mono (reg 0x0f to 0x18) */ 2351 2352 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05}, 2353 /* color (reg 0x0f to 0x18) */ 2354 2355 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2356 2357 0x00, /* bReg 0x27 color mode */ 2358 2, /* bReg 0x29 illumination mode */ 2359 2360 { 3, 0, 0, 23, 3000, 0, 0 }, 2361 { 2, 23, 16383, 23, 6500, 23, 4900 }, 2362 2363 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2364 0, /* bOpticBlackStart (reg 0x1c) */ 2365 0, /* bOpticBlackEnd (reg 0x1d) */ 2366 52, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2367 10586, /* wLineEnd (reg 0x20 + 0x21) */ 2368 2369 23, /* red lamp on (reg 0x2c + 0x2d) */ 2370 16383, /* red lamp off (reg 0x2e + 0x2f) */ 2371 23, /* green lamp on (reg 0x30 + 0x31) */ 2372 6500, /* green lamp off (reg 0x32 + 0x33) */ 2373 23, /* blue lamp on (reg 0x34 + 0x35) */ 2374 4900, /* blue lamp off (reg 0x36 + 0x37) */ 2375 2376 3, /* stepper motor control (reg 0x45) */ 2377 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2378 0x20, /* steps to reverse when buffer is full reg 0x50) */ 2379 0xfc, /* acceleration profile (reg 0x51) */ 2380 0, /* lines to process (reg 0x54) */ 2381 0x0f, /* kickstart (reg 0x55) */ 2382 0x08, /* pwm freq (reg 0x56) */ 2383 0x1f, /* pwm duty cycle (reg 0x57) */ 2384 2385 0x04, /* Paper sense (reg 0x58) */ 2386 2387 0x66, /* misc io12 (reg 0x59) */ 2388 0x16, /* misc io34 (reg 0x5a) */ 2389 0x91, /* misc io56 (reg 0x5b) */ 2390 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2391 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2392 0, /* test mode (reg 0x5e) */ 2393 _LM9833, 2394 MODEL_CANON1200, 2395 2.0 2396 }; 2397 2398 /** Canon LiDE25 */ 2399 static HWDef Hw0x04A9_0x2220 = 2400 { 2401 0.70, /* dMaxMotorSpeed */ 2402 0.25, /* dMaxMoveSpeed */ 2403 0.0, /* dHighSpeed */ 2404 100, /* wIntegrationTimeLowLamp */ 2405 100, /* wIntegrationTimeHighLamp */ 2406 1200, /* wMotorDpi (Full step DPI) */ 2407 512, /* wRAMSize (KB) */ 2408 3.75, /* dMinIntegrationTimeLowres (ms) */ 2409 5.75, /* dMinIntegrationTimeHighres (ms) */ 2410 0, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2411 0, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2412 2413 0x11, /* bSensorConfiguration (0x0b) */ 2414 0x4d, /* sensor control settings (reg 0x0c) */ 2415 0x2f, /* sensor control settings (reg 0x0d) */ 2416 0x00, /* sensor control settings (reg 0x0e) */ 2417 2418 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x07}, 2419 /* mono (reg 0x0f to 0x18) */ 2420 2421 {0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x07}, 2422 /* color (reg 0x0f to 0x18) */ 2423 2424 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2425 2426 0x00, /* bReg 0x27 color mode */ 2427 2, /* bReg 0x29 illumination mode */ 2428 2429 { 3, 0, 0, 50, 3700, 0, 0 }, 2430 { 2, 50, 5600, 50, 7100, 50, 4600 }, 2431 2432 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2433 0, /* bOpticBlackStart (reg 0x1c) */ 2434 0, /* bOpticBlackEnd (reg 0x1d) */ 2435 0x7f, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2436 10559, /* wLineEnd (reg 0x20 + 0x21) */ 2437 2438 50, /* red lamp on (reg 0x2c + 0x2d) */ 2439 5600, /* red lamp off (reg 0x2e + 0x2f) */ 2440 50, /* green lamp on (reg 0x30 + 0x31) */ 2441 7100, /* green lamp off (reg 0x32 + 0x33) */ 2442 50, /* blue lamp on (reg 0x34 + 0x35) */ 2443 4600, /* blue lamp off (reg 0x36 + 0x37) */ 2444 2445 3, /* stepper motor control (reg 0x45) */ 2446 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2447 0x20, /* steps to reverse when buffer is full reg 0x50) */ 2448 0xfc, /* acceleration profile (reg 0x51) */ 2449 0, /* lines to process (reg 0x54) */ 2450 0x0f, /* kickstart (reg 0x55) */ 2451 0x08, /* pwm freq (reg 0x56) */ 2452 0x1f, /* pwm duty cycle (reg 0x57) */ 2453 2454 0x04, /* Paper sense (reg 0x58) */ 2455 2456 0x66, /* misc io12 (reg 0x59) */ 2457 0x16, /* misc io34 (reg 0x5a) */ 2458 0x91, /* misc io56 (reg 0x5b) */ 2459 0x01, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2460 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2461 0, /* test mode (reg 0x5e) */ 2462 _LM9833, 2463 MODEL_CANON_LIDE25, 2464 2.0 2465 }; 2466 2467 /** TravelScan 662 */ 2468 static HWDef Hw0x0A82_0x6620 = 2469 { 2470 0.72, /* dMaxMotorSpeed */ 2471 0.188, /* dMaxMoveSpeed */ 2472 0.0, /* dHighSpeed */ 2473 100, /* wIntegrationTimeLowLamp */ 2474 100, /* wIntegrationTimeHighLamp */ 2475 740, /* wMotorDpi (Full step DPI) */ 2476 512, /* wRAMSize (KB) */ 2477 3.75, /* dMinIntegrationTimeLowres (ms) */ 2478 5.75, /* dMinIntegrationTimeHighres (ms) */ 2479 3000, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2480 3000, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2481 2482 0x0d, /* bSensorConfiguration (0x0b) */ 2483 0x00, /* sensor control settings (reg 0x0c) */ 2484 0x25, /* sensor control settings (reg 0x0d) */ 2485 0x00, /* sensor control settings (reg 0x0e) */ 2486 2487 {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, 2488 /* mono (reg 0x0f to 0x18) */ 2489 2490 {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, 2491 /* color (reg 0x0f to 0x18) */ 2492 2493 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2494 2495 0x00, /* bReg 0x27 color mode */ 2496 2, /* bReg 0x29 illumination mode */ 2497 2498 { 3, 0, 0, 10, 450, 0, 0 }, 2499 { 2, 10, 1000, 10, 880, 10, 630 }, 2500 2501 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2502 1, /* bOpticBlackStart (reg 0x1c) */ 2503 2, /* bOpticBlackEnd (reg 0x1d) */ 2504 0x17, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2505 2600, /* wLineEnd (reg 0x20 + 0x21) */ 2506 2507 10, /* red lamp on (reg 0x2c + 0x2d) */ 2508 1000, /* red lamp off (reg 0x2e + 0x2f) */ 2509 10, /* green lamp on (reg 0x30 + 0x31) */ 2510 880, /* green lamp off (reg 0x32 + 0x33) */ 2511 10, /* blue lamp on (reg 0x34 + 0x35) */ 2512 630, /* blue lamp off (reg 0x36 + 0x37) */ 2513 2514 3, /* stepper motor control (reg 0x45) */ 2515 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2516 2517 0, /* steps to reverse when buffer is full reg 0x50) */ 2518 0, /* acceleration profile (reg 0x51) */ 2519 0, /* lines to process (reg 0x54) */ 2520 0x09, /* kickstart (reg 0x55) */ 2521 0x02, /* pwm freq (reg 0x56) */ 2522 0x16, /* pwm duty cycle (reg 0x57) */ 2523 2524 0x01, /* Paper sense (reg 0x58) */ 2525 2526 0x0e, /* misc io12 (reg 0x59) */ 2527 0x96, /* misc io34 (reg 0x5a) */ 2528 0x01, /* misc io56 (reg 0x5b) */ 2529 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2530 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2531 0, /* test mode (reg 0x5e) */ 2532 _LM9833, 2533 MODEL_TSCAN, 2534 1.8 2535 }; 2536 2537 /** TravelScan 464 */ 2538 static HWDef Hw0x0A82_0x4600 = 2539 { 2540 0.72, /* dMaxMotorSpeed */ 2541 0.26, /* dMaxMoveSpeed */ 2542 0.0, /* dHighSpeed */ 2543 100, /* wIntegrationTimeLowLamp */ 2544 100, /* wIntegrationTimeHighLamp */ 2545 740, /* wMotorDpi (Full step DPI) */ 2546 512, /* wRAMSize (KB) */ 2547 3.75, /* dMinIntegrationTimeLowres (ms) */ 2548 5.75, /* dMinIntegrationTimeHighres (ms) */ 2549 3000, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2550 3000, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2551 2552 0x0d, /* bSensorConfiguration (0x0b) */ 2553 0x00, /* sensor control settings (reg 0x0c) */ 2554 0x25, /* sensor control settings (reg 0x0d) */ 2555 0x00, /* sensor control settings (reg 0x0e) */ 2556 2557 {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, 2558 /* mono (reg 0x0f to 0x18) */ 2559 2560 {0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07}, 2561 /* color (reg 0x0f to 0x18) */ 2562 2563 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2564 2565 0x00, /* bReg 0x27 color mode */ 2566 2, /* bReg 0x29 illumination mode */ 2567 2568 { 3, 500, 1045, 500, 990, 500, 990 }, 2569 { 2, 500, 1045, 500, 990, 500, 990 }, 2570 2571 1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2572 1, /* bOpticBlackStart (reg 0x1c) */ 2573 2, /* bOpticBlackEnd (reg 0x1d) */ 2574 0x17, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2575 5300, /* wLineEnd (reg 0x20 + 0x21) */ 2576 2577 500, /* red lamp on (reg 0x2c + 0x2d) */ 2578 1045, /* red lamp off (reg 0x2e + 0x2f) */ 2579 500, /* green lamp on (reg 0x30 + 0x31) */ 2580 990, /* green lamp off (reg 0x32 + 0x33) */ 2581 500, /* blue lamp on (reg 0x34 + 0x35) */ 2582 990, /* blue lamp off (reg 0x36 + 0x37) */ 2583 2584 3, /* stepper motor control (reg 0x45) */ 2585 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2586 2587 0, /* steps to reverse when buffer is full reg 0x50) */ 2588 0, /* acceleration profile (reg 0x51) */ 2589 0, /* lines to process (reg 0x54) */ 2590 0x09, /* kickstart (reg 0x55) */ 2591 0x02, /* pwm freq (reg 0x56) */ 2592 0x16, /* pwm duty cycle (reg 0x57) */ 2593 2594 0x01, /* Paper sense (reg 0x58) */ 2595 2596 0x0e, /* misc io12 (reg 0x59) */ 2597 0x96, /* misc io34 (reg 0x5a) */ 2598 0x01, /* misc io56 (reg 0x5b) */ 2599 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2600 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2601 0, /* test mode (reg 0x5e) */ 2602 _LM9833, 2603 MODEL_TSCAN_A4, 2604 1.8 2605 }; 2606 2607 /** IRIScan/Q-Scan USB001 - Portable Peripheral Co., Ltd. */ 2608 static HWDef Hw0x0A53_0x1000 = 2609 { 2610 0.50, /* dMaxMotorSpeed */ 2611 0.40, /* dMaxMoveSpeed */ 2612 0.0, /* dHighSpeed */ 2613 100, /* wIntegrationTimeLowLamp */ 2614 100, /* wIntegrationTimeHighLamp */ 2615 300, /* wMotorDpi (Full step DPI) */ 2616 512, /* wRAMSize (KB) */ 2617 3.75, /* dMinIntegrationTimeLowres (ms) */ 2618 5.75, /* dMinIntegrationTimeHighres (ms) */ 2619 4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2620 4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2621 2622 0x09, /* bSensorConfiguration (0x0b) */ 2623 0x00, /* sensor control settings (reg 0x0c) */ 2624 0x65, /* sensor control settings (reg 0x0d) */ 2625 0x13, /* sensor control settings (reg 0x0e) */ 2626 2627 {0x02, 0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02}, 2628 /* mono (reg 0x0f to 0x18) */ 2629 2630 {0x02, 0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02}, 2631 /* color (reg 0x0f to 0x18) */ 2632 2633 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2634 2635 0x00, /* bReg 0x27 color mode */ 2636 2, /* bReg 0x29 illumination mode */ 2637 2638 { 3, 0, 0, 2593, 4600, 0, 0 }, 2639 { 2, 2593, 7100, 2593, 4600, 2593, 4480 }, 2640 2641 256, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2642 0, /* bOpticBlackStart (reg 0x1c) */ 2643 0x15, /* bOpticBlackEnd (reg 0x1d) */ 2644 0x15, /* wActivePixelsStart (reg 0x1e + 0x1f) */ 2645 5500, /* wLineEnd (reg 0x20 + 0x21) */ 2646 2647 2593, /* red lamp on (reg 0x2c + 0x2d) */ 2648 7100, /* red lamp off (reg 0x2e + 0x2f) */ 2649 2593, /* green lamp on (reg 0x30 + 0x31) */ 2650 4600, /* green lamp off (reg 0x32 + 0x33) */ 2651 2593, /* blue lamp on (reg 0x34 + 0x35) */ 2652 4480, /* blue lamp off (reg 0x36 + 0x37) */ 2653 2654 3, /* stepper motor control (reg 0x45) */ 2655 0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2656 2657 0, /* steps to reverse when buffer is full reg 0x50) */ 2658 0, /* acceleration profile (reg 0x51) */ 2659 0, /* lines to process (reg 0x54) */ 2660 0x1b, /* kickstart (reg 0x55) */ 2661 0x08, /* pwm freq (reg 0x56) */ 2662 0x15, /* pwm duty cycle (reg 0x57) */ 2663 2664 0x00, /* Paper sense (reg 0x58) */ 2665 2666 0x00, /* misc io12 (reg 0x59) */ 2667 0x00, /* misc io34 (reg 0x5a) */ 2668 0x00, /* misc io56 (reg 0x5b) */ 2669 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2670 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2671 0, /* test mode (reg 0x5e) */ 2672 _LM9832, 2673 MODEL_QSCAN, 2674 1.1 2675 }; 2676 2677 /** PandP USB201 Q-Scan A6 Scanner */ 2678 static HWDef Hw0x0A53_0x2000 = 2679 { 2680 0.5, /* dMaxMotorSpeed */ 2681 0.2, /* dMaxMoveSpeed */ 2682 0.0, /* dHighSpeed */ 2683 100, /* wIntegrationTimeLowLamp */ 2684 100, /* wIntegrationTimeHighLamp */ 2685 570, /* wMotorDpi (Full step DPI) */ 2686 512, /* wRAMSize (KB) */ 2687 3.75, /* dMinIntegrationTimeLowres (ms) */ 2688 5.75, /* dMinIntegrationTimeHighres (ms) */ 2689 0x0fff, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */ 2690 0x0fff, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */ 2691 2692 0x02, /* bSensorConfiguration (0x0b) */ 2693 0x00, /* sensor control settings (reg 0x0c) */ 2694 0x25, /* sensor control settings (reg 0x0d) */ 2695 0x06, /* sensor control settings (reg 0x0e) */ 2696 2697 {0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07}, 2698 /* mono (reg 0x0f to 0x18) */ 2699 2700 {0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07}, 2701 /* color (reg 0x0f to 0x18) */ 2702 2703 (_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */ 2704 2705 0x00, /* bReg 0x27 color mode */ 2706 2, /* bReg 0x29 illumination mode */ 2707 2708 { 3, 0, 0, 10, 450, 0, 0 }, 2709 /* initial illumination settings - mono */ 2710 { 2, 10, 1000, 10, 880, 10, 630 }, 2711 /* initial illumination settings - color */ 2712 2713 0x0101, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */ 2714 0x004d, /* bOpticBlackStart (reg 0x22 + 0x23) */ 2715 0x11, /* bOpticBlackEnd */ 2716 0x0011, /* wActivePixelsStart */ 2717 0x0bb8, /* wLineEnd (reg 0x20 + 0x21) */ 2718 2719 10, /* red lamp on (reg 0x2c + 0x2d) */ 2720 1000, /* red lamp off (reg 0x2e + 0x2f) */ 2721 10, /* green lamp on (reg 0x30 + 0x31) */ 2722 880, /* green lamp off (reg 0x32 + 0x33) */ 2723 10, /* blue lamp on (reg 0x34 + 0x35) */ 2724 630, /* blue lamp off (reg 0x36 + 0x37) */ 2725 2726 0x13, /* stepper motor control (reg 0x45) */ 2727 0x0000, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */ 2728 2729 0, /* steps to reverse when buffer is full reg 0x50) */ 2730 0, /* acceleration profile (reg 0x51) */ 2731 0, /* lines to process (reg 0x54) */ 2732 0x1b, /* kickstart (reg 0x55) */ 2733 0x08, /* pwm freq (reg 0x56) */ 2734 0x15, /* pwm duty cycle (reg 0x57) */ 2735 2736 0x00, /* Paper sense (reg 0x58) */ 2737 2738 0x20, /* misc io12 (reg 0x59) */ 2739 0x02, /* misc io34 (reg 0x5a) */ 2740 0x90, /* misc io56 (reg 0x5b) */ 2741 0, /* test mode ADC Output CODE MSB (reg 0x5c) */ 2742 0, /* test mode ADC Output CODE LSB (reg 0x5d) */ 2743 0, /* test mode (reg 0x5e) */ 2744 _LM9832, 2745 MODEL_QSCAN_A6, 2746 1.8 2747 }; 2748 2749 /******************** all available combinations *****************************/ 2750 2751 /** here we have all supported devices and their settings... 2752 */ 2753 static SetDef Settings[] = 2754 { 2755 /* Plustek devices... */ 2756 /* LM9831 based */ 2757 {"0x07B3-0x0010-0", &Cap0x07B3_0x0010_0, &Hw0x07B3_0x0013_0, "OpticPro U12" }, 2758 {"0x07B3-0x0011-0", &Cap0x07B3_0x0011_0, &Hw0x07B3_0x0013_0, "OpticPro U24" }, 2759 {"0x07B3-0x0013-0", &Cap0x07B3_0x0013_0, &Hw0x07B3_0x0013_0, "OpticPro UT12" }, 2760 2761 /* LM9832 based */ 2762 {"0x07B3-0x0017-0", &Cap0x07B3_0x0017_0, &Hw0x07B3_0x0017_0, "OpticPro UT12/UT16" }, 2763 {"0x07B3-0x0015-0", &Cap0x07B3_0x0015_0, &Hw0x07B3_0x0017_0, "OpticPro U24" }, 2764 {"0x07B3-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "OpticPro U24" }, 2765 {"0x07B3-0x0017-4", &Cap0x07B3_0x0017_4, &Hw0x07B3_0x0017_4, "OpticPro UT24" }, 2766 2767 /* never seen yet */ 2768 {"0x07B3-0x0013-4", &Cap0x07B3_0x0013_4, &Hw0x07B3_0x0013_4, "Unknown device" }, 2769 {"0x07B3-0x0011-4", &Cap0x07B3_0x0011_4, &Hw0x07B3_0x0013_4, "Unknown device" }, 2770 {"0x07B3-0x0010-4", &Cap0x07B3_0x0010_4, &Hw0x07B3_0x0013_4, "Unknown device" }, 2771 {"0x07B3-0x0014-0", &Cap0x07B3_0x0014_0, &Hw0x07B3_0x0017_0, "Unknown device" }, 2772 {"0x07B3-0x0014-4", &Cap0x07B3_0x0014_4, &Hw0x07B3_0x0017_4, "Unknown device" }, 2773 {"0x07B3-0x0016-4", &Cap0x07B3_0x0016_4, &Hw0x07B3_0x0016_4, "Unknown device" }, 2774 {"0x07B3-0x0017-2", &Cap0x07B3_0x0017_2, &Hw0x07B3_0x0017_2, "Unknown device" }, 2775 {"0x07B3-0x0017-3", &Cap0x07B3_0x0017_3, &Hw0x07B3_0x0017_3, "Unknown device" }, 2776 {"0x07B3-0x0007", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "Unknown device" }, 2777 {"0x07B3-0x000F", &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "Unknown device" }, 2778 {"0x07B3-0x000F-4", &Cap0x07B3_0x000F_4, &Hw0x07B3_0x000F_4, "Unknown device" }, 2779 {"0x07B3-0x0005-2", &Cap0x07B3_0x0005_2, &Hw0x07B3_0x0007_2, "Unknown device" }, /* TOKYO 600 */ 2780 {"0x07B3-0x0014-1", &Cap0x07B3_0x0014_1, &Hw0x07B3_0x0017_1, "Unknown device" }, /* A3 */ 2781 {"0x07B3-0x0012-0", &Cap0x07B3_0x0012_0, &Hw0x07B3_0x0012_0, "Unknown device" }, /* Brother Demo */ 2782 2783 /* Mustek BearPaw...*/ 2784 {"0x0400-0x1000-0", &Cap0x0400_0x1000_0, &Hw0x0400_0x1000_0, "BearPaw 1200" }, 2785 {"0x0400-0x1001-1", &Cap0x0400_0x1000_0, &Hw0x0400_0x1001_1, "BearPaw 1200" }, 2786 {"0x0400-0x1001-0", &Cap0x0400_0x1001_0, &Hw0x0400_0x1001_0, "BearPaw 2400" }, 2787 2788 /* Genius devices... */ 2789 {"0x0458-0x2007", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "ColorPage-HR6 V2" }, 2790 {"0x0458-0x2008", &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "ColorPage-HR6 V2" }, 2791 {"0x0458-0x2009", &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "ColorPage-HR6A" }, 2792 {"0x0458-0x2013", &Cap0x07B3_0x0007_4, &Hw0x07B3_0x0007_4, "ColorPage-HR7" }, 2793 {"0x0458-0x2015", &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_4, "ColorPage-HR7LE" }, 2794 {"0x0458-0x2016", &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_0, "ColorPage-HR6X" }, 2795 2796 /* Hewlett Packard... */ 2797 {"0x03F0-0x0505", &Cap0x03F0_0x0505, &Hw0x03F0_0x0505, "Scanjet 2100c" }, 2798 {"0x03F0-0x0605", &Cap0x03F0_0x0605, &Hw0x03F0_0x0605, "Scanjet 2200c" }, 2799 2800 /* EPSON... */ 2801 {"0x04B8-0x010F", &Cap0x04B8_0x010F, &Hw0x04B8_0x010F, "Perfection 1250/Photo" }, 2802 {"0x04B8-0x011D", &Cap0x04B8_0x010F, &Hw0x04B8_0x011D, "Perfection 1260/Photo" }, 2803 2804 /* UMAX... */ 2805 {"0x1606-0x0050", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "3400" }, 2806 {"0x1606-0x0060", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "3400" }, 2807 {"0x1606-0x0160", &Cap0x1606_0x0160, &Hw0x1606_0x0160, "5400" }, 2808 2809 /* COMPAQ... */ 2810 {"0x049F-0x001A", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "S4-100" }, 2811 2812 /* CANON... */ 2813 {"0x04A9-0x2206", &Cap0x04A9_0x2206, &Hw0x04A9_0x2206, "CanoScan N650U/N656U" }, 2814 {"0x04A9-0x2207", &Cap0x04A9_0x2207, &Hw0x04A9_0x2207, "CanoScan N1220U" }, 2815 {"0x04A9-0x2208", &Cap0x04A9_0x2208, &Hw0x04A9_0x2208, "CanoScan D660U" }, 2816 {"0x04A9-0x220D", &Cap0x04A9_0x220D, &Hw0x04A9_0x220D, "CanoScan N670U/N676U/LiDE20" }, 2817 {"0x04A9-0x220E", &Cap0x04A9_0x220E, &Hw0x04A9_0x220E, "CanoScan N1240U/LiDE30" }, 2818 {"0x04A9-0x2220", &Cap0x04A9_0x2220, &Hw0x04A9_0x2220, "CanoScan LiDE25" }, 2819 2820 /* SYSCAN... */ 2821 {"0x0A82-0x4600", &Cap0x0A82_0x4600, &Hw0x0A82_0x4600, "TravelScan 460/464" }, 2822 {"0x0A82-0x6620", &Cap0x0A82_0x6620, &Hw0x0A82_0x6620, "TravelScan 662" }, 2823 2824 /* Visioneer... */ 2825 {"0x04A7-0x0427", &Cap0x0A82_0x4600, &Hw0x0A82_0x4600, "Strobe XP100" }, 2826 2827 /* Portable Peripheral Co., Ltd. */ 2828 {"0x0A53-0x1000", &Cap0x0A53_0x1000, &Hw0x0A53_0x1000, "Q-Scan USB001" }, 2829 {"0x0A53-0x2000", &Cap0x0A53_0x2000, &Hw0x0A53_0x2000, "Q-Scan USB201" }, 2830 2831 /* Please add other devices here... 2832 * The first entry is a string, composed out of the vendor and product id, 2833 * it's used by the driver to select the device settings. For other devices 2834 * than those of Plustek, you'll not need to add the second '-' part 2835 * 2836 * The second entry describes the capabilities of the device, you may find 2837 * one suitable for your scanner, for a better description of the entries 2838 * have a look at the beginning of this file at Cap0x07B3_0x0017_0 for 2839 * the UT12 2840 * 2841 * The third entry is for the default setting of the LM983x register 2842 * settings, you can often find these in your Windoze driver ini 2843 * Have a look at the Hw0x0400_0x1000_0 or Hw0x07B3_0x0017_0 for further 2844 * description 2845 * 2846 * The fourth entry is simply the name of the device, which will be 2847 * displayed by the frontend 2848 */ 2849 { NULL, NULL, NULL, NULL } /* last entry, never remove... */ 2850 }; 2851 2852 /** 2853 * tables for the motor settings 2854 * The models KaoHsiung, HuaLien and Tokyo600 are currently set 2855 * within the code in conjunction with some CCD combinations. 2856 * NOTE: the touples PWM and PWM_Duty are used to set the registers 2857 * 0x56 and 0x57, the recommended setting is 8,10 2858 * if you notice a whining noise and the motor does not move, 2859 * you might increase the MCLK variable. 2860 */ 2861 static ClkMotorDef Motors[] = { 2862 2863 { MODEL_KaoHsiung, 2864 64, 20, 6, /* PWM, PWM_Duty, MCLK for fast move */ 2865 0, 0, /* for lineend adjustment, here disabled */ 2866 /* Motor settings (PWM and PWM_Duty) */ 2867 {{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, 2868 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}, 2869 /* Color mode MCLK settings */ 2870 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2871 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2872 /* Gray mode MCLK settings */ 2873 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2874 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 } 2875 }, 2876 2877 { MODEL_HuaLien, 64, 20, 6, 0, 0, 2878 /* Motor settings (PWM and PWM_Duty) */ 2879 {{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, 2880 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}, 2881 /* Color mode MCLK settings */ 2882 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2883 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2884 /* Gray mode MCLK settings */ 2885 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2886 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 } 2887 }, 2888 2889 { MODEL_Tokyo600, 4, 4, 6, 0, 0, 2890 /* Motor settings (PWM and PWM_Duty) */ 2891 {{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, 2892 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }}, 2893 /* Color mode MCLK settings */ 2894 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2895 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2896 /* Gray mode MCLK settings */ 2897 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }, 2898 { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 } 2899 }, 2900 2901 { MODEL_MUSTEK600, 4, 4, 6, 0, 0, 2902 /* Motor settings (PWM and PWM_Duty) */ 2903 {{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, 2904 { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }}, 2905 /* Color mode MCLK settings */ 2906 { 4.0, 3.5, 3.5, 4.0, 4.0, 5.0, 5.0, 7.5, 7.5, 7.5 }, 2907 { 4.0, 3.5, 3.5, 4.0, 4.0, 5.0, 5.0, 7.5, 7.5, 7.5 }, 2908 /* Gray mode MCLK settings */ 2909 { 7.5, 7.0, 6.5, 5.5, 5.5, 5.5, 7.0, 7.0, 7.0, 7.0 }, 2910 { 7.5, 7.0, 6.5, 5.5, 5.5, 5.5, 7.0, 7.0, 7.0, 7.0 } 2911 }, 2912 2913 { MODEL_MUSTEK1200, 2, 32, 3, 0, 0, 2914 /* Motor settings (PWM and PWM_Duty) */ 2915 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 2916 {{ 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, 2917 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 2918 { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }}, 2919 /* Color mode MCLK settings */ 2920 { 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 }, 2921 { 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 }, 2922 /* Gray mode MCLK settings */ 2923 { 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 }, 2924 { 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 } 2925 }, 2926 2927 /* settings good for the HP models (tested with 2200)*/ 2928 { MODEL_HP, 8, 60, 6, 0, 0, 2929 /* Motor settings (PWM and PWM_Duty) */ 2930 {{ 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, 2931 { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }}, 2932 /* Color mode MCLK settings */ 2933 { 4.0, 4.0, 4.0, 4.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0 }, 2934 { 4.0, 4.0, 4.0, 4.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0 }, 2935 /* Gray mode MCLK settings */ 2936 { 8.0, 8.0, 8.0, 8.0, 8.0, 13.0, 13.0, 13.0, 13.0, 13.0 }, 2937 { 8.0, 8.0, 8.0, 8.0, 8.0, 13.0, 13.0, 13.0, 13.0, 13.0 } 2938 }, 2939 2940 { MODEL_CANON600, 8, 31, 12, 0, 0, 2941 /* Motor settings (PWM and PWM_Duty) */ 2942 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 2943 {{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, 2944 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 2945 { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }}, 2946 /* Color mode MCLK settings */ 2947 { 7.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 2948 { 7.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 2949 /* Gray mode MCLK settings */ 2950 { 15.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0 }, 2951 { 15.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0 } 2952 }, 2953 2954 { MODEL_CANON1200, 8, 31, 8, 0, 0, 2955 /* Motor settings (PWM and PWM_Duty) */ 2956 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 2957 {{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, 2958 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 2959 { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }}, 2960 /* Color mode MCLK settings */ 2961 { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0 }, 2962 { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 5.0, 6.0, 6.0, 6.0 }, 2963 /* Gray mode MCLK settings */ 2964 { 8.5, 7.0, 5.0, 4.0, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5 }, 2965 { 8.5, 6.5, 6.0, 6.0, 6.0, 6.0, 8.0, 12.0, 12.0, 12.0 } 2966 }, 2967 2968 /* settings good for the UMAX models (tested with 3400) */ 2969 { MODEL_UMAX, 16, 4, 6, 0, 0, 2970 /* Motor settings (PWM and PWM_Duty) */ 2971 {{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, 2972 { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }}, 2973 /* Color mode MCLK settings */ 2974 { 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 }, 2975 { 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 }, 2976 /* Gray mode MCLK settings */ 2977 { 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5 }, 2978 { 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5 } 2979 }, 2980 2981 { MODEL_UMAX1200, 16, 4, 6, 0, 0, 2982 /* Motor settings (PWM and PWM_Duty) */ 2983 {{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, 2984 { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }}, 2985 /* Color mode MCLK settings */ 2986 { 3.0, 3.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 2987 { 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 }, 2988 /* Gray mode MCLK settings */ 2989 { 6.0, 6.0, 6.0, 6.0, 6.0, 13.0, 13.0, 13.0, 13.0, 13.0 }, 2990 { 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0 } 2991 }, 2992 2993 /* settings good for the EPSON models */ 2994 { MODEL_EPSON, 2, 1, 6, 0, 0, 2995 /* Motor settings (PWM and PWM_Duty) */ 2996 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 2997 {{ 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, 2998 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 2999 { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }}, 3000 /* Color mode MCLK settings */ 3001 { 2.0, 2.0, 2.5, 2.5, 2.5, 2.5, 4.0, 4.0, 6.0, 6.0 }, 3002 { 2.0, 2.0, 2.5, 2.5, 3.0, 3.0, 3.0, 4.0, 6.0, 6.0 }, 3003 /* Gray mode MCLK settings */ 3004 { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 9.0, 9.0, 18.0, 18.0 }, 3005 { 6.0, 6.0, 6.0, 6.0, 6.0, 8.0, 9.0, 9.0, 18.0, 18.0 } 3006 }, 3007 3008 { MODEL_CANONCCD1200, 2, 31, 3, 0, 0, 3009 /* Motor settings (PWM and PWM_Duty) */ 3010 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 3011 {{ 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, 3012 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 3013 { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }}, 3014 /* Color mode MCLK settings */ 3015 { 2.0, 2.0, 2.0, 2.5, 2.5, 2.5, 3.0, 3.5, 5.0, 5.0 }, 3016 { 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 5.0, 5.0 }, 3017 /* Gray mode MCLK settings */ 3018 { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3019 { 6.5, 6.5, 6.5, 7.0, 8.0, 8.0, 8.0, 10.0, 10.0, 10.0 } 3020 }, 3021 3022 { MODEL_CANON_LIDE25, 8, 31, 3, 0, 0, 3023 /* Motor settings (PWM and PWM_Duty) */ 3024 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 3025 {{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, 3026 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 3027 { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }}, 3028 /* Color mode MCLK settings */ 3029 { 3.0, 3.0, 3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 3.0, 3.0 }, 3030 { 3.0, 3.0, 3.0, 3.0, 3.5, 3.5, 5.0, 6.0, 6.0, 6.0 }, 3031 /* Gray mode MCLK settings */ 3032 { 8.5, 7.0, 5.0, 4.0, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5 }, 3033 { 7.5, 6.5, 6.0, 6.0, 6.0, 6.0, 8.0, 12.0, 12.0, 12.0 } 3034 }, 3035 3036 { MODEL_TSCAN, 2, 22, 6, 75, 4000, 3037 /* Motor settings (PWM and PWM_Duty) */ 3038 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 3039 {{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, 3040 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 3041 { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }}, 3042 /* Color mode MCLK settings */ 3043 { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3044 { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3045 /* Gray mode MCLK settings */ 3046 { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, 3047 { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, 3048 }, 3049 3050 { MODEL_TSCAN_A4, 2, 22, 6, 75, 8400, 3051 /* Motor settings (PWM and PWM_Duty) */ 3052 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 3053 {{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, 3054 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 3055 { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }}, 3056 /* Color mode MCLK settings */ 3057 { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3058 { 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3059 /* Gray mode MCLK settings */ 3060 { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, 3061 { 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 }, 3062 }, 3063 3064 { MODEL_QSCAN, 8, 21, 6, 300, 4600, 3065 /* Motor settings (PWM and PWM_Duty) */ 3066 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 3067 {{ 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, 3068 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 3069 { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }}, 3070 /* Color mode MCLK settings */ 3071 { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3072 { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3073 /* Gray mode MCLK settings */ 3074 { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3075 { 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 }, 3076 }, 3077 3078 { MODEL_QSCAN_A6, 8, 15, 6, 0, 0, 3079 /* Motor settings (PWM and PWM_Duty) */ 3080 /* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */ 3081 {{ 8, 15, 1}, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, 3082 /* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */ 3083 { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }}, 3084 /* Color mode MCLK settings */ 3085 { 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 }, 3086 { 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 }, 3087 /* Gray mode MCLK settings */ 3088 { 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 }, 3089 { 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 }, 3090 } 3091 }; 3092 3093 /* END PLUSTEK-USBDEVS.C ....................................................*/ 3094