<html><head></head><body><div dir="auto">Hi Ove,<br><br>please remove stickers from chip packages. You should make a high resolution sharp picture of the board including stickers, so you know what they are for.<br><br>E.G. Firmware-Version flashed into Flash-Rom or programable logic device.<br>Sometimes they just want to hide that they use a certain general purpose chip (e.g. ccd-line frontend, all-in-one scanner chip, e.g. genesys, ti?)<br>It is your scanner, and you can fry it if you want :-)<br><br>BTW: My Kodak i810 monster is filled with circuit boards which contain many RAM chips and image processing ASICS. Nice view, here one knows that it all depends on scanner firmware and hardware design and you can not "understand" the beast.<br>If you find a "scanner in one chip" and some "bird food" around then look for the datasheet and programming guide (archive.org) of that chip and look for existing source code (sane) and go from there, you could try to understand the scanner, and write a driver using a generic firmware blob the chip vendor ships to his customers.<br><br>Have much fun hacking your hardware.<br><br>Cheers,<br><br>luja<br><br><br></div><br><br><div class="gmail_quote"><div dir="auto">On September 4, 2024 3:27:49 PM GMT+02:00, Ove Laurum <laurum.tech@gmail.com> wrote:</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr">Hello and thanks for your responses.<div><br></div><div>The effort does not dissuade me, it will have to take the time it takes, in the meantime I will just have to retain a windows VM for using the scanner.<br><div><br></div><div>Luja, Yes, I did Open up the scanner, but all chips were covered with stickers and pads, so I have not yet tried to take them off and read the chips. </div><div>The one visible number "MBA691 100/103 MP 00485509*103*AB1501160083" looks like it's referring to the Circuit board.</div><div>I did not see anything looking like a tty/rs232 port, as you can see in the image of the circuit board from the original email attachment.<br></div><div>Well, there is what looks like a place to solder in a 2*4 connector in one place, hard to tell what the purpose may be. It's just called J6.</div><div>But before I do any of that, I have been looking for some wiki that has a list of scanners and their chips/circuits listed, or where would I find a list to compare with?</div><div>Also fyi, the scanner is at least 10 years old but works fine on Windows 10, I have not tried Windows 11.</div><div><br></div><div>Ralph, I was trying to find where the source code is, GIT hub? or somewhere else? so that I can take a look at the code for some examples of backends. I assume it's written in C.<br></div><div>I found <a href="https://www.commandlinux.com/man-page/man-page/man-page/man5/sane-avision.5.html">https://www.commandlinux.com/man-page/man-page/man-page/man5/sane-avision.5.html</a> </div><div>So I will start there trying to figure out how to read logs for the scanner as per your suggestion.</div><div><br></div><div>The other thing I will have to do is to trace a successful scan operation on Windows.</div><div><div>My goto tracer would be wireshark, I know I can trace USB ports in Linux so I assume that is possible on Windows as well to get a trace of successful scanning.</div><div>But is there a better tool to trace the USB traffic on Windows for the purpose of establishing some form of API?</div></div><div><br></div><div>Thanks again.</div><div><br></div><div>Ove</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 3 Sept 2024 at 19:02, Ralph Little <<a href="mailto:skelband@gmail.com">skelband@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 2, 2024 at 6:38 AM Ove Laurum <<a href="mailto:laurum.tech@gmail.com" target="_blank">laurum.tech@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello.<div><br></div><div>I am new to sane but hope to find some guidance on how I can help adding this printer to sane supported devices.</div><div><br></div><div>I am trying to use a scanner "Avision AV50F plus" on Linux (Ubuntu).</div><div>I do not see it listed as a supported scanner by sane.</div><div>Also after installing xsane it is not recognised, see command line output at the end of the mail.</div><div>The scanner works fine on Windows with Avision driver and SW and Button Manager SW.</div><div>I have attached screenshots from Windows Device Manager.</div><div>I also attached a photo of the circuit board of the scanner as well as a pdf  product sheet of the scanner.</div><div><br></div><div>I would be grateful for any advice on:</div><div>a: has anybody else tried, failed, succeeded in adding support, if so what is your experience?</div><div>b: what is the recommended process for me to follow?</div><div>c: how do I know if this can be added to an existing backend, or if I need to write a new backend.</div><div>d: any advice on how to trace the driver/scanner communication on windows to reverse engineer the protocol?</div><div></div><div><br></div></div></blockquote><div><br></div><div>Many Avision devices use a specific prococol supported by the avision backend.</div><div>It might be worthwhile adding the identity of this scanner to the backend and having a look at the diagnostic output set using the SANE_DEBUG_AVISION environmental variable set to some highish number (e.g. 50). Early on, IIRC, the backend queries the device for capabilities. If the device gives some kind of proper response to this request then that would be the best place to start.</div><div><br></div><div>But it is not for the faint of heart.</div><div><br></div><div>Cheers,</div><div>Ralph<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>Looking forward to contributing to sane.</div><div>Kind regards </div><div>Ove.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>Command Line Output:</div><div><br></div><div>$ sudo sane-find-scanner<br><br>  # sane-find-scanner will now attempt to detect your scanner. If the<br>  # result is different from what you expected, first make sure your<br>  # scanner is powered up and properly connected to your computer.<br><br>  # No SCSI scanners found. If you expected something different, make sure that<br>  # you have loaded a kernel SCSI driver for your SCSI adapter.<br><br>found possible USB scanner (vendor=0x04a9 [Canon], product=0x190f [CanoScan], chip=GL848+) at libusb:001:004<br>found possible USB scanner (vendor=0x0638 [AVISION], product=0x2b6a [AV50F Plus]) at libusb:001:003<br>  # Your USB scanner was (probably) detected. It may or may not be supported by<br>  # SANE. Try scanimage -L and read the backend's manpage.<br><br>  # Not checking for parallel port scanners.<br><br>  # Most Scanners connected to the parallel port or other proprietary ports<br>  # can't be detected by this program.<br><br></div><div>$ sudo scanimage -L<br>device `genesys:libusb:001:004' is a Canon LiDE 220 flatbed scanner<br><br></div><div>$ lsusb<br>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br>Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet<br>Bus 001 Device 003: ID 0638:2b6a Avision, Inc. AV50F Plus<br>Bus 001 Device 004: ID 04a9:190f Canon, Inc. CanoScan LiDE 220<br>Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br></div></div>
</blockquote></div></div>
</blockquote></div>
</blockquote></div><div dir="auto"><div class='k9mail-signature'>-- <br>Phone numbers: <br>+49   176 79038607 [DE]<br>+359 899159711      [BG]<br><br>-- <br>"They who can give up essential liberty to obtain a little temporary<br>safety, deserve neither liberty nor safety." Benjamin Franklin (1775)</div></div></body></html>