[Free Schematic] Raspberry PI 2 Cluster Assembly Tutorial

This is the third post of a series about Raspberry PI 2 BigData cluster case.

  1. Raspberry PI 2 Cluster Case pt1
  2. Raspberry PI 2 Cluster Case pt2
  3. Raspberry PI 2 Cluster Assembly Tutorial
  4. Build Hadoop Cluster with 5 clicks


Since my last post, Raspberry PI 2 Cluster Case pt2, readers have asked if I could open the schematics of the cluster case with detailed assembly instruction. So, here comes the schematics under Solderpad Hardware License. The license is equivalent to Apache, meaning you can make and distribute for free of royalty. I would encourage you to contribute in forms of improvements and extensions though.


1. Boards


Let’s firstly prepare boards. Download the schematics. Please cut out one piece (1) of each and two pieces (2) of board-middle. You can use wood, synthetic, or Acrylic panel to cut out the shapes above. Whatever the material it is, you can use it as long as a panel is no thicker than 3 mm and strong enough to hold a USB charger.


If you cut out a board from Acrylic panel, they will come with protective films on. Peel them first.

Two pieces of board-middle and one piece of each.

2. Power and Cables


  1. One Photive 6-ports 50 watt USB charger.
  2. Six 1ft ( 30 cm ) Cat6 Ethernet cables.
  3. Six 1ft ( 30 cm ) 90 Degree right-angled Micro USB to USB cable.


Take a look at the cable. A Micro-USB-to-USB cable must be right-angled, not left-angled. You may also want to check the thickness of a wire, and make sure your cable is thick enough to deliver enough power. The one available to me comes with AWG 26 cable. Several different brands are available, an examples, at Amazon, Ebay, and Alibaba.

3. Screws

You then need screws. Buying right-sized screws are the hardest part of the whole process, at least for me. Here’s the list of them.


  1. 2 x M3 Hex Nuts.
  2. 22 x M3 25mm Pillar Screws.
  3. 4 x M3 Whirled Hex Nuts. (could be replaced with four of #1 plain M3 nuts.)
  4. 6 x M3 4mm Screws.
  5. 24 x M2.5 5mm Screws.
  6. 24 x M2.5 Hex Nuts
  7. 24 x M2.5 5mm Pillar Screws.

The four supporting holes in Raspberry PI 2 are 2.7 mm in diameter, and, ideally, you would want to use M2.6 screws and nuts for fixing Raspberry Pi 2 since they fit rather tight. The problem was M2.6 Pillar Screws did not come easy, and I had to custom order M2.6 Pillar Screws. 😦

The ones linked in here are therefore M2.5 screws and nuts. They are available off-the-shelf and smaller in diameter than holes on Raspberry Pi that it would not cause much issue. I hope these holes get bigger in the future so that I could simply use good-old plain M3 screws.

4. Raspberry PI 2 B+


  1. 6 x Raspberry PI 2 B+

We do not need to say more here. 🙂 Let’s call them RPI henceforth.

5. Network Switch (Optional)

In case you want to fit a network switch to in the cluster, pick something slim. I picked up one below.

  1. D-Link 8-Port Gigabit Desktop Switch

One thing to remember is that you have a choice not to put a network switch at all. You can simply put Raspberry PI only, and connect them to an existing network. This switch is just there to provide the cluster’s own network.


Once you have the components and materials, it’s rather straightforward. Firstly put M2.5 5mm Pillar Screws on boards and tighten ’em with M2.5 Hex nuts like below. You’d have to do this for 6 sets.



Then fix RPI on the boards with M2.5 Screws.


Once you’re done, you’d have six sets. You’d see RPIs on right side are all flipped. In this way, all RPIs’ power inputs are placed right next to USB charger reducing the cluster volume. The big round holes you’d also see are for ventilation.


Apply two pieces of double-sided tape on a USB charger supporter. This is to give a bit more strength to the board to support the charger.


Place it on the board named board-middle-end like below.



Then it is time to stack up RPIs. Look carefully how each piece is stacked.



Once you complete stacking up RPIs, plug in Micro-USB-to-USB cables.



Once you plug in the cables, place your USB charger in the middle, and close the cluster with board-top. Don’t forget to tighten up with M3 4mm Screws.


Now plug in USB ends to the USB charger. See how the boards hold the charger, and clear the entrance for USB ends? 🙂


Place the network switch at the bottom layer and close it with board-bottom and four M3 Hex Nuts like below.


Then connect your RPIs and the network switch with Cat6 Ethernet Cables.


Once you supply power to the charger, all the RPIs will lit up!



This is how a 6-nodes RPI cluster is assembled. You can replace as many parts as you wish, and modify as much as you want. All these instructions and schematics are here for a template.

if you get to build one, please share yours with #rpicluster hashtag on twitter so that we all can see!!!  Now, here comes the schematics again, and let the fun begin!

E-mail Subscribtion
Subscribe for upcoming posts!
Join Slack
Join my channel!

21 thoughts on “[Free Schematic] Raspberry PI 2 Cluster Assembly Tutorial

  1. Nice writeup, and the final assembly looks good to boot. I did notice one thing: AWG 6 USB cables. I think that was supposed to be AWG 26. A 6-gauge USB plug would be an interesting thing…


  2. Hey,
    I thought the RPi2 has only 100Mbit Ethernet why are you choosing a gigabit switch and CAT6 cables? Did you try something and it didn’t quite work, or is it just to not max out on the uplink?


    • You can use CAT5 and FAST ETHERNET switch and you won’t have an issue. In fact, RPI’s Ethernet interface is hook to USB bus internally that 100Mbit would max out RPI’s internal bandwidth AFAIK. It is just that CAT6 are now as abundantly available as CAT5 are, and gigabit switches are darn cheap as 17 USD. 😉

      Like I stated at the end, you can alternate as many parts as you’d like and modify as much as you’d want. I’ve open up the schematic for that reason and you are the captain of your project. 🙂


  3. Nice project and description, I think I would also try to make one. I just have a question about the casing.
    I see that you provide the templates and I can use it. Do you know some online shop
    where to buy custom acrylic panel?


  4. Do you have a write up for how to set up the pis across the entire cluster? Is there a reason why you picked six? Is one configured as a ‘head node’ where you SSH into?


    • Hi @zach

      You don’t need a writeup, SSH, or anything. There is an application that does everything for you (https://pocketcluster.wordpress.com/download/). It is currently undergoing bugfix and soon to be available.

      PS> There was a reason for choosing 6 nodes. First one being that RPI2 is very limited in terms of hardware power. I needed to coalesce as many as possible under the constraint of power and network. Of course I could have go insane and stacking up 400 RPI2 but that’s not the realm of easy accessibility for others to try.


  5. So when you’re generally just using the pi-cluster are all of the boards competing and lending their resources for regular computing like browsing, watching videos/music? Or, do you have to do something like manually throw the cores at each tasks? So if you were crunching numbers in R you could use parallel specifications in the script?


    • So when you’re generally just using the pi-cluster are all of the boards competing and lending their resources for regular computing like browsing, watching videos/music?

      Um, when you’re to use pi-cluster in BigData computation, you’re to decide how much computation resource you’d use as a whole cluster, not an individual board. Plus, PocketCluster does not use RPI for watching video/music. It only uses for data science and machine learning.

      do you have to do something like manually throw the cores at each tasks?

      Most of resource management is done by the cluster manager you’re to use such as Yarn. Other than the fact that it is based on RPI, all other steps are pretty much the same as using BigData cloud/stack/whatnots.

      if you were crunching numbers in R you could use parallel specifications in the script?

      I’d rather have SparkR take care of parallelization of such task that I could focus on my task and boost productivity by implementing OSS libraries.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s