[sane-devel] dell 1600n

Jon Chambers jon@jon.demon.co.uk
Sun, 29 May 2005 22:17:45 +0100 (BST)


I recently bought a Dell 1600n network printer/scanner/fax/copier.  The
printer function works fine with linux as a generic postscript device.
Network scanning is Windows only.  It also has a USB interface although I
haven't tried it (the only Windows machine I have with a USB port runs NT4
and besides my printer lives in a cupboard a long way from from the

Having spent some time with ethereal I have a working proof-of-concept
driver for network scanning, written as a little perl script (it
supports colour scanning in JPEG format - monochrome in PDF/TIFF requires
some more messing about with file headers).

I thought that the next obvious step would be to write a SANE driver.  I
have never used SANE before (I have never owned a scanner before) but
looking through the SANE docs I don't see any other network scanners
listed which I might use as a starting point.

Additionally I wonder how well this scanner will fit into the SANE
framework:  My (newbie) understanding of SANE is that it provides a
standard API to a raster device whereby the caller initiates a scan and
then reads back the raw raster data?  The Dell 1600n network scanning
works in the following way:

- driver locates scanner by listening for multicast messages (In Windows
  this is a "one off" when you set up your Dell 1600n)
- driver registers with scanner by sending a UDP message
- person walks up to scanner, presses "scan" button and selects named
  driver from a list of available ones (those which have registered)
- scanner sends driver UDP message asking for a TCP connection
- driver opens TCP connection to printer and sends its preferred format
  (eg: monochrome PDF 200 dpi)
- person optionally selects actual desired format at scanner panel (eg:
  colour JPEG 200 dpi)
- person selects "start scanning" at scanner panel
- scanner sends data to driver in JPEG/PDF/TIFF format.
- person optionally answers "yes" to "more documents" prompt
- scanner either closes TCP connection or sends more data

Is this behaviour suitable for a SANE backend?

Thanks for any insights.


ps: please CC replies via email - I am about to go on holiday for a couple
of weeks and may temporarily unsubscribe from the list in order to limit
the backlog of email awaiting me on my return!  Thanks.

====================== Jon Chambers =====================
 http://www.jon.demon.co.uk, 020 8575 7097, 07969 956575