[sane-devel] Support Request for Ambir ImageScan Pro 820i
Ralph Little
skelband at gmail.com
Tue Oct 7 15:32:51 BST 2025
Hi,
On Sat, Oct 4, 2025 at 4:56 PM Jaden Young <mraweshumsauce at gmail.com> wrote:
> I just picked this thing up and I was able to get it to work fairly well
> outside of having to go back and forth between my computer anytime there
> was a feed error (user error) but I tried to get this work over on Debian
> with no luck so far.
>
> I think I've included all the best info
>
> OS: Debian 12
> ScanImage Version: 1.1.1-debian; backend version 1.1.1
> libusb: 2:1.0.26-1
>
> Model: Ambir ImageScan Pro 820i
> Vendor: 0x20ec
> Product: 0x0820
>
> 'sane-find-scanner' output: found possible USB scanner (vendor=0x20ec
> [Ambir INC], product=0x0820 [ImageScan Pro 820i], chip=GL843) at
> libusb:001:016
>
Although not necessarily conclusive, it probably is a genesys device.
>
> I also included a debug log which I made after I put 'usb 0x20ec 0x0820'
> inside of /etc/sane.d/genesys.conf
>
> ~# SANE_DEBUG_GENESYS=255 scanimage -L
>
> [18:06:12.153363] [sanei_debug] Setting debug level of genesys to 255.
> [18:06:12.153420] [genesys] void genesys::sane_init_impl(SANE_Int*,
> SANE_Auth_Callback): start
> [18:06:12.153430] [genesys] void genesys::sane_init_impl(SANE_Int*,
> SANE_Auth_Callback): [18:06:12.153438] [genesys] authorize !=
> null[18:06:12.153444] [genesys]
> [18:06:12.153450] [genesys] SANE Genesys backend from sane-backends
> 1.1.1-debian
> [18:06:12.153462] [genesys] SANE Genesys backend built with libusb-1.0
> [18:06:12.154190] [genesys] sane_init_impl: little endian machine
> [18:06:12.154202] [genesys] void genesys::probe_genesys_devices(): start
> [18:06:12.154236] [genesys] SANE_Status
> genesys::attach_one_device(SANE_String_Const): start
> [18:06:12.154246] [genesys] genesys::Genesys_Device*
> genesys::attach_device_by_name(SANE_String_Const, bool): start
> [18:06:12.154253] [genesys] genesys::Genesys_Device*
> genesys::attach_device_by_name(SANE_String_Const, bool): [18:06:12.154259]
> [genesys] devname: libusb:001:013, may_wait = 0[18:06:12.154265] [genesys]
> [18:06:12.154272] [genesys] attach_device_by_name: trying to open device
> `libusb:001:013'
> [18:06:12.154279] [genesys] virtual void genesys::UsbDevice::open(const
> char*): start
> [18:06:12.154331] [genesys] virtual void genesys::UsbDevice::open(const
> char*): completed
> [18:06:12.154340] [genesys] attach_device_by_name: device `libusb:001:013'
> successfully opened
> [18:06:12.154348] [genesys] virtual uint16_t
> genesys::UsbDevice::get_vendor_id(): start
> [18:06:12.154354] [genesys] virtual uint16_t
> genesys::UsbDevice::get_vendor_id(): completed
> [18:06:12.154362] [genesys] virtual uint16_t
> genesys::UsbDevice::get_product_id(): start
> [18:06:12.154368] [genesys] virtual uint16_t
> genesys::UsbDevice::get_product_id(): completed
> [18:06:12.154375] [genesys] virtual void genesys::UsbDevice::close(): start
> [18:06:12.154397] [genesys] virtual void genesys::UsbDevice::close():
> completed
> [18:06:12.154466] [genesys] genesys::Genesys_Device*
> genesys::attach_device_by_name(SANE_String_Const, bool): failed
> [18:06:12.154479] [genesys] attach_one_device: got error: vendor 0x20ec
> product 0x820 (bcdDevice 0xffff) is not supported by this backend : Invalid
> argument
> [18:06:12.154489] [genesys] SANE_Status
> genesys::attach_one_device(SANE_String_Const): completed
> [18:06:12.154506] [genesys] probe_genesys_devices: 0 devices currently
> attached
> [18:06:12.154514] [genesys] void genesys::probe_genesys_devices():
> completed
> [18:06:12.154521] [genesys] void genesys::sane_init_impl(SANE_Int*,
> SANE_Auth_Callback): completed
> [18:06:12.154528] [genesys] void genesys::sane_get_devices_impl(const
> SANE_Device***, SANE_Bool): start
> [18:06:12.154537] [genesys] void genesys::sane_get_devices_impl(const
> SANE_Device***, SANE_Bool): [18:06:12.154543] [genesys] local_only =
> false[18:06:12.154553] [genesys]
> [18:06:12.154749] [genesys] void genesys::probe_genesys_devices(): start
> [18:06:12.154781] [genesys] SANE_Status
> genesys::attach_one_device(SANE_String_Const): start
> [18:06:12.154789] [genesys] genesys::Genesys_Device*
> genesys::attach_device_by_name(SANE_String_Const, bool): start
> [18:06:12.154796] [genesys] genesys::Genesys_Device*
> genesys::attach_device_by_name(SANE_String_Const, bool): [18:06:12.154802]
> [genesys] devname: libusb:001:013, may_wait = 0[18:06:12.154808] [genesys]
> [18:06:12.154814] [genesys] attach_device_by_name: trying to open device
> `libusb:001:013'
> [18:06:12.154820] [genesys] virtual void genesys::UsbDevice::open(const
> char*): start
> [18:06:12.154851] [genesys] virtual void genesys::UsbDevice::open(const
> char*): completed
> [18:06:12.154859] [genesys] attach_device_by_name: device `libusb:001:013'
> successfully opened
> [18:06:12.154868] [genesys] virtual uint16_t
> genesys::UsbDevice::get_vendor_id(): start
> [18:06:12.154874] [genesys] virtual uint16_t
> genesys::UsbDevice::get_vendor_id(): completed
> [18:06:12.154881] [genesys] virtual uint16_t
> genesys::UsbDevice::get_product_id(): start
> [18:06:12.154888] [genesys] virtual uint16_t
> genesys::UsbDevice::get_product_id(): completed
> [18:06:12.154894] [genesys] virtual uint16_t
> genesys::UsbDevice::get_bcd_device(): start
> [18:06:12.154900] [genesys] virtual uint16_t
> genesys::UsbDevice::get_bcd_device(): completed
> [18:06:12.154907] [genesys] virtual void genesys::UsbDevice::close(): start
> [18:06:12.154921] [genesys] virtual void genesys::UsbDevice::close():
> completed
> [18:06:12.154936] [genesys] genesys::Genesys_Device*
> genesys::attach_device_by_name(SANE_String_Const, bool): failed
> [18:06:12.154945] [genesys] attach_one_device: got error: vendor 0x20ec
> product 0x820 (bcdDevice 0x500) is not supported by this backend : Invalid
> argument
> [18:06:12.154954] [genesys] SANE_Status
> genesys::attach_one_device(SANE_String_Const): completed
> [18:06:12.154972] [genesys] probe_genesys_devices: 0 devices currently
> attached
> [18:06:12.154979] [genesys] void genesys::probe_genesys_devices():
> completed
> [18:06:12.154987] [genesys] void genesys::sane_get_devices_impl(const
> SANE_Device***, SANE_Bool): completed
>
> No scanners were identified. If you were expecting something different,
> check that the scanner is plugged in, turned on and detected by the
> sane-find-scanner tool (if appropriate). Please read the documentation
> which came with this software (README, FAQ, manpages).
> [18:06:18.802237] [genesys] void genesys::sane_exit_impl(): start
> [18:06:18.802393] [genesys] void genesys::sane_exit_impl(): completed
>
OK, so the genesys backend needs specific coding for each device. This is
because although we may know the genesys scanner-on-a-chip model, the
backend also needs information about the other hardware involved (motor,
imager, memory organisation, etc) in order for the chip to be properly
programmed to interact with it. The genesys chips are quite sophisticated
and setting one up properly in a particular environment can be quite
involved. Much of it can be inferred by looking at USB captures and that is
how most devices' support is added and it is not straightforward. There is
also a programming datasheet available for this chip.
Although we do have a genesys maintainer, he has not been active for
sometime for the likelihood of getting this device added currently is low
unfortunately. Often support is added by a keen developer who perhaps had
one of these devices and the will to get it added.
Cheers,
Ralph
Cheers,
Ralph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/sane-devel/attachments/20251007/a42e48be/attachment-0001.htm>
More information about the sane-devel
mailing list