Hi, I'll be sure to try that, thank you. I've actually been doing all of this remotely via RustDesk, and my grandpa's only available on Sunday evening/Monday so I'll try it then.
Thank you, Michael P.S. Merry (late) Christmas! On Thursday, December 26th, 2024 at 10:56 PM, Ralph Little <[email protected]> wrote: > Hi > You could try the GT68XX_FLAG_OFFSET_INV flag perhaps. > > Some of the options affect the way that calibration works. > > Cheers > Ralph > > On Thu, Dec 26, 2024, 10:15 Michal Waligora via sane-devel > <[email protected]> wrote: > >> Hello, >> >> I recently came across a Plustek OpticSlim 2600 (owned by a family member). >> He’s been using it with Windows, but due to W10 losing support, he’s >> attempting to migrate to Linux Mint. The last major piece of the puzzle >> appears to be the scanner, which is unsupported by SANE and not listed on >> the list of supported devices: >> http://www.sane-project.org/lists/sane-mfgs-cvs.html#Z-PLUSTEK. >> >> I found the adding page of the GT68XX backend >> (http://www.meier-geinitz.de/sane/gt68xx-backend/adding.html) and managed to >> confirm that the scanner is powered by the GT-6816 chip. So I followed it. I >> managed to build the latest sane-backends and inputted the product/vendor >> information, override, and firmware as explained there to the gt68xx config >> file (/usr/local/etc/sane.d/gt68xx.conf) >> >> usb 0x07b3 0x0467 >> >> override "plustek-opticslim-2400" >> >> firmware "cis3R5B1.fw" >> >> I then added it to the gt68xx_devices.c file. >> >> static GT68xx_Model plustek_opticslim2600_model = { >> >> "plustek-opticslim-2600",/* Name */ >> >> "Plustek", /* Device vendor string */ >> >> "OpticSlim 2600", /* Device model name */ >> >> "cis3R5B1.fw", /* Name of the firmware file */ >> >> SANE_FALSE, /* Dynamic allocation flag */ >> >> &mustek_gt6816_command_set,/* Command set used by this scanner */ >> >> 1200, /* maximum optical sensor resolution */ >> >> 2400, /* maximum motor resolution */ >> >> 1200, /* base x-res used to calculate geometry */ >> >> 1200, /* base y-res used to calculate geometry */ >> >> 1200, /* if ydpi is equal or higher, disable backtracking */ >> >> SANE_FALSE, /* Use base_ydpi for all resolutions */ >> >> {1200, 600, 300, 150, 100, 50, 0},/* possible x-resolutions */ >> >> {1200, 600, 300, 150, 100, 50, 0},/* possible y-resolutions */ >> >> {12, 8, 0}, /* possible depths in gray mode */ >> >> {12, 8, 0}, /* possible depths in color mode */ >> >> SANE_FIX (12.7), /* Start of scan area in mm (x) */ >> >> SANE_FIX (12.7), /* Start of scan area in mm (y) */ >> >> SANE_FIX (216.0), /* Size of scan area in mm (x) */ >> >> SANE_FIX (297.0), /* Size of scan area in mm (y) */ >> >> SANE_FIX (0.0), /* Start of white strip in mm (y) */ >> >> SANE_FIX (0.0), /* Start of black mark in mm (x) */ >> >> SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ >> >> SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ >> >> SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ >> >> SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ >> >> SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ >> >> 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ >> >> 0, /* CCD distcance for CCD with 6 lines) */ >> >> COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ >> >> {0x15, 0x09, 0x18, 0x11, 0x16, 0x0c},/* Default offset/gain */ >> >> {0x300, 0x300, 0x300},/* Default exposure parameters */ >> >> SANE_FIX (1.5), /* Default gamma value */ >> >> SANE_TRUE, /* Is this a CIS scanner? */ >> >> 0 >> >> /* By Michal Waligora <[email protected]>. */ >> >> }; >> >> I also updated the gt68xx device list at the bottom of the file. >> >> static GT68xx_USB_Device_Entry gt68xx_usb_device_list[] = { >> >> {0x10000, 0x10000, &unknown_model},/* used for yet unknown scanners */ >> >> {0x055f, 0x0218, &mustek_2400ta_model}, >> >> {0x055f, 0x0219, &mustek_2400taplus_model}, >> >> {0x055f, 0x021c, &mustek_1200cuplus_model}, >> >> {0x055f, 0x021b, &mustek_1200cuplus2_model}, >> >> {0x055f, 0x021d, &mustek_2400cuplus_model}, >> >> {0x055f, 0x021e, &mustek_1200ta_model}, >> >> {0x055f, 0x021f, &mustek_scanexpress1248ub_model}, >> >> {0x05d8, 0x4002, &mustek_1200cu_model}, >> >> {0x05d8, 0x4002, &mustek_scanexpress1200ubplus_model},/* manual override */ >> >> {0x05d8, 0x4002, &artec_ultima2000_model},/* manual override */ >> >> {0x05d8, 0x4002, &mustek_2400cu_model},/* manual override */ >> >> {0x05d8, 0x4002, &mustek_scanexpress2400usb_model},/* manual override */ >> >> {0x055f, 0x0210, &mustek_a3usb_model}, >> >> {0x055f, 0x021a, &mustek_2448taplus_model}, >> >> {0x043d, 0x002d, &lexmark_x73_model}, >> >> {0x07b3, 0x0400, &plustek_op1248u_model}, >> >> {0x07b3, 0x0401, &plustek_op1248u_model},/* Same scanner, different id? */ >> >> {0x07b3, 0x0402, &plustek_u16b_model}, >> >> {0x07b3, 0x0403, &plustek_u16b_model},/* two ids? 403 seems to be more >> common */ >> >> {0x07b3, 0x040b, &plustek_ops12_model}, >> >> {0x07b3, 0x040e, &plustek_ops24_model}, >> >> {0x07b3, 0x0412, &plustek_opticslim_m12_model}, >> >> {0x07b3, 0x046e, &plustek_opticslim500plus_model}, >> >> {0x07b3, 0x0413, &plustek_opticslim1200_model}, >> >> {0x07b3, 0x0422, &plustek_opticslim2400_model}, >> >> {0x07b3, 0x0467, &plustek_opticslim2600_model}, >> >> {0x07b3, 0x045f, &iriscan_express_2_model}, >> >> {0x0458, 0x2011, &genius_vivid3x_model}, >> >> {0x0458, 0x2014, &genius_vivid4_model}, >> >> {0x0458, 0x2017, &genius_vivid3xe_model}, >> >> {0x0458, 0x201a, &genius_vivid4xe_model}, >> >> {0x0458, 0x201b, &genius_vivid4x_model}, >> >> {0x0458, 0x201d, &genius_vivid1200x_model}, >> >> {0x0458, 0x201f, &genius_vivid1200xe_model}, >> >> {0x0458, 0x2021, &genius_sf600_model}, >> >> {0x04a7, 0x0444, &visioneer_onetouch_7300_model}, >> >> {0x0458, 0x201E, &genius_colorpageslim_1200_model}, >> >> {0, 0, NULL} >> >> }; >> >> I of course commented-out the override after changing the source files. I >> tried my best to fill out the struct data as accurately as possible, but I >> only have so much data about the scanner and only know so much about what >> they mean. >> >> Image Sensor: CIS >> >> Optical Resolution: 1200 dpi >> >> Hardware Resolution: 1200 x 1200 dpi >> >> Scan Modes >> >> Color: 48-bit input, 24-bit output >> >> Grayscale: 16-bit input, 8-bit output >> >> B/W: 1-bit >> >> Scanning Speed: 20.1 sec (Grayscale mode, 300 dpi) >> >> Scanning Area (W x L) >> >> Max : 216 x 297 mm (8.5" x 11.69", A4/ Letter Size) >> >> Min : 12.7 mm x 12.7 mm ( 0.5" x 0.5") >> >> Action Button: Copy, OCR, E-Mail, Custom, PDF >> >> Interface: USB 1.1 >> >> Net Weight: 1.4 Kgs (3.1 Lbs) >> >> Dimensions (W x D x H): 378 x 257 x 33 mm (14.88” x 10.12” x 1.30”) >> >> Protocol: TWAIN Compliant >> >> This information is taken from a 2013 Manualslib manual I found online. The >> scanner is now detected as the correct model (Plustek OpticSlim 2600), >> albeit only as root, but that’s a problem on my side. I tried scanning with >> both xsane and simple-scan, but they both only output a black page. They >> also both print these warnings/errors: >> >> [17:36:42.957798] [gt68xx] gt68xx_afe_cis_auto: setting AFE reached limit >> >> [17:36:55.379455] [gt68xx] gt68xx_afe_cis_auto: setting exposure reached >> limit >> >> I don’t know what these mean and can’t find much online. I don’t know if >> these are related to the output being pure black, while the scanned page had >> other contents (white page with stuff). >> >> I would really appreciate your expertise to help me get this scanner working >> on Linux. >> >> Thank you very much, >> >> Michael
