I love my Fujitsu ScanSnap S510M scanner, mostly because it just always works. It almost never jams. I find it very easy to operate. It makes scanning longer documents very easy. Even though I always have the backup option of photographing pages and processing them with Mobile Doc Scanner for Android, I still occasionally receive full-page mail and the ScanSnap scanner makes processing those pages really easy.

I originally bought the S510M to work with my MacOS machines, but now that I’m trying to move entirely off MacOS, I’d like to make my scanner work on Linux. After some light web searching, this seems possible with some combination of the built-in SANE scanning software and with a custom package called VueScan (not FOSS). How do we get these things to work?

Software Included In Pop!_OS/Ubuntu

I start at https://help.ubuntu.com/community/Scanners and look at the scanners that SANE (Scanner Access Now Easy) supports. According to http://www.sane-project.org/sane-mfgs.html, SANE supports the Fujitsu ScanSnap S510M “completely” (I don’t yet know how they’re judging “completeness” here, but it sounds promising). This table provides some information that I will need later, so I make a note of it:

  • USB ID: 0x04c5/0x116f
  • Backend: fujitsu (133)

Now, how do I try this?

Basic Setup

I follow the instructions at https://help.ubuntu.com/community/sane and do the following.

A Detour Into Gimp Configuration Files

When installing these packages, apt asks me about changing some configuration files related to Gimp. Since I don’t qualify as a Gimp power user, I probably don’t care too much about the contents of these configuration files, but I might learn something by reviewing these changes, so I look at them one by one. This also gives me a chance to learn a little bit more about the details of installing packages with apt.

First, comes the configuration file /etc/gimp/2.0/controllerrc. All the changes in this file appear to relate to keyboard shortcuts that I don’t rely on, so I feel safe in accepting the changes. I have no muscle memory with Gimp to interfere with.

/etc/gimp/2.0/controllerrc

< represents the configuration file “as is” and > represents the proposed changes to the configuration file. I’m no expert in Lisp, but even I can read this.

8,17c8,17
<         (map "scroll-up-alt"                 "tools-value-1-increase-skip")
<         (map "scroll-down-alt"               "tools-value-1-decrease-skip")
<         (map "scroll-up-control-alt"         "context-gradient-select-next")
<         (map "scroll-down-control-alt"       "context-gradient-select-previous")
<         (map "scroll-up-shift-alt"           "context-pattern-select-next")
<         (map "scroll-down-shift-alt"         "context-pattern-select-previous")
<         (map "scroll-up-shift-control"       "context-brush-select-next")
<         (map "scroll-down-shift-control"     "context-brush-select-previous")
<         (map "scroll-up-shift-control-alt"   "context-font-select-next")
<         (map "scroll-down-shift-control-alt" "context-font-select-previous")))
---
>         (map "scroll-up-alt"                 "tools-opacity-increase")
>         (map "scroll-down-alt"               "tools-opacity-decrease")
>         (map "scroll-up-shift-primary"       "tools-aspect-increase")
>         (map "scroll-down-shift-primary"     "tools-aspect-decrease")
>         (map "scroll-up-shift-alt"           "tools-angle-increase")
>         (map "scroll-down-shift-alt"         "tools-angle-decrease")
>         (map "scroll-up-primary-alt"         "tools-size-increase")
>         (map "scroll-down-primary-alt"       "tools-size-decrease")
>         (map "scroll-up-shift-primary-alt"   "tools-spacing-increase")
>         (map "scroll-down-shift-primary-alt" "tools-spacing-decrease")))
28,35c28,35
<         (map "cursor-up-control"    "view-scroll-top-border")
<         (map "cursor-down-control"  "view-scroll-bottom-border")
<         (map "cursor-left-control"  "view-scroll-left-border")
<         (map "cursor-right-control" "view-scroll-right-border")
<         (map "cursor-up-alt"        "tools-value-1-increase-skip")
<         (map "cursor-down-alt"      "tools-value-1-decrease-skip")
<         (map "cursor-left-alt"      "tools-value-1-decrease")
<         (map "cursor-right-alt"     "tools-value-1-increase")))
---
>         (map "cursor-up-primary"    "view-scroll-top-border")
>         (map "cursor-down-primary"  "view-scroll-bottom-border")
>         (map "cursor-left-primary"  "view-scroll-left-border")
>         (map "cursor-right-primary" "view-scroll-right-border")
>         (map "cursor-up-alt"        "tools-size-increase-skip")
>         (map "cursor-down-alt"      "tools-size-decrease-skip")
>         (map "cursor-left-alt"      "tools-size-decrease")
>         (map "cursor-right-alt"     "tools-size-increase")))

Back to my terminal session:

Now the same for /etc/gimp/2.0/gimprc. I see a large number of changes, but every single one involves a comment, so I see no harm in accepting the new version, so I do that by answering “Y” again.

Next, /etc/gimp/2.0/sessionrc. By reading the preamble comment, I feel comfortable just accepting the new version, so I do that by answering “Y” again.

/etc/gimp/2.0/sessionrc

Next, /etc/gimp/2.0/templaterc. This appears to have a list of templates of some kind. Since I don’t use Gimp templates (yet?), I see no harm in accepting the new version.

This appears to conclude the configuration-file surgery portion of this installation.

Back To Installing SANE

When installing completes, I see evidence that apt has installed all the packages, as well as that etckeeper has committed and pushed the changes to /etc. Unfortunately, then I see this:

After reading a few Stack Overflow answers and forum posts, W means “warning” and the message seems likely harmless. Just to check, I re-install the packages, and this operates without any warnings. I wonder whether, somehow, my exploring the configuration file differences resulted in this warning. I suppose I’ll never know.

All this merely completed step 1 at https://help.ubuntu.com/community/sane.

On to step 2: I connect my scanner by USB, then launch XSane, and XSane detects the scanner as “ScanSnap S510M”! This might just work!

Scanning A Page

I put a page into the scanner, then press the button Acquire preview on XSane. I haven’t changed any configuration settings yet. XSane scans the page and I see a preview image, which doesn’t look great, but shows evidence that I can scan a page. Unfortunately, when I try to press the Scan button on the main XSane window, I get an error: “Failed to start scanner: Invalid argument”.

So I can acquire a preview image, but I can’t scan a page “for real”? What does that even mean?!

When In Doubt, Try It Again

I put the page back into the scanner, then pressed Acquire preview again. After that, I pressed Scan and got a different error telling me that the document feeder was out of pages, so I put the page back into the scanner, then pressed Scan, then I get a scanned document as PDF!

Well… sort of. When I open the PDF, it looks awful. It definitely doesn’t look like the crisp, sharp scans that I’d grown accustomed to when scanning a page on MacOS. Clearly, I have change some settings in order to improve the scan quality, but of course, I don’t know which settings to change, so I get to learn more about scanning quality than I ever wanted to know.

Changing Scanning Settings

I see that the scan resolution is set to 50. I assume that’s 50 dots per inch (DPI). That seems really low. I look at the resulting PDF file, which has a size of 82 kB, and these two observations together seem to match. Let me try 300 DPI, which seems like overkill, but at least would show me a stark difference between the two scans, if it behaved as I expect. I set the scan resolution to 300, then scan again.

When I scan the page at 300 DPI, I notice two things:

  1. XSane shows me “2550*3300*8 (8.0 MB)”, which I interpret as 2550 pixels by 3300 pixels by 8 bits of color for a total page size of about 8.0 MB. This sounds like overkill and should look much sharper.
  2. When I scan the page, it takes a lot longer to scan. This seems to correspond to the ScanSnap Manager’s various scanning settings of “Better, Best, Fastest” and so on. This setting seems to correspond to something like “Better” or even “Best”.

The resulting PDF has a size of 2.2 MB, and not 8.0 MB, but that seems like it would look sharper. When I open it in my PDF viewer, it indeed looks very sharp! I imagine that I could now just resample it to lower resolution if I wanted to. Perhaps it has become time to learn how to use Gimp “for real”.

Save The Settings!

Before I play around with the various scan settings to find what I really want, I save the device settings so that I don’t lose them, using the XSane menu Preferences > Settings (Ctrl+P).

Now I can safely play around with the scanning settings and save them as various profiles. Nice!