Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jul 1999 22:26:29 +0200 (CEST)
From:      Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de>
To:        freebsd-hardware@freebsd.org
Subject:   Re: USB support for Kodak DC240 (umass)?
Message-ID:  <199907282026.WAA28915@dorifer.heim3.tu-clausthal.de>

next in thread | raw e-mail | index | archive | help

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907282026.WAA28915>