unable to scan from ADF on HP Laserjet MFP M234sdw
I am not able to scan from the ADF with either hp-scan or simplescan. It errors out communication errors. I have attached the logs
python3.10-HP-LaserJet-MFP.log python3.10-HP-LaserJet-MFP-M234sdw.log simple-scan-HP-LaserJet-MFP-M234sdw.log
Any help is appreciated.
I am able to scan using the flatbed okay. Scanning works on both flatbed and ADF for Mac. I have tried both xsane as well simplescan.
OK, will look to it.
I guess from your profile, you are able to build sane-airscan from source, correct?
Yes I can build it if needed, at the moment I am using the Ubuntu package.
Just another data point, this printer was in a different VLAN, and eSCL provided that error-ed out. When I moved the printer into the same VLAN as the guest network the WSD protocol showed up. I was able to scan using the ADF with this protocol. I would like keep the VLAN separation but I have a work around for now.
I use avahi on the router to reflect mDNS packets arcoss VLANs and have the firewall rules to communicate between VLANs to printer host.
We can try debug this issue.
After eSCL backend sends a scan request, printer returns image URL. When sane-airscan attempts to download the image, printer returns 503 error. This is normal for some printers, and sane-airscan performs a series of retries with some reasonable delay between them. Roughly:
for (i = 0; i < 1000; i ++) {
err = download_image();
if (err == OK || err_is_fatal (err)) {
return err;
}
err = query_status();
if (err_is_fatal(err)) {
return err;
}
sleep(1);
// And then retry
}
With flatbad it works perfectly well, and driver succeeds after few retries, but with ADF it timeouts in the attempt to query_status(). Currently there is a 5-second timeout, and previously it was quite enough for all devices; query_status() is the fast operation.
I would ask you to play a little bit with the query_status() timeout. The timeout is defined in the beginning of the airscan-device.c file, this is the DEVICE_HTTP_TIMEOUT_CHECK constant. Currently it is 5 seconds, try to extend it up to 10-15 seconds.
Onde you've built sane-airscan, you actually don't need to make install it. Instead, you can replace libsane-airscan.so.1 file from your installed package with the symbolic link to the libsane-airscan.so.1 file in the build directory.
And you can temporary connect some computer to the network segment where the printer connected to, use airscan-discover utility to obtain WSD URL, and with this URL you will probably be able to use WSD across your router.
Looks like issue is not relevant anymore...