[sane-devel] Interested in writing a driver for...

Bertrik Sikken bertrik@zonnet.nl
Tue, 13 Apr 2004 20:09:51 +0200

Greg Apessos wrote:

> my Ezonics EZCam USB III webcam.  What got me interested was finding
> a reference to the EZCam USB II not being supported on the
> sane-project's site,
> http://www.sane-project.org/unsupported/biolux-654.html.  While it
> isn't a scanner, maybe my work could be useful to someone else.  But 
> the difficulty is I don't know how to approach the problem.
>> From the little bits that I've gleamed, I monitor the communication
>> with
> the camera on Windows, and get an idea of how messages are sent to
> it.
>> From that I start to build something useful.
> Are there guides, tutorials, something that could be helpful?  I
> don't necessarily need step-by-step instructions, just an outline
> like, program X will capture the communication with the camera,
> library Y can be used to communicate with the webcam under Linux,
> etc.
> Any help in the right direction would be great.

program X = usbsnoopy. There is an 'old' and a 'new' (on sourceforge)
version of this program. I personally like the old version, because
it simply logs everything as text, which is easy to parse and analyse
using scripts.
I have a hacked version somewhere that does not log the USB bulk
transfers. In some cases, this can help to reduce the log files
a lot.

library Y = libusb. I do not recommend to write a kernel mode driver.

* First make really sure that noone else has already written a driver.
* Try to figure out what kind of chip is used inside the cam and then
look it up on google. Read the datasheet if you can find it.
* Instead of starting on a sane backend, I would start with a very
simple command line tool, where things are easier to control.
* Let the world know you are working on support for the webcam.
Probably other people already thought about working on this webcam,
perhaps even figured out some stuff.
Publish the stuff you find out on a website and post the address.
If you have some actual code, consider starting a sourceforge project.