Lately I've been having a lot of trouble with printing overhangs in TPU. The failures are very geometry/toolpath dependent, entirely reproducible in their location (same gcode gives same failures each time it's printed), and seem to occur where there is a convex (model-inward) curve over an overhang of more than 40° or so. My original test case for this was frog model with more severe overhang, but I since made a simplified conical overhang test piece at only 50° that's faster to reprint and shows the issue:
The frog print on the left is pretty much a complete failure. The one on the right is mostly a success, but shows some moderate flaws around one side (left, as viewed) and the front of the belly, and even slight flaws (hard to see in pic) around the other side of the belly. It was done using some of the mitigations described below.
The test piece on the left is nearly perfect. The other two show varying degrees of the overhang problem I'm experiencing, and make it easier to see what exactly is happening than with the frog. The extrusion seems to bunch up, then get stretched out too thin, in an oscillating pattern that builds up and shifts with each layer.
I've tried printing overhangs significantly slower and reducing speed and acceleration quite a bit on the outer walls and even on the inner walls too, and none of that seems to help. Nor does increasing the number of walls or the wall line thickness help. However a number of things do seem to help, and it takes two or more of these in combination to get a mostly acceptable result at 0.2 mm layer height:
- Increasing flow to a level where the extruded mass is the expected amount (this makes wall dimensions excess so I usually don't do it)
- Taking the infill up to 20% or higher and using an infill pattern where the infill meets the walls frequently (gyroid 20% or more seems best; I'm trying not to do this because I want to final objects to be more flexible in some cases)
- Increasing Klipper square corner velocity to 30+ so that the entire approximated curves are traversed at constant speed with no acceleration/deceleration
- Increasing Klipper PA smooth time window from 10ms to 40ms
Generally I'm able to choose some subset of the above that works, but it ends up being a matter of per-model trial-and-error, wasting lots of time and materials if the settings don't work, so I'd like to figure out what's really going on here so I can make predictions about what will work and ideally get a base configuration that "always" works. Also, I still don't have this working at thinner layer heights, which I'd like to be able to use for better detail, as TPU is flow-bound not motion-bound and I could in theory print much higher detail at the same speed with thinner layers.
My best guess at the root cause so far is that the overhanging walls simply do not have enough rigidity to avoid being displaced by the toolhead attempting to extrude against them, so any oscillation of the toolhead velocity or extrusion pressure causes them to deform in the pattern of the oscillation. Does this seem plausible, and if so, what might some other possible mitigations be?
For completeness, my printer is a heavily modified Ender 3 with (remote) direct drive extruder and fairly extreme cooling, but turning the cooling way down or even off (assuming sufficient layer time for passive cooling) does not seem to affect the behavior here significantly. So I think the question is mostly printer-agnostic and is really a matter of material behavior and slicing.