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


Recent Posts

Plastic Razor Blades? Oh Yeah!

By Michael Hackney → Monday, December 18, 2017
I'm always looking for ways to reduce my cycle times for printing lots of parts every day - or just to make my life a little easier. I've been using these very cool plastic razor blades for a few months and I give them the "SublimeLayers Seal of Approval" for non-destructive part removal and general print bed cleanup without fear of damaging the bed.

They look like a standard single edge razor blade - and you can even put them in a box cutter. They are not sharp like a razor blade but they are remarkably keen-edged. I got mine in a bag of 100 from Amazon and they have really simplified cleanup.

UPDATE: Several people have suggested I setup an Amazon Affiliate and link to interesting and useful products that I recommend. So here we go! Thank you for your support!

Plastic Single Edge Razor Blades

Although these are not the exact blade I show above, I purchased these last time and they are functionally equivalent. The original source has been out of stock.

Musings on Under-extrusion - More to think about

By Michael Hackney → Tuesday, December 12, 2017
My blog post yesterday detailing results of the under-extrusion experiment seems to be getting some attention - it had the highest number of views in the first 24 hours of any post I've made to date. In this follow-up post I'm going to show - at a very high level - how the voids are distributed and how large they are.

In practice, the geometry of the deposited extrudate is very complex and dependent on a lot of factors including:

  • extrusion width vs orifice diameter
  • extrusion height to width ratio
  • material viscosity
  • for the first layer, adhesion properties of the bed surface
  • and  a lot of others

In the under-extrusion experiment and my standard print conditions, I use an extrusion width equal to the diameter of the orifice so the analysis here assumes that. If your extrusion width is larger or smaller than the nozzle orifice diameter, things get more complicated, fast.

I've been doing these experiments and studies for several years. I've also dissected a lot of parts and have attempted to cut the parts in cross section so I can scrutinize the deposited filament under magnification. I've never been able to get clear photos but I am working on it. You'll have to take my observations at face value - or conduct your own experiments to confirm my assertions.

Making the cross-section drawings below is a time-consuming process so I focused on three cases:

  1. full extrusion
  2. 10% under-extruded
  3. 20% under-extruded

Based on part observations, I modeled the deposited filament cross-section as a round cornered rectangle. In reality, they are a more complicated geometry and the first layer geometry is different than upper layers due to the constraint imposed by they bed (it is perfectly flat, unlike printing on an existing extruded layer). As a simplification, I performed my analysis and calculation on cross-section area and not on extrusion volume. In practice, filament deposition happens when the nozzle moves in the X-Y plane and that introduces shear forces that further affect the cross-sectional geometry. But, I assert, there is a lot to be learned from this simple two-dimensional analysis.

I began by calculating the area for the three cases as shown here:

Next, I assumed that in all three cases the extrudate width and height will be the same - in this case 0.4mm (W) and 0.2mm (H). So, the task was to calculate the corner radius that results in the target cross-sectional area. I'll leave the math as an excercise for you, dear reader, but if you are interested please post in the comments and I'll fill in the details. Here are the calculated corner radii in mms.

The final step was to create scaled drawings of the extrudate cross-sections using these corner radii. I used this cross-section to create a simple "print model" cross-section that is two perimeters wide and two layers high as shown here:
Take a close look at these cross-sections. Even at the extreme 20% under-extruded case, the void is surprisingly small and, more interestingly, are precisely distributed at the intersection of extrudate corners in the part.

Note that in reality, even the corners of the 100% case are rounded over so one has to ask where that extra filament went. Does it result in a slight width increase of the extrudate or does the slicer attempt to compensate by slightly under-extruding? I've done the back-calculations for g-code created by KISSlicer, Cura, Slic3r and Simplify3D to see how they actually handle it. This will be the subject of a future post.

Keep in mind that this deposition is happening at a very small scale, fairly quickly, and requires movement of the nozzle in the X-Y plane. As the molten filament is deposited, it can flow (i.e. distort) until it solidifies due to cooling. This can result in various distortions from the hypothetical simple case shown above. But guess what, looking at parts under reasonable magnification, it really does appear remarkably consistent with this simple case (for PLA extruded under reasonable conditions).

I'll leave you with one last drawing showing the 100% and 80% cases side-by-side at relative scale. If you look at your nozzle closely, you'll observe that the orifice is centered in a flat field. This field drags over the deposited filament and contributes to pressing it down into the bed or layer below. I don't have experimental evidence for the shape of the 80% under-extruded case shown on the right side of the drawing. I derived it - a simple trapezoid - by observing squeezing toothpaste against a counter top to simulate extrusion.

Musings on Under-extrusion - prepare to rethink your understanding

By Michael Hackney → Monday, December 11, 2017
UPDATE: my friend Tony Akens asked if I had weighed the parts to verify the commensurate reaction 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.

Print Contest #1 Example Print

By Michael Hackney → Tuesday, December 5, 2017
I posted details about the new series of print contests yesterday. Of course, I won't ask anyone to print something that I can't print so here is an example print and submission:

KISSlicer 1.6.2
- adaptive layers 0.08 to 0.25
- 3.5 loops
- .6 skin (3 shells)
- speeds: perimeter: 18.8mm/s, loops: 33.6mm/s, solid: 33.60mm/s, sparse: 50.4mm/s
- Fillamentum Vertigo Galaxy PLA
- RailCore II (CoreXY) printer with Bondtech BMG and custom water cooled E3D V6 hot end

Let the contest begin!

First Print Contest for my Supporters!

By Michael Hackney → Monday, December 4, 2017
I'm pleased to announce that I'll be holding a series of challenging print contests for my supporters conducted through my private Slack channel. Prints will be evaluated purely on technical attributes. I'm posting this here simply to let folks know that supporting my work has other advantages!

This first contest is a very challenging model from Ferherez's Random Octopus Generator. Specifically, oco6.stl. Here are some render photos:

And here is some info about the contest:

Da Contest

  1. Michael will evaluate all submitted entries and pick the finalist as per the criteria described in Da Evaluating below
  2. Winning entry will be mailed to Michael for inclusion in a blog post and/or YouTube video. Michael will pay shipping from any country.
  3. The winner will be deemed "SublimeCreator" and will win a roll of Fillamentum PLA - your choice of color and I'll have it shipped direct to you.
  4. All submissions must be made by midnight EST (GMT -05:00) on Tuesday, December 19, 2017
  5. Winner will be announced on Friday, December 22, 2017

Da Rules

  1. print the _octo6.stl_ full scale - no resizing
  2. use any slicer of your choosing and any slicing tricks you want (variable/adaptive layer height, etc)
  3. use support or no support as you choose - but if you use support, properly post-process the part (I will be looking for un-removed support!)
  4. use an opaque filament - any type is fine as long as it is opaque
  5. submit a photo of the completed first layer (don't be shy, this WILL be challenging!) - try to get as much of the layer in the photo, this will be tricky but do your best
  6. take one or more photos of the top showing the areas in TopDetail.png
  7. take one or more photos of the bottom showing the areas in BottomDetail.png
  8. photos should be well lit and in focus
  9. all entries must include a description of the slicer used, primary slicing attributes, print speeds (all of them), filament used, and printer and extruder and hot end used
  10. ONLY FFF 3D printers
  11. Only cropping is allowed on photos - no editing!

Da Evaluating

The primary evaluation criteria are based on three categories with the following point values:
  1. first layer (30 pts)
    1. presence of gaps? minus (10 pts)
    2. even and correct layer height? (20 pts)
  2. top detail (60 pts)
    1. blobbing or stringing? (10 pts)
    2. crisp/well formed tenticle tips (circled in photo) (20 pts)
    3. evidence of support? (10 pts)
    4. good layer lines? (10 pts)
  3. clean octopus head top surface? (10 pts)
    1. bottom detail (10 pts)
    2. evidence of support? (10 pts)

I'm happy to evaluate your prints if you post a link to the required entry info or email it to me. However, the winning entry will come from one of my supporters - that's one of the perks!

Why I love KISSlicer top 10 list

By Michael Hackney → Friday, November 10, 2017

Here is my complete top 10 list of why I love KISSlicer.
and my #1 reason for loving KISSlicer is...

Why I love KISSlicer: Reason #1

By Michael Hackney →
Well, here we are at my top reason for loving KISSlicer. By way of background, I want to go on record by saying I'm at expert at slicing - and not just with KISS. My g-code background goes back 17 years on CNC milling machines. I learned how to write g-code by hand and to manually modify g-code produced by CAM applications (the machining equivalent to a slicer) to get better results.

So when I made the move (~10 years ago) to 3D printing and slicers, I was comfortable. More importantly, I had already learned how to analyze g-code in order to see what's "good" and what's "so-so". These skills carry over to slicer generated g-code. And there is a difference between good paths and not-so-good paths even though the end result (print) might look nearly the same.

I've spent 1000s of hours studying slicers and their g-code. I'm expert with all the major players: Slic3r (and Prusa Edition), Cura, MatterSlice, Skeinforge, Craftware and Simplify3D to name few. I've also developed slicing utilities to generate code that current slicers can't - like a 3D printed fishing fly, an SVG file to g-code utility and programs to combine layers from multiple g-code files to get exactly the results I want.

The one thing I can say is that, without a doubt, for those willing to truly understand the slicing process and the resulting g-code, KISSlicer is by far the most predictable. And that, dear readers, is my Why I love KISSlicer: reason #1 - Predictability. When I slice a part in KISS, I know what I'm going to get. When I tweak a parameter, KISS doesn't do weird/inexplicable/stupid things, it does what I expect it to do, predictably. I'm not going to go through a litany of stupid slicer tricks here but I have models and configuration examples for every slicer in the list above that result in g-code that simply defies explanation - and not just slicer crashes but legitimate, head-scratching, whydeydodat? examples. Thank you KISSlicer, I'm really looking forward to the next great thing!

Why I love KISSlicer: Reason #2

By Michael Hackney → Thursday, November 9, 2017
I thought long and hard about Why I love KISSlicer: Reason #2. This one could easily have been my #1 reason simply due to the amount of time it saves me managing my own settings and sharing my settings files to help others.

I'm sure you guessed it - reason #2 is individual settings files! This one is so simple but so BIG. No longer are all of my Printer (14 of them) settings glomed together in a single file like other slicers do. No longer are all of my Style settings, my Material settings or my Support settings crammed together (with the Printer settings of course) into a single mega-settings-file. Now, I can copy, save, and restore individual files for each of my 100 or so settings. And regarding "restore", KISSlicer's Reference settings keep a safe copy of all my settings so they can't be inadvertently (or advertently) changed!

This feature is so cool and powerful that I talked about it for almost 20 minutes in KISSlicer Tutorial: Settings, Profiles and Projects – Oh My! It's worth the watch to learn how to use these capabilities to maximum advantage.