🇦🇺 Free & Fast Delivery Australia Wide - Orders Over $55 📦

Matthew Harrison - Apr 19 2017

Extruder Calibration

Digital calipers measuring the diameter of filament as 1.75mm

Having your extruder properly calibrated is essential for perfecting your print quality, and this guide will walk you through the entire process from beginning to end.

There are two parts to calibrating your extruder - tuning your extruder steps/mm value, and tuning your extrusion multiplier. It is important to do it in this order. First, we want to sort out how much plastic is being fed in to the hotend (regardless of any values like extrusion width, extrusion multiplier, filament diameter etc), and then move on to how the printer is behaving in terms of the plastic actually being pushed out and laid down.

For users with a bondtech or similar extruder, I would recommend skipping the extruder steps/mm calibration as these extruders already come with very specific recommended values. In this case, you should follow the manufacturer’s specification. This includes the Prusa MK3 and MK3S which have bondtech gears built in inside. Leave the extruder steps/mm as stock, and go straight to the extrusion multiplier calibration step. 

For any other extruder styles like the classic hobbed gear and bearing set up, you should follow the steps below calibrate your extruder steps/mm.

Calibrating extruder steps/mm

To calibrate the steps/mm value, we tell the printer to extrude 100mm of plastic. Then we'll measure how much plastic it extruded and see if it actually was 100mm - pretty simple!

Measuring

  • First measure out 120mm of filament from where it enters your extruder and mark it with a pen or marker. This will be the reference point. 
  • Connect your computer to your printer and open up a program that allows you to send individual gcode commands to it (like Pronterface, Simplify 3D, Repetier Host, or Octoprint web interface). 
  • Heat up your hotend to your regular printing temperature and ensure that the nozzle is in a position above the bed where it can freely extrude filament.
  • Send the command M83. This will ensure that your printer is interpreting the following extrusion commands in relative mode.
  • Set the extrusion feedrate to 50mm/minute with the command G1 F50.
  • Extrude 100mm of plastic with the command G1 E100.

    This will take 120 seconds until it's finished extruding. The reason for extruding so slowly in this step is to ensure that the resistance of the plastic further down in the hotend does not affect how much is fed in by the stepper motor. It also helps to take the temperature out of the equation, again by reducing the effects of pressure in the nozzle.
  • Once the machine has finished extruding the 100mm, switch off the hotend heater.
  • Measure the distance between the point that you marked before we started, and where the plastic enters the extruder (the same point from which you measured the initial 120mm).

If this is exactly 20mm, congratulations! Your extruder steps/mm are perfectly calibrated. If it is more or less than 20mm, then it means that your printer is over or under extruding. Fortunately the way to solve this is fairly easy. 

Tuning

In order to calculate what our new steps/mm value will be, we need to know the existing steps/mm value, and the under/over extrusion rate.

To get the existing steps/mm value, send the command M503. This will print out all the current values saved in your printers EEPROM (storage that persists when it is powered off), including all your axis steps/mm values.

We're only interested in the E value, highlighted in the picture below. Locate it and record it.

Screenshot of M503 gcode command result

Now we get to do some maths! Yay.

We need to work out how much plastic your printer actually extruded, which can be calculated from: 120 mm - left over filament distance (measured in the previous step). For example, for me this was 120 - 26 = 94.

Ruler against filament showing 26mm remaining

So my printer was actually only extruding 94 mm when I asked it to extrude 100 mm - that's a 6% under extrusion! So, to calculate the new, correct extruder steps/mm value, we perform the following calculations.

Desired extruded distance / actual extruded distance = correction multiplier:

100 / 94 = 1.0638

Correction multiplier × original extruder steps/mm = calibrated extruder steps/mm:

1.0638 × 161.3 = 171.6

This is our new calibrated extruder steps/mm value! To enter and save it to your printer use the commands M92 E###.# (replace the hashes with your calibrated extruder steps/mm value) and then M500 to save it.

Screenshot of M500 gcode command

To make sure that this has all worked out as intended, turn your printer off and on or reset it and then send the command M503 again to check if your new extruder steps/mm value is shown.

To do a final test to make sure it's correctly calibrated, measure out another 120 mm of filament, mark it, and then extrude 100 mm. You should have exactly 20 mm left over. If not, recalibrate using the steps above.

Calibrating extrusion multiplier

Now that we know the right amount of filament is being fed into the hotend by the extruder mechanism, we can further calibrate based on how the plastic flows from the nozzle. We can do this by printing a single perimeter cube and adjusting the extrusion multiplier so that the width of the walls is the same as the extrusion width set in the slicer.

To begin, accurately measure your filament diameter at a few points throughout the spool and take the average. All measurements here should ideally be done with a micrometer, as calipers are not precise enough for such small measurements. If you must use calipers, a quality brand is preferable.

Enter the filament diameter value into your slicing software and make sure that your extrusion multiplier is set to 1. Check what your extrusion width is set to in the slicer and remember it - that's what we'll be comparing to later on.

Load this calibration model into your slicer and set it to print in vase mode. You'll also want to print it at a fine resolution - I chose 0.15 mm. Print it out and measure the thickness of each of the walls and calculate the average.

Your aim is to get this to be the same as your extrusion width set in your slicer.

Adjust your extrusion multiplier to: (current extrusion multiplier × extrusion width) / measured wall thickness.

For example, since my walls first came out as 0.5 mm even though my extrusion width is set to 0.45 mm, my extrusion multiplier would need to be changed to (1 × 0.45) / 0.5 = 0.9.

Enter this into your slicer and print the model again and re test. If your measurements and your calculations were correct it should only take one adjustment, but it may take a few tries to get it right.

This extrusion multiplier value should be calibrated and set on a per material basis due to the different flow characteristics of different materials when extruded (eg. viscosity, die swell). It may also vary between different brands of the same material type too, so keep this in mind.

Digital calipers comparing wall thickness of two prints

Finalisation

After you have completed all these steps, it’s a good idea to tune or re-tune your first layer height, which may need adjustment. If you're finding that your prints look like they're over extruding or under extruding, double check your filament diameter and make sure it's the exact same as what you have in your slicer. Your extruder is now fully calibrated! Enjoy printing knowing that you have it dialed in perfectly.

If you're still experiencing issues with your extruder intermittently under or over extruding, the issue may be your filament. Try testing with another filament from a brand you can trust, preferably with a good diameter tolerance.

If you're located in Australia and you're after a filament you can rely on, give Matt's Hub a try! Our filament diameter is strictly regulated at 1.75mm ±0.02mm, and it's made using high quality virgin resin from NatureWorks USA for great consistency in flow and mechanical properties. You wont be disappointed!

More resources for you

E3D V6 Assembly Guide Poster

E3D V6 Assembly Guide Poster

Nov 23, 2020Matthew Harrison
How To Create a Voronoi Sphere in MeshLab

How To Create a Voronoi Sphere in MeshLab

Nov 14, 2020Matthew Harrison
Extruder Calibration

Extruder Calibration

Sep 25, 2020Matthew Harrison

5 comments

  • Matt's HubOct 27, 2020

    Adam, the extruder steps calibration can be done once for your printer, but it is a good idea to do the extrusion multiplier calibration for each different filament that you use.

    Matt, to overcome this issue please use the gcode commands via a program like pronterface or octoprint rather than using the control panel on your printer. Hope this helps!

  • MattOct 27, 2020

    For setting the extruder steps, after switching to a dual gear extruder on an Ender 3v2 and doing this test and applying the formula, I get a value of 442. I have done this a few times and checked my math. When I try to adjust the extruder steps using the control panel, the maximum I can enter is 186. So I’m not sure where to go from here. Any help would be appreciated.

  • Peter CunninghamOct 27, 2020

    Very helpful info as the extruder on my CR-10s Pro V2 was under extruding by 11%. This became a huge problem with color bleed when using my Mosaic Palette 2s. Thank you for all the info and help.

  • Adam GallOct 27, 2020

    Is this a calibration that should be done for every different filament Thai I use, or is this supposed to be an overall printer calibration to be used with every filament? The reason I ask is because some of the filaments I use are severely underextruding, but some print perfectly.

  • valentinSep 29, 2020

    Doesn’t that take into account the pressure it will generate in the hotend?

Leave a comment

Please note, comments must be approved before they are published