Background
The AAAA has a Meade® DSI Ⅱ (color). It occurred to me I had the knowledge to play around with a writing a driver I could use under NetBSD®.
Hardware
-
Cypress EZ-USB FX2
high-speed USB 2.0 microcontroller
-
Sony ICX429AKL (DSI Ⅱ (color)) / ICX429ALL (DSI Ⅱ Pro (panchromatic))
EXview HAD CCD Image Sensor
-
glue electronics
A/D converter, possibly a frame buffer memory
USB Protocol
Once the firmware is loaded into the DSI's EZ-USB, the device presents two interesting endpoints to the USB stack. Endpoint 1 is a bidirectional endpoint. It is used for conversing with the device's firmware in short, variable-length packets. Endpoint 6 is in-only and is the endpoint through which the image samples are read into the host. Endpoint 0 is used for it's normal USB-management purpose.
The endpoint 1 conversation protocol is short, and relatively simple. The first byte of the packet specifies the length of the packet. The second byte is a sequence number that is incremented by the host for every new exchange. The third byte is a operation number, and specifies the format of the following bytes.
(I may flesh this part out more latter.)
Driver
Mail me if you're interested in the code. I have a implementation in C for NetBSD's ugen(4), and one written in Python for PyUSB.