[sane-devel] Canon PIXMA MX870

Nicolas Martin nicolas0martin at gmail.com
Sat Jul 17 19:17:44 UTC 2010


Le samedi 17 juillet 2010 à 17:36 +0200, Matthias Pannek a écrit :
> On Sat, 17 Jul 2010 14:44:00 +0200
> Nicolas Martin <nicolas0martin at gmail.com> wrote:
> 
> > Matthias, before I commit the changes and update the docs, did you try
> > the ADF and ADF duplex features, and do they work fine ? (remember to
> > set 2 pages to scan per sheet of paper in ADF when in duplex mode)
> 
> First test was "ADF Duplex" but I forgot to set the page-count to 2,
> then the printer stopped after 1 page but the paper was still in the
> feeder. (waiting for the "reverse feeder")
> 
> After that the scanner/printer worked fine via the Display, but I
> couldn't connect to the scanner.
> 
> ERROR:
> [pixma] pixma_collect_devices() found Canon PIXMA MX870 at
> bjnp://canon.saberhagen:8612 [pixma] pixma_open(): Canon PIXMA MX870
> [pixma] sanei_bjnp_open(bjnp://canon.saberhagen:8612, 16843009):
> [pixma] bjnp_allocate_device(bjnp://canon.saberhagen:8612)[pixma]
> udp_command: Sending UDP command to 10.0.0.101:8612 [pixma]
> bjnp_open_tcp: Can not connect to scanner: Connection refused [pixma]
> pixma_connect() failed EINVAL [pixma] pixma_open() failed EINVAL
> [pixma] pixma_close(): Canon PIXMA MX870
> scanimage: open of device pixma:MX870_canon.saberhage failed: Invalid
> argument
> 
> Scanimage logfiles:
> http://files.pannek.de/sane/scanimage2.zip
> 
> Nmap scan report for canon.saberhagen (10.0.0.101)
> Host is up (0.0051s latency).
> Not shown: 9992 closed ports
> PORT     STATE         SERVICE
> 137/udp  open          netbios-ns
> 138/udp  open|filtered netbios-dgm
> 500/udp  open|filtered isakmp
> 3702/udp open|filtered unknown
> 5353/udp open          zeroconf
> 8611/udp open          unknown
> 8612/udp open          unknown
> 8613/udp open          unknown
> MAC Address: 00:1E:8F:99:BD:B7 (Canon)
> 
> I turned the power off and on....same problem. Then i unplugged the
> scanner for ~10 seconds and it worked again.
> 
Actually, this looks logical the way duplex adf scanning is implemented
in Sane, as the scanner seems to be locked until it receives its start
sequence, then two scan sequences for recto and verso, and then an end
of scan sequence to finish. Here, it received a start, and only a single
scan sequence. And no end of scan sequence.
>From there, the scanner seems to refuse any new network connection, as
it did not finish completely the current one. So any attempts afterwards
to detect and reconnect to the scanner seem to fail.

Problem is, I don't see yet a solution to exit from this pitfall, need
to think it over. 

> Now for the test (xsane):
> Flatbed: working fine (preview/scan/cancel/....) up to 2400 DPI.
> 
Ok.

> ADF: Working until 600 DPI, i tried it with 1200 DPI and i just got a
> "Error during read: Error during device I/O". Error and the scanner
> stuck with a "Processing..." message until Power off/on.
> (I know, max ADF resolution is 600 DPI)

Could you take a log of this 1200 dpi sequence, normally, even if an
error arises, the scan sequence should be fulfilled until the end, so
maybe there's something else wrong here.

In the meantime, I can add a simple a test for this model, to limit ADF
scan to 600 dpi.

> 
> ADF without a paper in the feeder: Error message "Error during read:
> Document feeder out of documents". But the scanner itself is stuck with
> the "Processing..." screen. After 5 minutes still at processing, seems
> there is no timeout for this. The abort key don't work, so only Power
> off/on helps again.

I think this is because when there's no paper in ADF, the end of scan
sequence (especially for generation 4 which uses an XML encapsulation)
is not executed. I will propose a fix for that to be tested.
Point is, I did not have yet any windows usb snoops for those particular
cases, to confirm how the Canon driver behaves in those error
situations. 

> 
> ADF Duplex 600 DPI (page count 2):  working fine without a problem.
> 
Ok, nominal cases work, but some tweaks are apparently needed when error
conditions are met. So let's see how we can improve that.

Nicolas




More information about the sane-devel mailing list