This is a prototype I completed last year, but have been working closely with Make Magazine and Radioshack to create this great step by step guide for their Weekend Project Campaign. Check out the guide here, and the amazingly awesome video below:
First off, I know this post is a little late in the game as it is becoming less profitable for amateurs to mine Bitcoins, and that there are more efficient ways to go about this. But I am writing this anyways for posterity’s sake as I know for a fact there are people out there who have idle Raspberry Pis and are looking for a project. I’m sure there are also others like myself who are just looking to learn more about cryptocurrencies. To get started, here is our shopping list (if you are reading this, you probably already own some of these items):
|1||Micro USB cable||$5.49|
|1||ASICMiner Erupter USB 336MH/s Sapphire Bitcoin Miner||$10.99|
|1||Powered USB Hub**||$25.00|
|1||SD Card (class 4 and 2gb minimum)||$7.49|
|1||USB Fan (The mining devices run hot)||$8.43|
*Prices are subject to change
**The Pi alone can not power one of these miners, a Powered USB HUB is mandatory to mine bitcoin.
Before we setup the Mining software on the Pi we need to setup a bitcoin wallet where we will store the credit from the mining. There are countless options(Software, Web, Mobile) when it comes to setting up a bitcoin wallet. I’ve listed a few below but there are many more and each method has its own risks, luckily bitcoin.org has a great writeup on how to choose a wallet.
Currently the app store does not allow any bitcoin wallet applications.
Bitcoin Pooled Mining is the best way to get started mining. Pooled Mining allows multiple users to work together to “crack” a single bitcoin and then share the benefits fairly. Due to the competitive nature of mining, if you tried to mine on your own it could be a long time before you successfully mined anything. Pooled Mining is a nice way to receive smaller and more regular payouts instead. For people with slower rigs, pooled mining might be the only way you ever earn bitcoins.
The setup for both pools is straight forward. You create a username, password, and then worker credentials(for each mining device). You also add the bitcoin wallet address you created above to your pool so you receive bitcoin payments when you hit the pool’s payout thresholds (usually around .01 BTC). It’s also recommended you sign up for multiple pools in case one experiences technical difficulties, the software we are about to install will switch if one goes down.
Installing Mine Peon the rPi
Now that we have a bitcoin wallet and have joined a mining pool, Neil Fincham and his project Mine Peon makes getting the software running on the rPi quite easy. Mine Peon is an ARM Mining Platform that is built specifically for Raspberry Pi. It is built on Arch Linux and uses the popular cgminer and bfgminer for the heavy lifting. To get started, you simply download the latest image here and burn it to your SD card.
If you are using Windows to flash your SD Card, I recommend using Win32DiskImager. This tool can also be used after our initial setup to create an image of our finalized implementation(very useful as a backup).
For other operating systems, you can find a handy guide on flashing SD cards from eLinux.org here.
After the image is flashed, you can boot your device. The first boot takes about a minute as it needs to generate the SSH keys, but future boots take only about 10 seconds. Use your router or keyboard/video/mouse to find out the IP address of the rPi. The default username and password for SSH and for the WebUI are:
The best part about Mine Peon is that it automatically supports the USB mining devices, so you can be up and running in a few minutes without having to worry about drivers/compatability issues. There are even handy graphs to check your stats!
For Further information on Mine Peon check out their installation guide here.
Are you going to get rich quick using the Raspberry Pi for bitcoin mining? Of course not. This tutorial was never meant to give that impression. But, could you potential recoup your investment costs and perhaps end up a couple bucks ahead after 6-12 months? Definitely possible!
PS – If you have any questions about earning potential, profitability, or just basic setup, just add a comment below and I’d be happy to help! And if you get your rPi working and mining Bitcoin – Feel free to send a tip to my blog’s BTC address:
Thanks for reading!
I am writing this quick post as I recently had a very difficult time getting the Sierra Wireless 250u 3G USB modem from Sprint working on my Raspberry Pi. I also had seen anyone else on the web or forums having success with this combination. It turns out my main issue was that I was not using a powered USB hub. The Raspberry Pi’s only output about 100mA out of their USB ports and the 3G modem requires much more than that.
After I started using a powered USB hub, the configuration was straight forward. I am using the Wheezy version of Raspbian as my OS. This Belkin 7 Port Hub works out of the box.
The first thing I needed to do was check to make sure my device was recognized.
You should get a print out similar to this,
The important line we are looking for is:
Bus 001 Device 010: ID 1199:0301 Sierra Wireless, Inc.
Now that we have verified that the device is being recognized by the rPi, we need to install our dialer, WvDial. WvDial is a Point-to-Point Protocol dialer, it will enable a modem and start pppd in order to connect to the Internet.
sudo apt-get install wvdial
Then, edit the configuration file:
sudo nano /etc/wvdial.conf
I replace the entire contents of my file with the following:
Modem = /dev/ttyUSB0
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = USB Modem
Phone = #777
Username = ''
Password = ''
Carrier Check = no
Stupid Mode = 1
Now, test the connection:
A succesful connection looks like this:
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Jul 11 18:46:50 2013
--> Pid of pppd: 3395
--> Using interface ppp0
--> local IP address xxx.xxx.xxx.xxx
--> remote IP address xx.x.xx.xxx
--> primary DNS address xx.x.xxx.x
--> secondary DNS address xx.xx.33.x
There is a manual from Sprint located here if you have any troubles connecting, or just comment on the blog and I’d be happy to help debug with you. Thanks for reading.