[sane-devel] GT68XX Plustek OpticSlim 2600 Support

Michal Waligora michalwaligora62 at proton.me
Fri Dec 27 16:36:15 GMT 2024


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 <skelband at gmail.com> 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 <sane-devel at alioth-lists.debian.net> 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 <michalwaligora62 at proton.me>. */
>>
>> };
>>
>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/sane-devel/attachments/20241227/90e28aa4/attachment-0001.htm>


More information about the sane-devel mailing list