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

Reply via email to