[sane-devel] Accessing a scanner for a different reason

m. allan noah kitno455 at gmail.com
Sat Aug 11 23:40:04 UTC 2007

On 8/11/07, Justin Rosen <rosen at nanotoon.com> wrote:
> Hello again,
> > you need to give more data about the size of read-head you need, the
> > bit-depth, and your intended use, before anyone can suggest a
> > particular model of scanner.
> The size of the read head isn't particularly important.  I think an
> average scanner width is sufficient.

'average'- you sure are specific :)

> Bit-depth, the higher the better, but 24 is fine.
> I am looking to connect a scanner to my computer that has been taken
> apart.  Meaning, that you could wave around the scanning head.  My
> program would essentially start scanning until i told it to stop.  I
> would take the data thats being read form the scanning head (looking
> for real-time), and output it somewhere.

again, you have given us no additional info over your original post,
making you very hard to help, but i can say that CCD sensors (which is
a bit of a misnomer) tend to be more sensitive, and work at larger
distances that CIS. but in either case, 'wave it around' might be a
bit of an issue, since both sensors are meant to focus on a surface a
few mm away. i think you will need some serious lens-making help if
you intend to scan anything farther away that the original scan
distance. this is where a 2-d camera with a lens might be useful.

> > your big problem is hardware. every manufacturer does something
> > different in terms of the control language. cheaper units typically
> > rely on the host computer for many functions, and feature a very low
> > level command set (lamp on, move head 1 step, read 1 line, etc). more
> > expensive machines have higer-level commands which rely on the cpu in
> > the scanner (accept scan params, scan)
> This sounds like a better and more complex approach.  How and where
> would I go about figuring out how to write a stand-alone libusb
> program?

google :)

>  I checked out http://libusb.sourceforge.net/ and they have
> a little bit of documentation that might help me get started.  Does
> anyone know of any good websites that may be helpful?

the libusb docs are weak, but once you read the 'usb in a nutshell'
website, and the usb specs, they make a little more sense.
unfortunately, then you still have to figure out what data to send,
and that depends on the chipset in the scanner.

>  And, in terms
> of contacting a Manufacturer for a information regarding their
> control language, is this usually a pain?

most of the big name scanner makers wont talk to you. but there are
some chipset-only makers which do publish info. but in either case,
you can use the source code for the sane backend (if it exists), and
extract enough info from that to operate the scanner.

if it's wide enough, the cardscan 800c has a very simple protocol,
easy-to-open hardware, and a working sane backend (by yours truely).
it would be very simple to use in this fashion, since it has no
concept of scan length, but only 'keep scanning' or 'stop scanning'. i
even have a stand-alone libusb program that could be modified to
stream the data. the only issues are its width- 4.12 inches, and that
the read-head might be hard to separate from the feed roller. oh, and
its only 300dpi, 24 bit.


"The truth is an offense, but not a sin"

More information about the sane-devel mailing list