Info on Agfa-ePHOTO CL18 (soundvision chip 1307) Version 0.2 update 28-03-2005 dd. 30-07-2004 ------------------------------------------------------- 1. USB command info 2. Frame header info 3. Some short usb logs 4. lsusb -vv output ------------------------------------------------------- 1. USB command info This is a first attempt to collect some info about the soundvision 1307 register values, use as is, at your own risk write to endpoint 02 (bulk mode): 08 00 00 00 01 00 00 00 00 00 00 00 -- 08 00 00 00 02 01 00 00 00 00 00 00 -- still camera mode, get file size? 08 00 00 00 03 01 00 00 00 00 00 00 -- still camera mode, get image nr. 08 00 00 00 04 00 00 00 05 00 00 00 -- 08 00 00 00 06 01 00 00 00 00 00 00 -- get firmware string 08 00 00 00 07 01 00 00 00 00 00 00 -- get next frame 08 00 00 00 08 01 00 00 00 00 00 00 -- still camera mode, get image names 08 00 00 00 0a 01 00 00 00 00 00 00 -- still camera mode 08 00 00 00 0b 01 00 00 00 00 00 00 -- still camera mode, read image 08 00 00 00 14 01 00 00 00 00 00 00 -- command for getting table 0x60 bytes 08 00 00 00 1a 80 00 00 00 00 00 00 -- when 2 bulk reads are needed for one frame?? 08 00 00 00 92 00 00 00 00 00 00 00 -- 08 00 00 00 94 00 00 00 00 00 00 00 -- write1 when program is stopped 08 00 00 00 ff 01 00 00 00 00 00 00 -- write2 when program is stopped 0c 00 00 00 49 4d 47 5f 30 30 30 34 2e 4a 50 47 -- still camera mode after ff 0f write string with length 0f I M G _ 0 0 0 4 . J P G read from endpoint 83 (bulk mode); 00 e4 0c 00 -- read frame ????? b6 e3 0c 00 -- read frame size ?? 04 00 00 00 -- still camera mode, nr. of stored images ff 0f 00 00 -- still camera mode, ready for write of image name string after that image can be read or size 90 cd 00 00 -- still camera mode, size of image which string is writing to camera. 32 2e 31 36 61 00 00 00 = 2.16a -- Firmware version (after 06 01 command) -- file names images, still camera after 08 01 TransferBuffer: 0x00000035 (53) length 49 4d 47 5f 30 30 30 31 2e 4a 50 47 20 IMG_0001.JPG 49 4d 47 5f 30 30 30 32 2e 4a 50 47 20 49 4d 47 5f 30 30 30 33 2e 4a 50 47 20 49 4d 47 5f 30 30 30 34 2e 4a 50 47 20 00 00 is end of string Table for 320x240 ????? URB 7 [ep83] Length = 00000060 -- read table ???? (command 14 01) 00000000: 93 00 00 00 80 00 00 00 98 00 00 00 80 00 00 00 00000010: b9 00 00 00 80 00 00 00 93 00 00 00 80 00 00 00 00000020: d7 00 00 00 80 00 00 00 d1 00 00 00 80 00 00 00 00000030: 63 00 00 00 80 00 00 00 00 01 00 00 80 00 00 00 00000040: b3 00 00 00 80 00 00 00 b3 00 00 00 80 00 00 00 00000050: 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 Table for 160x120???? TransferBuffer: 0x00000060 (96) length 0000: 93 00 00 00 80 00 00 00 98 00 00 00 80 00 00 00 0010: b9 00 00 00 80 00 00 00 93 00 00 00 80 00 00 00 0020: d7 00 00 00 80 00 00 00 d1 00 00 00 80 00 00 00 0030: 63 00 00 00 80 00 00 00 00 01 00 00 80 00 00 00 0040: a8 00 00 00 80 00 00 00 da 00 00 00 80 00 00 00 0050: 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 URB 14 [ep83] TransferBufferLength = 00019c78 00000000: 79 ca 27 4b 2c 65 97 b7 6e b2 c9 56 3b b9 65 1e 00000010: a3 6c b2 97 5e 96 39 cb 2b 7b fc e5 99 a7 8e 72 00000020: ca 64 8b 99 65 2b a5 fc b2 97 61 c6 99 ca 2c 93 00000030: 8c e6 98 b5 c6 32 cb 61 93 39 e6 27 b3 3c 72 97 00000040: 61 ce 99 ca 2a 73 8c e5 95 9f 86 72 c9 54 27 79 00000050: e4 28 73 7c b2 90 47 4e 39 c9 25 4f cc e4 94 83 00000060: 1e 72 c9 4d 33 19 e4 21 89 8c b2 92 4b 56 59 c8 00000070: 24 2b 6c 64 93 91 06 b2 c8 54 3f 39 e4 23 89 bc read from ????? URB 11 -- URB_FUNCTION_GET_FRAME_LENGTH: FrameLength = 00002edf FrameNumber = 0005678d write to: Interface[0]: AlternateSetting = 0 -- set interface and alternate setting Still camera mode: get image: 0000: 08 00 00 00 03 01 00 00 00 00 00 00 0000: 04 00 00 00 0000: 08 00 00 00 02 01 00 00 00 00 00 00 0000: ff 0f 00 00 0000: de c8 00 00 0000: 08 00 00 00 0a 01 00 00 00 00 00 00 0000: ff 0f 00 00 0000: 0c 00 00 00 49 4d 47 5f 30 30 30 32 2e 4a 50 47 0000: 97 21 00 00 0000: 08 00 00 00 0b 01 00 00 00 00 00 00 0000: ff 0f 00 00 0000: 0c 00 00 00 49 4d 47 5f 30 30 30 32 2e 4a 50 47 TransferBuffer: 0x00002197 (8599) length 0000: ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 ------------------------------------------------------- 2. Frame header info For still camera mode, file format is .jpg For video mode, file format is ?, seems no header? Frame sync & rame header identity The header frame seems to be something like byte nr. val description 00 ff begin byte 01 ff begin byte Some header info from image still camera mode (jpg format) TransferBuffer: 0x00001c50 (7248) length 0000: ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 0010: 00 01 00 00 ff db 00 43 00 06 04 05 06 05 04 06 0020: 06 05 06 07 07 06 08 0a 10 0a 0a 09 09 0a 14 0e 0030: 0f 0c 10 17 14 18 18 17 14 16 16 1a 1d 25 1f 1a 0040: 1b 23 1c 16 16 20 2c 20 23 26 27 29 2a 29 19 1f 0050: 2d 30 2d 28 30 25 28 29 28 ff db 00 43 01 07 07 0060: 07 0a 08 0a 13 0a 0a 13 28 1a 16 1a 28 28 28 28 0070: 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 0080: 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 0090: 28 28 28 28 28 28 28 28 28 28 28 28 28 28 ff c0 00a0: 00 11 08 00 78 00 a0 03 01 22 00 02 11 01 03 11 ------------------------------------------------------- 3. Some short usb logs [293 ms] >>> URB 1 going down >>> 00000000: 12 01 00 01 00 00 00 08 bd 06 03 04 00 01 00 00 00000010: 00 01 SetupPacket = 00000000: 80 06 00 01 00 00 12 00 [294 ms] >>> URB 2 going down >>> 00000000: 09 02 81 00 01 00 00 80 5f 09 04 00 00 03 00 00 00000010: 00 00 07 05 01 03 10 00 0a 07 05 02 02 40 00 01 00000020: 07 05 83 02 40 00 01 09 04 00 01 03 00 00 00 00 00000030: 07 05 01 03 10 00 0a 07 05 02 02 40 00 01 07 05 00000040: 03 02 40 00 01 09 04 00 02 03 00 00 00 00 07 05 00000050: 01 03 10 00 0a 07 05 02 02 40 00 01 07 05 83 01 00000060: f0 03 01 09 04 00 03 03 00 00 00 00 07 05 01 03 00000070: 10 00 0a 07 05 82 02 40 00 01 07 05 03 01 f0 03 00000080: 01 SetupPacket = 00000000: 80 06 00 02 00 00 09 02 [296 ms] >>> URB 3 going down >>> Interface[0]: InterfaceNumber = 0 Interface[0]: AlternateSetting = 0 [309 ms] >>> URB 4 going down >>> 00000000: 08 00 00 00 06 01 00 00 00 00 00 00 PipeHandle = c16c133c [endpoint 0x00000002] [313 ms] >>> URB 5 going down >>> PipeHandle = c16c1350 [endpoint 0x00000083] 00000000: 32 2e 31 36 61 00 00 00 [1239 ms] >>> URB 6 going down >>> PipeHandle = c16c133c [endpoint 0x00000002] 00000000: 08 00 00 00 14 01 00 00 00 00 00 00 [1240 ms] >>> URB 7 going down >>> PipeHandle = c16c1350 [endpoint 0x00000083] TransferBufferLength = 00000060 00000000: 93 00 00 00 80 00 00 00 98 00 00 00 80 00 00 00 00000010: b9 00 00 00 80 00 00 00 93 00 00 00 80 00 00 00 00000020: d7 00 00 00 80 00 00 00 d1 00 00 00 80 00 00 00 00000030: 63 00 00 00 80 00 00 00 00 01 00 00 80 00 00 00 00000040: b3 00 00 00 80 00 00 00 b3 00 00 00 80 00 00 00 00000050: 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 UrbLink = 00000000 [30395 ms] >>> URB 8 going down >>> PipeHandle = c16c133c [endpoint 0x00000002] TransferBufferLength = 0000000c 00000000: 08 00 00 00 01 00 00 00 00 00 00 00 [30444 ms] >>> URB 9 going down >>> PipeHandle = c16c133c [endpoint 0x00000002] 00000000: 08 00 00 00 04 00 00 00 05 00 00 00 [30469 ms] >>> URB 10 going down >>> PipeHandle = c16c133c [endpoint 0x00000002] 00000000: 08 00 00 00 92 00 00 00 00 00 00 00 TransferBufferLength = 0000000c [31915 ms] >>> URB 11 going down >>> -- URB_FUNCTION_GET_FRAME_LENGTH: FrameLength = 00002edf FrameNumber = 0005678d [31994 ms] >>> URB 12 going down >>> -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: TransferBufferLength = 0000000c 00000000: 08 00 00 00 07 01 00 00 00 00 00 00 [31995 ms] >>> URB 13 going down >>> -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: PipeHandle = c16c1350 [endpoint 0x00000083] TransferBufferLength = 00000004 00000000: b6 e3 0c 00 [31996 ms] >>> URB 14 going down >>> -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: PipeHandle = c16c1350 [endpoint 0x00000083] TransferBufferLength = 00019c78 00000000: 79 ca 27 4b 2c 65 97 b7 6e b2 c9 56 3b b9 65 1e 00000010: a3 6c b2 97 5e 96 39 cb 2b 7b fc e5 99 a7 8e 72 00000020: ca 64 8b 99 65 2b a5 fc b2 97 61 c6 99 ca 2c 93 00000030: 8c e6 98 b5 c6 32 cb 61 93 39 e6 27 b3 3c 72 97 00000040: 61 ce 99 ca 2a 73 8c e5 95 9f 86 72 c9 54 27 79 00000050: e4 28 73 7c b2 90 47 4e 39 c9 25 4f cc e4 94 83 00000060: 1e 72 c9 4d 33 19 e4 21 89 8c b2 92 4b 56 59 c8 00000070: 24 2b 6c 64 93 91 06 b2 c8 54 3f 39 e4 23 89 bc -------------------------------------------------------------------------- 4. lusb -vv output Bus 002 Device 002: ID 06bd:0403 AGFA-Gevaert NV ePhoto CL18 Camera Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x06bd AGFA-Gevaert NV idProduct 0x0403 ePhoto CL18 Camera bcdDevice 1.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 129 bNumInterfaces 1 bConfigurationValue 0 iConfiguration 0 bmAttributes 0x80 MaxPower 190mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 0 (Defined at Interface level) bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 bytes 16 once bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 bytes 64 once bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 bytes 64 once bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 3 bInterfaceClass 0 (Defined at Interface level) bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 bytes 16 once bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 bytes 64 once bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 bytes 64 once bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 2 bNumEndpoints 3 bInterfaceClass 0 (Defined at Interface level) bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 bytes 16 once bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 bytes 64 once bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x03f0 bytes 1008 once bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 3 bNumEndpoints 3 bInterfaceClass 0 (Defined at Interface level) bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 bytes 16 once bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 bytes 64 once bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x03f0 bytes 1008 once bInterval 1 bLength 18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x06BD idProduct 0x0403 bcdDevice 1.00 iManufacturer 0 () iProduct 0 () iSerialNumber 0 () bNumConfigurations 1 bLength 9 bDescriptorType 2 wTotalLength 129 bNumInterfaces 1 bConfigurationValue 0 iConfiguration 0 () bmAttributes 128 () MaxPower 190 mA bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 0 bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 () bLength 7 bDescriptorType 5 bEndpointAddress 0x01 (out 0x01) bmAttributes 3 (interrupt) wMaxPacketSize 16 bInterval 10 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x02 (out 0x02) bmAttributes 2 (bulk) wMaxPacketSize 64 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x83 (in 0x03) bmAttributes 2 (bulk) wMaxPacketSize 64 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 3 bInterfaceClass 0 bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 () bLength 7 bDescriptorType 5 bEndpointAddress 0x01 (out 0x01) bmAttributes 3 (interrupt) wMaxPacketSize 16 bInterval 10 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x02 (out 0x02) bmAttributes 2 (bulk) wMaxPacketSize 64 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x03 (out 0x03) bmAttributes 2 (bulk) wMaxPacketSize 64 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 2 bNumEndpoints 3 bInterfaceClass 0 bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 () bLength 7 bDescriptorType 5 bEndpointAddress 0x01 (out 0x01) bmAttributes 3 (interrupt) wMaxPacketSize 16 bInterval 10 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x02 (out 0x02) bmAttributes 2 (bulk) wMaxPacketSize 64 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x83 (in 0x03) bmAttributes 1 (isochronous) wMaxPacketSize 1008 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 3 bNumEndpoints 3 bInterfaceClass 0 bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 () bLength 7 bDescriptorType 5 bEndpointAddress 0x01 (out 0x01) bmAttributes 3 (interrupt) wMaxPacketSize 16 bInterval 10 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x82 (in 0x02) bmAttributes 2 (bulk) wMaxPacketSize 64 bInterval 1 ms bRefresh 0 bSynchAddress 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x03 (out 0x03) bmAttributes 1 (isochronous) wMaxPacketSize 1008 bInterval 1 ms bRefresh 0 bSynchAddress 0 checking for GT-6801 ... this is not a GT-6801 (bDeviceClass = 0) checking for GT-6816 ... this is not a GT-6816 (bDeviceClass = 0, bInterfaceClass = 0) checking for MA-1017 ... this is not a MA-1017 (bEndpointAddress = 0x1, bmAttributes = 0x3, wMaxPacketSize = 0x10, bInterval = 0xa) checking for MA-1015 ... this is not a MA-1015 (bDeviceClass = 0) checking for MA-1509 ... this is not a MA-1509 (bDeviceClass = 0) checking for LM983[1,2,3] ... this is not a LM983x (bDeviceClass = 0, bInterfaceClass = 0) checking for GL646 ... this is not a GL646 (bDeviceClass = 0, bInterfaceClass = 0) checking for GL646_HP ... this is not a GL646_HP (bDeviceClass = 0, bInterfaceClass = 0) checking for GL660+GL646 ... this is not a GL660+GL646 (bDeviceClass = 0, bInterfaceClass = 0) checking for GL841 ... this is not a GL841 (bDeviceClass = 0, bInterfaceClass = 0) checking for ICM532B ... check 1, this is not a ICM532B (bDeviceClass = 0, bInterfaceClass = 0) found USB scanner (vendor=0x06bd, product=0x0403) at libusb:002:002