[sane-devel] Rising project : Support of Konica-Minolta Magicolor 2480MF

Reinhold Kainhofer reinhold at kainhofer.com
Mon Aug 9 10:57:43 UTC 2010

Am Sonntag, 8. August 2010, um 19:21:31 schrieb Ilia Sotnikov:
> Several months ago almost finished implementing the backend for
> Konica-Minolta devices (BizHub 162/132, DiMage 1611 to name them).
> Looking through the sniffs Reinhold and Jean-Marc collected I could
> say that the protocol is kind of similar.

Hey, that's great!

> Commands I've found:
> Start scan	                0x08
> Get last error	        0x09
> Stop scan   	        0x0a
> Get image params	0x0b
> Set scan area     	0x0c
> Get status         	0x0d
> Read		                0x0e
> Get buttons   	        0x0f
> Set button wait   	0x10

Yes, I suspected some of these already (and looking at USB traffic gives some 
more insight into how things work)...

> Basic command structure is:
> 03 [1  byte] (could be counted as 'signature')
> command [1 byte]
> argument1 size [4 byte]
> argument1 [argument1 size]

Actually, I can't confirm this.... The third byte here does not always 
correspond to the size of the argument... In particular, the 03 08 04... 
"start the scan" command does not fulfill it, for example.

> Contents of the commands and arguments are little-endian (host order).
> First argument serves also as a return value (if a command has one).

What do you mean by that?

> Now the differences:
> - those devices I investigated are only black-white machines, also
> with fixed size of scan area (scanner accepts no X/Y coordinates, just
> an index of a predefined area). I workarounded the fixed area issue by
> scanning at a suitable predefined area (implemented) and than cropping
> to what frontend requested (not finished).

We can probably include that.

> - device has several endpoints of same type in one interface
> descriptor (3 and 5 being OUT, 4 and 6 being IN, uses 5 and 6 for
> scanning functions). SANE USB layer ignores them all but first. This
> is the reason I didn't submit the backend - didn't finish the USB
> layer changes. As I see MagiColor devices have separate
> descriptors/configurations for different functions, though.

Well, my USB sniffs basically use 3 and 5 only.

> I could provide the backend sources, looks like it would be suitable
> to operate MagiColor devices with some modifications.

Yes, that would be really great!


Reinhold Kainhofer, reinhold at kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org

More information about the sane-devel mailing list