Categories: Guides

How To Calibrate the Extruder Steps (Ender-3 / Ender-5 / CR-10)

Calibrating the extruder steps (or e-steps) is crucial for accurate and high-quality prints. Often misconfigured from the factory, Creality 3D printers are prone to under or over extrude filament. This one setting is responsible for how much plastic gets pushed to the hotend, and without the correct value, it can cause defects like stringing, blobs and layer gaps.

When setting up a new Creality Ender 5 Pro, it was under extruding by a rather significant amount… 12% to be exact. This came as no surprise, my Ender 3 and CR-10 had similar problems in the past, badly in need of proper calibrations. The good news is, it’s easy to check and fix if needed, taking just a few minutes for much better print results.

Here is a step-by-step guide on how to calibrate the extruder steps on your Ender 3, 5, or CR-10 3D printer:

Calibration Tools

We’ll need a couple of tools to get started, something to measure and something to mark. In my case, I am using Digital Calipers from Amazon and a sharpie.

  • Caliper or Ruler
  • Permanent Marker

Calculate Extruder Steps

To check if our current extruder steps are correct, we first ask the 3D Printer to extrude a specific amount of filament. We then measure how much was actually extruded, find the difference and calculate the correct e-steps based on that.

1) Measure the Filament

Using a caliper or ruler, measure out exactly 100mm in length from the extruder and mark it on the filament with a sharpie. It’s a good idea to make several additional marks at 90 and 110 too. In case it extrudes more or less than expected, we’ll already have additional points of reference.

2) Extrude the Filament

Go ahead and pre-heat the hotend up to normal printing temperatures. From the LCD screen, press the knob once to bring up the main menu and navigate to Prepare -> Preheat PLA, or Configure -> Temperature -> Nozzle to set a specific value.

It’s a good idea to set the temperature 5-10° C hotter than you would normally print. This prevents resistance at the nozzle that might throw off our measurements, allowing it to flow out nice and smooth.

Once the hotend has been pre-heated, bring up the menu again and this time go to Prepare -> Move Axis -> Move 1mm -> Extruder. Turn the knob to the right until you reach our desired value of 100mm, then wait until it has finished extruding the filament.

3) Check the Results

If our 100mm mark on the filament is right at the extruder, the e-steps are perfectly calibrated and we’re finished.

Otherwise, if the mark shows that it extruded more or less filament than we wanted, we’ll need to check by how much. To do this, measure the distance from the extruder to our mark once more and see how much plastic was actually pushed through the hotend.

If the 100mm mark is still visible…

The 3D Printer is under extruding and not pushing out as much plastic as it should be.

Subtract the new measurement from the original measurement to find the difference. In my case, I still had 12mm of filament left before my 100mm mark, so my calculations are…

100 - 12 = 88

If the 100mm mark is no longer visible…

The 3D Printer is over extruding, feeding more plastic than we wanted.

Use one of the additional reference marks we made and measure to that instead. Subtract the new measurement from the reference point.

As an example, let’s say we measured from the extruder to our mark at 110mm, and there was a length of 6mm filament between them. In that case, we would do…

110 - 6 = 104

Write down this value and save it for the next step.

Calibrate Extruder Steps

Before we can figure out the correct value for our Extruder Steps, we need to first check and see what the current value is.

From the LCD screen, push the knob and navigate to Control -> Motion -> ESteps/mm to view the original setting. Unless it was previously changed, the default e-step values from Creality are set as…

  • Creality CR-10: 93.0 steps/mm
  • Creality Ender-3: 95.0 steps/mm
  • Creality Ender-5: 92.6 steps/mm

Using the formula below, multiply the current E-Steps/mm for your machine by the desired amount of filament (100) we asked it to extrude. Divide that number by how much we got (the value we wrote down in the previous step) and we find the correct Extruder Steps for our machine.

This is the math for my Creality Ender 5 Pro, which gave me a new E-Steps/mm value of roughly 105.2. That’s a significant difference from what was previously configured stock.

EEPROM Settings

Now that we have found the correct Extruder Steps for our machine, we need to set and store this value in EEPROM. This is the board’s read-only memory where firmware settings are saved.

From the LCD screen, navigate to Control -> Motion -> Esteps/mm. Press the knob to select it, then turn to adjust the number until it matches our new extruder steps value. Press the knob once more to back out and make sure that it’s correct.

Since this will revert back when we power off the 3D printer, we also need to store the changes too. Go back to the LCD screen, scroll down to the bottom and look for an option called Store Memory (Ender-5), Store Settings (Ender-3) or Save to EEPROM (CR-10). The option name changes a bit between models, but each one does the exact same thing. Select that and our new Extruder Steps are now saved.

For 3D Printers that do not have EEPROM controls on the LCD menu, the e-steps can alternatively be set via the G-Code Start Script in your slicer software. This is specified as “M92 E105.2;” without quotation marks, and replace the number with your correct e-step value.

Other Thoughts

Extruder steps play a major role in 3D printer performance, but it doesn’t just affect extrusion multipliers, it also controls retraction and other related settings. If we’re under or over extruding, we’re also under or over retracting, and that can cause just as many problems.

Having owned dozens of Creality 3D printers, from the Ender 3, 5 and CR10 series, it’s safe to assume that every machine needs these calibrations. They use a generic “one size fits all” firmware configuration, but no two are identical.

Related: 8 Best Extruder Upgrades for Creality Ender 3

As a final word of advice, take the opportunity and upgrade your extruder. Most stock extruders are made of plastic, a terrible place to cut costs, and these won’t last more than a few months. Once the lever develops cracks or the brass gear’s teeth wear out, no amount of tuning can fix it. Just make sure to re-calibrate the extruder steps when you do!

View Comments

  • Thanks for your help! I am new to 3D printing and bought the Ender 5. Now switched to the MKS Gen L, TFT28 and BL Touch. Configuring the setup to learn how all those different components en setting are closely working with each other.

    • Hi Ralph,

      No problem, glad it helped! For those that are new to 3D Printing, I generally don't recommend any upgrades until you are very familiar with your machine. These are pretty phenomenal 3D Printers and should print great right out of the box. In your case however, all 3 of those are wonderful upgrades that won't have much impact on print quality but rather just improve the user experience.

  • My ender 5 did 88 MM out of the box when i told it to extrude 100MM.

    Thank you for tutorial. Funny how they are all broken the same from the factory :)

    • Hey Frank,

      I'm guessing all of the Ender-5 3D Printers have the e-steps miscalibrated from the factory, doubt they even take the time to check. They make great budget machines, but definitely leave some stuff up to the customer to fix. Thankfully this is a pretty simple one and takes just a few minutes!

      • With different materials that people use its probably best to pick a margin of error and have the machine under extrude, rather than over extrude by default. The majority of people won't notice under extrusion until they try to do taller prints.

  • When i go in the main screen or instalize EEPROM it still goes back to 93 and i need 100. When i try to save it it give a hard beep.... so this does not work on nu Ender 3 Pro :(

    • Hi Max,

      I believe "Initialize EEPROM" pulls in the settings from memory, so that would overwrite any changes you made. You would want to use the Save EEPROM or Store EEPROM option, although it sounds like your firmware may not have the option to write changes.

      If that is the case, just use the instructions from the yellow box where I made a note about an alternative method. You can add "M92 E100.0" to your Start G-Code in the slicer software, or whatever your desired E-Steps value is. This won't permanently store it on the machine, but it will set the value before starting the print job.

      -Brett

      • Add an SD card to your creality machine.

  • Sounds easy to do but not so much. I can find all the settings and indeed change the temp of the hot end with no problem. Once the hot end is heated, I can go and tell it to extrude 100 mm of filament. I've done it both ways; press the knob, it sounds like it wants to do something but then reboots and don't press the knob, it does nothing. So, not quite sure where to go from here. Running an Ender 5.

    • Hi Stewart,

      This is actually some kind of firmware problem with the Creality Ender-5. I had the same problem on my own machine, but thought it was a glitch. I have since seen others complain about it on /r/Ender5 recently so it seems to be an issue from the factory.

      With that said, it doesn't make it impossible, just a bit more of a hassle. From what I could tell, it would reset when scrolling the knob too fast (likely overloading the board with a queue of too many instructions). When I took it slow and just extruded about 25 to 30mm at a time, it never reset.

      So far I haven't seen any exact answer for the reason this happens on the Ender-5, it doesn't occur on the Ender-3 or CR-10. Definitely give it a try going slower and see if that works, otherwise you could potentially just use a G-Code file to extrude 100mm filament instead as a workaround.

      -Brett

      • I've found that on my Ender 3, if I forget to "preheat" the nozzle (the set temperature is "0"), E movement is totally ignored. A useful feature, but surprising if you're unaware of it.

        • Hi Chris,

          This is a Marlin featured called Cold Extrusion Prevention (#PREVENT_COLD_EXTRUSION). Definitely quite useful as it can help mitigate problems, but it does raise some questions once in a while.

          The issue Stewart was describing though seems to be limited to the Ender-5, as I have never experienced it on the Ender-3 or CR-10 before. Basically if you scroll the dial knob too fast, something on the stock board can't keep up and it reboots the 3D Printer. It's not a huge deal as you can just slowly increase the desired value in increments, but my Ender-5 definitely rebooted several times when calibrating the E-Steps for this article.

          -Brett

        • They must of fixed that or part of it. If I preheat PLA conf (a menu item in control), the nozzle heats by just selecting preheat PLA / Preheat PLA end from the prepare menu.

      • This is exactly what I had with a 2nd hand 5 Pro I bought last week. Stripped/rebuilt the hot end, checked all wires at least twice, finally worked out the issue accidentally. Wish I'd found this before the event, Google was not my friend that day.

        • Hi Paul,

          I've done the same thing more times than I can count. 3D Printer is half disassembled before realizing it was some simple 5 minute fix. I'm glad the guide helped and you've got it all sorted out now at least. It's worth the effort in the end, even if it sometimes takes a while to get there.

          -Brett

  • I just wanted to leave a thank you for the guide this has been most helpful

    • Absolutely, glad it was able to help!

  • I'm getting conflicting information from my printer about this. I was under extruding before I upgraded my extruder block to the aluminium one. Now I don't get brittle prints, but the constant "thunk-thunk-thunk" of my stepper motor is telling me I'm over extruding and the filament measurements tell me I'm under by a significant amount ( 37-43mm ). I've switched out the motor and adjusted the steps down to no effect. It prints well until the nozzle becomes clogged by the over extrusion and quits. Any idea what's going on here ? Any help would be appreciated.

    • Hi Larry,

      Just to confirm, when you say "extruder block" what are you referring to exactly? Did you upgrade the extruder to something like this?

      The "thunk" sound doesn't necessarily mean that you are over extruding, you could have a partial clog in the hotend that is partially blocking the flow of filament. Are you using the stock hotend or have you replaced it with something else (V6, Micro Swiss, etc)? I would probably disassemble the hotend and check it out for any problems. Could be the PTFE tubing needs to be replaced or something along those lines, but feel free to shoot over more details and I will try and help narrow it down!

  • Hi, sorry for my English, it's a bit bad.
    I have an Ender3 and yesterday I was looking to adjust the extrusion values (nothing had changed since I bought it). By default I had movement -006.0 and steps / mm 93 and I extruded 109mm to the 100mm mark. I made the caluclos and went on to extrude 98mm .... After this, I don't know what happened that extrudes me 50mm by telling him to extrude 100mm. (The value that previously appeared in -006.0 is now +000.0). The only way to extrude 100mm is to put the passive / mm at 232, and this makes it sound a lot when doing the retraction (it looks like a barking dog :() and I don't know if it will be good for the engine. The cure retraction values I have not varied 6mm and 60m / s. Can you please help me? I have "Initialize EEPROM" already several times with the same result

  • Hi, thank you for this guide, I followed it and I noticed that the marked spot at 100mm does go up into the extruder, but after the extrusion is over it lowers itself back out to around 8mm past the bottom of the extruder. Does this indicate some other problem like the filament isn't being held in place after extrusion where it should, or is it an automatic setting that pushes filament backwards after extrusion? Should I still measure that 8mm difference as a difference in correct extrusion?
    There's no tension on my spool to cause my filament to drag backwards after extrusion so I'm wondering if it's a deliberate step by the printer.

  • Thank you for good information. It helped! I figured out the problem, but had no good solution how to use the display for setting and testing, instead of connecting the laptop. I have a new Ender 3 Pro, and the flow setting was 93, as you describe. But with that setting, i got just 40 mm filament. Made a calculation and set it to crazy 235 steps / mm. But after saving to EEPROM, it was now feeding over 200 mm. But with new settings and savings into EEPROM, 98 steps/mm became perfect, feeding 100 mm filament.
    Odd! I got the impression that the value 93 shown from beginning was not the "real" working value from EEPROM. It must have been some bug in the software value.

    You can just imagine how poor models the Ender made by feeding just 40 mm instead of 100. I tried a lot for several days, almost becoming crazy. Finally I found that when starting to print a job, I got access to the TUNE menu, and changed different values while printing was going on. With the flow value 145, it started to work good. I think that TUNE menu can be good for an ongoing job.
    Thank you for a good description.

  • 35!!! thats all that was being used up for 100mm! Do you kno2 how long it takes to adjust from 28.6 steps all the way to 264.57 at .01mm a notch? either way... I am up and running! thanks a lot Ralph!!!!

    • is there a reason you couldn't use the 1mm setting to fix this issue? I'm having the same issue.
      jason

Share
Published by
Brett

Recent Posts

Compile Marlin Firmware without VSCode

Build your own customized version of Marlin firmware with ease. No need to bother setting…

3 years ago

How to Install Klipper on the Creality Cloud WiFi Box

The is a fantastic concept, but a horrible product. It's intended to rival the likes…

3 years ago

How to Install the Gulfcoast Robotics Heated Bed (Ender 3 / 5)

Creality 3D Printers are notorious for having a warped heated bed. The Ender 3 and…

3 years ago

The 8 Best Extruder Upgrades for Creality Ender 3 [2023]

We take a look at the 8 best Extruder upgrades for Creality Ender 3 printers…

4 years ago

How to Install the SKR Mini E3 Board (Ender-3)

The SKR Mini E3 is an affordable, 32 bit board upgrade for the Ender-3 and…

4 years ago

How to Crimp JST Connectors for 3D Printers

When I first started down the rabbit hole of 3D Printer upgrades, one of my…

5 years ago