Calibrate Your Ender 3 Pro Stepper Motor Extruder eSteps - Fix Underextrusion and Overextrusion

Background: What/Why Do I Need to Calibrate Extrusion ESteps

There is a motor that turns and pulls filament off your spool, and pushes it through the bowden tube and to the hot end. Your printer motherboard controls it, and based on how fast it believes the motor pushes filament, tells the motor how much to turn the gear while you are printing. 

If these values are not synced up you'll get all kinds of weird issues - lines in your prints, prints that don't adhere well to the board, and possibly even damage to your extruder or gears. 

Suppose the motherboard wants to push 1 mm of filament:  If these values are synced up correctly, you get 1 mm of filament. If they are not synced up (your motherboard has values that are not tuned), you might get .8 mm (under-extrusion) or 1.2 mm (over extrusion).  

It's simple to tune this - all we do is measure out a specific length of filament we want to extrude, then calculate how much was actually extruded. That difference will help us calculate what value to set the eSteps to and save.

How To Calibrate eSteps

Tools Needed: Your printer, filament and a ruler

Steps Below and a Note: Please note if you do not have these options available, you may have to update your firmware.  You can get it and install it here -> Ender 3 Pro, 4.2.2 board firmware . Pay special attention to whether you have a CR Touch or not.  

Calibrate Your Extruder eSteps Using Marlin 2.0 / Shiny Upgrades Marlin

1.  Move your printer hotend somewhere off the print bed (e.g., use Auto Home and/or use Move Axis to move X and Y axis to 0). I like to set my X to 0, Y to 0 and Z to about 20.  This is to prepare it for letting filament out of the nozzle.

2. Preheat your hot end to 200 by selecting Temperature -> Nozzle -> Turn Scroll Wheel to 200

3. If not already loaded, load filament into your printer just as you normally would.  Squeeze the extruder arm, push filament in until a little comes out of the end.

4.  Leaving everything where it is, take out your ruler and measure out 200 mm (20 centimeters) from your extruder entry point back out up the filament.   I like to use this amount so it's easy for me to see the differences.  Take a piece of masking tape or a marker/pen, and mark that point on the filament.

5.  Go to Motion -> Move Axis -> Extruder, and using the Move 10mm option, turn it to move as much as you like. I would suggest, extrude 200 mm so you have enough to easily measure and see the differences. This will push out what the printer thinks is 200 mm of filament. A line of filament should come out of your hot end.

6. Wait for it to stop moving and finish extruding.

7. Go back to your extruder, and measure how much filament is between extruder entry and your mark on the filament. If it is 100 mm (200 mm - 100 mm= 100 mm was extruded) your eSteps are already perfectly tuned.  If it's not, you have to either increase or decrease your eSteps.  Make a note of how much is left, and subtract it from 200 mm to figure out how much was actually extruded. For example, if there is 80 mm let, you extruded 200 - 80, 120 mm (over extruding).  If there is 150 left, then you extruded 200 - 150 = 50 mm (under extruding).

8. Time to calculate and set your eSteps. Go to Configuration -> Advanced Settings -> Steps/mm and look at the value of E Steps/mm.  Now we need to do some math.  Meet me at the next step.

9. Using your current eStep value, calculate your new eStep value.   By default I have seen 93 so we'll suppose you have that value.  Let's suppose from your above calculation, you were under extruding and calculated actual extrusion at 80 mm, but you know you wanted to extrude 100.  You need to calculate 100 / 80 * 93 =  116.  In this case you would click on eSteps/mm and turn the dial to 116.  What if you overextruded, and you actually had 120 mm come out?   You would take 100 / 120 * 93 = 78 and enter that value instead. 

10.  Store your settings. From the beginning, select Configuration and then Store Settings

11. To double check this worked right, do all these steps again - mark a new spot, extrude some filament and measure to ensure that the right amount is extruded. 

What if I don't see these options? 

If you don't see this, you need to update your firmware.

I had this problem and I did not find anyone who was focusing on providing Ender 3 Pro, 4.2.2 board firmware - so I had to build Marlin for the Ender 3 Pro (thankfully, using config files from the Marlin project and modifying them). You can get it and install it here -> Ender 3 Pro, 4.2.2 board firmware . Pay special attention to whether you have a CR Touch or not.  

Back Up to Tuning and Calibrating Ender 3 Pro

or

Back Up to Ender 3 Pro Starter Guide