Organising a Raspberry Pi Scanner Server utilizing SANE

This tutorial will present you how one can set your Raspberry PI up as a scanner server through the use of the SANE Software program.

Raspberry Pi Scanner Server Using SANE

For many who have by no means heard of this software program earlier than, SANE stands for Scanner Access Now Easy. This software program acts as a standardized means for accessing scanners.

Inside this information, you'll discover ways to use SANE to speak with a supported scanner related to your Raspberry Pi.

We are going to even present you tips on how to take this a step additional by turning your Raspberry Pi right into a scanner server, permitting you to scan paperwork from an unconnected laptop.

Setting your Pi up as a scanner server is an effective way to modernize your getting older scanner. For instance, as an alternative of shopping for a Wi-Fi enabled scanner you'll be able to as an alternative introduce that performance through the use of a tool just like the Raspberry Pi Zero.

This undertaking is an ideal accompaniment for these already using their Raspberry Pi as a print server.

Please observe that as Home windows makes use of its personal proprietary API, SANE doesn't work natively with the built-in utilities. As an alternative, you will want to make use of a third social gathering shopper that helps the SANE protocol.


Under is an inventory of the gear we used when organising our Raspberry Pi as a scanner server.


Raspberry Pi

Micro SD Card

Power Supply

Ethernet Cord or Wi-Fi




USB Keyboard

USB Mouse

Raspberry Pi Case

This tutorial was examined on a Raspberry Pi 400 operating the newest model of Raspberry Pi OS Buster.

Putting in the SANE Software program on the Raspberry Pi

Putting in the SANE software program to a Raspberry Pi is an easy course of as it's accessible from the official package deal repository.

The one draw back of that is that the model of SANE on the Pi’s repository is often a lot older than the official launch.

1. On the time of publishing, the model of the scanner software program offered via the repository is 1.0.27. You'll be able to test the checklist of supported scanners by this model on the official SANE website.

If this model doesn't assist your scanner, then check the latest compatibility list. If the newest model helps the scanner, please skip to the “Compiling SANE from Source Code” part.

2. Earlier than putting in SANE, we must always replace the package deal checklist and improve any out-of-date packages.

We are able to carry out each of those actions through the use of the next two instructions in your machine.

3. With the package deal checklist updated, we will now set up SANE utilizing the command beneath.

That is all you should get SANE operating on a Raspberry Pi. Most scanners will hopefully work out of the field.

Nevertheless, some manufacturers would require some further drivers to be put in. Probably the most outstanding scanner and printer manufactures which have this requirement is HP.

4. If you're utilizing an HP scanner, you will want to put in further drivers for it to work with the SANE software program. in your Raspberry Pi

You'll be able to set up the package deal that incorporates the required drivers by operating the command beneath.

5. With the scanner server put in in your Raspberry Pi, now you can skip to the part titled “Testing your scanner with SANE“.

Compiling SANE from Supply Code

To get the newest model of SANE onto our Raspberry Pi, we might want to compile it from the supply code. Compiling this software program would require us to put in a number of new packages and full just a few further steps.

Nevertheless, by the top of this part, you must have a model of the scanner server with the most effective accessible compatibility.

1. Our first step is to verify our package deal checklist is fully updated. Updating the package deal checklist ought to cease us from attempting to obtain packages from mirrors that aren't at present accessible.

Replace the package deal checklist in your Raspberry Pi through the use of the next command.

2. Now that we now have our package deal checklist up to date we have to set up a number of libraries and compilers required to compile the “sane-backend” to our Raspberry Pi.

Set up the entire required libraries by operating the command beneath within the terminal of your Raspberry Pi.

3. Allow us to begin by placing one among our new packages to make use of by cloning the SANE backend code to our Raspberry Pi.

Clone this code utilizing the git package deal through the use of the next command.

4. We have to grow to be the listing containing our newly cloned code through the use of the command beneath.

5. As we're cloning SANE instantly from their public repository to our Raspberry Pi, we have to run their “” script earlier than persevering with.

This script helps put together the code in order that it may be compiled on the system.

6. Our subsequent step is to run the configure script through the use of the command beneath.

This script will put together, the code for our present system setup. It can allow or disable options relying on whether or not the required package deal exists on the present system.

7. Now you can compile the SANE code to our Raspberry Pi by getting into the command beneath into the terminal.

Please observe that the compilation course of can take appreciable time, even on a Raspberry Pi 400.

When you expertise points the place your Raspberry Pi hangs throughout compilation, please strive the next command as an alternative.

8. As soon as SANE has completed compiling, you'll be able to set up it to your Pi with the next command.

This command will copy every thing to the right locations in your system in an effort to run it

9. As we now have added a brand new library, we have to refresh the techniques hyperlink cache. With out refreshing the run-time linker might be unaware of the SANE library that we simply put in.

To refresh the hyperlink cache, all you should do is use the next command in your system.

10. Subsequent, we have to copy the “udev” guidelines from the SANE repository to the config listing on our Raspberry Pi.

All we have to do is run the next command to repeat the file to the right location.

udev is the machine supervisor for the Linux kernel. These guidelines that we're copying over inform “udev” what permissions, group, and surroundings variables ought to be set when a selected machine is inserted.

11. For our subsequent job, we have to create a bunch known as “scanner“. Any consumer added to this group may have entry to the scanner via the SANE software program.

Create the “scanner” group in your Pi through the use of the “addgroup” command beneath.

12. With the group created, we might want to add our Pi consumer to it. This may guarantee you'll be able to entry the scanner with out having to make the most of the superuser.

Add the “pi” consumer to the “scanner” group through the use of the next command.

13. Lastly, you will want to both sign off or restart your Pi for the modifications to take impact.

Restarting the Raspberry Pi is as simple as typing within the command beneath.

Testing your Scanner with SANE in your Raspberry Pi

With the SANE software program put in in your Raspberry Pi, you'll be able to lastly in case your scanner will work with the software program.

Earlier than continuing, just remember to have now plugged in your scanner to the Raspberry Pi.

1. Our first step is to test if the scanner software program can detect the machine related to your Raspberry Pi.

To attain this, we might be utilizing the next command throughout the terminal.

If SANE can discover your scanner, then you must find yourself seeing a message like beneath. Please observe that this isn’t a sign that SANE will work simply that it may possibly see your scanner

If no message seems, then SANE can't discover your printer. Strive utilizing a USB 2.0 port or biking your scanner on and off.

2. Now that you realize SANE can see your scanner, you should use the “scanimage” device to checklist all supported units.

Through the use of the “-L” choice, we're telling the device, we need to checklist all supported units

In case your printer is efficiently recognized as one thing that SANE can use, you must see a message as beneath.

This message identifies our scanner efficiently as a Canon Pixma TS3100 collection printer/scanner.

Alternatively, if no message is displayed, your scanner is probably not supported by SANE. You'll be able to strive energy biking the machine or checking the official compatibility documentation.

3. Now that we all know our scanner works with our Raspberry Pi, we will inform it to scan and reserve it as a picture that we will view.

Scanning a picture out of your Raspberry Pi is so simple as utilizing the next command.

There may be a few issues we do when utilizing this command. First, we inform it to output the contents of the scan to a file known as “pimyllifeup.jpg.

Secondly, we set the format (--format) choice to the “jpeg” picture format because it is likely one of the most generally supported.

Thirdly, through the use of the decision (--resolution) choice, we set the scan to a decision of 300 DPI.

Lastly, we use the progress (-p) choice to show the progress of the present scan within the command line.

4. Whereas this command runs, you must hear your scanner start to work, and as soon as accomplished, you'll have a file known as “pimylifeup.jpg” in your Raspberry Pi.

You'll be able to copy this file out of your Pi if you wish to view and confirm the results of the picture.

Alternatively, you should use the “file” command to print out details about the picture.

Utilizing this command, you must see one thing like what we now have beneath.

This info will let you realize stuff such because the decision of the picture, codec, and measurement.

Turning your Raspberry Pi right into a Scanner Server

Now that we now have SANE operating on our Raspberry Pi, we will configure it to function as a scanner server.

Organising SANE to behave as a scanner server requires us to switch just a few completely different information, so we are going to break up this into a few sections.

Creating the SANED Service

Our first job is to create a service that may run the SANE daemon on our Raspberry Pi when it begins up. If we don’t arrange this service, you would need to manually begin SANE each time your machine restarts.

1. The primary file we have to create is a Systemd socket file for SANE. A systemd socket permits a service to be began when knowledge is shipped to a selected socket, which in SANE’s case is port 6566.

Start creating this new socket file through the use of the next command.

2. Inside this file, you'll want to enter the next traces.

These traces set out the port on which this service will hear, whether or not to simply accept the incoming connections and the utmost variety of connections.

3. After you have made these modifications to the file, save and give up by urgent CTRL + X, then Y, adopted by the ENTER key.

4. A socket file should at all times have an accompanying service file. This service will inform the system tips on how to run and deal with SANE on our Raspberry Pi.

You can begin enhancing this file by operating the command beneath.

5. You'll need to kind the next traces into the file earlier than continuing.

6. As soon as achieved, save your modifications by urgent CTRL + X, then Y, then the ENTER key.

Configuring SANE for Distant Entry

Now that we now have created the service file for SANE, we might want to configure it so it is aware of who can entry the server in your Raspberry Pi.

1. To configure the SANE daemon, we might want to edit the “saned.conf” file.

You'll be able to edit this configuration file utilizing nano by operating the next command in your machine.

2. Inside this file, you will want to search for the next part.

If you're using the nano text editor, you should use the CTRL + W hotkey to look the file.

3. Under this heading, you will want so as to add the IP or IP vary that you simply need to entry your Raspberry Pi SANE scanner server.

For this instance, we might be assuming that your native community makes use of the “” subnet.

4. After you have made these edits to the file, it can save you and give up by urgent CTRL + X, the Y key, and at last ENTER.

Beginning the Scanner Server in your Raspberry Pi

Now that every thing is lastly configured, we will begin up the SANE service that we created earlier. As soon as this service is began, you must be capable of use a SANE compatible frontend to scan pictures throughout your community.

1. Allow us to begin by enabling the SANE service. Enabling the service is what is going to enable it to begin at boot routinely.

We are able to use systemctl to allow the sane service by operating the next command.

2. With the service now enabled, we will additionally begin it utilizing systemctl as effectively.

You can begin up the scanner service in your Raspberry Pi through the use of the command beneath within the terminal.

3. You'll be able to confirm that the SANE daemon is now operating in your Pi utilizing the “standing” choice with systemctl.

If every thing is working because it ought to, you will notice that the standing is listed as “Energetic: lively (listening)“.

Moreover, you should use this command to observe what number of connections have been accepted by SANE.

4. You need to now be capable of begin remotely scanning due to your Raspberry Pi scanner server.

All you should do is use a shopper with SANE compatibility. If you're prompted to enter an IP deal with, then use your Pi’s native one.

You'll be able to retrieve the IP address of your Raspberry Pi through the use of the next command.


At this level within the tutorial, you must now have SANE compiled and operating in your Raspberry Pi.

SANE is likely one of the greatest methods of getting your Raspberry Pi to scan pictures from a related USB scanner.

You'll be able to even configure SANE in order that it permits different units to connect with your scanner remotely.

When you've got run into points with getting SANE to run on the Raspberry Pi, please depart a remark beneath.

Make sure to try our many different Raspberry Pi projects, akin to our information on running a Plex server.

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *