How to Calibrate Your 3D Printer – Extruder, Filament & More
Calibrating your 3D printer is essential in producing the best quality of 3D prints that you can get on your machine. There are many parts and things you want to calibrate on your 3D printer, whether it’s an Ender 3, Prusa, or Anycubic printer.
This article is going to take you through some important calibrations that you should run with your 3D printer and filament, to improve your 3D printing successes.
How to Calibrate & Dial In New Filament on Your 3D Printer
One of the first things you want to calibrate when it comes to your 3D printer is the filament that you are using. There are several brands, types of filaments, colors, and composites that require their own specialized routine to get the best results.
It’s essential to get the learning curve out the way so you can calibrate all of your favorite or new filaments before you get into printing those large models because without calibrating it, you are more likely to see print failures or suboptimal results.
When you see people producing some of the best quality 3D prints, you can be sure they calibrated their filament as good as they could.
Filament calibration is a combination of various settings and you may need to tweak these settings before every print, especially after changing the spool of filament.
If you are working with the filament of a single brand, you can set up an individual file for the material and it will work for all the print from that material. You should review the settings if you switch from one filament material to another.
Things you’ll need to calibrate:
- Printing temperature
- Bed temperature
- Print speed
- Retraction settings (stringing)
- Layer adhesion tests
- Bridging & overhang tests
Create a Custom Profile
You want to start off by making a fresh Custom Profile for this specific filament, which you can name *Color* + *Brand* Settings for easy identification.
In Cura, this is done by doing “CTRL + J” which opens up your profiles, then click the “Standard Quality” quality profile and hit “Duplicate”. You will then be asked to name your new profile.
With time and more filament usage, you can start to build up multiple profiles of filament brands and materials so you don’t have to guess or remember which settings worked best last time.
Calibrate Temperature with a Temperature Tower
Setting an appropriate hotend/printing temperature is essential for each print according to the filament material, brand, and other printer’s settings. Temperature plays the most important role in any type of 3D printer, no matter what filament material you are using.
Hotend temperature should be perfect because high temperature can result in issues like stringing, oozing, or may even lead to damaging your internal PTFE tube. On the other hand, low temperature may print weak 3D models, dullness, and may result in hotend clogging.
Do keep this fact in mind that temperature settings and retractions settings are interrelated. You can set them in any order you want but you may need to tweak both settings to get the perfect and desired results.
The first thing you want to calibrate is the printing temperature with a temperature tower.
A great temperature tower that you can print for your filament calibration is the Temp Tower from Thingiverse. Essentially, it’s a tower where you can set your nozzle to change temperature for each new tower automatically during the printing process.
I remember when I first did one of these and set the temperatures manually each time the print reached a new block, not my best moment but it worked!
The video below is a simple tutorial to get you started on printing your very own temperature tower. It’s a pretty straightforward process and can really transform your 3D printing experience.
Calibrate Bed Temperature – Trial & Error
For your bed temperature, calibration depends on what type of bed you are using, as well as material you are using. PLA has been known to print without a heated bed, or at a temperature between 40°C-70°C.
You can also use some kind of adhesive on the bed for better first layer adhesion, such as hairspray, glue stick or blue painter’s tape. PLA can really work well just going off of the bed surface and first layer height/flow rate.
Depending on the dimensions of the part you are printing, your model can warp when it’s thin and not firmly attached to the build plate due to rapid cooling.
Calibrate Printing Speed With Print Speed Tower
After you’ve done these calibrations, you can then move onto a print speed tower. This step isn’t essential and a print speed of 50mm/s usually does well for most materials, but it’s a good way of decreasing printing time and not losing much quality.
Test Your Calibrations with Tests (All-in-One Test & Benchy)
At this point, it’s time to put these settings to the test by 3D printing yourself a Micro All-in-One 3D Printer Test from Thingiverse. Simply download the STL file, input your tested settings and see how it comes out.
It tests many 3D printing factors such as bridging, overhangs, stringing (retraction), tolerance, sharp corners, and a scale test (diameter).
You want to use the results from this 3D print to dial in other settings like retractions if there is stringing, or fan settings if overhangs aren’t performing very well.
You can get better overhangs by decreasing the printing temperature slightly, lowering the layer height, increasing printing speed, and increasing fan speed.
For another final test after you have fine-tuned these settings, I’d print the good old Benchy to see how it comes out.
Filament Diameter Calibration
Some people go and measure the diameter of their new filament in a few different locations, then get an average of those readings to then enter in their slicer as the new filament diameter.
This setting is found by going to the top under Settings > Printer > Manage Printers. Then you hit “Machine Settings” and go to the “Extruder 1” tab as seen below.
- Measure the diameter of your filament from different places using a digital caliper and then enter the resultant average value in the “Filament Diameter” tab.
In terms of good quality calipers, the stainless-steel Kynup Digital Calipers is one of the highest rated calipers on Amazon, and for good reason. They are very accurate, up to an accuracy of 0.01mm and very user-friendly.
Calibrate Your Retraction Settings
Retraction calibration is necessary to ensure 3D prints of high quality and minimize the chances of stringing and oozing.
Retraction settings should be reviewed and calibrated every time after applying changes to the hotend, extruder, or changing the filament brand or material.
Do keep this fact in mind that retraction calibration is not a single setting but it includes various settings including retraction speed, retraction distance, prime speed, etc.
When the retraction settings are calibrated properly, you significantly reduce all types of stringing and blobs in your 3D prints, leading to better quality.
Download a Basic Retraction Test from Thingiverse. It’s a good idea testing different levels of retraction so you can have a better idea of how it affects your 3D prints.
I’d 3D print a retraction test with 0 retraction and observe, then print a series of tests with various retraction speeds and distances.
Cura gives you a default retraction distance of 5mm, and I’d advise to try distances from 2mm-7mm for your own test (3mm can work pretty well).
For retraction speed, Cura defaults to 45mm which is a pretty good speed.
You can decrease retraction speed by 10mm/s increments if you do notice any issues with the filament or the extruder incorrectly retracting the filament.
You can usually hear some kind of retraction noise when it retracts, so you can see whether it is too fast in the printing process.
Retraction settings change depending on your 3D printer, your extruder, the filament type or even brand, so it’s important to run these tests regularly for the best results.
How to Calibrate Your Extruder/E-Steps
Calibrating your extruder steps is an essential task when you want to get the best 3D print model quality since it influences just how much filament is coming through that extrusion path and out the nozzle.
This is basically controlling how much your extruder motor actually rotates relative to pushing and pulling filament. We measure the movement in “steps” and it is broken down into a portion of a full 360° rotation.
Simply put, when we calibrate our E-steps or extruder steps, we ensure that our extruder is moving through as much filament as it says it is moving. Often, people don’t realize that their extruder is pushing less filament than recorded, leading to under extrusion.
When you tell your 3D printer to extrude 100mm of filament, you actually want 100mm of filament to be extruded.
Now how do we calibrate our E-steps?
To calibrate E-steps we’ll need a few tools:
- Calipers
- A marker of some kind (permanent preferably) to mark the filament
- A way to move your extruder – whether that is through your printer’s control box with the right firmware or through software.
- Your filament of course!
With the interface from the BIGTREETECH SKR 2.0 Control Board from Amazon, you can directly control your 3D printer to extrude filament, change the E-steps, adjust flow rates, and plenty more (on a touchscreen).
Follow the video below to calibrate your E-steps like a pro!
There are different slicer software that allows you to send G-Code to your 3D printer such as Pronterface, Simplify 3D, Octoprint, etc. To connect your 3D printer with Pronterface, just follow the procedure as follows:
- Download the Pronterface software from its official website.
- After the installation process, open the Pronterface on your computer.
- Connect your 3D printer with your computer using a USB cord.
- In the Pronterface software, there will be a Port tab in the top-left corner which will show you the available ports.
- Select the port in which the USB cord is connected such as COM4.
- Now click on the Connect button located in front of the port tab in the top-left corner.
- A window will open on the right side of the Pronterface interface. You can send commands directly to your 3D printer from there.
My connection is a COM7 with a 115200 rate. I actually had to download a specific driver to get Pronterface to work, called the CH340 Driver from Sparkfun, which is a quick .exe file download.
I also had to connect the USB to my laptop, turn the printer off, reconnect the USB with the printer still off, then connect the USB. After connecting the USB, the display screen would turn on with the laptop power, and I’d have a good connection.
You can check the correct COM when you go into Device Manager on your PC or laptop, and disconnecting the USB to see which one appears or disappears.
When you see the right connection, double-click the Device, go into the “Port Settings” tab and adjust the “Bits per second” to 115200.
If you have any issues regarding connectivity you can watch this video for a better understanding.
Once the command’s window is displayed, you can start the further process to calibrate E-Steps.
- Send an “M92” command to the printer to know the existing value of E-Steps.
- The return answer will have a value at the end of the statement such as “E93.00” (stock Ender 3 or Ender 5).
- With knowing that 93 is the existing value, heat the hotend to your common printing temperature.
- Take the permanent marker and mark the filament at 120mm (using calipers to measure) from the extruder’s entrance
- Send the “G1 E100 F50” command to the printer as it will tell the printer to extrude 100mm of filament at a speed of 50mm per minute.
- Once the filament extrusion finishes, measure the distance from the entry of the extruder to the mark on the filament.
- If the distance is 20mm, it means that the extruder is perfect and it extrudes exactly 100mm.
- If not, we want to calculate the exact amount of filament extruded by measuring the current distance away from the mark, then subtracting that from the original 120mm.
- Take your current E-step value * 100 /actual length extruded = new E-step value.
- Once you get the right value, send it by commanding “M92 E[New Value]”
- Send an “M500” command because the “M92” command only sends the value but the “M500” will save the value in the configuration.
You then want to redo the process, calculation, and measurement until you get to actually extruding 100mm.
How to Calibrate Your Dimensional Accuracy
Dimensional accuracy is not much important if you are printing some aesthetic objects or ordinary things but if you are going to print different parts that need to be fit together, calibrating your dimensional accuracy is essential.
This does tie in with the previous calibration of the extruder or e-steps because it identifies how much your 3D printer is extruding compared to how much it should be extruding, but in the form of an actual print.
The print you’ll be creating is something called an XYZ 20mm calibration cube, an object you’ll be printing plenty of down the line from today!
Your procedure should be as follows:
- Download and print an XYZ 20mm Calibration Cube with your normal print settings
- Measure the X, Y, & Z axis using your calipers and write down the values
- Each side should measure at 20mm, but if it doesn’t, we adjust the number of steps using a formula
The formula is:
E= expected dimension (20mm)
O = observed dimension (what you measured)
S = current number of steps per mm (adjust in firmware through your printer or by software)(E/O) x S = new number of steps per mm
Although you might not get it perfect, there is a general range that is top-tier, pretty good, average, and not good at all.
These ranges according to All3DP are as follows:
- Excellent: ±0.1mm (19.90mm or 20.10mm)
- Good: ±0.2mm (19.80mm or 20.20mm)
- Decent: ±0.5mm (19.50mm or 20.50mm)
- Bad: More than 0.5mm (19.49mm and below or 20.51mm and above)
If you notice big discrepancies between the X, Y or Z measurements, you’re going to want to adjust the Steps per mm for the corresponding axis. The X axis is measured by measuring the distance across the “X” face of the cube, same with the Y & Z.
How to Calibrate Your 3D Printer Flow Rate
Flow rate determines and ensures that the correct amount of filament should be extruded by the 3D printer.
It should be reviewed wherever you change some calibration, change filament brand or material, or change the hotend and extruder settings. You will require slicer software, vernier clippers, or accurate digital calipers.
Extrusion multiplier is the second name of flow rate and usually used in the Prusa Slicer and Simplify3D. The best method is to print a hollow cube and measure its walls to determine the perfect flow rate and adjust the calibration accordingly.
Measure the Filament Diameter
The first step is to measure the filament diameter and set the correct value in the firmware. The filaments usually have 0.02mm of variation and this can go up to 0.05mm in cheaper filaments.
- Take your filament and measure 5 different sections of the filament within a meter distance.
- Get an average of all these measurements and set the resultant value as the Filament Diameter in the firmware.
- You can reach the Filament Diameter setting:
- In Cura 3D Printer Slicer, Preferences > Printers > your printed name > Machine Settings > Extruder 1 > Compatible Material Diameter.
- In Prusa Slicer, Filament Settings > Filament > Diameter.
- In Simplify 3D, you can simply click on the “Other” tab in the “Process Setting” section. It is as Process Setting > Other > Filament Properties
Print a Hollow Test Cube
Now download and print a Hollow Calibration Test Cube to measure walls. It will help you to get accurate flow rate calibrations. The printing settings should be as:
- Layer height: 0.2mm
- Wall Thickness: 0.8mm
- Infill Density: 0%
- Perimeters (Outer Shells): 2
- Top Layers: 0
- Bottom Layers: 1
- Printing Speed: Normal Printing Speed (40-60mm/s usually)
- Printing Temperature: Normal Printing Temperature
Measure the Cube Walls
- Grab your caliper and measure the walls
- You should have a value of 0.8mm since we set a total wall thickness of 0.8mm (2 walls at 0.4mm each)
If your value isn’t close to 0.8mm, we are going to need to adjust the flow rate in our slicer.
To get the new value, we do the following:
(Desired Width / Measured Width) = New Flow Rate
My desired width is 0.8mm as set in the slicer for wall thickness, then I measured 0.94mm for the wall of the cube.
As shown above, (0.8 / 0.94) = 0.851 or 85.1% for the flow.
You only want to be changing your flow rates or extrusion multiplier once you’ve dialed in your extruder steps (e-steps) so make sure that is done accurately first.
The flow rate can either be changed directly from inside your 3D printer (if it has the firmware), or through your slicer software when slicing up the 3D print.
Finally, Set the New Value in the Slicer or 3D Printer
Now you only have to enter the new flow rate value in your 3D printer’s slicer. The method may differ in different slicers.
- In Cura, you can set the new value in the “Flow” tab located in the “Material” section. It receives value in percentage so enter a value in percentage only.
- In PrusaSlicer, Filament Setting > Extrusion Multiplier
- In Simplify 3D, set the value in the Extrusion Multiplier.
Below is the interface from the BIGTREETECH SKR 2.0 Control Board from Amazon, installed on my Ender 3.
The 3DPrintBeginner have a Flow Rate Calibration Guide that goes into more detail and also has calculators to further assist with this.
How to Calibrate Stepper Motor Driver Current
This is the process of testing and calibrating the flow of current or current intensity to the extruder and each axis. The amount of current required for the printer varies with different brands.
VREF refers to the voltage that regulates from the stepper motor to your stepper motor drivers and it helps the users to control the current. It is preferred by users because measuring voltage with a multimeter is much easier as compared to current.
The method to calibrate your stepper motor driver current is the same for all types of printers but you may face a few changes in the VREF formula or current values.
It’s a dangerous procedure which can damage your 3D printer and even cause injury to yourself if you don’t know what you are doing so be cautious.
Disclaimer: This is to be done at your own risk. 3D Printerly does not assume any responsibility for any or all damages that may occur to yourself and/or your property.
One user who had layer shifting in their Y axis at a certain height each time found that their Y motor was set to 1.4 volts. After increasing the voltage to 1.8, their 3D prints stopped shifting.
Another user who had their extruder skipping increased their VREF and solved the issue.
You can watch the video below for a better understanding of the process.
For an Ender 3, you don’t want to exceed 1.0 on the VREF.
Ideal voltage values for your drivers are:
- X – 0.7
- Y – 0.8
- Z – 0.9
- E – 0.8