E-step calibration is crucial to FDM 3D printing for many reasons. Having finely-tuned extrusion ensures that your printer is pushing exactly the right amount of filament through the hot end during a print. Otherwise, your print won’t have the right amount of filament and the print quality will suffer.

Too little filament, and a part will have gaps between layers, or the layers themselves will be weak or missing. Adhesion will also not be very good, and prints can be subject to layers delamination and warping.

Too much filament, and your prints will come out with over-extrusion problems, resulting in blobsstringing, and droopy details. Extreme over-extrusion can also contribute to clogging and filament jamming in the hot end.

To avoid these problems, the first thing you should do before calibrating your E-steps is all that maintenance you’ve been postponing. One of the most common causes of under-extrusion is a dirty hob wheel in the extruder leading to slippage. However, if you’ve completed all normal maintenance and your prints are still poor, we suggest following this simple step-by-step guide to calibrate your extruder.

To start off, the best way to calibrate E-steps will depend on your setup so let’s make sure you’re in the right place.

Back to Contents

Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Getting Started

This method is for Marlin-based printers
This method is for Marlin-based printers (Source: All3DP)

This guide is for printers that have Marlin firmware. If your printer has Klipper, you’ll need to perform a similar but not identical procedure that will calibrate the rotation distance of your extruder motor. Don’t worry if you’re running a Klipper machine; we’ve got you covered.

You should also note that this guide is primarily for single extruder printers. If your Marlin printer has more than one extruder, you’ll need to calibrate each separately, but we’ll let you know at what point that is needed.

The point of any calibration procedure is to reduce errors in the system as much as possible. You’re hoping to reach a point that’s good enough – not perfect. If you aren’t experiencing print issues, you should consider if your print quality is actually good enough. If it is, leave it alone.

If you decide to run the E-step calibration and the result isn’t good enough, run it again. We recommend running this calibration procedure three times and then doing a test print. Be aware that there will be diminishing returns as you close in on the ideal value.

If you don’t feel comfortable with any part of the procedure, it’s likely that you’ll increase the error in your system by pushing forward. All the steps described here are within your ability. (I mean, you learned how to level your bed, slice an STL, change the filament, and run a print, didn’t you? You got this!) Approaching any calibration with either too much or not enough confidence can cause errors in your technique, and those human errors (which are normal) introduce errors into your printing system. Relax, then take a breath. This should be no more stressful than making a cup of hot chocolate. In fact, do that first.

Back to Contents

Advertisement
Advertisement
Advertisement
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Required Tools & Materials

The main tools you'll need!
The main tools you'll need! (Source: Emmett Grames via All3DP)

So, you’ve decided that calibrating your E-steps will improve your print quality. You’re going to need a few things:

  • Your 3D printer
  • Any non-flexible filament (definitely use the cheap stuff, filament quality doesn’t affect this procedure)
  • Calipers
  • Permanent marker
  • Pen and paper
  • Computer with the following software:
    • Slicer (the one you usually use would be best)
    • Source code editor such as Notepad++
  • A way to connect to your printer, either:
    • Serial cable and drivers for your printer
    • SD card

Back to Contents

Advertisement
Advertisement
Advertisement
1
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Preparing Your Filament

Measure from the extruder entrance
Measure from the extruder entrance (Source: Emmett Grames via All3DP)

The first step depends on whether you are calibrating a direct or a Bowden extruder.

Loading

If your printer has a Bowden extruder, unload any filament that is loaded and disconnect the Bowden tube from the output of the extruder. Reload the filament into the extruder so that it begins to come out of the nozzle.

If your printer has a direct extruder, you may like to remove the heater block and nozzle from the feed tube. (Leave it electrically connected but tucked away where it won’t burn you or cause any damage.) This will allow you to later re-use the filament pushed through the extruder and eliminate the possibility of blockages or nozzle back pressure interfering with your calibration. Heater block removal isn’t necessary to run the calibration procedure, but be aware that you may be using a fair bit of filament, particularly if you’re making big changes to the E-step value.

Marking

To perform the calibration, we’ll be sending 100 mm of filament through the extruder. Before doing that, however, you’ll need to mark the filament at a distance of 120 mm away from the extruder’s entrance. This extra 20 mm allows measurement of over- or under-extrusion.

Tips

While we do need the hot end to be above a certain temperature to enable the extruder to continuously extrude (melting the filament and allowing it to flow), the next few steps can take a little time, and leaving the hot end hot at best wastes power and at worst causes blockages. So we will wait until a later step to pre-heat the hot end. There is a Marlin command that enables “cold extrusion”, but we don’t recommend using this, as it can cause issues after calibration.

A longer distance, such as 500 mm, would provide a more accurate result but is harder to measure accurately and can waste a lot of plastic. If you have a way to measure the longer result, change both ‘E’ and ‘F’ values in the following codes to the number of millimeters you intend to use (e.g. G1 E500 F500). Be mindful of the maximum speed of your extruder, which will be lower when the hot end is attached.

Now that we have filament loaded and marked, we need to talk to our printer to get it to move that filament.

Back to Contents

Advertisement
Advertisement
Advertisement
2
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Communicating with Your Printer

Image of: 2. Communicating with Your Printer
Warning, it may only talk machine language... (Source: The3DPrintist via Reddit)

There are a few ways to talk to your printer. Some are more effective than others, but both work for Bowden and direct extruders.

One way is the serial interface method. This is probably the easiest way to tell your printer the moves it needs to make if you have OctoPrint installed or if you normally have your machine connected via USB.

Another way is the SD card method – that is, writing the code and running it using an SD card. This is best if you normally use an SD card and don’t have a computer near your printer, or if you’ve never connected a computer to your printer and don’t want to start now.

There’s one other method for those who aren’t afraid to wear 10-gallon hats and riding boots, which works with Marlin 2.0 (and later), an LCD screen, and a controller. We’ll briefly cover this method at the end of the article.

Serial Interface Method

The USB tether cable for a 3D printer
The USB tether cable for a 3D printer (Source: Emmett Grames via All3DP)

Connect your printer to the computer, either by USB or Wi-Fi (if your printer is able to do so). Open up and connect your slicer software of choice that allows you to send single-line G-code commands to the printer. Examples include Simplify3DPronterface, and OctoPrint. If you’re having trouble connecting to your machine, you may want to check that you have the correct drivers from your printer’s manufacturer.

You’ll need to find the section of your slicer dedicated to tethered printing. For example, in Simplify3D, you need to go to the machine control panel window. With most RAMPS and ATmega-based printers, you should also be able to use the Serial Monitor in the Arduino IDE.

Enable Relative Mode on the extruder by sending the command M83 to the printer.

SD Card Method

Image of:
Notepad++ is a great tool for writing and editing G-code (Source: All3DP)

For this method, we’ll only need a few lines of G-code. These can be made in a free text editor; we recommend Notepad++ for this, but regular Notepad will work just fine.

Copy the below code into the text editor. If you like, you can delete the comments (i.e. everything after the semicolon on each line). For more information on each command, check out the Marlin website. We recommend familiarizing yourself with the relevant code before you put it into your machine.

M83; Sets the extruder to relative movement

M18 S60; Keeps the steppers alive for an additional minute after extrusion

M109 T0 R200; Sets the active extruder and hot end temperature and waits for it to be achieved

G1 E100 F100; Extrudes 100 mm of filament at a rate of 100 mm per minute

G4 S90; Waits 90 seconds for the filament to finish extruding (otherwise extrusion stops when the hot end cools)

M104 S0; Sets hot end temperature to 0, but doesn't wait for it to be achieved

Save the file with a meaningful name like “ext_cal.gcode” on your SD card.

If you have a multi-extruder machine, you’ll need to save one file for each extruder with different filenames (e.g. “left_ext_cal.gcode”, “right_ext_cal.gcode”, or similar). You’ll also need to change “T0” in the M109 command to the correct extruder (e.g. M109 T1 R200). To know which extruder is which, follow the below procedure.

Multi-Extruder Setup: Identifying Extruders

Simply load any model into your favorite slicer and slice one file per extruder. Make sure you turn off any bed adhesion setting, prime towers, or pressure feed for mixing hot ends. Name the file the same name as your extruder.

Now open each G-code file one at a time and look for either M104 or M109. There will be a ‘T’ parameter on the same line, which is the name of the extruder for that file. Write down which extruder is which as you go.

Back to Contents

Advertisement
Advertisement
3
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Start Extruding

Pay close attention to and noises or grinding while extruding
Pay close attention to and noises or grinding while extruding (Source: AcePhD via Reddit)

Now, using whichever way you are communicating with your printer, it’s time to get your filament moving!

Serial Interface Method

First, send M109 T0 R200 to select extruder 0 and preheat the associated hot end to 200 degrees.

Now, send the command G1 E100 F100 to the printer. This will slowly run what the machine interprets to be 100 mm of filament through the extruder.

All of this action happens over the course of a minute to avoid any problems with filament tension or pressure in the hot end that could muddle results.

If you have a multi-extruder machine, you’ll have to repeat this step, changing “T0” to the appropriate T-identifier of each extruder.

SD Card Method

Simply insert your SD card and select “Print from SD card” in the usual way that you begin a print job. Choose the calibration file you just made and start the print.

For both of these methods, you should watch and listen closely during extrusion. Pay particular attention to filament slipping or grinding and skipped steps (little clicking noises). If these occur, you should troubleshoot that issue before calibrating your extruder. In this case, it’s likely that your calibration is fine but another issue is the root of your problem. Did you do that maintenance we mentioned at the start?

Back to Contents

Advertisement
Advertisement
4
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Measure Again

Measure to the mark!
Measure to the mark! (Source: Emmett Grames via All3DP)

Once complete, the printer should have extruded exactly 100 mm of filament. To check this, measure from the extruder feed to the mark you made on the filament.

If the measurement is 20 mm, your extruder is properly calibrated, and you don’t need to continue following these instructions.

If your measurement is more than 20 mm, your printer is likely suffering from under-extrusion, and your steps/mm setting needs to be increased.

If your measurement is less than 20 mm, your printer is over-extruding and your steps/mm setting needs to be reduced.

Back to Contents

Advertisement
Advertisement
5
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Calculate the Correct Steps per Millimeter Value

Don't worry, it's not this complicated!
Don't worry, it's not this complicated! (Source: Humanicus via Medium)

In order to accurately tune the extruder, we need to determine the printer’s current step/mm value and then calculate the correct E-step value.

Serial Interface Method

Send command M92 to your printer. This will return you a string of values. Find the line that starts with echo: M92, then find the E-value (usually at the end of this line). This is the current steps/mm value.

If the M92 command doesn’t work, you may be running older firmware. M503 should return the values you need.

SD Card Method

Unfortunately, Marlin gives no way to dump your configuration onto an SD card. Instead, you’ve got a few options:

  • If this is your first calibration, check the manufacturer’s information for the default value.
  • If you built your own printer, the information will be in the firmware you loaded.
  • If you’re running Marlin 2.0, the value is available through the on-screen menus (varies per machine).
  • If you’ve previously calibrated your extruder, check that note you took and definitely didn’t lose…

Calculation

  1. First, we need to know how much filament was actually extruded. We can find this by subtracting the distance from the extruder to the mark on the filament from 120:
    • 120 mm – (length from extruder to mark) = (actual length extruded)
  2. Next, we need to know how many steps the extruder took to extrude that much filament. We can determine this value by multiplying the steps/mm value by the length we should have extruded, in this case, 100 mm:
    • (steps/mm value) x 100 mm = (steps taken)
  3. Lastly, we can calculate the correct steps/mm value by dividing the steps taken by the actual length extruded:
    • (steps taken) / (actual length extruded) = (new steps/mm value)

Now, all we have to do is set this final value as the printer’s steps/mm value, and we should be good to go!

Back to Contents

Advertisement
Advertisement
6
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Set a New Steps per Millimeter Value

Image of: 6. Set a New Steps per Millimeter Value
Keep an eye out for skipping steps or filament grinding while you extrude! (Source: All3DP)

Updating the E-steps value is straightforward and, like most of the other steps in this process, is done with G-code commands.

Serial Interface Method

To set a new steps/mm value, first send the command M92 E###.#, replacing the hashes (#) with the new steps/mm value you obtained from the last step. Save this to your printer’s memory by sending the command M500.

The best thing to do at this point is to turn your printer off and on again. Then send the command M92 (or M503) to your printer again, and check to make sure that the E value matches the new steps/mm value. If not, repeat the first part of this step.

SD Card Method

In the same way that you wrote the G-code for the extrusion, you’ll need to write a small piece of code to set the new value. All you’ll need are:

M92 E###.# T0; Replace the hashes (#) with the new steps/mm value you obtained from the last step 
M500; Saves the new value into the EEPROM

Save this to your SD card. We suggest a filename with the number in it, for example, “esteps_92-8.gcode” so that the Post-It note that you definitely wrote and definitely won’t lose isn’t as critical.

Now, did we have the desired effect?

Back to Contents

Advertisement
Advertisement
7
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Confirming the Procedure Worked

Time to put your calibration to the test!
Time to put your calibration to the test! (Source: YeahThisNickname via Reddit)

To check that your extruder E-step is now properly calibrated, you can repeat steps 1 to 4. This time, you should get a value of exactly 20 mm between the extruder and the mark. If not, recalculate the value and save it again.

You may also find that each time you calibrate you’re setting the system on either side of some center point. If this happens, set the steps/mm value to an average of your results and run a test print. Remember, if the printer is printing well, you don’t need to calibrate.

Multiple Extruders

If you have a multi-extruder machine, it may not support multiple E-step values (as is the case with some LulzBot machines). It will depend on the way the firmware was set up, but unless you built the configuration file yourself, it’s not possible to find out from your machine. While the manufacturer should be able to advise on this issue, a giveaway would be that after you repeat steps 1 to 4, all of your extruders are using the same values for E0.

There is a workaround for this by utilizing start G-code. Simply insert M92 E###.# into the related Extruder Start G-Code.

Now your printer should have a perfectly calibrated extruder!

Back to Contents

Advertisement
Advertisement
Extruder Calibration: How to Calibrate E-Steps / E-Step Calibration

Alternative (Cowboy) Method

The LCD controller on Marlin 2.0 really comes in handy
The LCD controller on Marlin 2.0 really comes in handy (Source: Emmett Grames via All3DP)

So, you don’t like writing G-code, but you still want to update your E-steps? Well, if you’re running Marlin 2.0 with an LCD screen and controller, you’re in luck!

Simply set up the filament as described in step 1, pre-heat the nozzle, and jog 100 mm through the extruder. Be careful! When jogging, the extruder is in absolute mode by default, and it gets commands in the order you send them. If you go too far and then reverse, that is what the extruder will do.

Once you’ve jogged the filament through, find the Motion menu. Your current E-steps/mm will be noted here (usually right down the bottom). You can then perform the calculation described in step 5. If you need a new value, enter it in the same menu. Don’t forget to save your new values using the “Save values” selection in the next menu.

Run the test again and again, if you like. This jogging method is extremely handy for quickly checking your calibration and repeatability of the extruder motion.

Back to Contents

Advertisement
Advertisement

License: The text of "Extruder Calibration: How to Calibrate E-Steps" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

Stay informed with notifications from All3DP.

You get a notification when a new article is published.

You can’t subscribe to updates from All3DP. Learn more… Subscribe to updates

You can’t subscribe to updates from All3DP. Learn more…

Topics
Advertisement