After I setup the new Creality Ender-5, 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 both arrived with similar problems in the past, badly in need of a proper calibration to the Extruder Steps.
When our 3D prints are less than perfect, the Extruder Steps (or e-steps) are often checked as a last resort. There are plenty of other tweaks that can improve results, but e-steps should be the first suspect on every new 3D Printer. It’s responsible for how much plastic gets pushed in to the hotend, and the wrong setting can leave gaps, blobs and other surface defects.
On the upside, Creality does make it easy to check, change and fix the Extruder Steps. No need to connect the 3D Printer to your computer over USB, we can just dial in the correct settings right from the LCD control screen.
We just need a couple of tools, something to measure and something to mark. In my case, I am using Digital Calipers from Amazon and a sharpie.
- Calipers / Ruler
- Permanent Marker
Calculate Extruder Steps
To check if our current Extruder Steps are correct, we first need to tell 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.
Using calipers or a 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 110 and 120 too, just in case it extrudes more than we want and additional points of reference are needed.
Go ahead and preheat your hotend up to normal printing temperatures. From the LCD control 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° C hotter than you would normally print this filament. We don’t want any resistance at the nozzle to throw off our measurements, it should flow out nice and smooth.
Once the hotend is preheated, 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.
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 will need to check how much. To do this, measure the distance from the extruder to our mark once more and see how much filament 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, then add that value to our original_measurement.
As an example, let’s say we measured from the extruder to our mark at 120mm, and there was a length of 16mm filament between them. In that case, we would do…
(120 - 16) + 100 = 104
Write down this value and save it for the next step.
Calibrate Extruder Steps
Before we can figure out the new correct value for our Extruder Steps, we need to first check and see what the current wrong 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 the filament it actually used (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, which gave me a new E-Steps/mm value of roughly 105.2. That’s a significant difference from what was previously configured stock.
Now that we have found the correct Extruder Steps for our machine, we need to set and store this value in the EEPROM. This is the board’s read-only memory where firmware settings are saved.
From the LCD control screen, navigate to Control -> Motion -> Esteps/mm. Press the knob to select it, then turn it 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 if we power off the 3D Printer, we need to store the changes as well. Go back to the LCD control screen, scroll down to the bottom and look for an option such as Store Memory (Ender-5), Store Settings (Ender-3) or Save to EEPROM (CR-10). The option name changes a bit between models, but does the exact same thing.
Select that and our new Extruder Steps are now saved.
Having now purchased several different Creality 3D Printers, I think it’s safe to assume they almost always need to be calibrated. Given the low budget price point, we can’t reasonably expect each machine to be tested and tuned before shipment, which means this work falls to us as the consumer.
The problem is this isn’t necessarily obvious, especially to new owners buying the Ender-3 as their first 3D Printer. The g-code examples on the SD card are just smoke and mirrors, where the Test Dog prints fantastic because it uses ultra quality settings that can hide issues.
In the long run, it’s a good idea to just upgrade the stock extruder with an all metal version. The plastic lever and brass gears will work for a while, but even a Stainless Steel 40T Gear will make a huge difference for a couple bucks.