[sane-devel] SANE2, time for a decision
Hi everybody, I also think we should setup a more or less small group of developers who are willing to help Oliver to finish the sane2 standard. We might should setup a list of stuff that should also go into this new standard - this list should be more or less a whishlist, which means that some points may find their way into the standard, some not. Let's keep this list open for lets say 4 weeks. During this time the team around Oliver should be found and they could start with their work. reading this sane2 thread and seeing that some people have some quite different views of how to proceed regarding openness of the discussion, i wanted to suggest to use a WIKI page for holding some kind of wishlist as Gerhard suggested, and another page for editing the document defining the standard. This last one could be read only for everybody except for a few 'editors'. In this way even if the 'core' of the technical discussion and commits goes among just a few people, everybody can 'monitor' the results and speak out if they come with a brilliant or revolutionary idea ;-) It is not necessary to have a finished ('written on stone') standard to start coding, but it is also not wise to start coding (call it fork sane-1 or start from scratch, doesn't matter) without having a general idea of how the API should look like... My 2 cents... Best wishes, Ariel
[sane-devel] Nikon LS50
Hi Johannes, As soon as I finish reverse engineering the damn Broadcom wireless driver I'll go buy an LS5000 (wanted one for a long time, but i was curious to know if the Broadcom wireless you're reverse engineering is also the one used in Apple's Powerbooks? (airport extreme) Seems to be the only device of the powerbooks which does not work under linux. Cheers, Ariel
[OT] Re: [sane-devel] Nikon LS50
i was curious to know if the Broadcom wireless you're reverse sorry guys, this was not supposed to go to SANE m-l! :-( Have a nice day, Ariel
[sane-devel] Nikon LS50ED/LS5000 Backend
Hi, It wanted to try latest version of sane bakend for LS50ED Nikon scanner. It seems that I don't get the right version. I have backend 1.0.16. Does this include the latest developpement ? No, you'd need to patch it, or try the precompiled lib. Please refer to the following mail in SANE mailing-list: http://lists.alioth.debian.org/pipermail/sane-devel/2005-October/015203.html If you encounter any problems, please proceed as told here: http://lists.alioth.debian.org/pipermail/sane-devel/2005-November/015327.html and send us the debug output :-) Cheers, Ariel
[sane-devel] Nikon LS50/5000
Hi Spiro, answering your two last mails here, hope it is not too mixed up the package I use is: media-gfx/xsane from http://www.xsane.org/ yes, thanks, i had seen it long ago and already forgotten ;-( Now i've been testing it with the LS50 and it worked fine, it is quite a nice frontend. (tested with a slide, 8 14 bits depth) If you get an error there you should enable debugging output and send us that output. Something like this will be helpful: export SANE_DEBUG_SANEI_USB=4 export SANE_DEBUG_COOLSCAN2=255 scanimage photo.pnm It all points to my Epson scanner even if both scanners are turned on. So, I am not able to test it this way. Please provide more info so I can directly scan with the Nikon scanner. Henning told you already how to call it, scanimage -L device `epson:libusb:001:002' is a Epson GT-9300 flatbed scanner device `coolscan2:usb:libusb:001:005' is a NikonLS-5000 ED film scanner So, the command would be scanimage -d coolscan2:usb:libusb:001:005 photo Which reproduced the same exact error, which is: scanimage: sane_start: Error during device I/O So, we are back to square one. Any idea on this? please, don't get upset so fast, the answer was in my previous mail ;-) Please do export SANE_DEBUG_SANEI_USB=255 export SANE_DEBUG_COOLSCAN2=255 scanimage -d coolscan2:usb:libusb:001:005 photo.pnm and send me the debugging output you'll get. If the error you get is with the film feeder adapter, please also test it with the mounted slide adapter. Well, this is not sufficent for allowing a user to fully utilize what was purchased (in my openion). I purchased this device becaue of all its features. Leaving some out would not match purchasing goals. For sure you know this scanner better than I do just because you are deveoloping the driver, but I wish to ask you a question then: How come VieScan allows all customizations? Please, again, don't get upset with the sane developers which do it for free/pleasure/etc. You can always go to the manufacturer and request them to provide you with a linux software having all the same features as in windows :-) The coolscan2 sane backend supports most if not all the scanner (ie, _hardware_) features (of course, something is failing in your case, but that's another issue). All the other customizations as you call them (dust and scrcatch removal based on the hardware IR data, ROC, GEM, DEE) are _software_ functions, not a feature of this particular scanner, so you could have them in xsane or other frontends, it is just that somebody (with the right knowledge) has to write the code... it is probably not trivial to get good results, so experience in the subject counts here. It does not make sense to have these software features in the nikon sane backend, because they are general to many scanners so that code would go either to a frontend like xsane or even better in a library. Note that even if there is no direct support for the ICE, ROC, GEM functions , you can (try to) replace that with the Gimp and some manual work... somebody wrote a Gimp plugin which is able to clean the images using the IR data from sane: http://lists.alioth.debian.org/pipermail/sane-devel/2004-December/012759.html And the other two functions are just color enhancement and grain reduction (some blur filter could give you something similar) BTW, xsane can be used as a gimp plugin, so you can scan directly from within gimp and run the dust-off pluging/color corrections directly there also. me. I hope sane or your development will bring the software to a level where full customizations and infrared scan become reality. try the gimp plugin came to the conclusion that VewScan is the only application (as of now) that is capable of running this specific device. I was/am counting on SANE because I like the idea to use it well, if you have a relatively big scanning project and you already spent 1000+ bucks in the scanner, it could be worth spending 50 more in a piece of software which could allow you a more time-efficient work or higher quality output with the same effort. From what people say, vuescan seems to be quite nice, supports lots of scanners, and is in many cases better than the manufacturer provided programs. and am only thankfull to Ariel and whoever worked with Ariel for spending time for development. no, you should be thankful to Andras who wrote the coolscan2 backend and to all the sane developers who wrote the framework/frontends/libraries also. I did just a few patches. far, after I will solve my device I/O failure, what does SANE offer for this specific device? you get the full color depth (14 bits) and full res 4000dpi scans. You get the IR channel, autofocus, you can select the focus point, etc (and if something does not work it can be fixed, or if it is not yet implemented it can probably be supported more or less easily :-) I also offer my time and hardware for allowing some
[sane-devel] Nikon LS50/5000
Hi, finally I made your patch to work and compiled sane-backends with it. I am using version sane-backends-1.0.15 no problem, the coolscan2 driver didn't change since a while ago When I run Xsane, I get the option to choose between the two scanners I have (Epson and Nikon) and get a new windows with default settings. I try to scan, and get this error: Failed to start scanner: Error during device I/O i never saw Xsane, or are you referring to xscanimage?. xscanimage kind of works for me, ie, i get a scanned file ok, but the preview does not get the right scales, and the LUT tabs show me just crap inside (but this of course has nothing to do with the coolscan backend!) try scanimage from the commandline. If you get an error there you should enable debugging output and send us that output. Something like this will be helpful: export SANE_DEBUG_SANEI_USB=4 export SANE_DEBUG_COOLSCAN2=255 scanimage photo.pnm For a real scan, ie, to get a nice looking image, you will need to fiddle with the gamma values of the different colors (--green-gamma-table etc), although scanimage --autofocus --resolution 1000 --red-exposure 4000 --green-exposure 4000 --blue-exposure 3000 photo.pnm gives some starting point Also, as my scanner has different media (slides, negatives, etc,) is i didn't test the negative feeder, but the slide adapter there a plae to choose for those settings, and redice, and all those nikon settings? no, there is support for reading the infrared channel data but the driver will NOT clean up the image based on that data, it is available for you to use it. But I don't know how one can process that in linux afterwards. Anybody? As i told you before, many of the features advertised for the scanner are actually _software_ features provided by the Windows drivers. You won't get that with sane. Other people in this list will perhaps know how to imitate those features. Cheers, Ariel
[sane-devel] Nikon LS50
Hi all, i just wanted to let you know that i finally got the coolscan V working with Sane :-)) it took a while because the docu is quite twisted to understand. I still don't have a patch to provide, because i hardcoded some parameter, but will get in touch with Andras to get something usable asap. (i also didn't check the resulting image, but at least i get the data 8-) BTW, the Windows driver uses not only reserved (=undocumented) bits but also one undocumented command and unused (=undocumented) pages... :-( Cheers, Ariel
[sane-devel] Re: Nikon LS50
this is great.! Congrats. Now, how about the NIKON LS-5000? I am waiting for your driver so that I can start my project, hopefully. Any idea of where you are at so far? Hopefully the LS-5000 will work also with the same fixes, didn't check the specs though, but you'll get to test the patch ;-) The driver is working with the LS40/4000 (older model), so with these fixes you should be able to get exactly the same functionality of the LS-40/4000. Timeframe? 1-2 weeks i hope, at least for a plain patch. Cheers, A
[sane-devel] Nikon LS 5000 updates...
Hi Spiro, I was wandering how were you doing with this scanner. Any luck by receiving the SDK fron Nikon? yes, took 5 months and 3 requests (first lost by processing, second in post(??)) but i finally got it a few weeks ago :-)) I'm working on it, i spent some time understanding usb protocol stuff and sane code, and now understand how things work, but couldn't find the error yet. Seems to be a missing/wrong parameter which the scanner does not like and complains about. Cheers, Ariel
[sane-devel] Nikon LS 5000
Hi, Finally my request for the NDA was accepted by Nikon i was told (took 3 months because i didn't request it under a company hood) so i should get the specs soon. I also have the scanner so i hope to be able to get it working ;-) (hope is the last thing you should loose, right? ;-) But i don't promise any timeframe because holidays are already scheduled :- just to let u know, i am still waiting for the sdk CD from nikon :-( My request had been approved but somehow the papers got lost _before_ they manged to send me anything (person in charge left, etc) so they told me to resend the request and now the relevant person is on holidays... argh! :-@ Cheers, Ariel
[sane-devel] Nikon LS 5000]
Hi Spiro, I am glad you are working on this scanner as I see more people needing your assistance. As for me, I am now very happy because the project I have to work on is very big; it involved about 15000 pictures (35mm) and the sponsor, for charity, trusts my work. So, on my behalf, I then trust and rely on your assistance. So, I will purchase the NIKON LS-5000 (feeling more relaxed and peaceful) and as soon as you are completed with the driver I will start my project. I would only ask you one favor, if possible: Please let me-us know when you believe to be close to completing the development and also, if you need me to do some testing let me know. I work on amd64 64bit. I hope to hear something soon or some updates. hey, thanks for your enthusiasm, but please note that there are not warranties that i will be able to get it working... zero, nada, niente... or it could simply take much longer, so don't base your purchase only on the linux driver availability! I didn't even get the specs yet, so didn't even start looking at the issues. Of course it is a great scanner so it is worth purchasing it anyway, but remember that if you intend to do batch scanning relying on the sane driver might not be the best option because it would lack the whole set of automated functions the original driver provides (ICE, gem, roc,... your mileage may vary but depending on how good/bad your slides are these functions might save you a lot of time). ICE is the only feature which needs hardware support, the other ones are plain software algorithms in the driver. ICE works great for non kodachrome films, and sane will provide your with the 4th (infrared) channel, but i am not sure how to use that info in an automated way (substraction layer in gimp??) If windoze is not an option, there is also vuescan which i think it also performs several of the color correction features, but i have no experience with it. Cheers, Ariel
[sane-devel] Nikon LS 5000
Hi, Please check out the archives of this list -- we have hashed out quite a few times what is necessary, what we have etc. A bunch of people (including me) have access to the specifications (under NDA) but not the hardware (I don't, for example) Finally my request for the NDA was accepted by Nikon i was told (took 3 months because i didn't request it under a company hood) so i should get the specs soon. I also have the scanner so i hope to be able to get it working ;-) (hope is the last thing you should loose, right? ;-) But i don't promise any timeframe because holidays are already scheduled :- Cheers, Ariel
[sane-devel] Nikon Coolscan V ED / LS 50 ED
Hi, I whish to know if somebody has developpe a driver for a Nikon LS 5O ED scanner ? no, the coolscan 2 backend does not work for it (it fails after starting a preview, so nothing useful) I had hoped to be able to make it work but i am still waiting for Nikon to decide if they are going to provide me the specs under NDA. The fact that i don't have(don't want to use) a company affiliation seems to be... bad... i just called and they tell me to wait for another 2 weeks :-( Some other people have the NDA but not the scanner, so perhaps we should organize a meeting at some mid-way point ;-) Cheers, Ariel
[sane-devel] Re: SANE LS50ED
Hello, On Monday 14 February 2005 10:19, Johannes Berg wrote: Yes. Call Nikon, they'll point you to the application forms. You have to sign a NDA and they send you the docs on CDs. well, i sent the request for the SDK some weeks ago, and now i called to know the status of my request and they tell me that they are discussing it and that they will tell me in 2 weeks... oh well... Cheers, Ariel
[sane-devel] Re: SANE LS50ED
Thanks a lot Ariel. I have no time at all these days, anyone like to volunteer to have a look? Can we have the documentation of the scanner protocol ? :-) Ah! that way it would be easy... the whole fun is doing that without it!! ;-)) Ariel
[sane-devel] Re: SANE LS50ED
Hi Johannes and Andras, yes, it has been a long time since my last mail... :-( i've been quite busy but i also spent some time trying to do a usb dump of the Nikonscan communication with the scanner. After spending some time searching for how to make it i was amazed to see that a simple mini-scan was creating a 100MBy log... oh well I did a timed log and i could more or less identify where each thing is happening. But... trying to compare the sane and nikonscan logs i see many differences... it is difficult to make something out of that without knowing how is the protocol (i know... reading the sane code of the driver should help but that also takes time... did not do that yet). Having a short list of important commands as of the specs would help... yes, i know, the NDA... Under windows for instance i see a kind of ping blocks every 2 seconds which do are not seen at all under sane. Perhaps they are not needed? These blocks have always the same structure (and data also except for few bytes), and they are also sent with a 1 millisec interval just 10ms prior to starting the preview. What seems to be quite different is that under windows the data sent to the scanner is initially in packets of size 1, 6, or 64 (=0x40) bytes (also a few of 10, 58), whereas under sane i see writes of 1,6,10,20,58 bytes since the beginning, but no 64 by ones. A typical block is appended, i will put the full log online tomorrow, i'll let you know. Cheers, Ariel - A ping block 106572 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK : 00 00 00 00 00 00 106574 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK 106574 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK : d0 106576 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK 106576 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK : 00 00 00 00 00 00 00 00 00 74 00 a0 0f a0 00 00 0010: 00 00 00 00 00 00 00 00 04 80 00 00 06 c2 00 00 0020: 00 02 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 0030: 00 01 01 02 02 ff 00 03 3a 40 00 00 00 00 00 00 106578 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK : 01 106578 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK : 06 106579 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK 106579 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK : 01 00 00 00 00 00 00 00 00 74 00 a0 0f a0 00 00 0010: 00 00 00 00 00 00 00 00 04 80 00 00 06 c2 00 00 0020: 00 02 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 0030: 00 01 01 02 02 ff 00 03 3a 40 00 00 00 00 00 00 106580 ms -- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER Flags: USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK : 00 00 00 00 00 00 00 00 - This message was sent using IMP, the Internet Messaging Program.
[sane-devel] Re: SANE LS50ED
Hi, What we need is someone to spare a few hours and check the USB log of VueScan or Nikonscan against the Coolscan2 code. There's something the scanner doesn't like which is probably not even prohibited by the specs. Any takers? I can send you the latest version of Coolscan2 with which I've been playing, and a log as well, just let me know. i would be glad to do that, will have to wait until the weekend though. I saw your patch to the list also, so i will try that one instead of (or in addition to) the normal code. Which log can you send? the one of the Nikonscan? I hope i can reproduce that, but if you have it at habd it is also welcome. Cheers, Ariel This message was sent using IMP, the Internet Messaging Program.
[sane-devel] Re: SANE LS50ED
Hi, Apparently it does not work, sorry. As you noticed, I had cross-posted to sane-devel, and Andras said he also had tried that. I'm waiting for him to send me more of his recent code now. i've being playing with the trivial add-the-missing-ids patch today, and i realized that there is a hardcoded device-id in the cs2_open function, that is why your patch was not not even reporting a connected scanner for me: LS50 / 5000 have device ids of 0x4001 / 0x4002 while apparently all the other usb-coolscans(only the LS40?) have 0x4000. @@ -1679,6 +1681,8 @@ sanei_config_attach_matching_devices (scsi Nikon *, cs2_attach); try_interface = CS2_INTERFACE_USB; sanei_usb_attach_matching_devices (usb 0x04b0 0x4000, cs2_attach); + sanei_usb_attach_matching_devices (usb 0x04b0 0x4001, cs2_attach); + sanei_usb_attach_matching_devices (usb 0x04b0 0x4002, cs2_attach); return SANE_STATUS_GOOD; } With this add'l patch now the scanned is detected, and if run scanimage -d coolscan2:usb:libusb:001:002 --ae then the scanner does all the scanning noise for a while, but ends however with a IO_ERROR: --- (...) cs2_phase_check(): Phase check returned phase = 0x01. Error: cs2_issue_cmd(): Unexpected non-data phase, but n_data != 0. n_data=11838 sane_read() status=9 scanimage: sane_read: Error during device I/O --- The same happens if i run scanimage without options, the error cames pretty soon in this case: -- $ /mnt/soft/source/sane-backends-1.0.15/frontend/.libs/scanimage [sanei_debug] Setting debug level of sanei_usb to 4. [sanei_usb] sanei_usb_init: found libusb device (0x04b0/0x4001) interface 0 at libusb:001:002 [sanei_usb] sanei_usb_find_devices: vendor=0x04b0, product=0x4000 [sanei_usb] sanei_usb_find_devices: vendor=0x04b0, product=0x4001 [sanei_usb] sanei_usb_open: opened usb device `libusb:001:002' (*dn=0) cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x12, n_send = 6, n_recv = 36. [sanei_usb] sanei_usb_find_devices: vendor=0x04b0, product=0x4002 [sanei_usb] sanei_usb_open: we already have a bulk-out endpoint (address: 1), ignoring the new one [sanei_usb] sanei_usb_open: we already have a bulk-in endpoint (address: 130), ignoring the new one [sanei_usb] sanei_usb_open: opened usb device `libusb:001:002' (*dn=0) cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x12, n_send = 6, n_recv = 36. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x12, n_send = 6, n_recv = 4. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x12, n_send = 6, n_recv = 87. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x15, n_send = 18, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x2a, n_send = 30, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x2a, n_send = 32778, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x2a, n_send = 32778, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x2a, n_send = 32778, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x24, n_send = 68, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x24, n_send = 68, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x24, n_send = 68, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0xe0, n_send = 23, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0xc1, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x1b, n_send = 9, n_recv = 0. P6 # SANE data follows 3946 5782 255 sane_read() called, maxlen = 32768. cs2_issue_cmd(): opcode = 0x00, n_send = 6, n_recv = 0. cs2_issue_cmd(): opcode = 0x28, n_send = 10, n_recv = 11838. Error: cs2_issue_cmd(): Unexpected non-data phase, but n_data != 0. sane_read() status=9 scanimage: sane_read: Error during device I/O --- Actually cs2_phase_check() returns CS2_PHASE_STATUS, but with n_data == 11838 Any suggestions for further tests/debugging info is welcome. Cheers, Ariel This message was sent using IMP, the Internet Messaging Program.