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

Featured Post

After a five-year detour leading the global software team for Desktop Metal, I'm back with a new name ( A Hack of All Trades ), a new mi...

Followers

Browsing "Older Posts"

Browsing Category "Slicer"

Musings on Blobbing and Stringing - Part 2

By SublimeLayers → Tuesday, October 31, 2017
This is the second and final part of Musings on Blobbing and Stringing. In the first part, I posed the question "Why does blobbing and stringing happen?" In this part, I'll attack "Ok, so what do we do about it?" head on.

Before we get started, I gently (but firmly) ask that you do these three things:

  1. Read Part 1!
  2. Follow the advice in Part 1 and c a l i b r a t e    y o u r    e x t r u d e r
  3. Have realistic expectations.

The first item on the list is easy, go do it now. The second item is much less painful using the tool I designed and show how to use in the video. Yeah, it does take a little time but most things worth learning and doing do. Printing with an uncalibrated extruder is like driving a car with a faulty speedometer through a school zone – and you know what that gets you (a speeding ticket).

The third item on the list is critical. Believe it or not, there is no magic formula, no silver bullet, no Gregorian chant that will ensure that all of your prints will be blob and string free. Fused Filament Fabrication (FFF) 3D printing is complex with many interdependent variables. You may have noticed that I emboldened, underlined AND italicized the term "interdependent". This is really important to realize - really important.

So much folklore in the various 3D printing forums and groups makes the blatant, irrational and totally incorrect assumption that a 3D printing problem – particularly blobbing and stringing problems – can be solved by changing one or even two, three or four things. Nothing could be further from the truth, and expecting a simple solution will only set you up for frustration and failure. But take heart, armed with the knowledge in Part 1 and the tested and proven strategies presented here in Part 2, you do have a fighting chance!

Let's take a look at some pre-requisites and why they are important

  1. Your printer must be mechanically sound and calibrated. Think about it, if your printer motion mechanics are sloppy (even a little bit) the nozzle will likely overshoot rapid direction changes, such as those at a corner, and leave what appears to be a blob. Movement in the Z axis can squish layers and create odd blob artifacts. These sorts of artifacts are easy to spot and identify to an experienced eye and can be easily resolved.
  2. Your extruder must be calibrated. Where have I read that before? Oh yeah, in Part 1 and in the list above! If the extruder is instructed to deliver 10mm of filament but actually delivers 11mm, it is over-extruding by 10%. Sometimes you may not even notice a 10% over extrusion. But at some point, printing a model with thin walls or small diameter through holes – or any other of a host of geometric features – that 10% WILL create problems with blobbing/oozing. More on geometry below.
  3. You need to understand and, ideally, calibrate the melt temperature of your filament. You can't – and shouldn't – rely on the filament manufacturer's "recommended" extrusion temperature. Some get it right, most don't and in all cases, it also depends on your specific extruder, temperature monitoring accuracy, and many other variables. This one is also complex due to the wide variety of materials we have available to print. What works for one filament can actually make things much worse for another. TPU is a good example, extruding TPU at even a slightly elevated temperature results in spits and spats and horrible looking parts. Whereas a 5° increase in PLA extrusion temperature might actually eliminate a stringing problem. Confused? So is most everyone else. The point is, realize that not all filaments (by these I mean major classes of filaments like PLA vs ABS vs PETG etc) behave the same with respect to extrusion temperature, print speed/flow rate, and many other variables.
  4. Finally, the model geometry can, and often does, have a profound influence on print quality. Some geometries are simply going to be more difficult to print. Take the calibration pyramid model shown below. This model is a torture test for string elimination. I do plan to write a post on evaluating the printability of models but let's take a little side trip here to help your understanding in this context on blobbing and stringing.

    Analysis: The four corner posts on this model have very small cross-sectional areas. That should tell us that these layers most likely won't cool sufficiently before the next layer is applied and that will most likely result in them slumping or warping. So, what do we do? Most would simply blast the print with cooling air from their part cooling fan. But in this case, the part was printed in PLA and that cooling air also cools the filament at the tip of the nozzle so it strings – horribly – when the nozzle moves from one post to the next. That's what PLA does at the lower end of its melt zone, it strings horribly. The solution, in this case, was to slow down! Minimal part cooling air was used for this print. Slowing down gave the layers sufficient time to cool and there was no stringing from post to post to boot. Slowing down might be non-intuitive at first but it is one of the most useful tools in your tool chest.

Now we get to the good part "Ok, so what do we do about it?"

As you read this section, keep item #3 in my list in mind: Have realistic expectations. It is not possible for me to prescribe a set of slicer parameters that will work for your printer, extruder, filament, and model. What I can do is get you thinking about what strategies can be used to minimize print quality issues so you can do a few sample prints to test them. Believe it or not, once you've done this process a handful of times, you begin to internalize it and learn to slice and print most any part confidently with minimal issues the first time. But you have to be willing to 1) think about what you are doing, 2) think about why you are doing it and 3) be willing to do a test print or two (or three) to gain experience - I call these the three step process.

Keep in mind that the following blobbing and stringing mitigation strategies are highly interdependent. While implementing one of them might result in a big improvement, adding another could wreak all havoc. That's why it is important to follow the three step process.

Blobbing and Stringing Mitigation Strategies

#1 Minimize Nozzle Moves

The first thing to realize is that blobbing and stringing occur when the nozzle has to move from one part of the print to another. If the printer could simply print a continuous bead of filament, there would be no opportunity for blobbing and stringing (assuming the pre-requisites have been met). So that should be the first clue. When slicing a model, try to minimize the number of moves or hops the nozzle must make. This is especially true when printing perimeters – if your slicer allows you to print the perimeters (or loops) in one smooth, continuous bead, do it. This is why "vase mode" is so effective, it prints one continuous spiral of filament, in one perimeter, from the base to the top of the print. Not all slicers have a vase mode though.

The physical layout of multiple parts on the print bed also has an impact. Consider three parts. Is it better to place them in a line or roughly in a triangle? The answer to that depends on how your slicer handles inter-part moves like this. If it always prints a layer in 1-2-3 order, then a triangular layout eliminates moving the nozzle across the middle part in a linear layout. Little things like this can make a difference, so pay attention and think about what you are doing.
Many slicers have features to eliminate short fill segments. If your surface finish isn't critical, this option can minimize the number of nozzle moves. 

#2 Print Perimeters Inside Out 

If your part geometry and dimensional accuracy requirements allow it, print perimeters "inside out". This ensures that any extra blob will be deposited inside the outer, most visible, perimeter where it does no harm. Most slicers have options to do this. KISSlicer 1.6 has a new feature called Join-Loop that prints the outer perimeter and the inner loop in one continuous bead, thereby eliminating extraneous nozzle moves. Although I use KISSlicer in my YouTube tutorial Getting Loopy - All About Perimeters and Loops the general principles apply to any slicer.

#3 Slow Down

As you learned (or should have) in Part 1, excess extrusion back pressure is a primary culprit to blobbing and stringing. At high print speeds, the extruder is working harder to push filament and that results in more back pressure when extrusion stops. Slowing down minimizes this back pressure. If you have a challenging geometry and/or filament, many times simply decreasing print speed will magically eliminate the problem.

#4 Watch that Fan

Don't assume that more part cooling air is better. As I mentioned in the analysis under model geometry above, too much air can be detrimental. In fact, if you slow down our print (#3) less cooling air should be required and you are minimizing back pressure issues. This is just a simple example of interdependence. In general, I use the least amount of part cooling air directed with laser precision (not blasted from a big fan or two or three) precisely where it is needed. You can learn more about that in this post: The Tusk Fan Shroud.

#5 Use Wipe

Wipe is a slicer feature implemented specifically to help mitigate stringing and blobbing and most slicers support it. It is simple in concept and does exactly what it sounds like – it wipes the nozzle on the previously printed extrusion path in an effort to clean off any excess filament due to back pressure oozing. Here's a simple diagram to show how it works:
Generally, you specify the wipe distance in mm. Wipe is a docile blobbing and stringing mitigation feature and there is very little harm in using it routinely. My default slicing profiles all add between .5 to 1mm of wipe, depending on the filament. The one exception is sticky filaments like PETG, wiping PETG can actually create stringing problems so it might be worth disabling wipe in this case.

#6 Retract, but be careful

Of all the blobbing and stringing mitigation features known to modern man (and slicer), this one – retract – is the most used and abused. Retract is the sledgehammer feature for blob and string mitigation. Most slicers call it retract, KISSlicer calls it destring. Understanding retract is so important that I've written extensively about it, including this most popular post on my blog: Some musings on retracts. I highly recommend reading that post, it might open your eyes to how and when to use retracts.

In a nutshell, what retract does is suck or pull the filament back up into the hot end at the end of a printed path – right before the nozzle lifts to move to a new place – in an attempt to decrease backpressure inside the hot end. How far and how fast to retract (and advance on the other side) is highly dependant on the type of filament, type of extrusion system and hot end, extrusion temperature and even other slicing parameters like infill type and density (believe it or not). Suffice to say "more retract is not better". In fact, too much retract or retracting or advancing too fast can create other more complex problems that are much harder to diagnose.
As you can see in this illustration, molten filament that was in the heat block ready to make its exit is quickly pulled back up inside the hot end. If you pull this filament up too far it can enter the heat break or heatsink and solidify. That's called a plug and it basically ruins your print and day.

The other thing to be mindful of (and this is discussed in the post I linked to) is that melted plastics are not well-behaved fluids. A well-behaved fluid is called a Newtonian fluid and water is a classic example. An example of a non-Newtonian fluid is Silly Putty™. If you pull on opposite ends of a clump of Silly Putty slowly, it will stretch and draw a long thread (string!). If you pull quickly, the Silly Putty will snap cleanly like a cracker.


Molten PLA, ABS, PETG, TPU, Nylon, Polycarbonate and other 3D printable filaments are anything but Newtonian fluids. Strange things happen when these molten filaments are pushed through small orifices like the printer's nozzle and they aren't always well behaved when you heat them up or cool them down. It isn't necessary to understand the science of non-Newtonian fluids, just be aware that your filament may not behave the way you think (or would like) it to behave. When you read "increase your retract distance and speed" on a forum somewhere, PLEASE stop and think about it before blindly trying it. Because the system is so complex and interdependent, making a non-sensical change like increasing retract distance might sort of work for the part you are printing now but at some point, I guarantee, it will come back to bite you later.

#7 Hop

Hop, or Z-lift as its called in some slicers, is a feature that attempts to snap the filament cleanly off the nozzle tip at the end of a printed path. Simply, the printer stops extruding and quickly raises the nozzle a specified distance (usually in mm). Z-lift can be effective at managing blobbing and stringing or it can make them nightmarishly worse. Think about the Silly Putty example above. If your molten filament behaves like Silly Putty, then a short quick hop would cleanly snap it, preventing a blob or string. But what if your filament behaves the opposite of Silly Putty? Then the hop would actually draw out a long fiber that will be transferred all over your part.

So, how can you know which way your filament will behave? The simple answer is by careful observation of controlled tests. Not very gratifying, I know and I apologize for that. Your printer's rapid movement speeds, the extrusion temperature, filament type, and many other parameters affect the effectiveness of hop. And to complicate things, hop, retract and wipe can (and usually are) combined together, resulting in inexplicable interactions.

Some printers simply can't hop fast enough to have much positive effect and might actually draw out a long filament instead of snapping cleanly. Most Cartesian printers with a screw-driven Z axis fit into this category. Delta printers, on the other hand, can hop very rapidly.

The other thing that Z hop does is lift the nozzle for clearance as it is moved to a different place on your print. Generally, a very small amount of lift, say one layer height, is enough clearance.

At the risk of being dictatorial, here are some recommendations based on years of experience printing LOTS of parts in all of these filaments on both Cartesian and delta printers:

  1. If your printer has a slow Z axis, don't use hop (except for clearance as described above).
  2. Don't use hop (or use very little, like .25mm) with stringy filaments like PETG, Nylon and TPU.
  3. ABS and PLA generally benefit from a short rapid hop of 4mm or so. I do this on my delta printers with good results.
  4. Filaments filled with materials like carbon fiber, wood flour, metal powders, etc generally don't string a lot and hop can be used with them.
  5. Combine a little hop with retract. This is somewhat dependant on how your slicer prioritizes these actions and they all do it a little differently. Ideally, you want to perform the hop and retract simultaneously.

#8 Polish your nozzle

I've written about this in the past but surprisingly few people do it. But stop and think about it for a moment – if your nozzle tip is rough and dirty, wouldn't you expect the extruding filament to stick to it? So at the end of a printed path, that sticking filament is going to draw into a long string. Polishing your nozzle is such a simple thing but can have a big impact on print quality.

#9 Preload - a feature unique to KISSlicer 1.6

I put this one last simply because it is unique to KISSlicer 1.6. But, from a blobbing and stringing mitigation perspective, Preload is remarkable – especially for very elastic filaments and extrusion systems (i.e. a Bowden tube). I'm in the final stages of editing a YouTube tutorial on Preload so watch for that.

Preload numerically models how the printer extrudes filament and dynamically adapts the head (print) speed and extrusion pressure during the print. In other words, Preload manages backpressure so that at the end of a printed segment, there is no appreciable back pressure to contribute to blobbing and stringing.

Conclusion

I hope this post has given you a better understanding of the complexities of 3D printing as it relates to blobbing and stringing on your prints. Through understanding comes the ability to manage or control the process to get the results you want. The good news is, if you read this post, I am confident you will do fine and your prints will improve markedly! It's the folks looking for quick fixes and unwilling to take the time to learn and understand that will continue to struggle.

One last pearl of wisdom...

When I confront a situation – a difficult model geometry, an oddly behaving filament, or other anomalies – that just seems to defy my attempts to get a nice print, I start from ground zero. By this I mean, I disable hop, wipe, retract. I make sure my extruder is properly calibrated. I tune the extrusion temperature and flow rate for the filament and I do a simple test print. Then I start at the top of the list and think about each item and what I've observed so far.

It was Albert Einsten who said, “The definition of insanity is doing the same thing over and over again, but expecting different results.”

To extrude (relative) or not to extrude (relative), THAT is the question!

By SublimeLayers → Tuesday, October 24, 2017
I am asked several times a month about the difference between absolute and relative extrusion and which one is better to use. So let's jump in and see...

Absolute and relative positioning are two different ways to specify how far, overall, to travel, move, or even extrude. In absolute positioning, you start at position "0" (typically) called the origin. All positions from there are given as the distance from the origin. With relative positioning, you also start from an origin ("0"), but each time you make a move to a new position, you reset to "0" at that new location. Each move is the distance from the previous location, not from the origin. Let's look at some concrete examples to clarify:

Let's consider absolute positioning first. Imagine you are in your car and need directions to the nearest ice cream stand. You pull over (origin) and ask a stranger for directions. Her directions go like this:
  • drive 1.1 miles until you see a red barn, then turn left
  • drive until your odometer reads 1.6 miles (from the origin) and turn right on Swift St.
  • you will see the ice cream stand on the left when your odometer reads 3.9 miles (from the origin)
Now, let's see what these directions would look like in relative distances.

  • drive 1.1 miles until you see a red barn, then turn left
  • drive another .5 miles (from the red barn, the previous location) and turn right on Swift St.
  • the ice cream stand will be another 2.3 miles (from the previous location) on the left
These directions are simple and straightforward to follow. The direction giver is using relative distances to describe each segment you must drive. Overall, you will drive 3.9 miles to get to the ice cream stand.

Absolute and relative extrusion work the same way. The following diagram illustrates the difference. With absolute extrusion, the actual distance for each segment/extrusion from the origin (E0.0) is rounded off in the underlying math - the red digits in the diagram. These rounding errors accumulate as the print progresses and reduce the accuracy of the extrusion.

With relative extrusion, the round-off error is reset with each segment so it does not accumulate.

In general, it is best practice to use relative extrusion over absolute extrusion to eliminate the accumulated round-off error. This is generally done in the pre-amble - or header - in your g-code file and is done by your slicer. The code for absolute extrusion mode is M82, the code for relative extrusion mode is M83. Most slicers simplify this with a simple menu or checkbox to specify extrusion mode.

So the answer to the question that started this post is to extrude relative!

Unfortunately, not all slicers support relative extrusion and to make matters worse, most firmwares set a default extrusion mode. If the slicer sends g-code to firmware that does not explicitly include either M82 o M83, all heck can break loose!

KISSlicer, Slic3r and Slic3r Prusa Edition, and Simplify3D all support relative extrusion. Cura, Matterslice and CraftWare DO NOT support relative extrusion.

UPDATE: rumor has it that Cura 3.0 has relative extrusion (finally). I have not validated this yet.

Here's where to set extrusion mode in the slicers that support it.

KISSlicer
 Slic3r

Simplify3D

Open one of your g-code files in a text editor and take a look at the top header section of the file and look for that M82 or M83 code.

One interesting caveat of absolute vs relative extrusion is that in order to retract, relative extrusion will ALWAYS specify a negative value. Absolute extrusion will specify a positive value that will simply be less than the previous position.

Absolute retractG1 E1042.439 F1500

Relative retract: G1 E-1.5 F1500

That's it for now, please subscribe to my blog and YouTube channel

Plan B

By SublimeLayers → Monday, September 11, 2017
I've been struggling thinking about how to encourage folks to support my work while simultaneously producing content that they'll find invaluable. My original plan (A) was to release a couple of public introductory teaser KISSlicer 1.6 tutorial videos and then keep additional tutorials private, only viewable to my patrons, until I reach 50 subscribers. I didn't like this idea as it takes away the very thing I want to provide to my followers and subscribers - great information on 3D printing! So I've devised a plan B that I think is much better...
Plan B
I'm going to make ALL of my KISSlicer 1.6 tutorial videos publicly available! And there are lots of them in the works. The list is up to 50 topics already and I'm going to try to release 2-3 tutorials a week. Everyone will benefit from this.

So, how am I going to encourage you, gentle reader/viewer, to support my work so I can continue to improve my production quality (you might notice that the audio quality in the tutorial I posted earlier today is much better than the pervious one) and continue to inspire me to create great content? Simple! I am going to start a Slicer Master Class series where I'll focus on advanced slicing techniques for challenging parts and to produce the most beautiful prints imaginable. And, I'll host live streaming events so supporters can ask questions about their slicing challenges.

I'll use KISSlicer 1.6 for the examples in the Slicer Master Class but the vast majority of these slicing techniques - techniques I've developed over five years of dedicated experimentation and work - apply to any slicer including Slic3r, Slic3r Prusa Edition, Cura, Matter Slice, Craftware, and Simplify3D. This content and live streaming events are targeted at more sophisticated users and will only be available to my Patreon supporters until I reach 100 members, then I'll release them publicly.

EDITED 9/15/2017
As discussed in the comment section, my goal here is to get a critical mass of supporters (at least 100) to help keep me motivated to produce great 3D Printing related content. I understand that some folks prefer one-time donations and I've always treated these as first-class supporters (because you/they are!). So, I've created a PayPal donate button that anyone can use to support my work. $10 or greater contributions through this button will also count towards my goal of 100 supporters.

If you'd like to support my work as a one-time donation, here's your chance:



Now you have two ways to hop on board, support my work and get access to great content that you won't find anywhere else.