Seems that I have a good news... 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.
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 Basic command structure is: 03 [1 byte] (could be counted as 'signature') command [1 byte] argument1 size [4 byte] argument1 [argument1 size] ... argumentN size [4 byte] argumentN [argumentN size] end-of-record [4 byte] 00 00 00 00 Contents of the commands and arguments are little-endian (host order). First argument serves also as a return value (if a command has one). 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). - 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. Since I changed the job I have no access to the machines, thus the process was freezed. I could provide the backend sources, looks like it would be suitable to operate MagiColor devices with some modifications. Best regards, -- ?Ilia Sotnikov