HP6250C observations

Tom Martone (tommartone@erols.com)
Fri, 02 Oct 1998 02:30:17 -0400

This is a multi-part message in MIME format.
--------------29C6BBB1C91CA27F62430BD0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Greetings,

I've been testing the hp backend with a relatively new HP ScanJet model
from the 6200 series. In short, scanimage seems to work fine as long
as the ADF is not used. I've only worked with Lineart and Grayscale
to this point and have not tested with xscanimage yet.

It seems that the 'y' values reported by the scanner are incorrect
when the ADF is enabled. I'm not sure if the back-end supports the
ADF, but scanimage pulls a sheet through the feeder but unfortunately
creates and image that is 1 pixel in height.

Here's the output from find-scanner
find-scanner: found processor "HP C6270A 3828" at device /dev/scanner
find-scanner: found processor "HP C6270A 3828" at device /dev/sga

Here's the output from cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: HP Model: C6270A Rev: 3828
Type: Processor ANSI SCSI revision: 02

The HP6250C differs from the HP6200C in that the former includes the
ADF. It is also possible to purchase the ADF as an add-on to the HP6200C.

The ADF has a lever that is labelled with a "1" for the rearward position
and a "3" in the forward position. The paper tray is labelled "2" with
a picture of a document indicating that documents should be fed right-side
up. The idea is that you put the lever in position "1", then place the
documents in the tray "2", and then put the lever in position "3".

When I refer to the ADF being enabled, I mean that I have followed the
loading process above; there is paper in the tray and it has been locked
in by putting the lever in position "2".

When I refer to the ADF as disabled, there is no paper in the ADF and/or
the level is in position "1". When the scanner is in this state, it
seems to operate as a normal flatbed scanner without an ADF.

I've attached debugging output that shows the different behavior when
the ADF is enabled. I hope this information is useful; I'm willing to
conduct further testing with this scanner, but I'm not sure how best to
proceed.

Thanks,
Tom Martone
--------------29C6BBB1C91CA27F62430BD0
Content-Type: text/plain; charset=us-ascii; name="HP6250C.log"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="HP6250C.log"

Here's the scsi related stuff from dmesg

scsi : 0 hosts.
scsi : detected total.

aic7xxx: BurstLen = 8 DWDs, Latency Timer = 64 PCLKS
aic7xxx: devconfig = 0x580.
aic7xxx: Reading SEEPROM...done.
aic7xxx: Extended translation disabled.
aic7xxx: Memory check yields 16 SCBs, paging not enabled.
AHA-2940 (PCI-bus), I/O 0xfc00, Mem 0xffbef000:
irq 10
bus release time 40 bclks
data fifo threshold 100%
SCSI CHANNEL A:
scsi id 7
scsi selection timeout 256 ms
scsi bus reset at power-on enabled
scsi bus parity enabled
aic7xxx: Downloading sequencer code...done.
aic7xxx: Resetting the SCSI bus...done.
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 4.0/3.2/4.0
scsi : 1 host.
scsi0: Scanning channel A for devices.
scsi0: Target 2, channel A, refusing synchronous negotiation; using asynchronous transfers.
Vendor: HP Model: C6270A Rev: 3828
Type: Processor ANSI SCSI revision: 02

Here's the output from cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: HP Model: C6270A Rev: 3828
Type: Processor ANSI SCSI revision: 02

Here's the output from cat /proc/scsi/aic7xxx/0
Adaptec AIC7xxx driver version: 4.0/3.2/4.0

Compile Options:
AIC7XXX_RESET_DELAY : 15
AIC7XXX_TWIN_SUPPORT : Enabled
AIC7XXX_TAGGED_QUEUEING: Disabled
AIC7XXX_PAGE_ENABLE : Disabled
AIC7XXX_PROC_STATS : Disabled

Adapter Configuration:
SCSI Adapter: AHA-2940
(AIC-787x chipset)
Host Bus: Single
Base IO: 0xfc00
IRQ: 10
SCBs: Used 1, HW 16, Page 16
Interrupts: 5392
Serial EEPROM: True
Extended Translation: Disabled
SCSI Bus Reset: Enabled
Ultra SCSI: Disabled
Target Disconnect: Enabled

Here's the output from find-scanner
find-scanner: found processor "HP C6270A 3828" at device /dev/scanner
find-scanner: found processor "HP C6270A 3828" at device /dev/sga

The HP6250C differs from the HP6200C in that the former includes the
ADF. It is also possible to purchase the ADF as an add-on to the HP6200C.

The ADF has a lever that is labelled with a "1" for the rearward position
and a "3" in the forward position. The paper tray is labelled "2" with
a picture of a document indicating that documents should be fed right-side
up. The idea is that you put the lever in position "1", then place the
documents in the tray "2", and then put the lever in position "3".

When I refer to the ADF being enabled, I mean that I have followed the
loading process above; there is paper in the tray and it has been locked
in by putting the lever in position "2".

When I refer to the ADF as disabled, there is no paper in the ADF and/or
the level is in position "1". When the scanner is in this state, it
seems to operate as a normal flatbed scanner without an ADF.

For the following, SANE_DEBUG_HP and SANE_DEBUG_SANEI_SCSI are set to 128

Here's the output from scanimage -d hp:/dev/scanner -L
(when the ADF is disabled.)

[sanei_init_debug]: Setting debug level of dll to 0.
[sanei_init_debug]: Setting debug level of hp to 128.
[sanei_init_debug]: Setting debug level of sanei_scsi to 128.
[sanei_scsi] searched device is /dev/sga
[hp] attach: opening /dev/sga
[sanei_init_debug]: Setting debug level of sanei_scsi to 128.
[hp] attach: sending INQUIRY
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 291 bytes
[hp] attach: sending TEST_UNIT_READY
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[hp] attach: found HP ScanJet model C6270A, x=0-215.815mm, y=0-296.926mm, resolution=12-1600dpi
[hp] attach: opening /dev/scanner
[sanei_init_debug]: Setting debug level of sanei_scsi to 128.
[hp] attach: sending INQUIRY
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 291 bytes
[hp] attach: sending TEST_UNIT_READY
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] scsi_req_enter: entered 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x804ce08
[sanei_scsi] sanei_scsi.issue: 0x804ce08
[sanei_scsi] sanei_scsi_req_wait: read 164 bytes
[hp] attach: found HP ScanJet model C6270A, x=0-215.815mm, y=0-296.926mm, resolution=12-1600dpi
device `pnm:0' is a Noname PNM file reader virtual device
device `pnm:1' is a Noname PNM file reader virtual device
device `hp:/dev/scanner' is a HP C6270A flatbed scanner
device `hp:/dev/sga' is a HP C6270A flatbed scanner

And rather than repeating 99% of the above here's the diff output
between the above and the output when the ADF is enabled. You'll notice
that the values reported for 'y' are the sole difference.

97c97
< [hp] attach: found HP ScanJet model C6270A, x=0-215.815mm, y=0-296.926mm, resolution=12-1600dpi

---
> [hp] attach: found HP ScanJet model C6270A, x=0-215.815mm, y=-0.0846558-0mm, resolution=12-1600dpi
190c190
< [hp] attach: found HP ScanJet model C6270A, x=0-215.815mm, y=0-296.926mm, resolution=12-1600dpi
---
> [hp] attach: found HP ScanJet model C6270A, x=0-215.815mm, y=-0.0846558-0mm, resolution=12-1600dpi

Here's a portion the output from scanimage -d hp:/dev/scanner --help (when the ADF is disabled.)

Options specific to device `hp:/dev/scanner': Scan Mode: --mode Lineart|Halftone|Gray|Color [Gray] Selects the scan mode (e.g., lineart,monochrome, or color). --resolution 12..1600dpi (in steps of 1) [18] Sets the resolution of the scanned image. Geometry: -l 0..215.815mm [0] Top-left x position of scan area. -t 0..296.926mm [0] Top-left y position of scan area. -x 0..215.815mm [215.815] Width of scan-area. -y 0..296.926mm [296.926] Height of scan-area. Enhancement: --brightness -127..127 (in steps of 1) [0] Controls the brightness of the acquired image. --contrast -127..127 (in steps of 1) [0] Controls the contrast of the acquired image.

Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

List of available devices: pnm:0 pnm:1 hp:/dev/scanner hp:/dev/sga

And the diff between this and the output when the ADF is enabled. Again the 'Y' values are the sole difference.

26c26 < -t 0..296.926mm [0]

---
>     -t -0.0846558..0mm [0]
30c30
<     -y 0..296.926mm [296.926]
---
>     -y -0.0846558..0mm [0]

Differences in scanning behavior with ADF on or off. The following output shows good normal behavior with the ADF disabled and two cases of faulty behavior with the ADF enabled.

$ scanimage -d hp:/dev/scanner --resolution=200 --mode=Lineart -v > adfoff.pnm scanimage: scanning image of size 1700x2338 pixels at 1 bits/pixel scanimage: acquiring gray frame $ scanimage -d hp:/dev/scanner --resolution=200 --mode=Lineart -v > adfon.pnm scanimage: scanning image of size 1700x1 pixels at 1 bits/pixel scanimage: acquiring gray frame $ ls -l adf* -rw-rw-r-- 1 tom tom 498027 Oct 1 18:25 adfoff.pnm -rw-rw-r-- 1 tom tom 243 Oct 1 18:26 adfon.pnm $ scanimage -d hp:/dev/scanner --resolution=200 --mode=Lineart -y150 -v > adfony.pnm scanimage: setting of option --br-y failed (Invalid argument)

--------------29C6BBB1C91CA27F62430BD0--

--
Source code, list archive, and docs: http://www.mostang.com/sane/
To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com