Musings and Experiments on the Art and Science of 3D Printing


Musings on Under-extrusion - prepare to rethink your understanding

By SublimeLayers Monday, December 11, 2017
UPDATE: my friend Tony Akens asked if I had weighed the parts to verify the commensurate reduction in mass. Of course I did! I've updated the tables to show that data.

I've asserted for a few years that under-extrusion (with the caveats listed below) is not as catastrophic as many make it out to be. I am asked to analyze lots of bad parts for my opinion on why they look bad, have gappy perimeters, first layers, and top surfaces, and other issues attributed to bad extrusion or filament diameter. I can usually (but not always) make good recommendations and they usually have nothing to do with under-extrusion. This post should dispell some of the myths and misunderstanding - or at least get you to do a few experiments of your own so you understand how your printer and filament behaves.

Before I get into those experimental details and results, first a little refresher on how FFF 3D printing extrusion works...

Extrusion Primer

From the dawn of the RepRap movement, filament extrusion calculations have been based on the length of raw filament feeding into the extruder. It is not the length of filament that is coming out of the nozzle nor is it the volume of filament coming out of the nozzle (although volumetric extrusion would be ideal and is coming). A properly calibrated extruder will feed exactly a 100mm length of filament when instructed to do so.

Stop and think about that for a moment...

The extruder doesn't care if the filament is 1.75mm D or 1.60mm D or even 2.5mm D (as long as it is constructed to handle this larger filament), it will push exactly 100mm of each of these if instructed to do so in the g-code. FYI, extrusion g-code looks like this:
G1 E100 F60
  • G1 is the "move" command
  • E is the amount to move (or push) filament through the extruder - 100mm in this case
  • F is the feed (speed) per minute - 60 mm/min in this case, which is 1mm/second
The amount of filament the extruder moves is calibrated - the "E-step calibration" - and I've talked about it at length in one of my videos. Everything I'm going to present below is critically dependent on a properly calibrated extruder, so watch the video and calibrate yours now.

While I'm discussing extruders and E-step calibration it is important to understand the impact on the number of E-steps per mm on your print quality. So let's do some calculations to help your understanding.

The circumference of a circle is calculated as:
Circumference = π * Diameter

Applying this formula to the extruder, it will tell us the length of filament that will wrap once around the drive gear as shown below. This will be the length of filament that will move in one full rotation of the stepper motor (of a direct stepper with no gear train).
Now, if we know how many steps it takes to rotate the drive gear a full turn (360°), we can calculate the steps per mm. Common stepper motors are 200 steps/rotation (although higher resolution 400 steps/rotation are affordable and gaining popularity). These are usually driven with 16 microsteps, giving 3200 steps/revolution. A discussion of microsteps is beyond this post but if there is interest, I'm happy to do a post on microstepping too.

Let's assume that the drive gear is 10mm diameter. Its circumference calculates to 31.42mm. So, 3200steps/rotation divided by 31.42 mm/rotation gives 101.85 steps/mm. This tells us that it takes 101.85 steps to move 1mm of filament through the extruder and into the hot end. Simple, eh?

The conventional wisdom dictates that extruders in the range of 400-800 steps/mm are preferable. There is good reason for this and you can perform the math to understand the effect of steps/mm on extrusion precision. I am not aware of any experimental evidence for this though and it would be challenging to design such an experiment and more challenging to analyze the results. So the best we have is anecdotal evidence from folks like me who have spent 1000s of hours printing with low and high-resolution extruders.

With that behind us, let's take a closer look inside the extruder as shown below. Simple extruders use an idler bearing to push against the filament opposite the drive gear as shown. This is to make sure the drive gear grips the filament so the filament moves when the cog rotates. Most extruders provide a tension adjustment for setting the pressure the idler bearing exerts on the filament.

If you apply too much idler pressure, you can distort the plastic filament as shown in the drawing below. Hard filaments like PLA distort less than soft filaments like TPU. PETG and ABS are in between. But, unless the filament (or drive gear) slips (or the stepper skips steps), the extruder will deliver whatever it is asked to extrude. 

Excessive idler pressure can permanently damage the filament (those teeth marks you may have seen or felt on your filament) and this damage can cause all sorts of inexplicable print problems when these grooves catch on surfaces and edges inside the extruder and hot end. I recall diagnosing extrusion issues related to these ridges catching on the edges of a Bowden tube 4 or 5 years ago and dug out this old photo:

Not only can this damaged filament snag on things, it increases the effective filament diameter, which can create excess friction in Bowden tubes. It is best to use the least amount of idler pressure as required to minimize this damage.

Sidebar: I prefer Bondtech extruders because they use two drive gears - one on each side of the filament. This allows a much lower pressure setting to get high extrusion forces, resulting in less damage to the filament and better extrusion consistency. I have blogged about Bondtech here, so search or find the Bondtech tagged posts to learn more.

Under-extrusion Print Test

Ok, let's get to the heart of this post! Over the last few months, I've had a spike in the number of print issues blamed on under-extrusion. I've patiently tried to explain that the photographed results were likely not the result of filament diameter variations or other extrusion-related issues. So this weekend I decided to conduct a controlled experiment to finally put this to bed.

Experimental Design

For this test, I used a stock Ultibots D300VS with its Micro Extruder and an E3D V6 hot end. The extruder was carefully calibrated as described in the video I linked above. This resulted in an E-step value of 780 steps/mm. This printer runs a Duet WiFi and RepRapFirmware.

For the test part, I used a 30mm cube with two vertical edges rounded - this is my standard test cube as it provides more information than a typical cube with sharp corners. I sliced the part with KISSlicer 1.6.2 as:
  • 195°C extrusion temp
  • 55°C bed temp
  • PEI bed surface
  • Filament: 1.75mm D PLA (no name brand)
  • Destring: 1mm at 20 mm/s 
  • Extrusion width: .4mm 
  • Layer thickness: .2mm 
  • Fixed layers 
  • Infill: 33% straight 
  • 3.5 loops and 3 shells 
  • Loop1>Perim 
  • Seam Join-Loop 
  • 360° Jitter 
  • Speeds: 
    • Perim: 30 mm/s 
    • Loops: 45 mm/s 
    • Solid: 50 mm/s 
    • Sparse: 50mm/s
The goal was to print this part at 100% as a baseline and then at 5%, 10%, 15% and 20% under-extruded to compare. Photos of the first layer and completed part were taken of each test and dimensional measurements of the width, depth and height made for each test part.

To achieve the under-extrusion, I simply calculated and set the E-step value in the firmware (config.g in RepRapFirmware using M92). I verified the new E-step value was indeed set before each test print as well as did a quick and dirty 100mm extrusion test to validate that the reduced length of filament was indeed delivered.

Each experiment is color-coded to make it easy to digest the data:
  1. red is normal, 100%
  2. orange is 5% under
  3. yellow is 10% under
  4. green is 15% under
  5. blue is 20% under


Let's start with the table showing the under-extrusion part measurements and observations:

As you can see here, the X and Y dimensions of the part decreased slightly with increasing under-extrusion but the Z (height) was remarkably consistent. The part mass reduced as expected, we'll see if it tracks the expected reduction in the next table. I then calculated the measurement errors as shown here:

Yes, the mass of the parts tracks the expected loss due to the under-extrusion. So we know for sure that the parts were indeed being under-extruded.

Even at significant - 20% - under-extrusion, the part dimensions are quite good.

Now let's look at the photos of these parts.

Finally, I wanted to see if I could calculate an effective filament diameter - that is, what diameter of filament would result in the same decrease in extrusion volume in the print if it were extruded at 100%. Here are the calculations:

The important column is the Calculated diameter - it shows what the corresponding filament diameter would be to produce the associated under-extrusion. Surprising huh? So if we accept that under-extrusion up to about 10% produces reasonable parts, then your filament could vary from 1.75mm to 1.66 mm in diameter and also yield respectable looking parts.


What may be surprising and counter-intuitive to many, it is clear that under this set of conditions, filament and part geometry that significant under-extrusion up to 10% under was basically insignificant. The first and top layers were filled completely with no gaps, the walls (perimeters) were also tight and looked excellent. Dimensionally, the parts are all within realistic expectations for FFF 3D prints. I carefully observed the infill as these parts printed and the infill also looked indistinguishable over this range of under-extrusion.

At 15% under-extruded, I really didn't see any visual difference but under magnification, both the first and top layers show striations due to the edges of the extruded paths not quite bonding as closely to each other.

At 20% under-extruded, there were visible gaps in the internal perimeters as well as visible striations on the first and top surfaces. But surprisingly, even these 20% UNDER-EXTRUDED parts looked quite respectable.

Family Portrait

I did not perform strength tests for any of these parts. One could argue that reducing the amount of plastic should result in weaker parts. I agree. The 20% under-extruded part showed pronounced gaps between perimeters, surely that would be weaker than tightly bonded perimeters. But how strong is strong enough?

The bottom line is, FFF 3D printing is surprisingly robust to non-trivial under-extrusion in the range up to 10% under-extruded, and possibly higher depending on your requirements. This is why I have been saying for years that I don't advocate tweaking e-steps, slicer flow adjust or any other slicer extrusion fudge factor for reasonable filament diameters.

Arguably, if you have a demanding part that requires the best precision you can muster, then perhaps setting the measured filament diameter in your slicer (and validating your extruder calibration) might make sense - but please don't use fudge factors like flow adjust.

At some point, you are just chasing zeros. This is plastic, after all, that is melted, squirted out of a ridiculously small orifice and deposited in layers to make a 3-dimensional object! Don't expect CNC machined metal precision. Realize that 0.01mm is only four ten-thousandths of an inch (0.00039)!

Next Steps

The calibration cube was an "ideal" part, it would be interesting to run this same experiment with real-world parts (anything but Benchys please). I would expect similar results based on my experience.

It would also be interesting to repeat this with other filaments, especially ABS, PETG and TPU.

3 comments to ''Musings on Under-extrusion - prepare to rethink your understanding"

  1. We have been fed a lot of BS after seeing your results. Thanks as always Mike

  2. Mike while I agree with your observations, they are dampened by a model with a pretty large mass and enough layers and perimeters to aide in success. A great model I have found to demonstrate under extrusion and show where and what it is doing to your print is the Julia vase called Heatwave. It is complex and can show you the difference that an adjustment of merely 10 steps per mm can have when printed in single perimeter. Try it I think it might change your mind on just how under extrusion can be validated.

    1. I cannot find a place to upload a pic for an example. If you can tell me where to leave one I will gladly publish it. The pic I have demonstrates the difference in 8mm/step change