3D printing is a very intricate process that requires a lot of calculations to give you the best output.
These calculations and steps may be a hassle to figure out for a beginner and a tedious task for someone with more experience.
This is why at The Micro3D we’ve made this 3D printer calibration guide to help you get the best results with the optimum calculations.
How to accurately calibrate your 3D printer: 3 Steps
1. Fixing up your first layer
If you want to get a good final print, you have to make sure you fix up a good first layer.
Don’t get the nozzle too close to the bed as this may squish or even destroy your first layer, and then you’ll have to cancel the print.
On the other hand, if your nozzle is too far from the bed, your print will not have enough adhesion and may fall apart. The trick is to tune the Z offset.
This basically dictates to your printer the distance between the Z-axis and the Z end stops -or in other words, the bed.
The idea is to ensure that your first layer sticks perfectly to the bed. So if the nozzle digs into the first layer, increase the Z offset.
Contrarily, if the first layer is peeling from the bed, reduce the Z offset.
2. Calibrating the stepper motors
The axes or the extruder are moved by the effect of the small rotations of the 3D printer’s stepper motor.
For example, if a rotation is 100 steps, the motor will rotate 50 steps to turn half of the rotation. This gives you a lot of control over the 3D printer.
The whole trick is to figure out the relationship between the steps and distance.
- First step: Get your values set
To properly calibrate the extruder, you should make sure your 3D printer is extruding the optimum amount.
Try sending some G-code commands to your printer. You can send “M503” to get all your printer’s settings.
You should see output that looks like this: “Steps per unit: M92 x 100.00 Y100.00 Z400.0 E140.00”.
The first three values indicate the number of steps that the stepper motors require to move one millimeter in the X, Y, and Z directions respectively.
But that’s not what we’re concerned with right now. What we want to focus on is the last value, which indicates the number of steps that the extruder requires per millimeter of extruded filament. Let’s call it A.
After that, insert some filament and mark 50 millimeters above the top of the extruder. Measure the precise value with calipers and note it down. We’ll call this number B.
After that, extrude 10 millimeters of the filament and measure the distance from the top of the extruder to the point your marked. We’ll call this value C.
From B to C is the amount of filament that was extruded. In essence, if B to C is 10 millimeters, then the extruder is well-calibrated. If not, then you’ll have to update the steps per millimeter.
Calculate the value D = 10*A / (B – C). This is the new number of steps per millimeter for the extruder. To get the optimum results, you can compute it multiple times and then take the average.
- Second step: Calibrate the extruder of your 3D printer
Now it’s time to actually carry out the calibration by telling the printer the new value.
Send the command M92 E[D] to the printer. This command tells the printer the new value, however, it doesn’t save it.
In order to save the value, send the command M500.
For example, if the distance between the marked point and the top of the extrusion was 53.10 mm before the test extrusion, then after the test, the distance would be 42.80 mm. Then B – C would be = 10.30 mm.
If the initial number of steps per millimeter for the extruder was 140, then we would send the command M92 E135.92 as 10*140 / 10.30 would be = 135.92.
By all means, you shouldn’t expect the results to be perfect. Some variation is bound to occur after you confirm the correct calibration. However, as long as you’re in the correct range of the desired value, your printer should be good to go.
- Third Step: Calibrating the axes
After you’ve calibrated the extruder, it’s important to do the axes as well. It’s a similar process to the extruder calibration but requires actual printing.
For example, you can print a small cube that you design on the CAD software of your choice.
After you’ve printed it, measure the dimensions. For each axis, repeat the computation you did for the extruder but replace the (B – C) by your measurement.
The number 10 by the target value of that measurement, then A by the M92 value for that axis.
After that, send the proper M92 commands to the printer. Don’t forget to put in the letter corresponding to the axis you need to set instead of the E.
For example, let’s say your cube was supposed to be 20 mm on each side but it turned out to be 20.30 mm in the X direction when you measured it. If your M92 value for X was 100.00, then you should update it by sending the printer command M92 X98.52 because 20*100 / 20.30 = 98.52.
Again, repeating the measurements and taking the average will help you with the process.
Tip: You don’t have to print multiple objects here and you can suffice with measuring the cube at different positions along the same axis.
3. Fine-tuning the filament settings
You should be aware of the difference in properties between rolls of filament based on manufacturers or even colors of the same material.
That’s why you have to fine-tune your filament settings to get the best results.
Using the settings recommended by the manufacturer should do. However, if you want the best results, you should take a look at the next tips.
- First step: Measuring your filament
Use calipers to measure the diameter of the filament. The diameter can often differ –to a degree- from the one reported by the manufacturer. The tolerance diameter is usually printed on the spool.
Go on by measuring the filament at around 3 places along the spool and take the average of the measurements.
Enter this result as the filament diameter in your slicer.
The more accurate the measurement is, the more accurately your 3D printer will extrude the right amount of filament.
- Second step: Find the optimum printing temperature
The best way to do this is by printing a “temperature tower”. The basic idea is to separate the blocks at different heights and have each block printed at a different temperature.
After you print them, you analyze the blocks in order to determine which was the temperature at which your material was best printed.
If your slicer doesn’t enable you to print at different temperatures in different heights, however, this could be problematic.
You can handle this by manually editing your G-code before printing. The G-code commands to set the extruder temperature begin with M104.
Measure the height of each block and call the number “H”. The division should be that each block starts at a height 0, H, 2H, 3H, etc.
Next, open your G-code file in the editor of your choice and look for the commands that dictate your printer how to move (they begin with G1).
Your G-code file will have a lot of these, so look for the command of the form G1 Z[H].
Right before that line, insert “M104 S[T]” where T is the temperature of the block that begins at height H.
To illustrate, if the blocks have heights of 10 mm and the temperatures range from 185°C to 220°C in 5°C increments, then you should find the first command that contains G1 Z10.
Right before that line, set the hot end to 190°C by putting in “M104 S190”.
Repeat this for each block with the proper temperature and then print the final G-code file.
When you have your temperature tower, examine the different blocks to determine the optimum printing temperature for your material.
We’ve gone over the most crucial steps in the 3D printer calibration process and some slicer settings for the filament.
However, there are a lot of other settings that you can change and play around with to maximize the smoothness and accuracy of your final print.
Sometimes, people use something that’s called a “torture test” to get an idea of what their printer is good at and what improvements they can make.
Printing and perfecting these prints can help you with things like bridges and overhangs, as well as diagnosing different problems.
The most common torture test is 3Dbenchy (often remferred to as just “Benchy”), but you can find a lot of them on any STL site.