[sane-devel] Canan CanoScan 8400F backend driver

2011-08-29 Thread Chris Molanus

Hi,
I would like to attempt to create backend support for the Canon CanoScan 8400f 
Scanner.I am finding it difficult to to find information on how to start as I 
have never done this before.I can program in C but have no experience in 
writing back end drivers.
Can anyone point me to some information are tell me a good place to start?
Chris 
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20110829/5d991ab4/attachment.html


[sane-devel] Canan CanoScan 8400F backend driver

2011-08-29 Thread Alejandro Imass
On Mon, Aug 29, 2011 at 5:01 AM, Chris Molanus chrismolanus at hotmail.com 
wrote:
 Hi,
 I would like to attempt to create backend support for the Canon CanoScan
 8400f Scanner.
 I am finding it difficult to to find information on how to start as I have
 never done this before.
 I can program in C but have no?experience?in writing back end drivers.
 Can anyone point me to some information are tell me a good place to start?
 Chris
 --

There are already some Canon ADF drivers that work pretty well. The
process is not that simple as there are a lot of details regarding
mechanical movements, sensors and there is always the possibility of
damage to the device while developing.

The usual method is to snoop the comm between the OS and the scanner
by using the officially supported driver in the supported OS, e.g. the
Windoze driver. Is the interface is USB you can use the USB Snoop
program and capture a sample scan of a black and white page and then a
color one. Your test subjects should be large rectangles of color
and/or black so it makes it easier to identify the image data block.

It's a painstaking job but you need to figure out the protocol first.
You will need background into many subjects of which C is probably the
least of your worries. Before you talk to the scanner in Linux you
need to understand about the USB subsystem, probably deal with libusb,
udev and/or hal (a.k.a. hell ;-) ) and many other layers of software
and options that Sane handles. Remember that Sane runs on many types
us *nix set-ups so there are *many* options and paths to talk to the
hw.

I wanted to build a driver myself a few years ago, but even with 23
years of work experience in the field, I decided to hire someone from
this list and then just helped to snoop, test, debug and even hack the
driver a little bit.  This experience taught me the basics of sane
driver building and hacking and I can now appreciate some of the
complexities of this. Of course, given enough time, you will
eventually become an expert, but at least in my case I usually don't
have much free time to head-bang at something that requires a very
wide of skills and I'd rather focus my time on the expertise I already
have. YMMV of course.

Your best option IMHO is to download the Sane and Sane Backends source
code and look at the existing Canon drivers. Who knows, the current
drivers may even work with the 8400f, and you could contact the author
of some of these drivers directly and perhaps they could dedicate some
one-to-one time which you'll probably have to pay for but in my case
it was completely worth it.

Hope this helps,

--
Alejandro Imass



[sane-devel] Canan CanoScan 8400F backend driver

2011-08-29 Thread John McGill
The 8400f is reported to have a GL843 processor. Study the source code
of the genesys backend. You may be able to clone the settings of an
existing supported GL843 scanner.
https://help.ubuntu.com/community/CheckIfScannerIsClone

Stef Voltz maintains the genesys backend and may be able to help you.

Jack


On Mon, Aug 29, 2011 at 7:41 AM, Alejandro Imass ait at p2ee.org wrote:
 On Mon, Aug 29, 2011 at 5:01 AM, Chris Molanus chrismolanus at hotmail.com 
 wrote:
 Hi,
 I would like to attempt to create backend support for the Canon CanoScan
 8400f Scanner.
 I am finding it difficult to to find information on how to start as I have
 never done this before.
 I can program in C but have no?experience?in writing back end drivers.
 Can anyone point me to some information are tell me a good place to start?
 Chris
 --

 There are already some Canon ADF drivers that work pretty well. The
 process is not that simple as there are a lot of details regarding
 mechanical movements, sensors and there is always the possibility of
 damage to the device while developing.

 The usual method is to snoop the comm between the OS and the scanner
 by using the officially supported driver in the supported OS, e.g. the
 Windoze driver. Is the interface is USB you can use the USB Snoop
 program and capture a sample scan of a black and white page and then a
 color one. Your test subjects should be large rectangles of color
 and/or black so it makes it easier to identify the image data block.

 It's a painstaking job but you need to figure out the protocol first.
 You will need background into many subjects of which C is probably the
 least of your worries. Before you talk to the scanner in Linux you
 need to understand about the USB subsystem, probably deal with libusb,
 udev and/or hal (a.k.a. hell ;-) ) and many other layers of software
 and options that Sane handles. Remember that Sane runs on many types
 us *nix set-ups so there are *many* options and paths to talk to the
 hw.

 I wanted to build a driver myself a few years ago, but even with 23
 years of work experience in the field, I decided to hire someone from
 this list and then just helped to snoop, test, debug and even hack the
 driver a little bit. ?This experience taught me the basics of sane
 driver building and hacking and I can now appreciate some of the
 complexities of this. Of course, given enough time, you will
 eventually become an expert, but at least in my case I usually don't
 have much free time to head-bang at something that requires a very
 wide of skills and I'd rather focus my time on the expertise I already
 have. YMMV of course.

 Your best option IMHO is to download the Sane and Sane Backends source
 code and look at the existing Canon drivers. Who knows, the current
 drivers may even work with the 8400f, and you could contact the author
 of some of these drivers directly and perhaps they could dedicate some
 one-to-one time which you'll probably have to pay for but in my case
 it was completely worth it.

 Hope this helps,

 --
 Alejandro Imass

 --
 sane-devel mailing list: sane-devel at lists.alioth.debian.org
 http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
 Unsubscribe: Send mail with subject unsubscribe your_password
 ? ? ? ? ? ? to sane-devel-request at lists.alioth.debian.org