Purpose of this blog: To create a forum where members of the 3D medical printing community can share problems, solutions and practical advice pertaining to all aspects of the 3D printing pipeline.
Featured problem: Setting up a new printer
Featured printer: Printrbot Metal Plus
Printing type: Fused deposition modeling
Theme: Don’t put the cart in front of the horse
Translation: don’t try to print before you’ve set up the printer
If you are at all like me, you are impatient. When your new printer arrives, you want to rip open the packaging, set the printer on the counter, plug it in and hit “print”. If this sounds like you, keep reading. This first blog is a cautionary tale.
Lesson 1: Make sure that your printer is properly calibrated.
1. Level, Level, Level
While the printer may come “pre-calibrated,” it is always a safe bet to double-check that nothing untoward has happened during shipment.
The printing bed needs to be level in relation to the path of the extruder, and therefore both the bed and the extruder railing should be checked and adjusted if not leveled. The more level you can get the print bed with respect to the extruder, the easier your life will be for all of the following steps. There are many reports of warped print beds on the internet; e.g. some of the printrbot simple models seem to have a dip in the center of the print bed. Using a straight edge rather than just a level may help you detect this type of issue. Getting that print bed straight by whatever means necessary is advised.
2. Determine your negative z-value, or get ready to throw out a lot of failed prints
You need to determine the optimal distance that the hot end of the extruder should be from the print bed when printing.
The number you are determining is the negative z value. Picking your negative z-value is sort of like Goldilocks and the 3 bears: If the negative Z value is too high, your print will look stringy. If the negative Z value is too low, your print will look smashed. So you want it Just Right.
To set the negative z value, you need to modify the G-code.
At this moment, let me digress for those not familiar with G-code. G-code is the language that the printing software uses to communicate with the printer. G-code is, in essence, directions given to the printer on how to drive the motors and turn the heaters on and off. This is akin to postscript for laser printers. Different slicing programs will create different g-code; some will do it better than others, depending on how optimized they are for a given printer, etc. This is also why some slicing programs may result in a faster print, based on more optimized/efficient g-code.
tip: always enter G code in CAPITAL LETTERS
For the Printrbot, you enter the G-code that assigns the negative z-value in Repetier. Go to the manual control tab on the right side of the screen, make sure your printer is connected and then type the following in the G-code line:
M501 (shows you what the current X, Y and Z offsets are; output on the bottom of screen)
M212 Z0 (The number you type after Z is the negative z value that you are assigning. Start with 0 and see where you land, then go negative in small increments e.g. -0.1 to move closer to the print bed, printing a simple object each time and seeing how it turns out. Positive numbers will move the extruder farther from the bed.)
3. Auto-level before every print.
Your printing software should instruct the printer to auto-level before any print. In addition to the basic leveling described in 1., there is an “auto leveling” check designed to determine if the print bed is tilted in any direction. Also referred to as “z probing”, this step is necessary because the quality and success of your print depends on any discrepancies in the distance between the hot end of the extruder and the print bed at a given location being accounted for.
This can be done by probing 3 locations on the print bed.
Don’t believe leveling the bed matters? Well, here are some problems that can arise from a poorly leveled bed:
-Initial print layer does not stick or parts are missing
-The hot end of the extruder scrapes the bed
-The extruder gathers up plastic from the first or second layer
So how does auto-leveling work?
-An auto-leveling probe (aka z end-stop sensor) defines the distance between the extruder hot end and the print bed at any given location.
The auto-leveling probe is to the right of the extruder and has an orange tip in the picture below.
The Printrbot Metal Plus has an “inductive sensor” that detects the print bed via conductivity from the aluminum bed. The theoretical beauty of this design is that the sensor tip can be positioned at a level higher than the tip of hot end of the extruder and thus will not drag through your printing surface the way a touch down sensor would. The potential pitfall is that things that change conductivity (i.e. adjacent metallic objects) may affect the sensor.
It is possible that your z end-stop sensor is faulty- if you are the unlucky soul that receives a malfunctioning sensor, you may be in for some hurt if your printer tries to jam the extruder into the table. Even if your sensor works, you may misjudge the distance from the extruder to the bed- for these reasons, be very close to an off switch or the plug when you are calibrating your negative z value. If the extruder is being jammed into the table, by all means, turn the printer off!
To auto-level before each print, you need to make sure that the printing software contains the autoleveling G-code and adds it to the beginning of any slicing G-code. You need to set up auto-leveling in each slicing/printing program you use. It does not translate between them.
The G code you use in Repetier is:
G28 X0 Y0
Below are some links to setting up auto-leveling in Repetier and Cura.
Setting up auto-leveling in Repetier on Mac: http://help.printrbot.com/Guide/Setting+Up+Your+Auto-Leveling+Probe+and+Your+First+Print+-+Mac/107
Setting up auto-leveling in Repetier on PC: http://www.repetier.com/documentation/repetier-firmware/z-probing/
Setting up auto-leveling with Cura: http://www.instructables.com/id/Use-Printrbots-Autoleveling-Probe-with-Cura/
Beware: Just because your printer auto-levels itself, it doesn’t necessarily mean it won’t plunge through the printer bed in a desperate attempt to follow your every command. In fact, the printrbot metal plus is NOT smart enough to know when to say no. When we accidentally told it to go down 10 mm in the z direction when it was at Z0, it did so, much to our horror (see picture below).
In the background of this picture, a hole in the stage marks the scene of an unfortunate z-axis accident.
In the foreground, the outline of an aorta that did not make it (foreshadowing for the next blog entry).
4. Just how accurate is your model?
You can check to make sure that the printer motors are appropriately calibrated- i.e. they actually travel the correct distance when told to do so. As described above, the printing software communicates with the printer (and thus the motors) using G-code. To make sure nothing is “lost in translation”, you need to make sure that when the software tells the printer head to move, say, 10 mm in the x-direction and 25 mm in the y-direction, the printer head appropriately translates that g-code into the correct movement.
There are 4 motors:
To check the calibration of the x, y and z motors, tell the printer to move 40 mm in the x axis and then measure to determine whether it is accurate. If you measure 40 mm, you are done. If not, you need to do some recalibration (see below). Do the same with the y axis and the z axis.
Appropriate calibration in the x, y and z axis matters a lot for medical modeling…you want to make sure you are creating accurate models!
To check the calibration of the extrusion motor, heat up the extruder to the recommended temperature for the filament. Use tape to mark a few cm up the filament and then measure from the tape to the entrance into the extruder. Tell the printer to extrude 10 mm of filament and measure again.
Rate of extrusion really matters: your printing software assumes it knows the accurate amount of material extruded per given time.
If too much is extruded, your print will have globs; if too little is extruded, you have holes or poor matrix
This is a great primer on motor calibration and how to fix errors: http://www.instructables.com/id/Calibrating-your-3D-printer-using-minimal-filament/
5. More advanced calibration/ “tweaking” to optimize your prints:
A 3D printing manufacturer who goes by “Ville” recently designed and published an STL test file that can be used to troubleshoot calibration issues with any printer. The print has several challenges, including various overhangs, small details, different sized holes and wall-thicknesses, bridging and different surfaces. The idea is that users can share problems and solutions with each other.
Read more at: http://3dprint.com/48922/3d-printer-calibrating-test/
Download this STL test file at: https://www.thingiverse.com/thing:704409
The top picture is what the test model should look like. The bottom picture is what my printer produced. Guess I have some tweaking to do....
In the next post, we will tackle one of the most infamous struggles in 3D printing- getting your model to stick to the print bed.
Until then, happy printing!