[sane-devel] Formulardaten
=== == Neuer Eintrag === --- -- Formular: 'adddev' --- 1. Your email address: 'wiezeboe at orange.nl' 2. Manufacturer (e.g. Mustek): 'Canon' 3. Model name (e.g. ScanExpress 1200UB): 'Canoscan D646U' 4. Bus type: 'USB' 5. Vendor id (e.g. 0x001): '0x04a9' 6. Product id (e.g. 0x0002): '0x220b' 7. Chipset (e.g. lm9831): '' 8. Comments (e.g. similar to Mustek 1234): 'sane-find-scanner finds it, but scanimage doesn't.' 9. Data (e.g. sane-find-scanner -v -v): 'device descriptor of 0x04a9/0x220b at 003:003 (Canon CanoScan) bLength 18 bDescriptorType 1 bcdUSB1.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x04A9 idProduct 0x220B bcdDevice 0.07 iManufacturer 5 (Canon) iProduct 6 (CanoScan) iSerialNumber 0 () bNumConfigurations1 configuration 0 bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 () bmAttributes 192 (Self-powered) MaxPower 48 mA interface 0 altsetting 0 bLength9 bDescriptorType4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass16 bInterfaceSubClass 1 bInterfaceProtocol 0 iInterface 0 () endpoint 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x81 (in 0x01) bmAttributes 2 (bulk) wMaxPacketSize64 bInterval 0 ms bRefresh 0 bSynchAddress 0 endpoint 1 bLength 7 bDescriptorType 5 bEndpointAddress 0x02 (out 0x02) bmAttributes 2 (bulk) wMaxPacketSize64 bInterval 0 ms bRefresh 0 bSynchAddress 0 trying to find out which USB chip is used checking for GT-6801 ... this is not a GT-6801 (bDeviceClass = 0) checking for GT-6816 ... this is not a GT-6816 (bDeviceClass = 0, bInterfaceClass = 16) checking for GT-8911 ... this is not a GT-8911 (check 1, bDeviceClass = 0, bInterfaceClass = 16) checking for MA-1017 ... this is not a MA-1017 (bDeviceClass = 0, bInterfaceClass = 16) checking for MA-1015 ... this is not a MA-1015 (bDeviceClass = 0) checking for MA-1509 ... this is not a MA-1509 (bDeviceClass = 0) checking for LM983[1,2,3] ... this is not a LM983x (bDeviceClass = 0, bInterfaceClass = 16) checking for GL646 ... this is not a GL646 (bNumEndpoints = 2) checking for GL646_HP ... this is not a GL646_HP (bDeviceClass = 0, bInterfaceClass = 16) checking for GL660+GL646 ... this is not a GL660+GL646 (bDeviceClass = 0, bInterfaceClass = 16) checking for GL841 ... this is not a GL841 (bDeviceClass = 0, bInterfaceClass = 16) checking for ICM532B ... this is not a ICM532B (check 1, bDeviceClass = 0, bInterfaceClass = 16) checking for PV8630/LM9830 ... this is not a PV8630/LM9830 (bcdUSB = 0x110) checking for M011 ... this is not a M011 (bDeviceClass = 0) checking for RTS8822L-01H ... this is not a RTS8822L-01H (bNumEndpoints = 2) checking for rts8858c ... this is not a rts8858c (bNumEndpoints = 2) checking for SQ113 ... this is not a SQ113 (bcdUSB = 0x110) Couldn't determine the type of the USB chip (result from sane-backends 1.0.18) found USB scanner (vendor=0x04a9 [Canon], product=0x220b [CanoScan]) at libusb:003:003 device descriptor of 0x/0x at 003:001 (Linux 2.6.20-16-generic uhci_hcd UHCI Host Controller) bLength 18 bDescriptorType 1 bcdUSB1.10 bDeviceClass 9 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x idProduct 0x bcdDevice 2.06 iManufacturer 3 (Linux 2.6.20-16-generic uhci_hcd) iProduct 2 (UHCI Host Controller) iSerialNumber 1 (:00:10.2) bNumConfigurations1 configuration 0 bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 () bmAttributes 224 (Self-poweredRemote Wakeup) MaxPower 0 mA interface 0 altsetting 0 bLength9 bDescriptorType4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass9 bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 () endpoint 0 bLength 7 bDescriptorType 5 bEndpointAddress 0x81 (in 0x01) bmAttributes 3 (interrupt) wMaxPacketSize2 bInterval 255 ms bRefresh 0 bSynchAddress 0'
[sane-devel] (no subject)
jhudson76 at gmail.com -- next part -- An HTML attachment was scrubbed... URL: http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20070811/e36407d3/attachment.htm
[sane-devel] Accessing a scanner for a different reason
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. 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. The first iteration of the program I'm trying to write would essentially open a window that shows an image of what is being scanned at that moment. The image only needs to be 1 pixel high! So, I'm guessing this is possible to do in real-time. Essentially I'm using a scanner as a 1 pixel high video camera. On Aug 9, 2007, at 1:28 PM, Gerard Klaver wrote: A sheetfeed scanner seems the best device to use (after removing parts). Depending on your specifications, tests with a webcam can also deliver enough information (remove the lines with data you don't need). A modified xcam backend is maybe also usable. I need the highest res I can get. 24bit-depth. Not sure I'll be able to get that out of a webcam :). A sheetfeed scanner sounds interesting. Would I be able to take it apart and use just the scan head without any problems? On Aug 9, 2007, at 9:35 AM, m. allan noah wrote: the problem here is not sane. infact, sane is not all that useful to you, as it is designed as an interface to setup a wide variety of parameters on 2-d scan, and aquire an image occasionally. you would be better off probably writing a stand-alone libusb program to aquire the data. 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) allan 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? 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? And, in terms of contacting a Manufacturer for a information regarding their control language, is this usually a pain? Cheers, Justin On 8/9/07, Justin Rosen rosen at nanotoon.com wrote: Hello! I've recently stumbled upon the SANE libraries in an effort to gain access to a scanner. What I would like to do, is be able to read from a scanner, but not to create an image, but instead to pull RGB data from a single line of scan. Meaning I only need a scan size of 1 pixel x width of scanner. Also, I don't necessarily need the flatbed itself. Is it possible with SANE to access a scanner that has been taken apart? I essentially need the RGB values of the scanning head in realtime (I'm not sure what the terminology is for the portion of the scanner that actually gets color values). So imagine the scanner as a color sensor constantly pumping out an array of RGB colors, where the array size is the width of the scanner. I'm completely new to the SANE libraries, I've read the SANE Standard and compiled the SANE libraries and I'm stuck on the fact that I think the scanner I purchased is broken, so I'm at a halt for the moment, but thought I could get a little more insight on my issue. I thought my idea above could be possible using SANE for a few reasons. If I were to write a front-end that used a scanner to scan an area of 1pixel x scanner width per frame, and to continually scan frames until I told it to stop, I could receive RGB data as fast as the scanner could scan (hopefully real-time). If this can be done, great! I need to really figure out how to write the front-end! The only problem I see is that I'm hoping to take the scanner apart and use just the sensor to pull data from. I noticed that some of the SANE calls may fail if the SANE_Status is SANE_STATUS_COVER_OPEN, which leaves me to believe I won't be able to take the scanner apart and just pull RGB data from the scanner head. If anyone can answer any or part of my questions or point me in the right direction it would be greatly appreciated. Thanks for your time. Cheers, Justin Rosen -- sane-devel mailing list: sane-devel at lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/sane-devel Unsubscribe: Send mail with subject unsubscribe your_password to sane-devel-request at lists.alioth.debian.org -- The truth
[sane-devel] Accessing a scanner for a different reason
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. allan -- The truth is an offense, but not a sin