Downloaded and installed the linux drivers from the Brother site here.
But the scanner still wasn't recognised.
You can see here, the drivers installed successfully:
$ dpkg -l | grep Brother
ii brother-cups-wrapper-common 1.0.0-10-0ubuntu6 amd64 Common files for Brother cups wrapper packages
ii brother-udev-rule-type1 1.0.0-1 all Brother udev rule type 1
ii brscan-skey 0.2.4-1 amd64 Brother Linux scanner S-KEY tool
ii brscan2 0.2.5-1 amd64 Brother Scanner Driver
ii printer-driver-brlaser 3-5~ubuntu1 amd64 printer driver for (some) Brother laser printers
ii printer-driver-ptouch 1.4-1 amd64 printer driver Brother P-touch label printers
And here, you can see the installed driver thinks it is not 'registered':
$ brscan-skey -l
DCP-350C : brother2:bus3;dev1 : USB Not registered
When I open Simple Scan, it tells me I have a Brother scanner but that I need to install the drivers.
$ lsusb
Bus 003 Device 002: ID 04f9:01d0 Brother Industries, Ltd DCP-350C
$ sudo dpkg -l | grep Brother
ii brother-cups-wrapper-common 1.0.0-10-0ubuntu6 amd64 Common files for Brother cups wrapper packages
ii brother-udev-rule-type1 1.0.0-1 all Brother udev rule type 1
ii brscan-skey 0.2.4-1 amd64 Brother Linux scanner S-KEY tool
ii brscan2 0.2.5-1 amd64 Brother Scanner Driver
ii printer-driver-brlaser 3-5~ubuntu1 amd64 printer driver for (some) Brother laser printers
ii printer-driver-ptouch 1.4-1 amd64 printer driver Brother P-touch label printers
Brother seems to have removed the linux o/s config instructions from its support pages - i.e. here and here, which had been the source of earlier solutions to this problem given here and here. The OS support information page in its FAQS and Troubleshooting section refer only to Windows and Macintosh. If you look elsewhere, you will find a page of linux information. It says "The Brother Linux scanner driver works only with a superuser by default". It points to a page where it says is given the means to make the scanner work for non-sudo users - perhaps, then, SimpleScan. That page contains fix downloads for numerous OSs, but nothing later than Ubuntu 13.10. Downloading and installing that file all the same does nothing to make the scanner work. If you grub around long enough you will find there is a linux troubleshooting FAQ after all - just not in the place where you would expect to find it. Getting this Brother scanner to work is like threading a needle in a wind tunnel. The first item on the linux FAQ is 'I'm using Ubuntu 16.10. I cannot scan from my Brother Machine'. That is close enough. It says 'Install libusb-0.1-4'. (The Brother driver had dependencies but it did not bother to check them). I do have this usb lib installed already anyway.
One of the earlier solutions (for a different Brother scanner - and the Brother support page with the solution has since disappeared), is quite helpful. It says to put a line in '/lib/udev/rules.d/40-libsane.rules', though in fact it should, on my 16.04 at least, be /lib/udev/rules.d/60-libsane.rules. And the line it asks you to add includes a reference to a product ID for a different Brother scanner. Looking on the sane website for a DCP-350C product ID (it wouldn't be DCP-350C -- that would be too easy -- the earlier solution is for a DCP-7030 and that has a product ID of "01ea")... so where were we?... looking on the sane website for a DCP-350C product ID. The sane page for Brother scanners has no entry for the DCP-350C. It says if your device isn't there it's not supported. It says the page was last updated on Oct 05 2003. That's fourteen and a half years ago. I believe the 350C came out a few years later, in 2007.
So the old solution for the DCP-7030 said to add edit the sane config thus:
sudo gedit /lib/udev/rules.d/40-libsane.rules
And to add this (in the right place):
# Brother scanners
ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="01ea", ENV{libsane_matched}="yes"
Since my config appears to be in 60-libsane.rules and I don't have a product code, I edited the config thus:
sudo gedit /lib/udev/rules.d/60-libsane.rules
And added:
# Brother scanners
ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
And restarted the machine. This did not work.
I also moved some files the Brother intsall routine seems to put in the wrong place - at least, according to reports elsewhere such as here.
That involved copying Brother files from cp /usr/lib64/ to /usr/lib. (I had downloaded and installed the 64-bit version of the Brother driver).
The instructions to do this seemed out of date. And since Brother's website says its Brscan2 driver must be used with the DCP-350C, the filenames may differ. I copied mine thus:
sudo cp /usr/lib64/libbrscandec2.so /usr/lib
sudo cp /usr/lib64/libbrscandec2.so.1 /usr/lib
sudo cp /usr/lib64/libbrscandec2.so.1.0.0 /lib/lib
sudo cp /usr/lib64/sane/libsane-brother2.so /usr/lib/sane
sudo cp /usr/lib64/sane/libsane-brother2.so.1 /usr/lib/sane
sudo cp /usr/lib64/sane/libsane-brother2.so.1.0.7 /usr/lib/sane
sudo cp /usr/lib64/libbrcolm2.so /usr/lib
sudo cp /usr/lib64/libbrcolm2.so.1 /usr/lib
sudo cp /usr/lib64/libbrcolm2.so.1.0.1 /usr/lib
This blind alley was suggested by Brother itself. It's linux FAQ for the DCP-350C (if you can find it), says (for "Ubuntu 11.10 or higher"):
Copy the following files under /usr/lib64/ to /usr/lib/.
Another tip was to actually run the brscan-skey file that is offered as download with the driver, by simply entering brscan-skey at the command line.
At some point, something must have gone right because the Brother driver now tells me the device is recognised:
$ brscan-skey -l
DCP-350C : brother2:bus3;dev1 : USB Not registered
However, SimpleScan still says no devices are recognised.
Also, Brother says that brscan-skey allows scanning to be performed from the scanner's own console, using its 'scan-to-file' and 'scan-to-image' options. When I do so, the scanner says 'Connecting to PC', but nothing more happens.
I can get the 350C to scan when I call it from a trial version of a commercial linux scanning tool called VueScan. But the trial version puts water marks across the scanned image, making it useless to me. Moreover, the full version is expensive, and demands an annual subscription. And I only came across it while trying to find a way to get SimpleScan to work - or indeed, any open source scanning software.
The point is that VueScan just works. (But it does so in a way that leaves the scanner dysfunctional to other tools). It proves the scanner can be used with open source tools on Ubuntu. The question is how.
# Brother scanners
snippet to/lib/udev/rules.d/60-libsane.rules
, Simple Scan still would not recognize the device. After I spent a few hours banging my head against the wall, I discovered that in Simple Scan's Preferences, the Scan Source drop-down menu had two similarly-named entries; after switching to the second one, I was up and scanning! Not sure if something similar has happened to you, but I thought I would just put this here...