From owner-freebsd-hardware Wed Jul 28 13:28:12 1999 Delivered-To: freebsd-hardware@freebsd.org Received: from dorifer.heim3.tu-clausthal.de (dorifer.heim3.tu-clausthal.de [139.174.243.252]) by hub.freebsd.org (Postfix) with ESMTP id 4A2CD14C41 for ; Wed, 28 Jul 1999 13:28:00 -0700 (PDT) (envelope-from olli@dorifer.heim3.tu-clausthal.de) Received: (from olli@localhost) by dorifer.heim3.tu-clausthal.de (8.8.8/8.8.8) id WAA28915 for freebsd-hardware@freebsd.org; Wed, 28 Jul 1999 22:26:29 +0200 (CEST) (envelope-from olli) Date: Wed, 28 Jul 1999 22:26:29 +0200 (CEST) From: Oliver Fromme Message-Id: <199907282026.WAA28915@dorifer.heim3.tu-clausthal.de> To: freebsd-hardware@freebsd.org Subject: Re: USB support for Kodak DC240 (umass)? Organization: Administration Heim 3 Reply-To: freebsd-hardware@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Newsreader: TIN [version 1.2 RZTUC(3) PL2] Sender: owner-freebsd-hardware@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org OK, I got the interface specification for the Kodak DC240. They write that there was no standardized USB protocol for digital still cameras when they designed the DC240, so they simply use the same protocol for both serial (RS232) and USB. The protocol is pretty well documented, it is a sequence of command, data, result and status packets. I'd be willing to try writing a driver for this, but the problem is, I have no clue about USB. I don't know how to send a "packet" to an USB device at all. Is there some documentation about such basic USB things? Sending data to some serial RS232 device is easy, but how do I do that to an USB device? In theory, it would be possible to write a filesystem driver for this camera (it has commands to retrieve directory and file data from the CompactFlash card, which is basically a FAT filesystem). But I think this would not be worth the effort. I'd be just happy to have a userland tool that can get an "ls" and the actual JPEG images from the camera. Regards Oliver PS: This camera is just great, I love it! > # usbdevs -v > Controller /dev/usb0: > addr 1: self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00 > port 1 addr 2: self powered, config 1, KODAK DC240 Zoom Digital Camera(0x0120), Eastman Kodak Company(0x040a), rev 1.03 > port 2 powered > > # ./usb_dump -c 1 -i -f /dev/ugen0 > Product: KODAK DC240 Zoom Digital Camera > Vendor: Eastman Kodak Company > address 2 > > # ./usb_dump -c 1 -d -f /dev/ugen0 > DEVICE descriptor: > bLength=18 bDescriptorType=1 bcdUSB=1.00 bDeviceClass=0 bDeviceSubClass=0 > bDeviceProtocol=0 bMaxPacketSize=8 > idVendor=0x040a idProduct=0x0120 bcdDevice=103 > iManufacturer=1 iProduct=2 iSerialNumber=0 bNumConfigurations=1 > > CONFIGURATION descriptor: > bLength=9 bDescriptorType=2 wTotalLength=32 bNumInterface=1 > bConfigurationValue=1 iConfiguration=0 bmAttributes=40 bMaxPower=100 mA > > INTERFACE descriptor index 0: > bLength=9 bDescriptorType=4 bInterfaceNumber=0 bAlternateSetting=0 > bNumEndpoints=2 bInterfaceClass=0 bInterfaceSubClass=0 > bInterfaceProtocol=0 iInterface=0 > > ENDPOINT descriptor index 0: > bLength=7 bDescriptorType=5 bEndpointAddress=1-out > bmAttributes=2 wMaxPacketSize=64 bInterval=0 > > ENDPOINT descriptor index 1: > bLength=7 bDescriptorType=5 bEndpointAddress=2-in > bmAttributes=2 wMaxPacketSize=64 bInterval=0 > > # ./usb_dump -c 1 -D -f /dev/ugen0 > DEVICE descriptor: > bLength=18 bDescriptorType=1 bcdUSB=1.00 bDeviceClass=0 bDeviceSubClass=0 > bDeviceProtocol=0 bMaxPacketSize=8 > idVendor=0x040a idProduct=0x0120 bcdDevice=103 > iManufacturer=1 iProduct=2 iSerialNumber=0 bNumConfigurations=1 > > Current configuration is number 1 > > CONFIGURATION descriptor index 0: > bLength=9 bDescriptorType=2 wTotalLength=32 bNumInterface=1 > bConfigurationValue=1 iConfiguration=0 bmAttributes=40 bMaxPower=100 mA > > INTERFACE descriptor index 0, alt index 0: > bLength=9 bDescriptorType=4 bInterfaceNumber=0 bAlternateSetting=0 > bNumEndpoints=2 bInterfaceClass=0 bInterfaceSubClass=0 > bInterfaceProtocol=0 iInterface=0 > > ENDPOINT descriptor index 0: > bLength=7 bDescriptorType=5 bEndpointAddress=1-out > bmAttributes=2 wMaxPacketSize=64 bInterval=0 > > ENDPOINT descriptor index 1: > bLength=7 bDescriptorType=5 bEndpointAddress=2-in > bmAttributes=2 wMaxPacketSize=64 bInterval=0 -- Oliver Fromme, Leibnizstr. 18/61, 38678 Clausthal, Germany (Info: finger userinfo:olli@dorifer.heim3.tu-clausthal.de) "In jedem Stück Kohle wartet ein Diamant auf seine Geburt" (Terry Pratchett) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hardware" in the body of the message