Building a Raspberry Pi ADS-B Ground Station

In this post I’ll show you how to build a Raspberry Pi powered ADS-B ground station receiver that can track aircraft over 100 miles away using a small USB software-defined radio dongle.

This ground station is very easy, and inexpensive to build and it will open your eyes to some of the amazing uses for SDR.

Plus, by feeding data from your ground station to FlightAware’s aircraft tracking network you will receive a free enterprise account which normally would cost $90 per month.

Raspberry Pi ADS-B Ground Station Receiver

What is ADS-B?

ADS-B (automatic dependent surveillance-broadcast) is a system which allows equipped aircraft to transmit their callsign, altitude, heading, GPS position, squawk number, and speed.

The ADS-B signal is broadcast at 1090MHz and can be received by a receiver with line of sight to the sending aircraft.  The range of these signals is typically 100 – 200 miles depending on aircraft altitude and the location of the ground station antenna.

ADS-B is also unencrypted and unauthenticated which means anyone with a receiver can easily receive, and decode the information.

Under FAA regulation 14 CFR 91.227 aircraft must be equipped with ADS-B avionics equipment by January 1st, 2020 in order to fly in the majority of US airspace.

Software Defined Radio

The key piece of technology which makes this project possible is a small USB dongle made by NooElec that contains the R820T2 chip made by Rafael Micro.  This chip is an IC radio frequency tuner with an impressive range of approximately 25MHz to 1750MHz!  The frequency of the tuner can be controlled through software, hence the name software defined radio.

These dongles are essentially a modified version of a USB DVB-T receiver sold for receiving over the air TV signals in Europe.

Besides receiving ADS-B transmissions these dongles can be used for everything from exploring the RF spectrum to receiving images from NOA weather satellites.

RTLSDR on Reddit is a great source for more information and ideas for additional projects.  You may also want to check out The Hobbyist’s Guide to the RTL-SDR.

NESDR Mini 2

Benefits of Operating a Ground Station

Whether you’re an aviation enthusiast or just someone interested in identifying the aircraft flying over your house there are several perks to building an ADS-B ground station receiver.

By sharing your ADS-B data with FlightAware you will receive a free Enterprise Account (normally $90/month).  Enterprise users gain access to live (non delayed) data, as well as historical flight data, alerts, and many other benefits

Raspberry Pi ADS-B Ground Station Parts List

The list below contains all of the parts you will need to build your own ADS-B ground station receiver.

Required ItemsQuantity
Raspberry Pi Model 2 B1
NooElec NESDR Mini 2 USB RTL-SDR Receiver1
Sandisk Ultra 16GB Micro SDHC Card1
Ethernet Cable1
 Micro USB Power Supply Wall Charger (or a nearby USB port)1


I’ve found that cheap telescoping antenna included with the NooElec dongle performs surprisingly well for receiving ADS-B transmissions, my station can track planes up to about 100 miles away depending on their altitude.

If you want to get even better range you can purchase an upgraded antenna made specially for 1090MHz transmissions.

Optional UpgradesQuantity
Edimax Wi-Fi USB Adapter1
 1090MHz ADS-B Antenna (26in)1
 N female to MCX male right angle adapter1
 HABAmp 1090Mhz/ADS-B Filter & Preamp For Dongles1


Mounting the antenna outside will further enhance the range for your ground station.

User Spfoamer on Reddit built a self contained outdoor receiver using a waterproof enclosure, quater wave ground plane antenna, and a 1090 MHz bandpass filter.

Spfoamer's outdoor ADS-B ground station
Spfoamer’s outdoor ADS-B ground station

Step 1:  Load the PiAware Image on the SD Card

The quickest way to get started is to download the PiAware disk image based on Raspbian that contains all of the required software and drivers.

To image the SD card I recommend using Win32 Disk Imager for Windows users, and RPI-sd card builder for Mac users.

Load PiAware Image

Step 2:  Connect the Components and Boot the Pi

Insert the imaged SD card into your Raspberry Pi and connect the NooElec SDR dongle, micro USB power cable, and ethernet cable.

Connect your antenna of choice to the MCX connector on the NESDR dongle.

Once the Pi finishings booting it will automatically start the piaware service , connect to the internet, and begin feeding ADS-B data to FlightAware.

Pi SD Card

Step 3:  Claim your Ground Station

To claim your FlightAware ADS-B ground station you will need to register for an account.  After completing the registration process you can log in and claim your station.

Once you’ve successfully claimed your station FlightAware will begin processing the ADS-B data you send them and your account will automatically be upgraded to an enterprise subscriber.

FlightAware Account

Troubleshooting Steps

It may take about 10 minutes before your Pi station is available to claim on the FlightAware website.  If it doesn’t show up on the site there are few things you should check.

  • Make sure the Pi has an active internet connection (via ethernet cable or wireless)
  • Check the status of the piaware service to make sure it is running (service piaware status)
  • Scan the USB bus to see if the NooElec dongle is detected (lsusb | grep DVB-T)
  • Run the piaware-status command (as root)

PiAware Troubleshooting

Viewing the Ground Station Statistics

Once you ground station has been claimed FlightAware will begin collecting statistics for all of the data it uploads to the tracking network.  You can view your ADS-B collection stats from your FlightAware account.   After about 24 hours of operation you’ll start to get a good view of the range of your ground station.

My ADS-B station in Kansas City identifies on average about 300 different aircraft per day within my range.  Of these aircraft 90% are less than 60 miles away and about 10% are within 60 – 120 miles.

The dashboard also keeps track of the number of aircraft seen, and positions reported on an hourly and daily basis. FlightAware Ground Station Statistics

The PiAware service running on the Pi can also be accessed directly through the web server running on port 8080.  On this page you can view all of the aircraft which are currently being tracked by the ground station.

Clicking on the individual aircraft on the map will display detailed information about the flight including a link to the flight details on the FlightAware website.

PiAware Web Interface

The easiest way to find the local IP address of your PiAware station is to log into your account look in the site information section for your ADS-B station.

FlightAware ADS-B Site Information

Closing Thoughts

I was quite surprised by the range of ADS-B reception I was able to obtain with the NooElec dongle and a tiny antenna located in a spare bedroom of my home.

Next I plan to look into the feasibility of mounting a better antenna either outside, or in my attic to improve my signal reception.

I’m also quite intrigued by Simon Aubury’s Pi Plane Project which integrates a servo mounted camera for producing video footage of aircraft that travel within sight.

If you’ve built an ADS-B station leave a note in the comments and let me know how it’s performing.


Read More

Time Warner’s New Enhanced DVR the Arris DCX3600-M

Time Warner Cable recently started rolling out their new enhanced DVR service in Kansas City and many other markets across the country.  In this post I’ll be sharing some information about the hardware Time Warner is for this new service, the Arris DCX3600-M advanced video gateway.


Upgrading to Enhanced DVR

Once I heard this box was starting to be deployed in Kansas City I headed down to one of Time Warner’s retail stores and requested to exchange my DVR for the new models.

I didn’t have any issues obtaining the one of the new units but I did discover that the enhanced DVR service was going to cost me an additional $3 /month per box on my bill.

Currently Time Warner charges $12.99/month for each standard DVR, and $15.99/month for the Enhanced DVRs.  More details on Time Warner Cable’s pricing can be found on their retail price notification document.

Known Issues with the DCX3600-M on Time Warner Cable

Below are known issues with the DCX3600-M which have either been observed by myself or reported by other users.

  • Composite Audio Output RCA outputs do not support stereo (only mono)
  • Picture in Picture (PIP) feature does not work

Hardware Specifications

  • 6 digital tuners (BCM3128)
  • 1 TB hard drive
  • Built in Docsis 3.0 modem with channel bonding (8 x 4)
  • Multiroom DVR support (MoCA 2.0)
  •  Dolby Digital Plus 7.1 support
  • 3D capable

The Arris DCX3600-M boasts some fairly impressive hardware specs, most notable are the 6 digital tuners, and the massive 1TB internal hard drive.

With 6 tuners you can record up to 6 different channels at the same time and still watch a previously recorded show.  Or you could record 5 shows at the same time while watching live TV on the 6th tuner.

Input Output Ports

The Arris DCX3600 provides a fairly standard assortment of inputs and outputs, very similar to the Samsung SMT-H3270, and the Cisco 8742HDC, although it does not have a Firewire port.

  • Cable in (RF Coaxial)
  • Component out (YPbPr)
  • Composite out
  • HDMI out
  • SPDIF optical audio out
  • USB 2.0 (2 ports)
  • RJ45 ethernet (10/100/1000Mpbs)
  • eSATA
  • IR input
  • DC power input (12 volt)

For more detailed port specifications consult the DCX3600-M users manual.

DCX3600-M Back

Active Cooling

As you can see from the photo above the Arris hardware designers opted to add a fan to the DCX3600 to keep it cool.  The fan appears to vary in speed based on the temperature of the box.

The fan is very quiet, the only time I’ve been able to even hear it is when the fan runs at max speed while the box it booting up.  During normal use I’m not able to hear any fan noise whatsoever.

The fan is a nice addition considering the numerous problems with overheating some of the previous Time Warner cable boxes have experienced.

Internal Hard Drive

The DCX3600 utilizes the Western Digital WD10EURX 1TB SATA hard drive.  This model uses WD GreenPower technology which is designed to provide power conservation and cool operating temperatures.

Western Digital classifies this drive as an AV class storage device which is specifically designed for video recording and playback in a 24×7 always on environment.

According to WD’s specs for this drive it can deliver continuous playback of up to twelve HD streams at the same time.  This feature becomes more important if you are using Time Warner’s multi room DVR service.

In a whole home DVR configuration the DCX3600-M would function as the master box and other slave boxes would communicate to the master over coax using MoCA technology.

On DVR / HDD status page (d13) you can view the SMART diagnostics information for the internal hard drive which is useful to determine if the hard drive in your DVR is about to fail.


Front Panel Display

The front panel of this DVR has a very clean, minimalist design.

The power button is located on the lower left side of the box, the button is illuminated with a soft blue LED while the unit is turned on.  Unlike many of Time Warner’s previous DVRs the DCX3600 is substantially dimmer and can coexist in your bedroom without keeping you up all night.

The clock is brighter than the power button but the clock can be turned off by pressing the settings button on the remote then going to display \ clock options.

The power button goes dark when the DVR is turned off so with the clock disabled the unit is almost completely black (unless a show is being recorded).

DCX3600-M - Powered On

AC Power Adapter

The DCX3600-M does not have an integrated power supply and requires the use of an external power brick to provide the 12 volts DC power required by the cable box.

I find these external power bricks to be a bit annoying since they add extra bulk and wires to my home theater area but these seem to be the trend in most newer boxes.

The power adapter is made by Delta Electronics, model number EADP-40MB.  The adapters accepts an input voltage of 100-240 volts and produces an output of 12 volts DC at 3 amps.

DCX3600-M Power Adapter

Diagnostics Menu

I was able to access the diagnostics menu on the DCX3600-M by holding down the select key for about 10 seconds then pressing the up key.  This seems to be standard on all Time Warner Cable boxes using the OCAP software.

From the main diagnostics menu you can access the extended diagnostics page shown below.  In the extended diagnostics you can access tons of information on the status, and current configuration of the cable box.

DCX3600-M - Diagnostics Screen

The interface / port status page is useful to see which ports on the cable box have been enabled or disabled by Time Warner.

Interestingly I couldn’t find any information relating to the status of the eSATA port.  At some point in the future I may attempt to test the port to see if the box will recognize an external drive but with a 1TB hard drive built in I highly doubt I will run out of storage space any time in the near future.

DCX3600-M - Diagnostics Port Status

Should you upgrade to Enhanced DVR?

There are three main groups of people who will benefit most from upgrading to Time Warner’s enhanced DVR service, if you fall into one or more of these categories then you should definitely consider upgrading.

  • People who constantly run into issues where 2 tuners isn’t enough.
  • Whole house DVR subscribers
  • Users that are constantly out of storage space on their DVR.

If you don’t fit into one of the above categories then you probably won’t receive much benefit from making the switch.  The DCX3600-M is a great cable box but it isn’t a revolutionary  piece of equipment that you can’t live without.

This may change in the future as Time Warner releases software updates that take advantage of more features that this new DVR has to offer.

Read More

How to Enable SPDY on Nginx Using Ubuntu 14.04

Enabling SPDY is a relatively simple way to improve the performance of Nginx and reduce the time it takes for clients to load pages from a web server.

SPDY is a web transport protocol developed by Google that reduces page load times using stream multiplexing, prioritized requests, and HTTP header compression.

SPDY is already well supported by most modern web browsers including Chrome, Firefox, and even Internet Explorer so nearly every client can take advantage of the increase in speed.

In this post you’ll find the steps I used to configure Nginx to use SPDY on my Ubuntu 14.04 server running in the Linode Cloud.

Step 1 – Enable SSL support

In order to fully take advantage of the benefits provided by SPDY you will need to have SSL enabled.  Linode has a great guide that explains how to enable SSL on Nginx.

I purchased a domain validated SSL certificate from NameCheap for $9/year which is extremely cheap for a commercial SSL certificate.

The main benefit to buying a signed SSL certified from a trusted vendor is the green padlock users will see in their address bar when visiting your site.

SSL Padlock


On my web server I leave port 80 enabled and redirect incoming traffic on that port over to 443 (HTTPS).  I do this using the following block of code in my /etc/nginx/sites-available/ file.

server {

location / {
rewrite ^ https://$server_name$request_uri permanent;


Step 2 – Upgrade Nginx to the latest version

The version of Nginx in the Ubuntu repositories is fairly old (1.4.6 at the time of this post).  For the best SPDY support I highly recommend upgrading the latest version which is currently 1.9.1-1.

Fortunately the Nginx team maintains their own Ubuntu repository which contains the latest versions.  Below are the steps to utilize their repositories.

Before doing so I strongly recommend making a full backup of your server in case things go wrong.

You should also make a quick copy of the contents of /etc/nginx/* so you can reference your existing config files later if needed.

Add the Nginx team’s PGP signing keys.

# curl | apt-key add -

Add the repositories.

# echo -e "deb `lsb_release -cs` nginx\ndeb-src `lsb_release -cs` nginx" > /etc/apt/sources.list.d/nginx.list

Update the apt sources.

# apt-get update

At this point I found that apt-get upgrade (or dist-upgrade) wouldn’t allow me to upgrade the package. I also found that apt-get install nginx would give me the following error message.

trying to overwrite '/etc/default/nginx', which is also in package nginx-common 1.4.6-1ubuntu3.2
E: Sub-process /usr/bin/dpkg returned an error code (1)

The issue seems to be that the package in the Ubuntu repositories is called nginx-common and the package is just called Nginx.

The easiest solution I found was to remove the current nginx-common package and reinstall the new one.

In my case this wasn’t nearly as troublesome as it might sound, I only had to modify one config line to get everything up and running again but your experience may vary.

Again make sure you backup first.  I used the manual snapshot feature offered through Linode to quickly grab the state of my server before proceeding.

# apt-get remove nginx-common
# apt-get install nginx

The installer will ask you if you want to replace ‘/etc/nginx.conf’, I went ahead and let the installer replace it and I only had to add one line but you may want to just preserve your existing file.

include /etc/nginx/sites-enabled/*;

(This is where having a backup of the original config file comes in handy)

Step 3 – Verify that Nginx is compiled with SPDY support

At this point you should do a quick check to confirm that the version of Nginx installed has support for the SPDY module.

nginx -V

If support for SPDY is present you will see –with-http_spdy_module in the output.

Step 4 – Edit the config file for your site to enable SPDY

To turn on the SPDY module you will need to modify the listen line in the server block of the configuration file for your site.  In my case this was /etc/nginx/sites-available/

My listen line looked like this before the change:

listen 443 ssl;

Simply add spdy to this line to enable the module

listen 443 ssl spdy;

Step 5 – Reload Nginx to apply the changes

In order for Nginx to pick up the config file changes you need to either reload, or restart the service.
#service nginx reload

Step 6 – Verify that SPDY is enabled

The easiest way to confirm if you have correctly configured SPDY is to visit  This site will connect to your site and analyze the connection to determine if SPDY is enabled and properly configured.

It will also offer some tips to tweak your settings to take full advantage of the protocol.


Alternate verification method

I also discovered a plugin for Chrome called HTTP/2 and SPDY indicator.

HTTP2 and SPDY indicator

This plugin adds an indicator to your address bar in the form of a lightning bolt that turns various different colors to indicate the level of SPDY or HTTP/2 support on a web site.

SPDY enabled

The future of SPDY

SPDY has laid down the framework for what will eventually become HTTP2.

Nginx has announced that they plan to implement support for HTTP2 by the end of 2015 so be sure to keep your copy of Nginx up to date in order to take advantage of support for these new features as they come out.

Read More

How to Control Power Outlets Wirelessly Using the Raspberry Pi

Eteckcity RF OutletIn this blog post you’ll find instructions for using a Raspberry Pi to wirelessly control Etekcity power outlets using 433MHz RF.

Ever year during Christmas time I find myself dealing with the hassle of turning the Christmas tree lights on and off.  This year I set out to find a solution I could use to automate this task.

While I could have just used one of those cheap light timers instead I wanted something I could control wirelessly using my smart phone.  The Belkin WeMo can be controlled over the web but I think they are way too expensive at nearly $40 per outlet!

While searching for alternative options I found a blog post by Tim Leland that explained how to hack the Eteckcity remote controlled outlets using a Raspberry Pi and a cheap $5 wireless transmitter and receiver kit.

This system is significantly cheaper than using WeMo outlets plus it can also easily be scaled to control more outlets.  As an added benefit of being controlled through the Pi outlets can be automated using cron jobs, scripts, or anything else you can dream up.

Parts List

Below is a listing of all of the hardware I used for this project.  If you plan to use the hard wired ethernet port on the Pi then you won’t need the wireless adapter.

The Pi cobbler is also optional but I find it makes wiring much simpler when using a solderless breadboard.

Raspberry Pi Model B1
Edimax Nano Wireless N USB Adapter1
Sandisk Ultra 16GB Micro SDHC Card With Adapter1
Etekcity 5 Pack Remote Control Outlet Switch1
SMAKN 433Mhz RF Transmitter and Receiver Kit1
Solderless Breadboard1
Raspberry Pi T Cobbler Breakout Kit1
Assorted Breadboard Jumper Wires1

Other Required Items:

  • Soldering iron
  • Solder
  • Wire strippers
  • 12″ strand of wire (for antenna)

Step 1:  Load a disk image on the SD card

If you’re starting from scratch with a fresh SD card then the first thing you need to do is load a disk image onto the card.  I usually load Raspbian since that’s what I’m familiar with it any other image should work fine.

If you prefer not to deal with loading a disk image you can also buy a preloaded memory card.

The quickest method I’ve found to load a disk image using Mac OS X is to use a program called ApplePi-Baker.  The program will automatically detect the SD card, unmount it and load an image file of your choice.

It can also quickly setup a card for NOOBS if that is what you prefer to use.


ApplePi Baker

For Windows users Win32DiskImager is a good program to use for loading disk images on memory cards.

Step 2:  Download and Build WiringPi

WiringPi is a prerequisite package required by RFSniffer and codesend.

The source files for the software can be pulled using git.

git clone git://

Execute the build script to compile the code.

cd wiringPi

To confirm that the build process was a success you can issue the following command.

gpio -v

You should see something similar to the output below.
gpio -v test

Finally you can issue the command below to confirm that wiringPi can read from the GPIO pins.

gpio readall

If successful you’ll see a listing for all of the gpio pins and their values like the one below.

gpio readall

Step 3:  Install Apache and PHP

The Apache web server is used to serve the toggle.php page which will provide a web interface for controlling the wireless outlets.

Use the command below to install Apache with the php modules.

sudo apt-get install apache2 php5 libapache2-mod-php5 -y

To confirm that Apache is working put the IP address of your Pi into your web browser, you should see the default Apache test page.

Apache Test Page

Step 4 – Solder an Antenna Wire to the Transmitter

Without an antenna the transmitters range is extremely limited, mine wasn’t able to reach outside the room without one.  I took Tim’s recommendation and used a 12″ piece of wire from the inside of a cat 5 ethernet cable.

Solder the wire to the antenna pad on the upper right corner of the transmitter PCB.

433MHz Transmitter Module

Step 5:  Connect the RF Transmitter and Receiver Modules to the Pi

Using the solderless breadboard and the jumper wires connect the transmitter and receiver modules to the Pi as listed below.

The silk screen labels on the PCB for each module should match what is listed below.  If it doesn’t match you may have a different revision with a different pinout, in this case you may need to adjust the connections to match your specific modules.

The transmitter module is the smaller module which has 3 pins, VCC, data, and ground.

The receiver is the larger of the two modules with 4 pins, VCC, 2 data pins, and ground.  Only one of the data pins on the receiver is used for this project.

SMAKN 433MHz Transmitter and Receiver Modules

Transmitter Module

  • DATA (left pin) -> GPIO #17
  • VCC (center pin) -> +5VDC
  • GND (right pin) -> Ground

Receiver Module

  • VCC (left pin) -> +5VDC
  • DATA (2nd pin from left) -> GPIO 21/27
  • GND (far right pin) -> Ground

If you are using a solderless breadboard and a Pi breakout cable your setup will probably look something like mine below.

433MHz Transmitter and Receiver With Pi

Step 6:  Use RFSniffer to Find the Outlet Control Codes

In this step you’ll use a program called RFSniffer and the 433MHz wireless receiver to read the on and off codes for each pair of buttons.

First pull down a copy of Tim’s rfoutlet code from GitHub.  Alternatively you can download the source for 433Utils and compile the code yourself.

git clone /var/www/rfoutlet

Set the appropriate ownership and permissions on the codesend executable.

sudo chown root.root /var/www/rfoutlet/codesend
sudo chmod 4755 /var/www/rfoutlet/codesend

To sniff the codes run the RFSniffer program.

sudo /var/www/rfoutlet/RFSniffer

You won’t see any output on the console when you run the program but if everything is connected properly you should see output after pressing some of the buttons on your remote.

Each press of a button on the remote should produce something like this:

Received 21811
Received pulse 192

What you’re looking for is the longer number, not the short 3 digit pulse.  In the example above 21811 would be the code you’re looking for.  Record the code for each of the on and off buttons on the remote.

Here are a few of my notes about reading the codes:

  1. The receiver is not very sensitive so make sure you have the remote nearby when reading the codes.
  2. I found that sometimes I had to press a button multiple times before a code was received, it’s not a 100% reliable process.
  3. If it’s not working, double check the wiring of the receiver module (the longer board with 4 pins)
  4. For further troubleshooting try connecting an LED to the data pin of the receiver, it should blink when receiving data.

Step 7:  Update toggle.php with the Codes for Your Remote

Using your preferred text editor edit /var/www/rfoutlet/toggle.php with the codes you recorded in step 5.  You will also need to update $rfPath to point to the correct path which in my case was /var/www/rfoutlet/codesend.


Testing the Web Outlet Controls

At this point everything should be done and ready to be tested.  The php based web control page can be accessed by visiting the http://<your-pi-ip>/rfoutlet in your browser.

The on and off buttons on the page should function just as they would on your physical remote.

Screen Shot 2014-12-28 at 7.17.51 PM


If the buttons on the web page don’t work then try manually sending a code using the command line.

root@raspberrypi:/home/pi# /var/www/rfoutlet/codesend 21820
sending code[21820]

If sending a code manually works then the transmitter is functioning but there is an issue related to the web setup.  Make sure that you made the correct modifications to toggle.php, specifically the $rfPath variable is pointing to the correct path.

You can also check the apache server logs to see if there is a syntax error in the toggle.php file.

tail -100 /var/log/apache2/error.log

If the manual code send isn’t working then check to make sure the transmitter is wired properly.  You can also connect an LED to the data pin of the transmitter to confirm that it is receiving output from the Pi, it should blink when you send a code.

Additional Resources

In addition to Tim’s blog article Ninja Blocks has a very useful article about adding 433Mhz RF to your Pi.  Ninja Blocks also maintains the 433Utils code on github which may be helpful as well.

Read More

Rockminer R-Box - Mining

Mining for Bitcoins With the Rockminer R-Box ASIC Miner

In this post I’ll be sharing my recent experience mining Bitcoins with the Rockminer R-box Bitcoin miner.  The R-Box is a 32Gh/s Bitcoin miner based on ASICMiner’s 40nm BE200 ASIC chip.  This mining board utilizes 4 of the BE200 ASIC chips which are the 3rd generation of ASICs developed by ASICMiner and manufactured by TSMC.

R-Box Hardware Specs


ASIC Technology:  Four ASICMiner Generation 3 40nm BE200 chips

Hash Rate:  32Gh/s+ (overclockable)

Power Draw: 40 Watts (50+  watts if overclocked)

Power Connector: 2.5mm DC barrel jack

Cooling: Air cooled with built in Fan

Size: 3.54″ wide x 3.54″ long x 2.75″ high

Hardware Costs

Rockminer R-Box 32Gh/s Bitcoin Miner1$67.99
12 Volt 6 Amp Power Supply with 2.5mm Connector1$7.86

Buy on Amazon

Unboxing the R-Box

The R-Box comes packed in a simple white box with the Bitcoin logo on top.  The ASIC is well protected inside with foam padding on the top and bottom.

Rockminer R-Box

The R-Box miner itself is quite small measuring at only 3.5″w x 3.5″l x 2.75″h.  The board which holds the ASICs is sandwiched in between two heatsinks with a large fan on top.  Modular 3d printed mounts are available for users looking for a cool way to mount several of these miners in a small space.

On the back is a 2.5mm DC power connector and a mini USB port.  No documentation is included but Rockminer does provide a manual on their website.

Rockminer R-Box - Unboxed

Included with the R-Box is a short micro USB cable for connecting the miner to a computer, and a 2.5mm barrel power connector pigtail.  The R-Box doesn’t include an AC adapter which casual miners might find somewhat annoying.

Options for Powering the R-Box Miner

If you happen to have a 12 volt power supply lying around that can supply at least 6 amps you can cut the end of and solder on the pigtail included with the miner.

It’s perfectly fine to use a power adapter that supplies more than 6 amps since the miner will only draw the power it needs but it must supply exactly 12 volts DC.

Alternatively you could purchase an ATX breakout board which allows several pigtails to be connected to a standard ATX power supply.  If you intend to run multiple R-Box miners then a breakout board , or other custom solution might be the best option.

Another method for connecting the miners to an ATX power supply is to use a PCI-E 8-Pin to 2.5mm DC Barrel Plug adapter.  If you do use this method you will still need to wire up a switch , or short the power on pins of the ATX PSU connector.

Rockminer R-Box - 2.5mm barrel power pigtail

Initially I attempted to use a 12V 3 amp power supply but it simply didn’t provide enough current to power the miner.  When using the lower amperage supply the unit would power on and spin the fan but it would lose USB connectivity as soon as I launched CGminer.

Since I only have one R-Box I opted to simply purchase a 12 volt 6 amp AC adapter from Amazon.  This adapter already has a 2.5mm connector on the end and has the correct polarity (center pin positive) for the R-Box.  I haven’t had any issues using this power supply but it does have a tendency to get quite hot.

R-Box Power Supply






















Setting Up the R-Box Miner

The R-Box miner is quite simple to set up.  I had mine unboxed and mining in about 5 minutes.

Step 1 – Connect the power adapter to the R-Box

Step 2 – Use the included mini USB cable to connect the miner to a computer.

Step 3 –  Install the latest version of CGMiner and Zagdig

Step 4 – Create a batch file to launch CGminer

Step 5 – Run the batch file and start mining

The fan on the R-Box starts running as soon as the power supply is connected to the miner.  The red LED on the board also lights up to indicate that the board is receiving power.  There is also a blue LED that lights up when the miner is hashing.

Rockminer R-Box - Mining


Performance and Overclocking

By default the R-Box runs with a clock speed of 270MHz which produces a hash rate of 32Gh/s.  At this speed the miner runs at a very reasonable temperature of 37 degrees celsius.  I also found the hardware error rate to be very low at less than 1%.

R-Box CGMiner

The R-Box can safely be clocked up to 290MHz by adding the –rock-freq 290 parameter to your CGMiner batch file.  In order for this parameter to be recognized you must be running a current version of CGMiner.

Rockminer CGMiner Settings

With a clock rate of 290MHz I was able to achieve an average hash rate of 34Gh/s from the R-Box.  In additional to a higher power draw I also found that running the miner at 290MHz caused the hardware error rate to jump from <1% to 2%

R-Box Overclocked

The R-Box seems to run a couple degrees cooler if you rotate it so the fan blows horizontally instead of vertically.

R-Box Horizontal


Overall Impressions of the Rockminer R-Box

I’ve been quite impressed with the design and performance of the R-Box miner.  The R-Box is a very well built miner that is ideal for a hobbyist Bitcoin miner.  The R-Box runs very cool compared to many ASICs and yet is also nearly silent.  The large fan on top is able to provide a high amount of air flow without producing much noise at all.

It’s a minor annoyance that the miner doesn’t include an AC adapter but I suspect this is mostly a cost cutting measure.  I like the fact that they at least include a 2.5mm pigtail connector.

Based on the quality and ease of use of the R-Box I would definitely consider purchasing hardware from Rockminer in the future.

Read More

Dropcam Pro

Dropcam Pro Review – Wireless HD Video Surveillance Camera

Dropcam ProIn this post I’ll be sharing my experience with the Dropcam Pro, the top of the line wireless HD camera offered by Dropcam.

I’ve been using several Axis M1031-W wireless IP cameras to handle my home video surveillance needs for quite a while but they are starting to get old I’ve been looking to replace them with something that offers higher video quality and better features.

I looked into the original Dropcam a couple years ago but ultimately I decided to go with the Axis cameras instead.

Axis makes some solid IP cameras, in fact the early Dropcam Echo actually used Axis hardware.  Unfortunately Axis hasn’t released any new consumer IP cameras lately so I decided to start looking at other options.

After compiling a list of potential options the Dropcam Pro quickly became my top choice so I decided to buy one and test it out.

The Dropcam Pro currently sells for $199.99 on Amazon, the standard Dropcam is also available for $149.99.

Dropcam Pro Specs

The dropcam pro has some very respectable hardware specs.  Most notable is the wide 130 degree field of view which allows the camera to capture a much larger area within a single frame.  It also includes night vision with built in infrared illumination.

It does not have an ethernet port which means wifi is the only option for connectivity.

  • Field of View:  130 Degree Wide Angle
  • Zoom:  8x Digital
  • Lens: All Glass
  • Night Vision:  Yes (with infrared LEDs)
  • Audio:  Two way
  • Apps:  Mobile and Web
  • Wireless:  802.11b/g/n Dual Band (2.4GHz and 5.0GHz)
  • Video Quality:  720p HD (1280 x 720 at 30 frames/second with H.264 encoding )
  • Power:  Micro USB
  • Color Options:  Silver or Black

Unboxing The Dropcam Pro

The packing for the Dropcam is very clean,  simple, and attractive.  The box comes shrinkwrapped in plastic with an outer cardboard sleeve surrounding the main package.

Included Items:

  • Dropcam Pro HD Camera
  • Adjustable Aluminum Camera Stand
  • Wall mounting hardware (drywall anchors, screws, and wall mount plate)
  • 10-foot Micro USB cable
  • AC Adapter (USB power adapter)
  • Quick Start Guide

Dropcam Pro - Box

The first thing you’ll find inside is the Dropcam itself.  It ships with a small piece of protective plastic covering the camera lens.



Behind the Dropcam is the quick start guide, AC adapter, USB cable, and wall mount screws.



The Dropcam also comes with a wall mount plate which can be used with the included screws and drywall anchors to mount the camera directly to a wall.

Dropcam Pro - Wall Mount Plate

Installation and Setup

The setup process for the Dropcam is extremely simple and only takes a couple minutes to complete.  The software for the dropcam comes pre-loaded on the cameras internal storage, to access the software the camera needs to be connected to a computer using the included micro USB cable.


Once connected the camera will be listed in My Computer as a storage device.  If autorun is enabled the setup program will start automatically. The installation program can be launched manually by running the Setup Dropcam.exe file located on the cameras storage.

The camera includes both the Windows, and Mac versions of the installation software.

Dropcam Pro - Setup Software

The setup process consists of 3 steps, creating a Dropcam account, configuring the wireless network settings, and placing the camera in the desired location.

Dropcam Pro - Software Getting Started

Since the Dropcam is a cloud based camera the online account is required to view live video, as well as historical video if you subscribe to a CVR plan.

Dropcam Pro - Create Account

Next the software will prompt you to connect your camera to a wireless network.  The Dropcam only supports recording video to the cloud via a wireless connection since it does not have an ethernet port.

Dropcam Pro - Select Wi-Fi Network

After the camera is connected to the wifi network it can be disconnected from the computer and placed in the desired location.  The software will automatically reconnect to the wireless network once it finishes booting.

Dropcam Pro - Camera Placement

After the camera is connected to the cloud it will begin streaming video.

Web Interface

To view any video from the camera you must sign into the Dropcam website.  The camera does not have a local interface to view via the LAN so you must have an internet connection available at the location you plan to use the camera.

From the web interface you can view live streaming video , or historical footage if you purchase an optional CVR (Cloud video recording) plan.  The timeline below the video allows CVR users to jump to any point on the time line (up to 30 days) and view recorded video.

Dropcam Pro - Video















Overall I like the Dropcams web interface but one feature that seemed to be missing was the ability to quickly grab a still image snapshot.

Creating Clips

The web interface also provides an easy method to create and share video clip, although you’ll need a CVR plan to take advantage of this feature.  Dropcam allows you to store up to 3 hours worth of video clips in your online account.

Dropcam Saved Clips

Clips can also be downloaded, or shared via email or social media.

Dropcam Pro Download Clip

The clip tool can also be used to easily create a time lapse video.  While this isn’t a very practical feature it is a pretty cool novelty function.

Dropcam Create Time Lapse

Motion Detection and Activity Recognition

Dropcams cloud software also supports activity recognition which can categorize common activities on the timeline for easier reviewing.  Unfortunately this feature doesn’t work very well when the camera is monitoring outdoor environments with lots of activity.  When set to monitor the area in front of my home I found it to be very inconsistent when trying to identify anything.

Overall the motion detection features leave a lot to be desired.  Dropcam lacks the ability to set a motion detection window , or specific area of the video frame to be monitored or excluded.  I found the lack of this feature to be very annoying especially when the camera was monitoring my driveway which borders a busy street.

Email alerts for motion events can be disabled but then you are left without any notifications whatsoever.

Dropcam Pro - Activities

Camera Settings

Camera settings are also controlled via the web interface.  The control panel provides several useful features such as the ability to disable the camera LED, enable night vision, rotate the image, and enable time scheduling for the camera.

The camera can also be configured to send email notifications if motion or sound is detected.

Dropcam Pro - Camera SettingsDropcam Pro - Camera Alerts

The sharing tab allows access to the camera to be shared with anyone else you choose.  Dropcam also allows you to make the camera public if you want it to be viewable by anyone.

Dropcam Pro - SharingDropcam Pro - Make Camera Public

Overall I found that the settings allowed me to control most of the items I would care about but unlike Axis cameras you won’t find many power user settings.

Video Quality

I was very impressed with the quality of video produced by the Dropcam.  The camera produces video with a resolution of 1280×720 at 25 frames per second.  Overall the cameras sensor seems to respond very well to changes in the amount of light present in the frame.

The wide angle lens allows the camera to capture a much larger area than any camera I’ve used in the past.

Dropcam Image Quality

Night Vision

The Dropcam is able to detect low light conditions and automatically enable night vision mode as needed.

I found the Dropcams night vision performance to be excellent.  I think the cameras great night vision performance can mostly be attributed to its built in infrared illuminators.  The camera has several infrared LEDs located in a circular pattern around the cameras lens.

The image below was taken in a completely dark room with no lights turned on whatsoever yet everything perfectly visible!

Dropcam Pro - Night Vision















I discovered that the night vision mode will not function correctly if the camera is pointed out a window or sitting behind a piece of glass.  This is due to the fact that glass reflects too much infrared light from the cameras built in infrared illuminators back toward the lens ruining the image.

Night vision mode can be enabled or disabled in the camera settings.

Mobile Apps

Dropcam has mobile apps available in both the Android Play Store, and the Apple App Store.  These applications allow you to view video from one, or more Dropcams through a single easy to use interface.

I had good results from both the Android and Apple versions of the apps.  I actually found the mobile app worked better on my iPad Mini instead of my Galaxy S4 but I think this was mostly due to having a larger screen area to work with.


Dropcam Android App Video

Cloud Video Recording

One of the biggest drawbacks of the Dropcam is that it does not provide the ability to store video to a local server.  In order to have any stored video footage you must purchase a cloud recording plan for each camera.

The prices listed below are on a per camera basis which can get very expensive if you have multiple cameras.  Additional cameras do receive a %50 discount but the CVR service can still cost you a significant amount of money on a monthly basis.

Dropcam CVR

The CVR (Cloud Video Recording) service allows you to store up to 30 days of video on their servers.  Cloud video is stored on a rolling basis so the oldest footage is automatically removed.  When you purchase a Dropcam it includes a free 14 day trial of their CVR service.  After the trial expires you’ll be stuck with live video only unless you subscribe to a CVR plan.

Clearly the decision for Dropcam to not offer a local storage option is a financial move on their part and not a technical one.  Many competing cameras like the Samsung Smartcam HD offer a method to store recorded video without a monthly service plan.

While I feel that $9.95 a month is a bit high I still think it’s worth it considering the convenience factor.  It also provides piece of mind that your video is being uploaded to a remote server and not stored on a local machine that could potentially be damaged, or stolen during a break-in.


Overall I’ve been very impressed with the Dropcam Pro.  The camera is very easy to setup and produced excellent quality video in almost all lighting conditions.  The Dropcam is a great camera for anyone looking for a turn key video surveillance solution.

The main drawback of the Dropcam is the high monthly recurring cost required to save historical video footage.  Advanced users might also be slightly discouraged by the lack of power user settings such as motion detection windows, custom alerts, or scripting functionality.

Even with these limitations I still think Dropcam is a great solution for most home and business users.


Read More

Plex - Adding Channels

How to Install Plex Media Server on FreeNAS

 Plex Media Server is a great way to stream content to multiple different devices in your home.  I mostly use Plex to stream movies directly to my TV via the Plex app for the Roku which has proven to be an easy and reliable method of streaming content.  Plex also has clients available for PC, Mac, Android, Amazon Fire TV, Chromecast, and Samsung TVs.

In the past I ran Plex on a dedicated Linux server but now there is a Plex plugin available for FreeNAS which is much more efficient than running Plex on a separate server. By having Plex on the same physical server as FreeNAS it can stream content much faster since it has direct access to the filesystem.

Last summer I built a Mini ITX NAS server which provides more than enough power for running FreeNAS with ZFS and the Plex Media Server all on one tiny machine.

Installing The Plex Plugin

The Plex Media Server plugin can be installed through the plugins interface in the FreeNAS web GUI.  After clicking on the plugins button, select the available tab to see the list of all the available plugins for FreeNAS.  Click on plexmediaserver to begin the installation process.

FreeNAS - Plex Plugin Install

FreeNAS will automatically download and install the latest version of Plex.  This process should only take a couple minute to complete.

FreeNAS - Plex Plugin Install Progress


After the Plex plugin has been installed it will be visible in the list of installed plugins.

FreeNAS - Plex Plugin Installed


Adding Storage to the Plugin Jail

Before starting the Plex server storage must be added to the Plex plugin jail.  Since FreeNAS plugins run inside of a jail they are only able to access storage that has been specifically assigned to the plugin jail.

To add storage to the Plex jail click on the jails button at the top of the web interface.  Click on the plex jail, “plexmediaserver_1”, expand the storage section then click on add storage.


FreeNAS - Plex Jail Add Storage


When adding storage to a plugin jail you will need to set the source and destination mount point.  Any ZFS dataset can be used as a source for the jail storage.  Clicking the browse button will display a list of existing ZFS datasets on the FreeNAS server.

The destination name can be set to anything you choose but I recommend using something like /media/movies.  Be sure to select the last two checkboxes to create the directory (in case it doesn’t exist), and to mount the storage so it becomes visible to Plex.

FreeNAS - Plex Jail Add Storage

 Starting the Plex Media Server Plugin

Once you are done assigning storage to the plugin jail you can go ahead and start the Plex Media Server plugin.  If you add additional storage to the jail you may need to stop, then start the Plex plugin before it will see the new storage.

I’ve found that on a new installation the Plex plugin doesn’t always start on the first attempt.  If this happens, or if you see a message about the server exiting with code 11 just attempt to start the plugin again and it should start successfully.

FreeNAS - Start Plex Plugin


Accessing the Plex Server Web Interface

To access the web interface for the Plex server expand the plugins section on the left side of the web interface and click on PlexMediaServer.  You should see the dialog box below that contains a link to the web interface of the Plex server.

You can also access Plex directly by visiting http://192.168.1.X:32400/web/index.html (using the IP address of the Plex jail).  The IP address of the jail can be found by clicking on the jail tab in the FreeNAS web interface.

FreeNAS - Access Plex media Server


Configuring the Plex Server

The first time you access Plex you will be presented with the initial setup wizard.  First you’ll need to either create a Plex account, or sign in with an existing one.

Plex Media Server Get Started

On the basic setup page you can enter a friendly name for the server which is the name that will be displayed when devices are browsing for Plex servers on the network.

Plex Media Server Basic Setup


Next you can start building your media library within Plex.  I like to segregate my content by creating separate sections for movies, music, and pictures.  I’ve found that organizing the content makes it much easier to find the media you’re looking for when browsing for content on devices like the Roku or Amazon Fire TV.

Plex Media Server Create Media Library


When adding a folder you will need to browse to the destination location that was created when assigning storage to the Plex plugin jail.  If you’re not seeing any of your media content here then the storage may not have been assigned correctly to the jail.

Also, don’t forget to restart the Plex plugin if you made changes to the assigned storage in the jail.


Plex - Adding Media Folders


After assigning media sections the wizard presents the option to install channels.  Channels provide a way to stream content directly through Plex.  This step is optional and can be skipped if you want to install channels later.


Plex - Adding Channels


If everything is working properly Plex should start analyzing the content on the NAS and matching up the box art automatically.


Plex - Browse Content


Configure the Library to Refresh Automatically

I recommend configuring Plex to automatically refresh the library so you won’t have to perform a manual refresh every time new content is added.  This can be configured through the Plex settings (wrench icon) in the web interface.

I also like to set a library refresh to occur automatically every 6 hours.  I’ve found that this helps keep the library up to date even new content isn’t automatically detected.

Plex Library Automatic Updates


Accessing the Plex Server

At this point you can begin connecting remote devices to the Plex server to stream media.  Or you can also stream video directly from the Plex web interface.  The myPlex service also allows you to stream content over the internet to devices outside your network such as cell phones and iPads.

Read More


Building a Mendel90 RepRap 3D Printer Using Nophead’s Kit

A few weeks ago I decided that I wanted to get into 3D printing.  I kept stumbling across posts on Reddit where people were showing off some really cool things they created with their 3D printers so I started doing some research into which printer to buy.  In this post I’ll be talking about my research that led me to the Mendel90, my experience of the build process, and also my initial results with the printer.


Why I Decided to Build a Mendel90

Initially I was looking at the Makerbot Replicator 2 but after reading several reviews I quickly decided it wasn’t worth the $2K price tag.  Ars Technica wrote an interesting article that suggested the Makerbot wasn’t any better than the extremely cheap $300 Printrbot Simple kit.  One of my friends had also mentioned that I should look into building a Printrbot Simple instead of buying a pre-build printer.

Everything I read about the Printrbot Simple suggested that I was a really good value for the money but I was concerned about the long term performance of the wood frame and also the small build area.

While looking for alternatives to the Printrbot I discovered the Prusa i3 which is an open source RepRap printer.  I really liked the concept of an open source design which would allow easier future modifications.  While the complete bill of materials is available for the i3 I wanted to find a complete kit to make my first build go easier and not have to worry about sourcing all of the parts.

I had narrowed my decision down to 3 Prusa i3 Kits.

The reviews on the kit from DIY tech shop weren’t the greatest, and there was a post in the RepRap forums that suggested there may be some quality issues with this kit.  I liked the kit from Norcal RepRap and the reviews were pretty good but the kit does not include any instructions whatsoever.  As a first time builder this turned me away from this kit since I was really looking for some high quality instructions to ensure I could get everything going with very little frustration.

The Markerfarm kit was looking like my best option since it had really good reviews and it included some excellent instructions and videos.  There was also a lot of feedback in the forums from users who said they were able to get very quick and responsive support from Collin who runs Makerfarm.

I almost purchased the Markerfarm kit but again , like the Printrbot , it used a laser cut wood frame.  Since I live in a very humid area I was worried that I would have to battle the effects the high humidity would have on the wood.

Finally while reading some posts in /r/RepRap on reddit I found a user who suggested the Mendel90 as an alternative to the Prusa i3.  It quickly became apparent to me that the Mendel90 was a very well designed printer.  The Mendel90 was designed by Nophead to address some issues with the Prusa Mendel.  Below are the main things I liked about the Mendel90 kit from Nophead.

  • Very detailed, high quality instruction manual
  • Includes a heated bed
  • Very reasonably priced kit (£499 or ~$800)
  • Highly stable design requiring very little calibration
  • Great reviews from Mendel90 owners

Mendel90 Kit Ordering Process

To purchase the Mendel90 kit you must first make contact with Nophead via email, his address can be found on the RepRap forums.  After sending an email to Nophead I quickly received a response from his wife Mary who indicated that US kits cost £484 (since they do not include a power supply) plus £60 for shipping for a total cost of £544GBP.  She also informed me that it would be about two weeks before my kit would be ready to ship and that they would accept payment in US dollars via PayPal once the kit was ready to ship.

Exactly two weeks later I received another email from Mary who said my kit was ready to ship upon receipt of payment which worked out to be $872.14.  I sent in my payment through PayPal and I received a tracking number the next morning.

My kit was delivered via UPS after only two days which was amazingly fast for an international shipment!

Tools and Materials Required for the Build

Below is a list of everything I purchased for this project.  I recommend reading through the manual first to view the full list of required tools and other consumables.  You may already have some of these tools or parts lying around your house.

ItemQuantityCostExtended cost
Nophead’s Mendel90 Kit1 $872.14 $872.14
Corsair Builder Series CX 600 Watt Power Supply1
 $66.24 $66.24
100 Piece Specialty Bit Set1 $20.95 $20.95
White Lithium Grease1 $3.49 $3.49
10W-30 Motor Oil1 $0.00 $0.00
Mitutoyo ABSOLUTE 500-196-20 Digital Calipers1 $119.33 $119.33
13-Piece Metric Hex Key Wrench Set  1 $9.16 $9.16
Crown 1-Quart Fast to Dissolve Acetone  $7.48 $7.48
Total Project Cost  $1098.79$1098.79


All of the parts in this kit are metric so I needed to pick up some metric hex keys since I didn’t have any.  It also requires some metric wrenches but I was able to get by using a metric socket set I already owned.

Having a pair of digital dial callipers is pretty much a must have for building and calibrating this kit.  You can find them available for much cheaper than the Mitutoyo pair but I hate cheap low quality tools since they tend to break and require replacement in the long term.

I purchased the security bit set since I didn’t have any pozidriv screwdriver bits and this seemed like the best value option to get some.

I also purchased a digital dial indicator that I intended to use to level the bed using a printed bracket Nophead designed but when I mounted this dial I found that the feeler was too short and wouldn’t reach the bed.  I haven’t found a solution to this yet but if you’re looking for an indicator gauge you might have better luck with one of the analog gauges with a longer feeler.

About the Power Supply

Nophead doesn’t include a power supply in the US kits (most likely for customs reasons) but he does deduct the price from the cost of the kit.  Nophead uses an Alpine ATX500 power supply in his build instructions but this power supply is not readily available in the US.  I could have purchased it on eBay but I didn’t want to wait for it to arrive so I decided to go with a good quality Corsair power supply.

The most important factor in a power supply for the Mendel90 is looking for one with a single 12 volt rail that has plenty of amperage.  You also don’t want a modular supply since it will make wiring much more of a challenge.

To be certain I wouldn’t have any power constraints I spent a bit extra on a 600 watt power supply with plenty of amps on the 12V rail.  Some users in the forums reported issues achieving maximum temperature on their heat beds with cheaper power supplies.  They also reported seeing some voltage droop in the 12 volt rail during operation.


I used some regular 10w30 car motor oil I had in my garage for lubricating the threaded Z lead screws, which it turns out is what Nophead recommends.  The lithium grease is needed to lubricate the extruder greats but you don’t need much at all.

Nophead also lists some lint free wipes but so far I’ve had good results using a damp bounty paper towel to clean the bed.

Unboxing the Kit

The kit arrived very well packed, the box wasn’t quite as big as I had expected but it was quite heavy.


















All of the parts were very well organized into individual boxes that were labeled with their contents.  The package also contained a personalized letter from Chris (Nophead) and his wife Mary.  Attached to the letter was an SD card with all of the required files and software as well as a really cool USB SD card reader!  This really shows the effort that has been put into making this a very complete and user friendly kit.


















Close up of the letter and SD card.


Here is the contents of the kit after everything was unpacked.



Another picture after some further unboxing, all of the white pieces on the right are printed parts.  It’s pretty cool to see how many parts the machine can actually self print.


The kit even includes 20 meters of Village Green 3mm PLA filament from Faberdashery!



Assembling the Kit

Degreasing the Metal Parts

Nophead recommends degreasing all of the metal parts that come with the kit since many of them are packed in oil or coated in oil from the machining process.  Failing to remove the oil can prevent the printed clamps from grabbing onto the smooth rods.

I followed the recommendation of another builder and used acetone to degease all of the metal parts in the kit.  Make sure you do this step over a surface you don’t care about.  I spilled a small amount of acetone during this step and it took the finish right off the table I was working on.  I guess I’ll be using the left over acetone to refinish the table next :)

Setting Up the Frame

The first steps in the kit involve building the frame using the dibond sheets.  The frame went up fairly quickly and all of the pieces fit together very well.  The design of the frame keeps the gantry perfectly in place.



It starts to look more like a printer once the Z and Y axis motors are mounted.  The mess of wiring in the background is all of the motor wires.


The X idler bearings snap into place with a very tight fit.


Hotbed Assembly

Putting together the hotbed involves separating the individual wires in the ribbon cable and soldering them together to supply current to the bed.  I used a pair of wire cutters to make small cuts between each of the wires in the cable to make separating them easier.

Removing the insulation from each of the strands of the ribbon cable was a fairly tedious process.  I took my time with this step since I didn’t want to accidently cut through one of the wires and be forced to start over.

Soldering the wires to the bed wasn’t too difficult especially after tinning the bundle of wires as Nophead suggests.


Here is what the completed Prusa MK2 Headbed assembly looks like.  Nophead’s kit even includes the glass plate which will later be clamped to the top of the bed.



Mounting the hotbed on the y axis was fairly trivial, the hardest part was getting the belt properly twisted so it would sit properly on the idler.




The X carriage fan assembly is a nice inclusion in this kit.  Eventually I plan to add a bed fan for extra cooling.


The X motor assembly required quite a bit of work with the ribbon cable which took quite a bit of time.


Building the Extruder

Putting the extruder assembly together was both fun and challenging.  I made a mistake while soldering the connectors on the PCB assembly for the extruder motor and accidently oriented the fan connector upside down which resulted in the fan not working during the testing phase.  This was easily corrected but I had to remove the motor assembly and the circuit board to fix it.


It took me a while to finish putting together the rest of the extruder assembly mostly because I had trouble with Wade’s block.  I managed to strip one of the nut traps in the motor block while tightening the screws on the idler block.  The springs are under quite a bit of tension and I think I may have cross threaded one of them causing the nut to eventually spin inside the trap.  I was able to squeeze a pair of needle nose pliers into the nut trap to hold it in place while tightening it.

I haven’t had any trouble with it since then but I suspect that if I ever need to remove the idler block it will be an issue again.  I printed a spare motor block as soon as I finished my build just in case I need to replace it.


As with the belt for the Y axis the X axis belt requires careful placement to ensure it sits on the X idler properly.



Here’s a closer look at the extruder gears after the assembly was mounted on the X carriage.  Since the gears are subject to wear I printed a spare set of them to have on hand incase one breaks in the future.




Wiring the Power Supply

Since Nophead doesn’t include a power supply in his USA kits I needed to purchase one.  Originally I had planned to buy the same power supply Nophead uses since he has very detailed wiring instructions in the manual.  The power supply he uses is an Alpine ATX500 which isn’t readily available in the US.  While I did find a seller on eBay who was selling the exact same power supply I decided against ordering it since the estimated shipping time was ~10 days and I was anxious to get started before then.

I ended up spending quite a bit of time researching which power supply to buy since I wanted to make sure it met the requirements of the Mendel90.  The printer runs off of 12 volts so the most important quality in a power supply is having a single 12V rail that can provide plenty of amperage for the heated bed and the hotend.

After reading several forum posts and comparing my options I ordered the Corsair Builder Series CX600 600 watt power supply.  This model has a single dedicated 12 volt rail that provides 46 amps of current which has proved to be plenty of power for the Mendel90.  It’s also a non modular power supply which is important since everything needed to be completely rewired.

First I removed the power supply cover in order to cut the zip ties holding the cable sleeving in place.



After removing all of the sleeving I cut off the heat shrink tubing near the connectors and then cut all of the connectors off.  Once all of the connectors are removed the power supply looks very strange in its naked state.

Fortunately Corsair was kind enough to label the PCB incase you forget what each of the colors represent.  For the most part the colors matched the table provided in the manual except for the 3.3 volt sense wire which was a thin orange wire which is also labeled on the PCB for easy identification.



I discovered pretty quickly that this power supply was larger than the one Nophead uses and as a result it wasn’t going to fit in the ATX power supply bracket included with the kit.  With this in mind I decided to leave more length on the cables than called for in the manual so I can have more mounting options later.

As Nophead mentioned to another builder in the forums more expensive power supplies usually use thicker gauge wire which can make it harder to fit all of them within the small terminals on the Melzi board.  I plan to build a wiring harness of some sort to provide an intermediate connection point instead of going directly from the PSU to the Melzi terminals.

Initially I wired up the power supply using the load resistors supplied in the kit but when I would turn on the power supply the fan would briefly spin up then the power supply would shut off.  Once I removed the load resistors it started to work as expected.  Essentially the only things necessary to get the CX600 working is to connect the green PSU-ON wire to one of the black ground wires, and also connect the small orange 3.3 volt sense wire to one of the regular sized orange 3.3 volt wires.

After those changes were completed the power supply powered on and stay on once the switch was flipped.  My Fluke meter read a steady 12.47 volts on the 12 volt rail.




Wiring the Melzi

Once all of the components are in place the Melzi board can finally be installed.  Each of the terminals are labeled so the main concern is just making sure the polarity is correct.  Nophead recommends using a multimeter to check the resistance on the thermisters as well as the motors to ensure there are no obvious issues before connecting the wires to the terminals.

The Melzi board has a built in SD card reader which allows you to run print jobs without having to keep the printer connected to a computer.



As expected I wasn’t able to fit either the bundle of 12 volt or ground wires into the Melzi terminals.  As a temporary workaround I installed a thin wire in each of the terminals and used a pair of alligator clips to connect them to the larger bundles coming from the PSU.  Once I figure out exactly how I wan’t to handle the power supply I’ll put together a cleaner solution.

I also decided against trimming the 5V and 3V bundles for now since I may want to use them to power some other devices such as a Raspberry Pi.




First Prints

For my first print I used the sample Android g-code file Nophead provided on the SD card.  The first run created a mess of spaghetti, it was fairly obvious that the nozzle was too high above the bed.  After a slight adjustment to the Z height in the firmware the Android turned out great!  The Android sample included is sliced at .2mm.



Overall the quality was very good but as you can see from the photo below it is a bit under extruded.




Here is the same print after performing the extruder calibration procedure defined in the manual.  The gaps near the edges were nearly reduced.  I think it could still stand to use a bit more fine tuning.


I wanted to get some spare parts printed out as soon as possible so my next print was Wade’s Big Gear.  This print turned out really well especially considering it’s only the second print from the machine!  Before purchasing this printer I had a misconception that ABS was stronger than PLA.  This lead me to wonder if it was even worth bothering to print spare parts out of PLA if they wouldn’t be strong enough as their ABS versions.

As it turns out PLA is actually stronger than ABS, although PLA is more brittle.


I followed up by printing Wade’s Small Gear.




General Conclusions on Nophead’s Mendel90 Kit

Overall I’ve been very impressed with Nophead’s design of the Mendel90 as well as the kit he has prepared.  The design of the printer speaks for itself with the high quality of the prints I was able to produce after only about 20 minutes of calibration.

Nophead’s kit is a very complete kit, he includes many small details in the kit that make a big difference such as the SD card, sample of PLA filament, and all of the settings for the software.  These details made the kit very fun to build while still providing several challenges to overcome along the way.  There were a few parts of the build that took me a bit longer than expected but at no point during the build did the process become frustrating.  Instead the kit provided a very rewarding and enjoyable build experience.

If you’re looking for a great 3D printer to build I highly recommend building a Mendel90.

Read More

Node 304 NAS

Building a 12TB Mini ITX FreeNAS Server

Node 304 NAS

There has never been a better time than now to build a high capacity mini NAS system.  In this post you’ll find a step by step guide to building your mini NAS using Fractal Design’s new Node 304 case.

Mini ITX systems are becoming very popular with hardware enthusiasts and it’s not hard to see why.  Hardware designers are packing tons of powerful features into ITX motherboards leaving no compromises for builders.

Many of the mini ITX boards have just as many features as their full ATX counterparts with simply less PCIe slots.  ASUS is even building mini ITX boards such as the Maximus VI Impact designed for overclockers

This build addresses many of the issues with FreeNAS Mini clone build I posted last year.  The Node 304 chassis has much more room, and provides better airflow than the ARK ITX chassis in the previous build.  The Node 304 doesn’t have hot swappable drive bays but the many benefits of this chassis outweigh the loss of this feature.

What This NAS is Designed For

This build is intended to be a high performance yet efficient home data storage system.  By using the mini ITX form factor the overall size of the system is very small yet provides plenty of flexibility and room for future expansion.  This NAS runs both cool, and quiet making it ideal for placement almost anywhere.

Keeping size and noise in mind this NAS still aims to maintain high performance data transfer speeds.  The intel Core i3 processor combined with 16GB of ram provide plenty of power to run the ZFS filesystem.

System Specs

This configuration maxes out the memory capacity of this motherboard at 16GB but still leaves room to add two additional hard drives

  • Storage Capacity – 12TB 4 x 3TB 
  • CPU – Intel Core i3-3220 3.3GHz
  • Memory – 16GB DDR3 ( 2 x 8GB)
  • Network – Intel 1Gb
  • Operating SystemFreeNAS 8
  • Power Usage – 45 watts (idle) 65 watts (under load)
  • Size – 9.84″  x 8.27″ x 14.72″ (H,W,D)

Parts List

Below you’ll find a complete list of all of the parts I used to build this NAS.  I chose to use high quality components since I wanted this NAS to last a long time and I didn’t want to put my data at risk of being lost.

The ASUS motherboard I used does have onboard LAN but since it uses the Realtek chipset I chose to include a dedicated Intel network card.  Unlike Realtek the Intel ethernet cards have a proven record of reliability with FreeNAS.  While there are cheaper ITX boards available I think this ASUS board is well worth a bit of extra money.  As many people have discovered the cheaper boards like ASRock just can’t compete with the quality of ASUS products.

Node 304 NAS Parts

ComponentItemQuantityUnit costExtended cost
ChassisFractal Design Node 304 Black Aluminum Mini ITX Case1 $54.99 $54.99
Power SupplyCorsair CX430M 430W ATX 80 Plus Power Supply1 $52.99 $52.99
MotherboardASUS P8H77-I LGA 1155 Intel Mini ITX Intel Motherboard1 $100.06 $100.06
ProcessorIntel Core i3-3220 Ivy Bridge 3.3GHz LGA 1155 55W Dual-Core Processor1 $118.99 $118.99
MemoryCORSAIR Vengeance 16GB (2 x 8GB) 240-Pin DDR3 SDRAM DDR3 16001 $144.99 $144.99
Boot DriveSanDisk Cruzer Fit 8GB USB 2.0 Flash Drive1 $9.31 $9.31
Hard DriveWestern Digital Red WD30EFRX 3TB IntelliPower 64MB Cache SATA 6.0Gb/s Hard Drive4 $134.36 $537.44
Sata CableOKGEAR 10″ SATA 6Gbps Cable2 $5.09 $10.18
Network CardIntel EXPI9301CTBLK Network Adapter 10/ 100/ 1000Mbps 1 $27.99 $27.99
Total Project Cost$1056.94

If you’re looking to trim costs and you don’t plan to start with 12TB of storage you could potentially drop the memory from 16GB to 8GB.  It’s easy to add in another 8GB module at some point in the future.  Although if you do plan to use 12TB of storage with ZFS I highly recommend sticking with 16GB of ram.  ZFS is very memory hunger and the file system performance is directly correlated to the amount of RAM available.

The video below will give you an idea what to expect from the Node 304 chassis.

Remove the Drive Bays

To get started remove all three hard drive bays in order to provide extra room to work while mounting the motherboard and power supply.  Each bay is secured to the chassis with 2 thumbscrews and 1 Phillips screw.



Install the Motherboard Standoffs

Install the four motherboard standoffs to support the ITX motherboard.  I used a ratchet for this step since the threads were such a tight fit.



Install the Processor

When building an ITX  system its easier to install the CPU before the motherboard has been mounted in the case.  This makes it much easier to make sure that the CPU is properly mounted before securing the tension lever.


Install the IO Shield

Install the IO shield included with the motherboard into the chassis by snapping it into place.  It should fit nearly flush with the chassis when its installed correctly.

IO shield installed in case.

Mount the Motherboard

Place the motherboard inside the chassis and press it up against the IO shield.  Secure the motherboard to the chassis using the 4 flat black screwed that came with the case.


 Install the Processor Heatsink / Fan

I recommend installing the heatsink on the processor before it starts to get too crowded inside the case.

Intel heatsinks normally come with thermal compound pre-installed so it can be placed on the processor right out of the box.

Line up the heatsink with the four mounting holes around the processor and press down on the black pads to snap it into place.  Its best to snap them into place in a diagonal patern to make even contact on the processor.

Connect the fan cable to the CPU fan header near the VGA port on the board.




Install the Memory Modules

Install both of the 8GB memory modules into the board and snap them into place.



Install the Power Supply

Unlike most cases the power supply in the Node 304 mounts toward the front of the case.

Mount the power supply with the fan facing downward.  This may seem counterproductive but there is a air inlet with a filter directly below the power supply which allows the flow of air.

Since the power plug is in the back of the the case the designers added a power extension cable to complete the connection.

Power supply mounted in case.


Connect the main ATX power connector to the motherboard.



Connect the additional 4 pin CPU power connector to the board.  The 8 pin cable provided by Corsair can either be separated or simply plugged in with the other 4 pins hanging over the side.


One of the nice features included in the  Node 304 is a 3 port PWM fan speed controller.  The fan controller has three speeds settings to control the two front intake fans, and the rear exhaust fan.

The fan controller is powered through a single molex power connector.


Connect the Motherboard Headers

Connect the front panel USB 3.0 Header to the blue header port on the motherboard.


Connect the power switch, power LED, and HDD activity LED to the front panel headers.  The node 304 doesn’t have a reset switch so that header will go unused.


Install the PCIe Network Card

Remove the expansion slow cover closest to the IO ports on the board and install the Intel PCIe network card.



Mount the Hard Drives in the Bays

Use 4 of the long screws for each drive to secure them to the bays.  I decided to leave the bay on the right side empty since it was near most of the excess cables.

While you could remove the unused bay I think it’s best to leave it in for cable management.




Connect the Power and SATA Cables to the Drives

The Asus P8H77-I has a total of 6 SATA ports, 4 SATA 3G (blue ports) and 2 SATA 6G. (white ports).

You might be wondering why I connected all four drives to the blue ports (3G controller).  Like most mechanical drives the WD Red drives are not able to even saturate all of the bandwidth available on a 3G port making 6G just plain overkill.

The SATA 6G ports might be useful for connecting one or more high speed SDDs for use as a ZFS cache drive to accelerate performance.


 The Finished System

The end result is a stylish, and compact home storage system!





Installing FreeNAS

In this build the Sandisk USB drive servers as the “hard drive” for the FreeNAS installation.  The Sandisk Cruzer Fit drives are extremely small and can barely be noticed on the back of the NAS.  If you want to internalize the USB boot drive you can purchase an internal USB port header like the Koutech USB header adapter.  The internal adapters are useful if you’re afraid someone might unplug the USB drive potentially taking the NAS offline.

The quickest way to load the FreeNAS operating system is to load the OS image directly to the USB drive.  Once the USB drive is imaged set the BIOS boot order to boot via USB and FreeNAS should start automatically when the system boots.

FreeNAS 8 Web Gui

Performance Testing

CIFS Performance

I was able to achieve data transfer rates of ~100MB/s which is very close to the upper limit of gigabit ethernet.

CIFS Throughput


Network Throughput

Regardless of how fast the disks are a NAS can only move as much data as the network card allows which is why it’s important to test pure network throughput.

Testing with JPerf showed the system had no issues fully saturating the Intel gigabit network card.

Mini NAS - Jperf


Documentation Links 

Fractal Design Node 304 Product Sheet

Corsair CX430M Spec Table

Asus P8H77-I Users Manual

Intel Core i3-3220 CPU Reference Page


Read More

Raspberry Pi Bitcoin Miner

Using the Raspberry Pi to Control a Bitcoin ASIC Mining Rig

Raspberry Pi Bitcoin Miner

As the total hashrate of the Bitcoin network continues to rise mining for Bitcoins using GPUs is quickly becoming obsolete.  In order to stay involved in Bitcoin and continue mining without losing money on electricity I decided to order a few of the ASICMiner USB Block Erupters.

BTC Guild recently started reselling the Block Erupters as individual units eliminating the need to participate in a larger group buy which has made it much easier to purchase these tiny ASICS.  You can also purchase them directly on Amazon, or you can buy some Bitcoins and buy them directly from BTC Guild, or on the Bitcoin auction site Bitmet as well.

Adafruit recently posted a guide explaining how to use the Raspberry Pi and PiMiner as a headless controller for Bitcoin ASIC miners.  This seemed like a cool use for the Pi and reason to get the soldering iron out so I decided to order the parts and put it together.

Parts Used

Below is a list of all of the parts I used for this project.  You don’t necessarily need a model B Pi, the model A would work just fine if that’s what you happen to have on hand.  You don’t need a very big SD card either but if you need to purchase one you might as well buy an 8GB card since the prices are so cheap now.

Raspberry Pi Model B$39.99
Adafruit Pi Box Enclosure$14.95
Adafruit RGP Positive 16×2 LCD Keypad Kit$24.95
Edimax Nano Wireless Adapter$9.99
D-Link 7 Port Powered USB Hub$25.18
Arctic Breeze USB Powered Fan$7.99
SanDisk 8GB SD Card$7.54
ASICMiner USB Block Erupter$8.99

ASICMiner USB Block Erupters

The Block Erupters are one of the few ASICs that you can purchase without having to wait for a pre-order.  With a power requirement of only 2.5 watts each these are a good option for anyone looking to stop mining on their GPUs and move to a more power efficient mining rig.

The three ASICs below are from the saphire batch and produce about 330 mh/s each.  I ordered these from BTC Guild and received them in about a week.

If you don’t have any Bitcoins to use for the ASIC purchase on BTC Guild’s store you can easily acquire some through Coinbase.

ASICMiner USB Block Erupter


Cooling Solutions

The Block Erupters use a passive heatsink for cooling.  After running for a few minutes the heatsink gets extremely hot, you can easily burn your hand on them if you are not careful.  While using a fan isn’t required doing so keeps the error rate low and will probably extend the lifespan of the miners.

The Arctic Breeze fan works good for this project since it has an adjustable gooseneck that allows it to be pointed where it is needed.  This fan is almost completely silent too, I can barely even notice it when is running.

Arctic Breeze USB Fan


This image shows how far you can bend the fan, it keeps my miners nice and cool.


USB ASIC Mining Rig

USB Hub Compatibility

When I first looked at doing this project I was planning to use an Anker 10 port USB 3.0 hub that would allow the ASICS to sit vertically into the hub.  As I started researching this hub I found that many users reported issues with using the Raspberry Pi with the Anker hub.  As I began reading I discovered that the Pi has several known issues with USB 3.0 hubs in general.  More specifically it seems that the Pi has issues enumerating USB 1.x/2.x devices on 3.0 hubs.  Since the Block Erupters are USB 1.1 devices they fall into the scope of this bug.

Several people were reporting success with the D-Link DUB-H7 hub, and it is also listed on the RPi verified peripherals wiki page.  I decided to purchase this hub to avoid any potential compatibility issues and I can confirm that it does work well with the Pi.

D-Link DUB-H7 USB Hub

Why I Like The Adafruit Pi Box Enclosure

There are quite a few different enclosure available for the Pi but the Adafruit Pi Box is a good fit for this project since the top portion of the case can be removed providing easy access to the GPIO pins on the Pi.  If you happen to have access to a 3D printer  or a Full Spectrum Hobby Laser you can download the SVG file and make your own case.

If you purchase this case from Adafruit it comes as a kit that can be assembled very easily.

Adafruit Pi Box Pieces

Here is what the case looks like after it has been assembled.

Adafruit Pi Box Assembled

This video shows how the Pi Box is assembled.

Adafruit LCD Kit

Adding the LCD to this project is optional but besides being very cool it gives you an easy way to check on the status of the ASIC miners.  Adafruit provides some python code that displays several screens of information on the LCD such as hash rate, errors, current Bitcoin prices, and network difficulty.

So if you plan to run these miners without a monitor connected to the Pi then the LCD makes perfect sense.  I also enjoy soldering electronics so the fact that the LCD comes as a kit adds to the general fun level of the project for me.

I ordered the RGP Positive kit which has a muli-colored backlight (7 different colors).  Adafruit also sells the same display as RGP negative, or blue/white.

Here is what the Adafruit kit looks like.

Adafruit LCD Kit

The picture below shows what the entire board looks like after assembly.  The soldering difficulty level was pretty easy, the entire board took less than 30 minutes to build.

The main screen shows the number of accepted shares, rejects, and average hash rate.

Finished Pi Miner

Displaying the current BTC price, and the daily high and low price.

Pi Miner LCD BTC Price

Listing the number of devices and the hardware error rate.  When using a fan the error rate remains below 1%.

Pi Miner LCD Error Rate

Overall Performance

I’ve been running my ASIC mining rig for about a week now with very few issues.  The cgminer monitoring script seems to occasionally crash which results in the LCD locking up.  The monitoring script runs as a separate process so it does not stop cgminer from running when it dies.  Aside from debugging the python script a simple solution would be to setup a cron job to periodically restart the script.


Are you using the Pi to control your Bitcoin mining system?  If so do you have any tips to share?  Leave a comment below to assist other miners.


Read More