E-STEPS

What are we trying to do?

Have our 3d printer extrude the exact amount of filament we want.

When should we perform this?

Before doing your first print you should calculate this! This will only need to be done once, updated only when a new cold end extruder or extruder stepper motor are installed (or converted if going to different firmware i.e. Klipper).


When we begin 3d printing we assume that when we want to extrude, say, 100mm of filament our printer does that. Unfortunately that is not the case. E-steps, also known as extrusions steps, are the rotations necessary for the extruder stepper motor to move a set amount of material. This calibration is one we are performing for the stepper motor itself. The X,Y, and Z axes stepper motors are all already calibrated and their e-steps have been set. The extruder motor, however, is one we need to calibrate for ourselves. This calibration is to make sure:

WHEN WE ASK THE PRINTER TO EXTRUDE X AMOUNT OF FILAMENT, IT EXTRUDES X AMOUNT OF FILAMENT, NO MORE, NO LESS.

The general principle behind this calibration is that we will ask the extruder to move 100mm of filament. We then measure the extruded amount hoping it equals what we ask for. When it isn’t we plug certain values into a formula, which tells us how to adjust our e-steps. For this calibration we DO NOT want to extrude filament through the nozzle. We want the filament to be measured directly from the cold end extruder. We are measuring the extruder motor, if we send filament through the nozzle we introduce unwanted variables (i.e bowden tube, material type, nozzle, temp, ect). We calibrate the amount of filament that extrudes from the nozzle in a separate step. This is a mechanical calibration of only the stepper motor. This way if we are to make changes to any other equipment - nozzle, bowden tube, filament type/brand, hot end - we do not have to re-calculate our e-steps.

Below I go over a calibration, how it should be performed, when it should be performed, and how often to maintain them. Any 3d printer can be defective out of the box, there are always going to be bad units. The vast majority of printers however are capable, and when calibrated effectively will far out kick their coverage. You will get out what you put in, so please, if you want consistent quality prints, take your time with these calibrations. Try to understand their ‘core’ principles - what are they trying to achieve. Don’t expect results to be immediate, certain calibrations take time to implement properly, you get better each time. Reading and comprehending is one step to get there, but getting your hands on your printer and performing these is the only real way to get a ‘feel’ for how they work. Don’t get discouraged, take your time, and remember proper fundamentals-while boring- are the building blocks of accurate consistent machines.

The process for a Bowden-style 3d printer and a Direct-extrusion style 3d printer are similar, but differ enough to warrant their own sections below.

Bowden-Style 3D Printer

Tools needed: flush cutters , calipers/ruler

Before beginning you need to get the current e-step value from your 3d printer. Write this number down somewhere.

  • Step 1 - Each printer is slightly different but it’s usually located under a similar file path. Using the menu navigate to:

    • Configuration > Advanced > Steps/mm > E-steps

    • The general stock e-step value is 93.0

  • Step 2 Remove filament from your 3d printer if any is loaded

    • Heat your hot end to temperature, when the filament has softened, remove it from the machine. Keep your nozzle at 185c or slightly above for the remaining steps.

  • Step 3 Disconnect the bowden tube from the cold end extruder

    • Generally this is done by removing the collet(usually blue), which looks like a small semi circular pin, that is holding the plunger attached to the coupler where the bowden tube is sitting. 

    • Once removed, depress the plunger of the coupler, keep it depressed(the movement is slight, maybe 1-2mm), and remove the bowden tube by pushing inwards and then retracting outward.

    • It’s possible the Bowden tube can become stuck within the coupler. If that is the case you may need to remove the entire coupler by using a small wrench (supplied with printer) to unscrew the coupler.

  • Step 4 Manually depress the tension arm of the extruder and pass filament through until it comes out of the now open end of the extruder.

  • Step 5 With a pair of flush cutters, cut the filament flush with the end of the extruder opening.

  • Step 6Using your menu(or home screen if using a web-based application like Octoprint) extrude 100mm of filament.

    • Using the menu navigate to: Prepare > Move Axis > Extruder > 100mm

    • Most 3d printers have a safety feature that won’t allow filament to be extruded while the nozzle is cold (until a minimum temperature is reached). If that’s the case, bring the nozzle up to just above minimum temperature (usually 185-190c) to be able to extrude filament.

  • Step 7 After the printer is finished extruding use the flush cutters, and again as you previously did, cut the end of the filament flush with the extruder.

  • Step 8 You should now, theoretically, have a segment of 100mm of filament. Using a pair of calipers or a ruler, measure the distance of the extruded piece of filament.

    • This measurement is done in millimeters and be as accurate as you can to the nearest millimeter.

  • Step 9 If the measured piece of filament is 100mm then you’re done-skip down to Step 12! However it’s likely not, so we use a formula to determine what the correct number of e-steps should be to move the correct amount of filament. The formula is as follows:

Amount of filament asked to extrude / Amount of filament extruded * current e-step value = new e-step value 

amount of filament asked to extrude divided by amount of filament extruded multiplied by the current e-step value

For example if the amount of filament asked to extrude was 100, the amount that was actually extruded was 98, and your current e-step value is 93.0 than the formula would look like this:

100 / 98 * 93  = new e-step value 

1.020 * 93 = 94.8979 

Round up to the nearest tenth and we get a new e-step value of 94.9

  • Step 10 Insert the new e-step value into your 3d printer, it will be the same screen where you got the original e-step value from.

  • Configuration > Advanced > Steps/mm > E-steps . Then change the number to the new value and back out

  • Remember to Save Settings so the value will persist after powering off. Save Settings should be found under the Configuration menu.

  • Step 11 Perform steps 6-9 again

    • Remember if you need to continue making adjustments the ‘current e-step value’ will be different with each subsequent test. Do not use the original value.

  • Step 12 You’re finished! remember to Save Settings so the correct number of e-steps are saved after powering down your 3d printer!

Direct Extrusion 3D Printer

(direct drive)

Tools needed: flush cutters , calipers/ruler

Before beginning you need to get the current e-step value from your 3d printer. Write this number down somewhere.

  • Step 1 - Each printer is slightly different but it’s usually located under a similar file path. Using the menu navigate to:

    • Configuration > Advanced > Steps/mm > E-steps

    • The general stock e-step value is 93.0

  • Step 2 Remove filament from your 3d printer if any is loaded

    • Heat your hot end to temperature, when the filament has softened, remove it from the machine. Keep your nozzle at 185c or slightly above for the remaining steps.

  • Step 3 Remove the nozzle from your hot end.

    • Most nozzles should be heat tightened, and thus, need to be heated to be removed. Start by heating your nozzle up to 240c

    • In the meantime get all the tools you’ll need for the removal. I usually use a socket wrench and a large crescent wrench that holds the heat block in place.

    • Once the nozzle reaches operating temperature power down the machine. We never want to touch the hot end while it is powered on. We can accidentally short out the thermistor, heating cartridge, or even the mainboard!

    • While the nozzle is still hot, remove it. 

      • Using your Crescent wrench brace the heating block, making sure not to clamp any wires going into the hot end. 

      • With the socket wrench begin to remove the nozzle

  1. KEEP IN MIND THE NOZZLE AND HOT END ARE AROUND 240c. Handle everything carefully and take caution to not burn yourself. It is recommended to wear thermal resistant gloves while doing this. When the nozzle is removed from the heating block it will be a hot ember within your socket wrench so make sure to have a place to rest it.

With the nozzle removed, wait for the heating block to cool. We want to pass filament through the heating block while it’s cool, so the filament doesn’t melt.

  • Step 4 Once the heating block is cooled manually depress the tension arm on the extruder and pass filament through to the now open end of the heating block.

  • Step 5 With a pair of flush cutters, cut the filament flush with the end of the heat block opening.

  • Step 6 Using your menu(or home screen if using a web-based application like Octoprint) extrude 100mm of filament.

    • Most 3d printers have a safety feature that won’t allow filament to be extruded while the nozzle is cold (until a minimum temperature is reached). Which makes this step difficult for direct extrusion machines.

    • Do not pass filament through the heating block while it is hot.

    • You’ll need to run a line of g-code to temporarily disable this feature. If you have access to the terminal line of your printer (through Octoprint) you can enter and send this line [M302 S0]

    • If not you will have to download this gcode file, load it onto an sd card, insert it into the printer, and then ‘Print’ the file like you would any 3d printing file. This sends the gcode to the printer and lets us bypass the minimum temperature requirement for extrusion.

    • Using the menu navigate to: Prepare > Move Axis > Extruder > 100mm

  • Step 7 After the printer is finished extruding use the flush cutters, and again as you previously did, cut the end of the filament flush with the heating block.

  • Step 8 You should now, theoretically, have a segment of 100mm of filament. Using a pair of calipers or a ruler, measure the distance of the extruded piece of filament.

    • This measurement is done in millimeters and be as accurate as you can to the nearest millimeter.

  • Step 9 If the measured piece of filament is 100mm then you’re done - go to Step 12! However it’s likely not 100mm, so we use a formula to determine what the correct number of e-steps should be to move the correct amount of filament. The formula is as follows:

Amount of filament asked to extrude / Amount of filament extruded * current e-step value = new e-step value 

amount of filament asked to extrude divided by amount of filament extruded multiplied by the current e-step value

For example if the amount of filament asked to extrude was 100, the amount that was actually extruded was 96, and your current e-step value is 93.0 than the formula would look like this:

100 / 96 * 93  = new e-step value 

1.041 * 93 = 96.8750 

Round up to the nearest tenth and we get a new e-step value of 96.9

  • Step 10 Insert the new e-step value into your 3d printer, it will be the same screen where you got the original e-step value from.

  • Configuration > Advanced > Steps/mm > E-steps . Then change the number to the new value and back out

  • Remember to Save Settings so the value will persist after powering off. Save Settings should be found under the Configuration menu.

  • Step 11 Perform steps 6-9 again

    • Remember if you need to continue making adjustments the ‘current e-step value’ will be different with each subsequent test. Do not use the original value.

When you have extruded the correct amount of material you are all finished! If not, just use the formula again and continue making adjustments to the e-steps until you have extruded 100mm

On direct extrusion setups the extruder motor is coupled together with the hot end. In order to get an unimpeded filament path, we need to remove the nozzle during this calibration

  • Step 12 Re-install your nozzle.

    • Power down the 3d printer

    • Manually depress the tension arm of the extruder and remove the filament

    • Hand-screw and tighten the nozzle onto the heating block

    • Using the socket wrench and crescent wrench snug the nozzle up carefully

  • Step 13 Heat Tighten the nozzle

    • Power the 3d printer on and bring the nozzle up to 240c(higher if you have an all metal hot end)

    • When the printer reaches operating temperature, power it down. We never want to touch the heating block while the printer has power.

    • KEEP IN MIND THE NOZZLE AND HOT END ARE AROUND 240c. Handle everything carefully and take caution to not burn yourself. It is recommended to wear thermal resistant gloves while doing this.

    • Using the socket wrench and crescent wrench tighten up the nozzle. Do not overtighten the nozzle or apply a great deal of strength. That could cause the nozzle to break off within the heating block. 

    • The purpose of heat tightening is - as metal expands, with heat, it can cause the threads to expand and loosen. Heat tightening the nozzle snugs the nozzle up while at temperature making it the tightest possible connection. This way during a high temperature 3d print there’s no space for filament to ooze within the threads which can lead to a clog.

  • Step 14 You’re finished! remember to Save Settings so the correct number of e-steps are saved after powering down your 3d printer!