Part 2 of the 3D Printer post

Welcome back. In Part 1 I explained the basics of 3D printing up until the time we start the printer itself, ie. the virtual design using Blender.

To get an idea of the printer, this is an introductory video from MiniFactory, which is a Finnish company. It costs 1,500 EUR, about 1,800 USD, and it can print objects using either PLA (a corn starch based substance), ABS plastic, or even nylon. It was delivered almost ready to print, and I think it is an extremely useful and suitable device for entering the fascinating world of 3D printing.

Installation is minimal: you plug in the USB cord, install Repetier Host, run through a calibration routine, place the material spools in the rack, and you’re good to go. The next picture identifies the main parts of the machine – click on the image to see it better.

1 -the material spools
2 -the Z axis worm screw for moving the print nozzle up and down
3 – X axis worm screw for moving the print table left and right
4 – Y axis worm screw to get the table backwards and forwards
5 – print table, which is heated to 80-100 degrees C when printing
6 – print nozzle, which extrudes plastic at around 200 degrees C in a thread of 0.3 millimeters. The print nozzle can be moved with a precision of 0.1 millimeters in any dimension. (Image by


Now that we go into the print routine itself, the first thing is to turn on the printer and check the unhindered movement of the parts. This can be done in Repetier, because you have manual control for all three axis. Calibration needs to be repeated only if things don’t print nicely, as that can be a result of too much distance between print head and object being printed.
Repetier Host configuration, then, is a little more complex. For that, miniFactory supplies a short checklist, which needs to be kept handy. While you can have multiple sets of configurations, I have found it necessary to tweak one setting for this print job and that setting for another, and it is easiest to keep one master settings file that you can always return to before starting to tweak.

Let’s have a look at Repetier Host.

repetier 1

You can click on this too to see it better, but essentially you have the object to be printed in the center of the print box, which is 15 cm x 15 cm x 14 cm in size. On the right side you have the controls of Repetier, and the next thing is to click on the second tab there, called Slicer. There is a big button there called “Slice with Slicer”, which you can’t miss.

repetier 2

The object becomes blue and it has the effect of being constructed out of a spider’s web. It actually is, because this image shows you the movement of the filament from the print nozzle, as it is moved around the table to bring out the 3D print.

In the window you can also see the G-code which Slicer has produced. If you have to change the speed of the nozzle, or the thickness of the extrusion, or the heat in the nozzle or table, you must change these before hitting Slicer, because the G-code it generates depends on the configuration of Slicer. If you change anything after slicing, it will not be reflected in the print, if you do not re-slice.

The table is a piece of plate glass. It is too smooth for the ABS extrusion to stick to, but it is absolutely vital that the piece adheres to the table. For this there is a surprise tool: hairspray. You can imagine the look on the supermarket salesperson when I, with much and very flowing hair on my head, popped into buy two large bottles of hairspray. Explaining that it was for a 3D printer did not return her confidence in my business. Another funny thing is that the dealer of the machine first brought me two tiny bottles of Elnett hairspray at 18 euros per bottle, but  supermarket quality stuff at 4 euros a huge bottle works just as well. The hairspray is liberally sprayed on the table until the surface is frosty with the stuff.

Then you hit the Run key. For a moment nothing happens. That is because MiniFactory starts to heat the table first, and you can follow the temperature rising by glancing at Repetier’s status bar. Then the table goes to zero on both X and Y axis, and again, nothing seems to happen for a while. The nozzle must be heated to 220 degrees C (or thereabouts), and that takes a few moments.

When the actual printing starts, the printer deposits a line of the material around the area inside of which the actual design will be printed. At this point it begins to emit an infernal noise, which I was able to decrease to a godawful wail by placing the whole machine on bubblewrap. This noise results from the step motors rotating in tandem, and as the printing continues, the table will move around according to the movements described in the G-code. Let’s have a quick look at the G-code.

The lines with a preceding ; are comments, as is text after one. The first bunch of comments merely records the settings the Slicer used when creating the G-code.

; layer_height = 0.4
; perimeters = 3
; top_solid_layers = 3
; bottom_solid_layers = 3
; fill_density = 0.4
; perimeter_speed = 30
; infill_speed = 60
; travel_speed = 130
; nozzle_diameter = 0.5
; filament_diameter = 3
; extrusion_multiplier = 1
; perimeters extrusion width = 0.53mm
; infill extrusion width = 0.53mm
; solid infill extrusion width = 0.53mm
; top infill extrusion width = 0.53mm
; first layer extrusion width = 0.70mm

The actual fun starts here. This is reminiscent of Assembler coding, or the language used to drive plotters of yore. Come to think of it, these 3D printers are actually plotters with a Z axis.

G21 ; set units to millimeters
M104 S200 ; set temperature
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle

Gotta love the codes. This language, very simple in its syntax, actually emerged in the 1960s.

M109 S200 ; wait for temperature to be reached
G90 ; use absolute coordinates
G92 E0
M82 ; use absolute distances for extrusion
G1 F1800.000 E-1.00000
G92 E0
G1 Z0.350 F7800.000
G1 X59.433 Y72.779
G1 F1800.000 E1.00000
G1 X60.173 Y72.229 F540.000 E1.03000
G1 X60.653 Y71.929 E1.04841
G1 X61.353 Y71.559 E1.07417
G1 X62.383 Y71.099 E1.11088
G1 X96.533 Y58.439 E2.29584
G1 X98.623 Y57.649 E2.36854
G1 X99.153 Y57.479 E2.38665
G1 X101.293 Y56.879 E2.45896
G1 X101.783 Y56.759 E2.47537
G1 X103.973 Y56.319 E2.54805
G1 X104.543 Y56.229 E2.56682

The command G1 moves the nozzle to the X and Y location, and the E defines the extrusion that happens. This G1 command line is repeated with new values until the element has been printed all the way. In this case, there are 18,600 lines of code.

The last lines are

G92 E0
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors
; filament used = 1317.4mm (9.3cm3)

and with this, the table stops, the nozzle is lifted all the way up, and the table and nozzle start to cool. By the time the table is cool, the printed thing will pop off the table, and any residual ABS can be picked or knifed off. All that remains is to clean the table glass with ordinary Fairy.

The result of the print operation is this:


If you compare this with the rendered image in the previous post, I think it is fair to say the likeness is striking. I could apply some post-processing by placing acetone in a glass glass container, then inserting this piece in the fumes for a minute or two (the acetone will melt the top layers and bring about an even, glossy finish) but I have yet to try that. Suffice it to say that I have some work to do in figuring out the effect of different settings to the Slicer and to the machine as a whole.

To round off this tale, here is the miniFactory v3 in action (the print job is not the one above) – click image for video:

minifactory image

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.