Final assembly

After finishing the casing the time had finally come to assemble the cluster. The first step was to fit the aluminium tubes that would act as stands for the RPI’s. I also used a small piece of tubing for all the cable holes just to give me a unified look.

Brass balls act as legs
Brass balls act as legs
All tubing in place
All tubing in place

The little 10 mm brass ball-shaped nuts act as legs. Later on I will use those too on top of the RPI’s. Again, for the look 🙂

The next step was fitting the switch and hub in the casing. I already knew this was going to be a pretty tight fit…

What a mess!
What a mess!

With all those cables sticking out I did not really know where to start.. But I worked myself carefully through all cables and ended up with this:

Pretty neat hey!
Pretty neat hey!

I think it worked out very, very well! In order to give the hub and switch a bit more cooling, I decided not to install the bottom plate. With the cables being tucked in so neatly this was not necessary after all.

I used some USB plugs that could be mounted without soldering which worked out perfectly. I made a fifth lead that feeds the switch so now only 2 cables go into the cluster. Again, I “borrowed” heavily from this blog post.

Last step was mounting the Raspberry Pi’s on top of the casing.It took some fiddling but it all came together pretty much as I had in my head. Below the pictures of the finished cluster.

The finished cluster front view
The finished cluster front view
Top view
Top view, less cables visible would hardly be possible…
Rear view, looks a bit odd without the bottom
Rear view, looks a bit odd without the bottom

 

Left hand side top view
Left hand side top view, again with the brass balls for a uniform look
Right hand side view
Right hand side view
Left hand side view
Left hand side view, just visible is the ribbon cable that feeds the i2c backpack of the display

The last thing to was put the cluster on my desk, plug in the power and network cable and power the whole thing up… And YES, it works!!

The working cluster on my desk
The working cluster on my desk

Now all that is left to do is getting Hadoop, Hive etc. installed and working…

 

Woodwork: finishing the casing

This weekend I finally had time to proceed with the cluster. In the last week I had been busy programming the display. After I got it working with about a 150 wires I wanted to convert it to a display with a i2c backpack. That should work with just 4 wires. This took a lot of time (the first backpack I ordered was faulty but it took me quite some time to establish that…). After I ordered a new one (this time I choose not to order an Adafruit display and backpack but a (MUCH) cheaper alternative) I got it to work pretty quickly.

I wanted to get the i2c display to work on Raspian, Minibian as well as CentOS. So far it works on the first two, on CentOS not yet as there is no smbus library for Python for that OS. But I’ll keep working on that…

Today I installed my new milling machine in the milling table and had a go at finishing the casing.

The built in display works!
The built-in display works (looks much better in real)!

At first I milled out the hole for the display. As expected this did not work out so well, the hole was bit too large. But I installed the display anyway and filled the gap with instant wood. I just hoped that when painted this would hardly be visible…

All glued together
All glued together

After glueing everything together and sanding the base I was pretty happy with the result!

Top view of finished casing
Top view of finished casing
Two large ventilation holes in the back
Two large ventilation holes in the back

In de back I milled two large holes for ventilation. I am sure the switch and USB hub will thank me for that!

Inside view with mounted display
Inside view with mounted display

The display is recessed into the front panel

Detail view of the display
Detail view of the display
Looking good after 4 coats of paint
Looking good after 4 coats of paint

After sanding again I painted the casing 4 times and the end result looks pretty nice. So tomorrow I can finally start the actual assembly…

 

Programming the display

After my milling machine died on me, I had a go at hooking up my display and writing some code. As I am not very good at this (remember, one of the reasons to build the cluster is to practice my programming skills) I leaned heavily on code I found online. Good resources for this are:

Combining the descriptions in the above links I was able to hook up my Pi with the display. The only difference from the Adventures book (written for the old Pi with 26 pen GPIO) to get it working was to connect display pin 13 to GPIO pin 21 instead of pin 27.

My first attempts at configuring the display
My first attempts at configuring the display

After that I modified some of the Python code found at the linked sites and…. YES it works! Now I only have to get it nicely integrated in my wooden base… Of course I will not tolerate so many wires in plain sight so I will probably go for a backpack behind the display to reduce the number of wires to only 4.

Woodwork: sides and bottom

Last weekend I had a go at making the sides and the bottom of the wooden base. I think the pictures below speak for themselves.

Topview without top
Topview without top

I first made the sides using a mitre joint. I put a recess all around so the top would fit nicely.

Bottom view
Bottom view

In this picture the sides are put on the top to see if it would fit. The bottom of the sides are not recessed yet.

Casing with switch and hub for scale
Casing with switch and hub for scale

It will all fit snugly. I will cut some holes in the rear side for ventilation as well as some vent holes in the bottom.

First impression of half finished casing
First impression of half finished casing
Bottomview with recess milled for bottom plate
Bottomview with recess milled for bottom plate
Bottom plate in place
Bottom plate in place

The bottom plate is a 4 mm plate of MDF so there is maximum space for the internals.

After this I started making the hole in the front side for the display… but not for long as just at this moment my milling machine died on me… 😦 Well after 18 years of use this is no shame but it did mean I had to go and find a new one. I soon found out that the general design for milling machines changed considerably over the last 18 years… A modern one would definitely NOT fit in the milling table I made a few years back..

So I looked at Marktplaats (a large online selling site in Holland) and happened to find  a guy that was offering the exact same model as my old machine new in a box! He once bought it as a spare himself but never actually used it.. It should arrive shortly and I cannot wait to proceed with the project!

In the meantime I had a go at writing/modifying the Python code to drive my display..

 

Woodwork: top plate

After making the pillars I started on the top of the wooden casing. I cut off a piece of the oak measuring 23,2 x 16,9 cm that is going to be the top of the base.

A nice piece of oak
A nice piece of oak

After some carefull measuring I drilled all holes for the pillars as well as for the USB and network cables. After that I bevelled the edges.

First fitting
First fitting

After that I did a first fitting. The PI’s are not entirely straight here as the pillars are only just pressed in the holes. In the end the pillars will be recessed in the holes for about 1 cm but I did not want to do that now as it is pretty hard to get them out again… And I would like to paint the wooden base before assembly.

So, on to the rest of the base… And to making the difficult choice on the color of the base..

Pillars

After modifying the Pibow cases I started making the pillars. This was very tedious work, constantly measuring if the pillars were of equal size.

But I did enjoy spending some time at the lathe (had been too long…) and ended up with a nice result 🙂

16 custom made pillars
16 custom made pillars

The long ones are for mounting the bottom two PI’s. Those are longer as they will be recessed into the wood base to give extra strength.