[sane-devel] Fujitsu fi-5110C driver state

m. allan noah anoah at pfeiffer.edu
Mon May 1 13:03:14 UTC 2006


simon- you have simply wonderful timing. i have spent all weekend making 
the next version of the updated backend. guess what scanner i used for the 
development- fi-5110C :)

after i have tested with the 4120c and 4120c2 that are here in the office, 
i will post another message to this list. stay tuned.

allan

On Mon, 1 May 2006, Simon Glass wrote:

> Hi,
>
> I've just got one of these scanners. We use a 4340C with great success,
> but this new 5110C is problematic. It basically won't feed.
>
> So I thought I would try the new experimental driver from
>
> /http://www2.pfeiffer.edu/~anoah/fujitsu/ <http://www2.pfeiffer.edu/%7Eanoah/fujitsu/>/
>
>
> I'm using maxview which is a document management program (see
> http://sourceforge.net/projects/maxview/ ). When I first scan I get this
> output:
>
> ...
> [fujitsu] sane_get_parameters: start
> [fujitsu] calculateDerivedValues: start
> [fujitsu]       top_margin: 0
> [fujitsu]       left_margin: 138
> [fujitsu]       scan_width: 9921
> [fujitsu]       scan_height: 14028
> [fujitsu]       scan_width corrected: 9921
> [fujitsu] calculateDerivedValues: finish
> [fujitsu] get_hardware_status: start
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: finish
> [fujitsu] B5 0
> [fujitsu] A4 0
> [fujitsu] B4 0
> [fujitsu] A3 0
> [fujitsu] HE 0
> [fujitsu] OMR 1
> [fujitsu] ADFC 0
> [fujitsu] SLEEP 0
> [fujitsu] MF 0
> [fujitsu] Start 0
> [fujitsu] Ink empty 0
> [fujitsu] DFEED 0
> [fujitsu] SKEW 0
> [fujitsu] get_hardware_status: finish
> [fujitsu]       depth 1
> [fujitsu]       lines 3507
> [fujitsu]       pixels_per_line 2480
> [fujitsu]       bytes_per_line 310
> [fujitsu] sane_get_parameters: finish
> [fujitsu] sane_get_option_descriptor: 'source'
> [fujitsu] sane_control_option: get value 'source'
> [fujitsu]       cap = 5
> depth=1
> ppl=2480
> format=0
> lines=3507
> bpl=310
> bpp=1
> page count 0, chunk count 0
> [fujitsu] sane_start: start
> [fujitsu]       object_count = 0
> [fujitsu]       duplex_mode = DUPLEX_FRONT
> [fujitsu]       use_temp_file = no
> [fujitsu] set_sleep_mode: start
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: finish
> [fujitsu] set_sleep_mode: finish
> [fujitsu] set_mode_params: start
> [fujitsu] set_mode_params: finish
> [fujitsu] send: start
> [fujitsu] send: finish
> [fujitsu] object_position: start
> [fujitsu] object_position: load
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: finish
> [fujitsu] wait_scanner: start
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: finish
> [fujitsu] wait_scanner: finished
> [fujitsu] object_position: finish
> [fujitsu] wait_scanner: start
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: finish
> [fujitsu] wait_scanner: finished
> [fujitsu] set_window
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: start
> [fujitsu] do_usb_cmd: finish
> [fujitsu] sense_handler: start
> [fujitsu] Sense=5, ASC=38, ASCQ=0
> [fujitsu] Illegal request: invalid field in parm list
> [fujitsu] Offending byte is 0x3e. (Byte 0x36 in window descriptor block)
> [fujitsu] do_usb_cmd: finish
> [fujitsu] set_window: finish
> [fujitsu] sane_start: ERROR: failed to set window
> [fujitsu] do_cancel: start
> [fujitsu] do_cancel: close filedescriptor
> [fujitsu] do_cancel: finish
> [fujitsu] sane_cancel: start
> [fujitsu] do_cancel: start
> [fujitsu] do_cancel: finish
> [fujitsu] sane_cancel: finish
>
> I'm not sure what the offending byte is.
>
> With a bit of fiddling I seem to be able to get it to scan once or twice
> (i.e. better than the old driver), but it isn't great.
>
> Any thoughts on how I can debug this?
>
> Also, I should have asked this earlier, but for some time I've used the
> following patch in fujitsu.c (sorry the patch is reversed):
>
> --- ../../../sane-backends-1.0.15/backend/fujitsu.c     Wed May  4
> 21:59:40 2005+++ fujitsu.c   Mon Oct 11 23:34:24 2004
> @@ -2267,17 +2267,7 @@
>   params->bytes_per_line = scanner->bytes_per_scan_line *
>     scanner->scanner_depth / scanner->output_depth;
>
> -  // Simon added this
> -  //s  params->last_frame = 1;
> -  if (SANE_STATUS_GOOD == get_hardware_status (scanner))
> -    {
> -      params->last_frame = !scanner->use_adf || get_HW_adf_empty
> (scanner->buffer);
> -    }
> -  else
> -    {
> -      params->last_frame = 1;
> -    }
> -
> +  params->last_frame = 1;
>   DBG (10, "\tdepth %d\n", params->depth);
>   DBG (10, "\tlines %d\n", params->lines);
>   DBG (10, "\tpixels_per_line %d\n", params->pixels_per_line);
>
>
> Otherwise I can't seem to detect whether there is more paper in the
> feeder or not. Is this the last_frame parameter or do I have this wrong?
>
> Anyway, if there is any way I can help in the development or debugging
> of this driver (and if there is any Fujitsu documentation available),
> please let me know, as I have all the motivation in the world right now :-)
>
> Regards,
> Simon
>
>
>

-- 
"so don't tell us it can't be done, putting down what you don't know.
money isn't our god, integrity will free our souls" - Max Cavalera



More information about the sane-devel mailing list