Sections 2 and 3

Even More Adventures in 3D Printing


Dusting off the 3D Printer

Every so often, we feel the need to do a bit of 3D printing. If we needed an excuse this time, it’s because we had just received a new batch of tape which we wanted to try out. On top of that, we’re currently in the middle of putting together a kit for the Astro Pi, so we thought that this would be a great opportunity to have a go at printing our very own flight case for the Astro Pi.

The 3D print files for the Astro Pi case can be downloaded from the following web site:-

https://github.com/raspberrypilearning/3d-printed-astro-pi-flight-case/tree/master/STL

The case is designed to be printed in 4 different sections, and each individual section would take between 6 and 11 hours to print; so this would clearly be a really good test for the printer.

The new tape we had received is slightly smoother than the masking tape that we had previously been using; and it has a width of 75mm, so it’s fairly easy to lay a couple of widths on the print bed for printing larger pieces such as the Astro Pi flight case.

75mm Tape

75mm Tape

Astro Pi Flight Case – Section 3 (The Middle Section)

Having had problems in the past with print bed adhesion, we tried printing section 3 of the Astro Pi case first, since this was the piece with the shortest print time of just over 6 hours. Because of the problems we have had with bed adhesion, even when adding a brim to the print, we decided to have a go at using the ‘raft’ option for print bed adhesion. This appeared to start really well, but about an hour or so into the print, it started to lift off the bed in 3 out of the 4 corners.

Raft

Raft

Flight Case Section 3

Flight Case Section 3

Lifting Off Print Bed

Lifting Off Print Bed

Lifting Off Print Bed

Lifting Off Print Bed

This clearly wasn’t going to give a satisfactory result, so we aborted the print; deciding instead to use the ‘brim’ option for print bed adhesion.

The print using the brim option for bed adhesion worked well, and gave a really nice result.

Brim

Brim

Flight Case Section 3

Flight Case Section 3

Section 3 Top View

Section 3 Top View

Section 3 Bottom View

Section 3 Bottom View

Section 3 Finished Print

Section 3 Finished Print

Section 3 Brim Removed

Section 3 Brim Removed

Astro Pi Flight Case – Section 2 (The Base) – Take 1

Spurred on by the success of our first section of the Astro Pi flight case, we moved on to print the next section. We decided that we would print section 2 next, as although this section would take just over 10 hours to print it meant that we could start to work on putting bits into the case while the rest of the case was printing. Using the ‘brim’ option for bed adhesion again, the print started off really well. However, for reasons unknown, at some point at about an hour into the print, the X axis of the printer seemed to jump suddenly to the left by about 10mm, meaning that the print was ruined.

Section 2 with Brim

Section 2 with Brim

Section 2 Spoiled Print

Section 2 Spoiled Print

Thinking that this was just a one off occurrence, we started to print section 2 again, but it very quickly started to go wrong. The main problem was that the PLA was being extruded really unevenly on the first layer of print, and the feed wheel on the extruder appeared to keep slipping on the PLA filament. We concluded that this was probably because the tip of the extruder was actually too close to the print bed, and was effectively being blocked; thus preventing the PLA from being extruded. Because of this we felt it was high time to take a look at the adjustment of the print bed.

As well as the extrusion problems, we had also noticed that the Z axis was being altered by the printer quite a lot when printing a layer of print. This suggested to us that the bed was not level, and thus needed to be leveled.

Leveling the Print Bed – Take 1

The print bed on our printer, the MakeBlock mElephant, is adjusted by means of 3 screws each of which adjusts the height of the bed at a particular point. Adjusting the bed is a matter of moving the extruder to the home position and then moving the print head to the extremes of the X and Y axes and checking that the clearance between the tip of the extruder and the print bed are the same at each of the 4 corners; adjusting the screws as necessary to alter the clearance at a particular corner. Turning a screw clockwise will lower the print bed with respect to the extruder tip, and turning anti-clockwise will raise the height of the bed. Unfortunately, because there are 3 screws, adjusting one screw may alter the clearance at more than one corner, so we found it necessary to repeat the leveling process quite a few times in order to get the bed completely level.

Once we were happy that the bed was reasonably level, we tried to print a test piece which we had designed to check that the bed was level. This test piece is simply a square, 110mm across with rounded corners and a wall thickness of 3mm. For bed adhesion we kept with the ‘brim’ option.

Our first attempt to print this test piece showed that although the bed appeared to be sufficiently level, there was an offset between the Z axis sensor on the print head and the tip of the extruder. This offset meant that the tip of the extruder was so close to the print bed that the PLA could not extrude from the print head. This Z offset can be manually adjusted on the printer, and a bit of trial and error showed that we needed a Z offset of about +0.3mm. Unfortunately we could not find a way of saving the setting permanently, meaning that the Z offset would be reset to its default value each time the printer was powered off and on again. Because of this we decided that the easiest option was to add a line of code (G92 Zx.x) to the start.gcode section of the Cura print Gcode to tell the printer to effectively offset the Z axis; in our case by +0.3mm. This line of Gcode needed to be added after the print head had moved to its home position, but before the print bed is probed. Our start.gcode is thus as shown below:-

G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28 ;move Z to min endstops
G92 Z0.3 ;Set the Z position to give a Z offset
G29 ; probe bed
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...

This extra line of Gcode effectively moved the print extruder head up (away from the print bed) by 0.3mm at the start of the print to give sufficient clearance to allow the PLA to be extruded, but not too much clearance, as this would mean that the PLA would not adhere sufficiently to the print bed. The value of 0.3mm was based on the manual Z offset adjustment that we had previously made. Having made this change to the Gcode, our next attempt to print our test piece produced a really good finish, so we thought it was time to have another go at printing our section 2 of the Astro Pi flight case.

Flight Case Section 2

Flight Case Section 2

Astro Pi Flight Case – Section 2 (The Base) – Take 2

The next attempt at printing section 2 of the Astro Pi flight case also gave a really good finish, as can be seen from the image below:-

Section 2 Finished Print

Section 2 Finished Print

The image below shows how well sections 2 and 3 of the flight case fitted together, with the Raspberry Pi located within the case.

Sections 2 and 3

Sections 2 and 3

Astro Pi Flight Case – Section 4 (The Lid)

Because of the success of our section 2 of the flight case, we moved on to printing section 4 (the lid), and again we ended up with a really good result.

Flight Case Section 4

Flight Case Section 4

Flight Case Section 4

Flight Case Section 4

Flight Case Section 4

Flight Case Section 4

Despite the good finishes of sections 2, 3 and 4 of the flight case, we did notice that the brims that had been printed around both the sections were still a little uneven. Although the brims are removed from the finished item, we felt that the fact that they were uneven suggested that the print bed was still possibly a little bit out of level.

Uneven Brim

Uneven Brim

Uneven Brim

Uneven Brim

Leveling the Print Bed – Take 2

Because of this, we decided to spend a little more time trying to get the bed more level and checking it again using our test piece and one or two other smaller prints. The images below show sections of the brims removed from prints from before and after our final bed leveling exercise. Before the bed was leveled, the brim was quite uneven. However, after we had spent further time leveling the print bed, the brim was a lot smoother and more even.

Uneven Brim

Uneven Brim

Even Brim

Even Brim

Astro Pi Flight Case – Section 1 (The Heat Sink)

The final part of the Astro Pi flight case is the heat sink. This particular part was going to take around 11 hours to print. By the time we came to print this, we were generally happy with the leveling of the print bed. However, we did still find that there was a small amount of warping of this particular part shortly after the print started. To try to reduce this we attempted a revolutionary new technique of sticking down the corners of the print using narrow strips of masking tape; quite a tricky operation on a moving print bed.

Astro Pi Heat Sink

Astro Pi Heat Sink

Astro Pi Heat Sink

Astro Pi Heat Sink

Despite our attempts to reduce the warping of this part by using masking tape, the final print was very slightly warped. However, we were generally happy with the quality of the finished part.

Astro Pi Heat Sink

Astro Pi Heat Sink

Astro Pi Heat Sink

Astro Pi Heat Sink

Bonus Extra – A Joystick

As a final finishing touch, we thought we would have a go at designing and printing our own joystick to fit over the joystick of the Raspberry Pi Sense Hat. This proved to be quite tricky, as the tolerances are quite small, and (as we were soon to find) quite difficult to achieve using our 3D printer.

The joystick was designed using OpenSCAD, and our final design can be found on Thingiverse at the following link:-

http://www.thingiverse.com/thing:1810301

One of the interesting things that we discovered while trying to print the joystick was that different filaments seemed to give different print definition. Our initial attempts at printing the joystick was using the same grey/silver filament that we had used for our flight case. With this filament we found that it was quite difficult to get a perfectly square hole at the top of the print. We also tried printing the joystick using a yellow filament that we had available, and again found that a perfectly square hole was difficult to achieve.

3D Printed Joysticks

3D Printed Joysticks

Luckily, it was decided that we should print the joystick in red, and the only red 1.75mm PLA filament that we had available was a Dremel filament. Remarkably, we found that this particular printer filament gave a better print definition than we had managed to achieve with the other filaments we had used, and we actually had to reduce the size of the square hole in order to give a good fit on the square joystick on the Sense Hat.

So, with all our 3D printed parts now complete, we wanted to check that everything was working ok. We haven’t got round to wiring up the switches yet, but the pictures below should give a good idea of how the parts have gone together to give a complete flight case.

Complete Flight Case

Complete Flight Case

Flight Case With Joystick

Flight Case With Joystick

Flight Case With Joystick

Flight Case With Joystick