With Bitcoins trading at almost $50,000 per bitcoin, perhaps it is finally time for me to get into the cryptocurrency game? Instead of buying bitcoins, could I use my Raspberry Pi to mine for bitcoins instead?
What is Cryptocurrency mining?
Crypto mining is the digital version of mining for gold, combining performing complicated calculations and pure luck (being the first to complete the calculation) with your computer. Mining is essential to cryptocurrencies in order to maintain their distributed ledger, aka Blockchain.
While Bitcoin is the most well-known form of cryptocurrency, it’s hardly the only game in town. All forms of cryptocurrency use blockchains to maintain the validity of each transaction and prevent someone from fraudulently spending their coins more than once.
Is Raspberry Pi Bitcoin mining profitable in 2020?
My initial research showed that mining for bitcoins with any consumer grade computer is not profitable when factoring in the cost of electricity and hardware. Most bitcoin mining is now done on ASIC Bitcoin Miners; hobbyists and individuals can find limited success by joining a mining pool, harnessing the power of a group of distributed computers. What if we joined a mining pool, used solar panels to power our Pi, and ‘wrote-off’ the cost of our hardware? Bitcoin mining is an extremely competitive venture with too many other miners, increasing difficulty levels, and lower rewards for miners.
Despite this gloom and doom news, I decided to forge ahead with this project and set my sights on alternative cryptocurrencies. As of the writing of this article, there are over six thousand alternative cryptocurrencies traded today.
Individual cryptocurrency mining was out of the question since we are using a Raspberry Pi and not an ASIC Bitcoin Miner. I looked at several mining pool software groups I could join; most had options for Windows and MacOS; there were no mining pools with support for Raspberry Pi. Raspberry Pi is not supported by Linux miner software due to its ARM Architecture. Supported Linux mining software is based on x86 processors found in typical PCs.
Disclaimer: This article is presented as an educational opportunity to spark interest in learning more about blockchain and cryptocurrency, and not necessarily to generate cryptocurrency. The methods described in this article are hacks and not officially supported. The easier and faster method is to download and install the free software associated with the mining pool of your choice on your PC.
What You’ll Need for this Project
- Raspberry Pi 4 or Raspberry Pi 3
- 8 GB (or larger) microSD card (see best Raspberry Pi microSD cards) with a fresh install of Raspberry Pi Lite OS or Raspberry Pi OS with Desktop.
- Power supply/Keyboard/Mouse/Monitor/HDMI Cable (for your Raspberry Pi)
- Optional (Recommended): Heatsinks and fan for your Raspberry Pi
- Optional: Solar Panel Power Bank with USB-C
- Optional: Raspberry Pi Cluster Case with Heatsinks and Fans
This tutorial is based on terminal commands. If you are not familiar with terminal commands on your Raspberry Pi, we highly recommend reviewing 25+ Linux Commands Raspberry Pi Users Need to Know first
How to Mine for Cryptocurrency on Raspberry Pi
We will start by creating our account with Minergate, a cryptocurrency mining pool with 3.5 million users worldwide for Bitcoin Gold, Zcash, Ethereum, Ethereum Classic, and Monero. This tutorial is specific to mining Monero as it was the only cryptocurrency I had any level of success with.
3. If you are using Raspberry Pi OS with Desktop, open a Terminal, or press Ctrl-T. If you are using Raspberry Pi Lite, login as you would normally.
4. Once in your terminal, run the following updates and install the necessary dependencies:
sudo apt-get update && sudo apt-get upgrade -y sudo apt install git automake autoconf libcurl4-openssl-dev libjansson-dev libssl-dev libgmp-dev cd cpuminer-multi
5. Now, let’s compile the mining code with the following three commands. This step will take a couple of minutes on a Raspberry Pi 4.
sudo ./autogen.sh sudo ./configure sudo ./build.sh
6. After building and configuring our mining software on our Raspberry Pi, let’s start mining for Monero! Enter the following terminal command to start the miner, replacing YOUR_EMAIL with the email address you used to signup for your Minergate account.
./cpuminer -a cryptonight -o stratum+tcp://xmr.pool.minergate.com:45700 -u YOUR_EMAIL
You should see the mining software start and hopefully see a few shares ‘accepted’ with ‘yes!’
7. Let’s check your Minergate Dashboard by logging into https://minergate.com/internal. You can do this on a Chromium browser if using Raspberry Pi Desktop, or on your PC. Scroll down your dashboard until you see Monero. If everything is working, your Monero Status will indicate ONLINE. Congratulations! You’re now mining for Monero!
How to Start Raspberry Pi Crypto Mining on Boot
To automatically start our cryptocurrency miner on boot on our Raspberry Pi, we’ll use the Crontab method.
If you haven’t set the crontab previously, you’ll see the response “no crontab for pi, Select an editor.”
1. Type ‘1’ and hit Enter.
2. This will open a new crontab file, arrow down to the bottom of your crontab file and enter the command below, replacing YOUR_EMAIL, with the email address you used when creating your Minergate account
@reboot sudo /cpuminer-multi/cpuminer -a cryptonight -o stratum+tcp://xmr.pool.minergate.com:45700 -u YOUR_EMAIL
4. Press Ctrl-X, and y to save your crontab.
5. Now reboot your Pi by typing ‘sudo reboot’ in your Terminal.
How much Monero did I mine with Raspberry Pi?
My Raspberry Pi 4 calculated 357 good shares in about 8 hours of run time. Miners are rewarded for good shares. Bad Shares are calculations where I came up with the right answer, but my Pi produced the results slower than another computer. Miners only get paid when they submit the correct answer first. Invalid shares are the worst as a miner is penalized for every invalid share due to possible fraudulent activity. I was a bit worried when my first 4 shares were marked as invalid shares.
357 good shares = 0.000001410642 Monero = 0.00015569 USD
I made the equivalent of 1/100th of a penny in 8 hours.
In order to withdraw my Monero, I needed a minimum of 0.05 Monero, approximately equal to $5.811 USD. (Exchange rate at the time of the writing of this article.) At a pace of accumulating 0.000001410642 Monero per 8 hours, it would take me 3,762 years to reach the minimum withdrawal threshold of 0.05 Monero.
Lessons Learned about Raspberry Pi Crypto mining
As stated at the beginning of this article, the purpose of this exercise was to learn about cryptocurrency and not to make a profit.
- Cryptocurrency mining rewards are calculated by shares and hash rates. My hash rate varied from 1.6 H/s to 33.3 H/s. The average hash rate for the pool was 10.27 MH/s, approximately 3 million times my Pi’s hash rate. For reference, 1 MH/s is 1,000,000 hashes per second.
- The mining pool company (in this case Minergate), also charges a small commission on your transactions. You have the choice of luck based commission (higher risk, higher reward), or Pay Per Share (higher commission for Minergate, but less risk).
- At various points during the writing of this article, my Pi had numerous ‘time out’ errors and ‘send_line failed.’ Sometimes a reboot of the Pi would help, and sometimes, the miner would eventually start working again without human intervention.
- While the Raspberry Pi was not a ‘money maker’ in the crypto mining game, the excitement factor of watching my Pi successfully calculate and accumulate good shares was enough for me.
- Is there something more productive I could do with my spare Raspberry Pis? If you’re interested in donating your spare computing power to finding potential treatments for COVID-19, check out World Community Grid. With World Community Grid, you can download and install a software package on your Raspberry Pi that will run a simulation to help predict the effectiveness of a chemical compound as a possible treatment for COVID-19. Check out our recent article about World Community Grid here.