In this Raspberry Pi BOINC tutorial I take you through the steps to getting BOINC setup and processing tasks correctly.
At the time of this tutorial, BOINC (Berkeley Open Infrastructure for Network Computing) has over 400 thousand volunteers and almost a million computers processing data for a range of different projects.
In this particular tutorial I will be installing the SETI at home project. For those who don’t know SETI@home is a program that will enable you to help in the search for extra-terrestrial intelligence. It simply downloads and analyses radio telescope data. Once processed it sends it back to the main server.
If you’re familiar with the BOINC program, then you will probably already know that SETI@home is the most popular project that you’re able to sign up to. There are others that you can try but some may not be available for the Raspberry Pi. Seti@home for example was only recently officially released for the Pi.
You can find the full list of projects you can join and their supported platforms over at the BOINC project page. This also has information on what areas a project covers (astrophysics, physics, biochemistry) and any sponsors it may have.
If you want to see how this project is done visually then check out the video below. If you like what you see then please make sure you subscribe so you stay up to date with all the latest raspberry pi project ideas, guides, accessories and much more.
Below is the equipment that I have used in setting up the Raspberry Pi BOINC.
Installing Raspberry Pi BOINC
Installing BOINC is a pretty straight forward process and you shouldn’t run into any problems. I am using just basic Raspbian in this tutorial, if you need to install it then be sure to check out my tutorial on how to install Raspbian.
- Firstly, make sure everything is up to date by running the following commands:
sudo apt-get update sudo apt-get upgrade
- Now install the BOINC package by running the following command:
sudo apt-get install boinc
- Installing BOINC will also install the BOINC manager which is incredibly handy. The manager will allow you to see all your projects, tasks and any statistics about them.
Installing SETI & other projects
Next we’re going to set up SETI as the project we wish to process and contribute to. There are two ways we’re able to do this with the first being via the BOINC manager and the second via the command line.
Using the GUI is probably the preferable way when it comes to adding projects to your Pi. It’s very simple to use for beginner users and is loaded with features for the more advanced user.
- If you have the Raspbian GUI (Graphical User Interface) open, then you can simply go up to
Menu->System Tools->Boinc Manager
- On first load the “add project or project manager” screen should be displayed.
- In this window select either add project or if you have an account with either BAM! Or Grid Republic then you can select account manager.
- On the project page scroll down to SETI@Home and select it. Once selected, press next.
- It will now connect and then you will need to either create a new account or login to an existing one.
- Once done the project should be loaded onto the Pi and will soon start carrying out processing tasks.
- I will go through the command line version first, to begin you will need to query the SETI at home website for an account key. To do this enter the following line.
boinccmd --lookup_account http://setiathome.berkeley.edu <your_email> <your_password>
- It should now print out the following lines.
status: Success poll status: operation in progress account key: <your_account_key>
- Lastly run the following line to attach your BOINC program to your SETI@Home account.
boinccmd --project_attach http://setiathome.berkeley.edu <your_account_key>
- Your account should now be added and be getting ready to load some tasks.
- If you want to see the tasks that are currently being processed, then you just run the following command:
- If you decide to go down the command line (CLI) route, then be sure to check out all the commands that are available to you over at BOINC’s wiki page. You will also find the following command will bring up all the commands you can use.
Configuring BOINC can be a pretty complex task if you’re doing it through the command line as I briefly touched on before. If you’re doing it through the manager tool, then everything is a lot easier. I will touch on some of the options that are available to you below.
You change settings so that BOINC will only under certain conditions. For example, if you only wanted to run whilst you’re asleep or whenever the Pi isn’t busy doing other stuff.
To fully explain configuring every option via the command line will complicate this tutorial too much so I will just touch on a couple of basics. I link below to the page that has all the settings that you’re able to set in the config XML (EXtensible Markup Language) file.
- If you want to setup preferences for Raspberry Pi BOINC in the command line, then you can edit the config file be running the following command.
sudo nano /var/lib/boinc-client/cc_config.xml
- If you will find that this file is usually pretty empty. To find out all the options that you can add be sure to check out the client configuration page at the BOINC wiki website.
If you make edits to the config file, then make sure you run the following command.
Via the Manager
If you’re using the manager and would like to change things such as the running conditions, then go to tools and then select computing preferences. Basically all these settings are self-explanatory so I’ll let you decide the best settings for you.
Now these might be a bit underwhelming so if you’re more of a power user then you can change it to a more advanced view. To do this go up to view and then simply select advanced view.
As you can see the advanced view has a lot more tabs. I will just quickly go through what each of them contain.
This screen contains news from any of the projects you’re currently running. For example, SETI@Home will provide you with any relevant news to the SETI program or similar programs. The more projects you run the more news you’re likely to have here.
This screen contains all the projects that you are currently running. In here you can control projects to a certain degree. For example, you can suspend projects or request that you no longer receive new tasks for that project. You can also remove, update and edit properties of any given project.
The tasks screen shows you all the current tasks on the Pi. You can suspend, abort and edit the properties of any given task. As you can also see in the image below you’re given stats such as progress, time elapsed, estimated time remaining, running status, deadline and other useful information.
This screen displays all the current downloads and uploads that are ready to start, completed or currently in progress. You can abort the transfers or suspend if you don’t wish for something to be sent or received.
This screen shows you all the statistics related to your projects progress. The value on the left represents the credits received and the values on the bottom are the dates.
To quickly explain for anyone who doesn’t know BOINC credits is a way of tracking the amount of CPU time a user has contributed to any given project. It helps prevent cheating by validating the project first. After validation you are rewarded credits.
Disk shows you how much room is being taken up by BOINC and other programs. It also shows the amount of available free space on the device. This can be helpful if you’re running out of room or have limited space on the device you’re using.
There are of course even more settings in the menu that will satisfy any power user. You will find that computing preference menu I touched on earlier is also expanded allowing you to go into even more detail on how things should be run. If you’re craving more information on the advanced view you can find it here.
Overall BOINC is a great software package that you should certainly check out if you want to help process data to help cure diseases, search for extra-terrestrial intelligence, study global warming and much more then this is for you. This is a project that I will certainly leave running on one my spare Pi’s just like I still have the Raspberry Pi ADS-B flight tracker running.
You can see my current statistics below!
If there is a project that is unable to be run on the Raspberry Pi then you will find that it’s likely to be available for Windows, MAC and x86 versions of Linux.
I hope you now have the Raspberry Pi BOINC up and running with little to no problems. If you have come across any problems, want to leave feedback or anything else then feel free to drop a comment below.