[sane-devel] Canon MF4140
Bob Dronski
dronski at gmail.com
Mon Sep 1 16:28:49 UTC 2008
Nicolas,
I really don't understand what may be happening. Here are the
appropriate sections in the 2 files with my changes:
---------------------------------------
pixma_imageclass.c:
#define IMAGE_BLOCK_SIZE (0xffff)
#define MAX_CHUNK_SIZE (0x1000)
#define MIN_CHUNK_SIZE (0x0200)
#define CMDBUF_SIZE 512
#define MF4200_PID 0x26b5
/* the following are all untested */
#define MF5630_PID 0x264e
#define MF5650_PID 0x264f
#define MF8100_PID 0x2659
#define MF5730_PID 0x265d
#define MF5750_PID 0x265e
#define MF5770_PID 0x265f
#define MF3110_PID 0x2660
#define MF3200_PID 0x2684
#define MF6500_PID 0x2686
//#define MF4100_PID 0x26a3
#define MF4600_PID 0x26b0
#define MF4010_PID 0x26b4
enum iclass_state_t
AND
const pixma_config_t pixma_iclass_devices[] = {
DEV ("Canon imageCLASS MF4270", MF4200_PID, 600, 640, 877,
PIXMA_CAP_ADF),
/* FIXME: the following capabilities all need updating/verifying */
DEV ("Canon imageCLASS MF5630", MF5630_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon laserBase MF5650", MF5650_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF8170c", MF8100_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF5730", MF5730_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF5750", MF5750_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF5770", MF5770_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF3110", MF3110_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF3240", MF3200_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon MF6500 Series", MF6500_PID, 600, 640, 877,
PIXMA_CAP_ADF),
// DEV ("Canon imageCLASS MF4150", MF4100_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF4690", MF4600_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF4010", MF4010_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEV (NULL, 0, 0, 0, 0, 0)
};
-----------------
pixma_mp730.c:
#define IMAGE_BLOCK_SIZE (0xc000)
#define CMDBUF_SIZE 512
#define MP360_PID 0x263c
#define MP370_PID 0x263d
#define MP390_PID 0x263e
#define MP700_PID 0x2630
#define MP730_PID 0x262f
#define MF4100_PID 0x26a3
enum mp730_state_t
{
AND
const pixma_config_t pixma_mp730_devices[] = {
/* TODO: check area limits */
DEVICE ("Canon SmartBase MP360", MP360_PID, 1200, 636, 868, 0),
DEVICE ("Canon SmartBase MP370", MP370_PID, 1200, 636, 868, 0),
DEVICE ("Canon SmartBase MP390", MP390_PID, 1200, 636, 868, 0),
DEVICE ("Canon MultiPASS MP700", MP700_PID, 1200, 638, 877 /*1035
*/ , 0),
DEVICE ("Canon MultiPASS MP730", MP730_PID, 1200, 637, 868,
PIXMA_CAP_ADF),
DEVICE ("Canon imageCLASS MF4150", MF4100_PID, 600, 640, 877,
PIXMA_CAP_ADF),
DEVICE (NULL, 0, 0, 0, 0, 0)
};
-----------------
When I implement those changes, here are the results:
Monster:sane bob$ scanimage -T -vv
[sanei_debug] Setting debug level of pixma to 20.
[pixma] pixma version 0.14.5
[pixma] pixma_find_scanners() found 0 devices
scanimage: no SANE devices found
Calling sane_exit
scanimage: finished
Monster:sane bob$
Here is the debug output on the unmodified code:
Monster:sane bob$ scanimage -T -vv
[sanei_debug] Setting debug level of pixma to 20.
[pixma] pixma version 0.14.5
[pixma] pixma_collect_devices() found Canon imageCLASS MF4150 at
libusb:003:004-04a9-26a3-00-00
[pixma] pixma_find_scanners() found 1 devices
[pixma] pixma_collect_devices() found Canon imageCLASS MF4150 at
libusb:003:004-04a9-26a3-00-00
[pixma] pixma_open(): Canon imageCLASS MF4150
[pixma] Trying to clear the interrupt buffer...
and it hangs....
Wandering into dangerous territory, since I know nothing about the
code, I commented out the code to clear the buffer:
PDBG (pixma_dbg (3, " Trying to clear the interrupt buffer...\n"));
/* if (handle_interrupt (s, 200) == 0)
{
PDBG (pixma_dbg (3, " no packets in buffer\n"));
}*/
return 0;
}
And got this result:
Monster:sane bob$ scanimage -T -vv
[sanei_debug] Setting debug level of pixma to 20.
[pixma] pixma version 0.14.5
[pixma] pixma_collect_devices() found Canon imageCLASS MF4150 at
libusb:003:004-04a9-26a3-00-00
[pixma] pixma_find_scanners() found 1 devices
[pixma] pixma_collect_devices() found Canon imageCLASS MF4150 at
libusb:003:004-04a9-26a3-00-00
[pixma] pixma_open(): Canon imageCLASS MF4150
[pixma] Trying to clear the interrupt buffer...
[pixma] Reader task started
[pixma]
[pixma] pixma_scan(): start
[pixma] line_size=1920 image_size=1683840 channels=3 depth=8
[pixma] dpi=75x75 offset=(0,0) dimension=640x877
[pixma] gamma_table=0x8125f0 source=0
[pixma] Reader task id=-267907072 (threaded)
scanimage: scanning image of size 640x877 pixels at 24 bits/pixel
scanimage: acquiring RGB frame, 8 bits/sample
scanimage: reading one scanline, 1920 bytes...
before it hangs.
Next step?
Thanks,
bob
On Aug 31, 2008, at 2:12 PM, Nicolas wrote:
> Moving the USB PID to pixma_mp730.c and adding a line declaration at
> the end of this file (in pixma_mp730_devices[]) should be enough to
> have
> the scanner detected by scanimage. Don't forget to remove both from
> pixma_imageclass.c
>
> Bob, if you don't succeed doing this, please activate the trace logs
> to
> see what's going on:
>
> $ export SANE_DEBUG_PIXMA=20
> $ scanimage -T -vv
>
> Nicolas
>
> Le samedi 30 août 2008 à 19:15 -0700, Dennis Lou a écrit :
>> Nicolas,
>>
>> I told Bob to move the USB PID macro and device entry from
>> pixma_imageclass.c to pixma_mp730.c and see if that works.
>> He did that but then he wasn't able to see the scanner any more. Any
>> ideas?
>>
>> -Dennis
>>
>>
>> ----- Original Message ----
>> From: Bob Dronski <dronski at gmail.com>
>> To: Dennis Lou <dlou99 at yahoo.com>
>> Cc: sane-devel at lists.alioth.debian.org
>> Sent: Saturday, August 30, 2008 8:49:24 AM
>> Subject: Re: [sane-devel] Canon MF4140
>>
>> So much for the lark....
>>
>>
>> scanimage -L no longer finds the scanner after the patch. Now I am
>> working off of a newer build than you are (7-20-CVS), but I only
>> changed the 2 files by hand, and when changing back, it was once
>> again
>> able to find the device.
>>
>>
>> bob
>>
>> On Aug 25, 2008, at 12:18 AM, Dennis Lou wrote:
>>
>>> Just on a lark, can you try commenting out the MF4100 PID and device
>>> entry from pixma_imageclass.c and add it to pixma_mp730.c? Here's
>>> the patch:
>>>
>>> Index: pixma_imageclass.c
>>> ===================================================================
>>> RCS file: /cvsroot/sane/sane-backends/backend/pixma_imageclass.c,v
>>> retrieving revision 1.4
>>> diff -u -r1.4 pixma_imageclass.c
>>> --- pixma_imageclass.c 25 Jun 2008 20:54:16 -0000 1.4
>>> +++ pixma_imageclass.c 25 Aug 2008 05:17:37 -0000
>>> @@ -78,7 +78,7 @@
>>> #define MF3110_PID 0x2660
>>> #define MF3200_PID 0x2684
>>> #define MF6500_PID 0x2686
>>> -#define MF4100_PID 0x26a3
>>> +//#define MF4100_PID 0x26a3
>>> #define MF4600_PID 0x26b0
>>> #define MF4010_PID 0x26b4
>>>
>>> @@ -612,7 +612,7 @@
>>> DEV ("Canon imageCLASS MF3110", MF3110_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> DEV ("Canon imageCLASS MF3240", MF3200_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> DEV ("Canon MF6500 Series", MF6500_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> - DEV ("Canon imageCLASS MF4150", MF4100_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> +// DEV ("Canon imageCLASS MF4150", MF4100_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> DEV ("Canon imageCLASS MF4690", MF4600_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> DEV ("Canon imageCLASS MF4010", MF4010_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> DEV (NULL, 0, 0, 0, 0, 0)
>>> Index: pixma_mp730.c
>>> ===================================================================
>>> RCS file: /cvsroot/sane/sane-backends/backend/pixma_mp730.c,v
>>> retrieving revision 1.7
>>> diff -u -r1.7 pixma_mp730.c
>>> --- pixma_mp730.c 22 Feb 2008 21:40:32 -0000 1.7
>>> +++ pixma_mp730.c 25 Aug 2008 05:17:37 -0000
>>> @@ -69,6 +69,7 @@
>>> #define MP740_PID 0x264c /* Untested */
>>> #define MP710_PID 0x264d
>>> #define MP730_PID 0x262f
>>> +#define MF4100_PID 0x26a3
>>>
>>> enum mp730_state_t
>>> {
>>> @@ -638,5 +639,6 @@
>>> DEVICE ("Canon MultiPASS MP710", MP710_PID, 1200, 637, 868, 0),
>>> DEVICE ("Canon MultiPASS MP730", MP730_PID, 1200, 637, 868,
>>> PIXMA_CAP_ADF),
>>> DEVICE ("Canon MultiPASS MP740", MP740_PID, 1200, 637, 868,
>>> PIXMA_CAP_ADF),
>>> + DEVICE ("Bob's MF4150", MF4100_PID, 600, 640, 877,
>>> PIXMA_CAP_ADF),
>>> DEVICE (NULL, 0, 0, 0, 0, 0)
>>> };
>>>
>>>
>>>
>>> ----- Original Message ----
>>> From: Bob Dronski <dronski at gmail.com>
>>> To: Dennis Lou <dlou99 at yahoo.com>
>>> Sent: Saturday, August 23, 2008 1:20:22 PM
>>> Subject: Re: [sane-devel] Canon MF4140
>>>
>>> Got a couple more. 150dpi color from the bottom of the scan and 300
>>> dpi b/w along the left edge.
>>>
>>>
>>> This enough to get you started?
>>> bob
>>>
>>> On Sat, Aug 23, 2008 at 3:07 PM, Bob
>>> Dronski <dronski at gmail.com> wrote:
>>> Dennis,
>>>
>>>
>>> Parallels, the scanner, and USB sniffer are a
>>> bit temperamental together. I've been playing, and I have
>>> one greyscale log so far. If the log got too big, I
>>> apologize. LIke I said, it was really tricky. I'll
>>> continue to play to get some more stuff out for you
>>>
>>>
>>> bob
>>>
>>>
>>>
>>> On Sat, Aug 23, 2008 at 2:34 PM, Dennis
>>> Lou <dlou99 at yahoo.com> wrote:
>>> For the first one, empty is fine. Later, might want
>>> to try different colors of paper. But I'm guessing
>>> that the protocol will be similar enough to another
>>> existing supported scanner that it probably might
>>> not be necessary.
>>>
>>> -Dennis
>>>
>>>
>>> ----- Original Message ----
>>> From: Bob Dronski <dronski at gmail.com>
>>> To: Dennis Lou <dlou99 at yahoo.com>
>>>
>>>
>>> Sent: Saturday, August 23, 2008 7:09:55 AM
>>> Subject: Re: [sane-devel] Canon MF4140
>>>
>>> dumb quick question--I'll try to look it up, but I
>>> figured I'd check with you as well. Is it better to
>>> scan an empty flatbed or put a doc on it? I don't
>>> know what data would be easier to work with (or if
>>> it makes a difference)
>>>
>>>
>>> Otherwise, I'm hooked up to parallels and am
>>> functioning. I'll start w/ an empty bed and go from
>>> there.
>>>
>>>
>>> bob
>>>
>>>
>>> On Fri, Aug 22, 2008 at 1:16 PM, Dennis
>>> Lou <dlou99 at yahoo.com> wrote:
>>> Well, I'm very confident somebody can do
>>> something with the logs and get it working.
>>> Whether that person is me depends (that was
>>> my first time doing a scanner). But even if
>>> that person is not me, the SANE guys are
>>> pretty smart from what I've seen and
>>> consumer-grade scanners seem pretty well
>>> understood at this point.
>>>
>>> Especially if the protocol isn't much more
>>> complicated than the MF4270, then I'm pretty
>>> sure I can get something going.
>>>
>>> BTW, where are you located? I'm in the
>>> Silicon Valley.
>>>
>>> -Dennis
>>>
>>>
>>> ----- Original Message ----
>>> From: Bob Dronski <dronski at gmail.com>
>>> To: Dennis Lou <dlou99 at yahoo.com>
>>> Sent: Friday, August 22, 2008 10:40:15 AM
>>> Subject: Re: [sane-devel] Canon MF4140
>>>
>>> Dennis,
>>>
>>>
>>> I've got a crazy day or two ahead of me.
>>> I'm going to really try to get you
>>> something tonight or tomorrow.
>>>
>>>
>>> Do you think the odds will be good to get
>>> the driver working if I get you the data
>>> (and I presume a few more dumps)?
>>>
>>>
>>> Just trying to prioritize my time. If
>>> you're not sure, I need to get it to you
>>> ASAP, as I only have through thursday to
>>> return easily. If you're pretty confident,
>>> I'll believe in you and not worry about the
>>> date.
>>>
>>>
>>> take care,
>>> bob
>>>
>>>
>>>
>>> On Aug 22, 2008, at 12:15 AM, Dennis Lou
>>> wrote:
>>>
>>>> Great, thanks!
>>>>
>>>> 1. Unplug the device
>>>> 2. Install the Canon drivers
>>>> 3. Install a USB sniffer. I used
>>>> SniffUSB v1.7 because my VM is Win2k. You
>>>> can certainly do better if you are running
>>>> a more recent version of Windows.
>>>> 4. Plug in the device and direct it to the
>>>> virtual machine (select the device from
>>>> the "Device" menu in VMWare)
>>>> 5. Start the USB sniffer (on mine, there
>>>> are four possible devices/subdevices; I
>>>> select "Canon MF4200 Series" and click the
>>>> "Install" button)
>>>> 6. If you are using XP or Win2k, click
>>>> Start->Programs->Accessories->WindowsImaging then File->Acquire
>>>> 7. Pick 75 DPI, grayscale and select a
>>>> small area to scan, preferably full width
>>>> and minimal height then hit "Scan".
>>>> 8. Save the log file. In SniffUSB 1.7,
>>>> this means clicking the "Uninstall"
>>>> button, copying the log file somewhere
>>>> else, then clicking the "Delete" button.
>>>> 9. Repeat steps 5-8 (possibly step 4 if
>>>> your setup is as finicky as mine) using
>>>> different color and dpi settings and
>>>> different areas.
>>>> 10. Send me and/or the SANE list the log
>>>> file(s).
>>>>
>>>> Thanks again for your help.
>>>>
>>>> -Dennis
>>>>
>>>>
>>>>
>>>> ----- Original Message ----
>>>> From: Bob Dronski <dronski at gmail.com>
>>>> To: Dennis Lou <dlou99 at yahoo.com>
>>>> Sent: Thursday, August 21, 2008 2:47:26 PM
>>>> Subject: Re: [sane-devel] Canon MF4140
>>>>
>>>> Dennis,
>>>>
>>>> May have missed the message. Sorry.
>>>>
>>>> Yes, I have a MacBookPro running parallels
>>>> I can use to sniff for you. As I haven't
>>>> done this before, please tell me what to
>>>> do.
>>>>
>>>> Thanks,
>>>> bob
>>>>
>>>>
>>>> On Thu, Aug 21, 2008 at 4:32 PM, Dennis
>>>> Lou <dlou99 at yahoo.com> wrote:
>>>> Hi Bob,
>>>>
>>>> I sent you a private email
>>>> regarding this but apparently you
>>>> didn't get it.
>>>>
>>>> I wrote the Imageclass section and
>>>> Allan is correct. Your all-in-one
>>>> shares the same Windows front-end
>>>> stuff from Canon as mine. But
>>>> beyond that, I have no idea
>>>> whether the base USB
>>>> communications protocol is the
>>>> same or not. What's really needed
>>>> are USB snoop logs, preferably
>>>> from a Windows scan. Can you run
>>>> Parallels or Bootcamp into Win2k
>>>> or higher?
>>>>
>>>> -Dennis
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> sane-devel mailing
>>>> list: sane-devel at lists.alioth.debian.org
>>>> http://lists.alioth.debian.org/mailman/listinfo/sane-devel
>>>> Unsubscribe: Send mail with
>>>> subject "unsubscribe
>>>> your_password"
>>>>
>>>> to sane-devel-request at lists.alioth.debian.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20080901/15160f93/attachment-0001.htm
More information about the sane-devel
mailing list