Search This Blog

Sunday, April 8, 2018

More under-extrusion troubleshooting

Well, the hot end repairs definitely helped, but not enough. So this under extrusion/blob thing is not all a thermal problem.

Update/summery: I couldn't fix the hardware problem...no idea what it is. I created some software band-aids that result in tolerable prints at higher (normal) speeds. These are presented near the bottom of this post.

I printed a new venturi, but the under extrusion at the start of every layer was present.


The rough look surface is due to the initial under extrusion at the start of every layer. It gradually builds up to the correct line width by the end of the pass, so the Z seam ends up being a ridge with the low side the start point and high side the end and Z-raise point. The initial settings were 0.2mm layer height, 0.5mm line width, 40 mm/s speed, 205C, align Z seam on, but I had to turn the speed down and temperature up in order to prevent gaps in the inner wall. Interestingly, the amount of under extrusion seems fairly random. Sometimes it's almost half a line with, sometimes only < 0.1mm.

In a previous post, I mentioned how I added a spring inside the spring in the extruder to give it more pressure. I later had to remove it because it was providing too much force. I just cut it down about 4 mm and added it back in. I then re-calibrated my esteps, which seem more consistent now. I printed a single perimeter 25 mm cube box.




It is stupidly hard to take pictures of small black objects with a cell phone camera...

The dimensions were basically dead on, so I think the extruder is well calibrated now. Floor and corners looked excellent, too, except for the corner with the Z-seam. The initial under extrusion was present, but didn't look particularly bad. There was a slight (+/-0.05mm?) variation in alignment (stacking) of layers, but I don't think I can solve that without making the printer significantly stiffer structurally. I then printed a 20 mm x 40 mm cylinder with 2 perimeters, 0.5 mm line width, 0.25 mm layer heights, z seam aligned, 40 mm/s (actually 20 mm/s because CURA's outer wall speed is half of "print" speed):


Beautiful layer alignment = great consistency. But the under extrusion at the start of every layer is still present. Since both perimeters' Z seam is aligned, the wall thickness on the seam side of the cylinder is 0.1 mm less than the opposite side, so the under extrusion is about -0.05 mm for this part. It's really obvious when looking at the cylinder end on. It looks like a perfect ring was cut (not in half, just one cut), then the edges glued back together but offset about 0.05 mm. See below picture.


Referencing the above picture, outside perimeter starts at the top and goes counter-clockwise around, and the inside perimeter starts at the top and goes clockwise around. Examining tangents, you can see that there isn't actually much of a bump...it's mostly just missing material at the start of the perimeters.

I reprinted the cylinder 30 mm tall with z-seam random. Everything else the same. The two pictures are of different sides of same cylinder.



If you zoom in, you can see a bump (the end point), then a gouge in every layer for the first few mm that then disappears. That gouge is the initial under-extrusion. It looks like I'm getting excellent consistency after the first few mm. That length varies from ~3 to 15 mm. It seems to be worse on the inside. Again, the bumps aren't as bad as they look...they're normal Z-seam bumps. But the under extrusion on one side of them makes the bumps look terrible.

I printed the exact same file again, but at 195C instead of 205C. They look identical. Same size bumps and the gouges were similar lengths on a per-layer basis...meaning the length of the gouge isn't random. Very odd. Maybe it has something to do with the length traveled prior to start of the perimeter?  Tried another at 185C. Also looked identical, but layer adhesion wasn't quite as good and there was some stringing on the inside. It's unclear why there was stringing. Typically that happens at higher temperature, but I seem to only see it at low temperatures now. I then printed one at 215 C. Comparing the 185 to 215 C...they look identical. Unless you try to pull layers apart, you can't tell one was printed 30 C colder than the other. I think this pretty definitively proves that this is not a thermal problem.

Tried extruding less with esteps and flow multiplier. Didn't seem to make a difference other than slightly smaller dimensions.

Tried running faster, which made the bumps and under extrusion worse as expected.

Tried turning on coasting and turning off wipe, but neither seemed to make a difference to the bumps.

Watched more closely, it looks like most of bump seems to form at start of layer. Not all at end like I previously thought. Retract before outer wall doesn't help, though.

I did a cold pull. Came out clean...perfect little 0.4mm diameter nub on the end. However, the part of the filament that was in the PTFE tube had melted and expanded to ~2mm (the PTFE tube ID), and in doing so had formed air/gas pockets in the filament. I'm not sure if this is normal or not. I've tried two different filaments, both fairly new, and both show this under extrusion problem. One of those didn't before the nozzle clog incident, so I don't think it's necessarily filament related.

The only things different before and after the nozzle clog: 1. different nozzle (same diameter and from same batch), 2. new PTFE tube (tried old PTFE tube, no difference), 3. extruder spring pressure. I've rebuilt the hot end with clean/new parts since then, and it didn't help much. So I have no idea what's causing this.

Removing inner spring from extruder made the problem worse.

I put the spring back and changed the nozzle to the one that I used before the clog (after unclogging and cleaning it well). The nozzle that I had been using looked fine. In fact, there wasn't any gunk on the threads, meaning I seated everything correctly this time. I installed the new (pre-clog) nozzle. Both nozzles' holes look round and unworn (they're basically new). Still under extruding at start of perimeters after a blob.

I did another test (20x30 mm cyl, 30mm/s walls) with retract at layer change enabled, and that helped the blob problem on the outer walls (since the layer change happens at the outer walls), though not really the under extrusion. This is not the same as retract before outer wall, which I'm pretty sure retracts before traversing to the outer wall. Anyways, the fact that it helped a little supports that the blobs are a pressure/oozing problem.

I tried the flow equalization option, but I think that's just for narrow walls because it didn't seem to do much.

I tried turning off combing, which retracts between direct moves to both inside and outside perimeters because it doesn't go around the part. This helped both inside and outside blobs significantly, and also might have slightly reduced under extrusion.

A finer angular resolution STL did not help or hurt.

These slicer settings seem to just be band-aids for an unknown hardware issue though. I am literally out of things to try other than replace the extruder or hot end completely.

But before I do that...

Physically, what must be happening to produce the observed bump and subsequent under extrusion? I already tried to reason this out in a previous post with a thermal argument, but the test results above show it's invariant with temperature, so it's probably not a thermal issue. It does the outer wall, then the inner wall, so the outer perimeter starts on a layer change. Z goes up rapidly, then it starts the extrusion with the first XY move. The blob oozes out during the Z axis move due to internal pressure or gravity, then it there is a filament deficit, i.e. pressure deficit, that is not compensated for and takes some time to overcome. It may also take time to build up pressure again in general, regardless of blob or no blob. It finishes the outer wall, traverses around (combing on) to the inner wall random start point with no extrusion, and then starts extruding again with the first XY move of the inner wall. Why it forms a blob without a Z move on the inner wall, I'm not sure, but it does.

I created a new model. A 50 mm square box with no floor or ceiling. Single 0.5 mm perimeter, 30 mm/s wall speed, z seam aligned on one corner, 205 C, no fancy retractions or settings except default wipe. I then manually modified the gcode for layers 3,4, and 5 to have a 0.5s, 1s, and 1.5s dwell (G4 PXXX) 1 cm from the corners of the 2nd, 3rd, and 4th edges (respectively) of the square of each layer. I kept split the extrusion length up accordingly, so it is not extruding more or less per edge than originally. This test should reveal whether the waiting dwell time is to blame for the blobs, and if the blobs are all of the plastic that is the cause of the under extrusion.

0.5s dwell

1s dwell

1.5s dwell
As you can see, the blobs are clear, as is the resulting under extrusion. The 0.5s dwell one looks very similar to all of the cylinder blobs. The 1 and 1.5s ones are much more extreme...larger blobs = more under extrusion. The 0.5s blob has bad under extrusion (can see part of the bottom/top of surrounding layers) for about 3mm after it, then noticeable (can distinguish from other layers) under extrusion until about 13 mm past it. The 1s blob has bad under extrusion for about 6mm after it, then noticeable under extrusion until about 15 mm past it. The 1.5s blob has bad under extrusion for about 9mm after it, then noticeable under extrusion until about 18 mm past it. I checked the wall width of the 1st edge (no dwell) with calipers, not including the first two layers, which were smooshed. Right after the corner (where z seam is), it's around 0.44mm, but then rises and levels out around 0.58 +/-0.2 mm around halfway down the edge. The regular corners aren't as extreme and are hardly causing any under extrusion, which makes sense because the dwell there is just caused by acceleration.

I printed another one with extrusion multiplier set to 0.78. The under extrusions bad and noticeable under extrusion lengths were longer, and the walls were proportionally thinner, as expected. One with extrusion multiplier of 0.86 fell in the middle of the two, as expected. So this phenomenon is obviously dependent on flow rate. The blobs get smaller with smaller extrusion multiplier, so 0.78 had smaller blobs that 0.86, which had smaller blobs than 1, but the size change was on the order of 0.05mm or so (small).

Conclusions: gravity and pressure cause oozing blobs whenever the nozzle is stationary, which then causes under extrusion because the nozzle is missing plastic. Longer dwells = larger blobs and more under extrusion. Larger and shorter dwells could be caused by longer and shorter travels, which would explain why with random z seam objects, the under extrusion distances changed every layer, but were consistent across multiple printed parts from the same gcode.

What's odd is that lower temperatures should result in less blobbing and oozing because the viscosity is higher, but I didn't find that was the case with the cylinder tests (185-215 C). I tried another one of these squares with the temperature set at 180 C. This resulted in poor layer adhesion and the extruder stepper starting to skip, but it did decrease the size of the blobs and under extrusion lengths slightly (~25-40% shorter). So there is some temperature dependence, but that's not the primary problem.

Perhaps the cooler isn't aimed at the filament extrusion point well enough? I tried repositioning the cooler, but it didn't seem to help.

Tried one with 0.1, 0.25, and 0.5s dwells. These under extrusions and blobs look much like the ones from the cylinders and are probably more realistic travel times. Then I added retractions (60mm/s, 2mm) to layer changes and to all dwells for the first 5 layers. The blobs and under extrusion are reduced significantly. I tried upping the retraction to 3mm, but that didn't help. Also tried upping speed to 80mm/s, didn't help. The blobs are about all about 0.8 mm, so about +0.15mm on either side. The under extrusion is visible, but not bad. Perhaps some sort of coasting would help, but manually modifying the gcode for that would be a huge pain. I figured out how to do a quasi-coast before the dwells easily: I extrude the original amount for the move before the dwell up to 0.8mm before the stop point of the move, then move the next 0.8mm with no extrusion, then stop and dwell. I don't think that's how the coast function works, but it might approximate it. This actually made the under extrusion after the blob worse and the blobs about the same. So I went back and combined the retraction before the dwell with the coast. This makes the retraction speed the same as the moving speed, but that might be ok. The de-rectraction is still 60 mm/s since that's done at a stop. That helped the bump size significantly. Interestingly, longer dwells resulted in smaller bumps, with the 0.5s one the same width as the line width. However, there is under extrusion before the bump now, with longer dwells resulting in more under extrusion before the bump. This is counter intuitive...longer dwells should have more ooze, not less. The gcode doesn't "know" the length of the dwell before it happens, unless it's somehow modifying acceleration due to it. The only way I can think of this being possible is if filament is actually flowing back into the nozzle, which doesn't make any sense. The under extrusion after the bump seems unchanged  I repeated this with 0.4mm coasts. The under extrusion pre blob is gone, but the blobs are now between the no coast and 0.8mm coast sizes. The same trend of smaller blobs for longer dwells is present. I repeated the 0.8mm coast one with the 0.5,1,1.5 s dwells. The trend is continued! The 1.5s blob is almost completely gone, but it's been replaced by bad under-extrusion before and slightly after the blob. So some coast helps, but too much is bad. Impossible to eliminate blob with coasting.

I tried the original short dwells one (no retractions or coasting), but at 50% speed (15 mm/s outer wall speed). As expected, running slower reduced the blob size and under extrusion lengths. Doing the retract (no coast) at 50% speed reduced all the blobs to about +0.07mm on either side of the wall and the visible under extrusion lengths to a few mm (no bad under extrusion). There could be a few reasons running slower helps: 1. less flow rate means less pressure, so less blobbing when slowing/stopping. 2. more time for pressure recovery, so less under extrusion.

Tried a negative prime of 0.1mm on de-retract with no coasting. I kept the original amount extruded over the edge the same. Theoretically, if the bump is happening before or during the dwell, this should make the under extrusion problem worse. But if the bump is happening after the dwell, it will make it better. 0.1mm made no discernible difference, so I tried 0.5mm. This might have reduced the blobs by 0.01mm, but that's within repeatability and measurement error. It did create long gaps in the layers after that, though, as a result of not being primed enough. Thus, the bumps are happening either before or during the dwells (or both).

I then tried one with a 1, 10, and 100 ms dwells, no retracts or coasting. These started at about +0.05mm and grew to about +0.3mm on either side of the wall. With no retract, blob diameter or area appears to have an increasing at a decreasing rate dependence on dwell time.

Conclusions: Part of the blob forms while decelerating to a stop. Part of the blob forms while stopped, with more stop time = more blob. Retraction helps with reducing blob formation during stop, and retraction during coasting helps with both before stop and stopped blob formation. However, completely eliminating the blob and post dwell under extrusion is impossible with software. Some of the low viscosity hot filament will leak out, and if you try to stop it all, you'll end up with under extrusion elsewhere. Perhaps some (between 0.4mm and 0.8mm) coast with a slight positive prime during de-retraction would be optimal, but it seems I can't completely get rid of the bumps.

I tried removing some of the insulation around the nozzle. I had insulation actually covering part of the cone of the nozzle up to the last 2mm or so. I removed it about 1mm above the start of the cone, so it still surrounds the hex part, but isn't on the cone. The idea is that if the nozzle tip can be cooled below the temperature where the PLA is too viscous to ooze out, then it won't ooze out, but still be extrude-able. And since the material is still hot inside the nozzle, once it starts flowing, it doesn't affect adhesion strength. I checked with a thermocouple multimeter, and the DiiiCooler + over powered fan I'm using manages to cool the outer surface of the nozzle to ~110C, while it's about 165C without the cooling (200C set point). However, material still oozes out. Even when I take the fan off the cooler and aim it directly at the nozzle, it still oozes. That's a pretty serious temperature gradient in such a small piece of metal... I must have improved the conductive heat transfer a lot, which may actually be a problem. Before the clog, I may have just gotten lucky and struck a perfect balance between too much and too little conduction and insulation, because it didn't ooze as much as it does now. The only thing that seems to stop the oozing is reducing the internal pressure by retracting the filament 1-2mm.

I did another test cylinder with the following settings in CURA: 205C, 30 mm/s walls, 0.25mm layer height, 0.5mm line width, random z seam, retraction 2mm at 60 mm/s, retract at layer change (only retracts right before a Z move), extra prime amount = 0.4^3=0.064 mm^3, combing off (so it retracts between inside and outside wall), retract before outer wall on (this retracts before the inside wall, which is an "outer" wall), coasting on, coasting volume 0.064. CURA's coasting doesn't retract while coasting, which worked the best for the square part with dwells, but CURA doesn't have that option. These settings resulted in the best cylinder yet, but it still has bumps. The extra prime amount helped reduce the under extrusion significantly. The biggest problem though is that this massively increases the number of retractions, which is generally regarded as bad in terms of reliability. I really need to fix the hardware problem.

I tried loosening the nozzle, tightening the stainless steel tube a quarter turn, then tightening the nozzle back. This resulted in a small gap between the hexagonal part of the nozzle and the heater block. Before, I had a fairly large gap between the heater block and the nozzle because the stainless steel tube was screwed all the way in (and the gunk in the threads). The theory is that I had too much heat conduction with the nozzle fully seated, this should reduce it, thereby increasing the temeprature gradient between heater block and nozzle tip, thereby reducing the temperature of the nozzle tip, and finally reducing ooze. Alas, no...blobs and under extrusion are still present. Tried screwing in the stainless steel tube about 1-2 turns, just before it bottoms out. Then tightening the nozzle back, re-assembling the hotend for the 20th time, releveling the bed, and printing another cylinder. Still shit. Seems like that wasn't the problem.

Tried switching out the PTFE tube again...no change.

There is literally nothing else in the hot end I can change. The lucky/magic pre-nozzle clog no ooze characteristic is gone. *sigh. When I switch out the nozzle next, I'll probably put the new PTFE tube back in and tighten the nozzle in closer to the heat block.

Final notes on software band-aids:

  • Most parts will require multiple tries. These suggestions are just starting points.
  • For my test the cylinders, retract before outer wall retracts before doing the inside wall, which is an "outer" wall because the cylinder model is hollow. If I had made a solid cylinder, 0% infill, and made the wall thickness big enough, it would create "inner" wall(s) on the inside.
    • for my cylinders, it retracts before the move to the inside, which helps the inside wall a lot. 
    • If the part has one outer perimeter (instead of two like my cylinder, such as a solid cylinder) and you only care about outside surface (usually true), then this will help better than combing off. If you care about the inside surface of a solid part (rare, it's usually full of infill), then this is not ideal.
    • Using this with combing off is redundant, so don't
  • Retract before layer change retracts just before a Z move, which is on the outside wall for my test cylinders. It then de-retracts immediately after the Z move. This helps with the outside wall bumps a lot, though they aren't completely eliminated, likely due to the time spent waiting at that point before and during retraction allowing material to ooze out. However, most of the bump is definitely formed during the Z move, so the retraction helps.  
    • If the part has Z moves on the outer wall, and don't care about inside, then this could be better than combing off
    • CURA defaults to Z moves on an inner wall. 
    • Using this with combing off is redundant, so don't
  • Combing off retracts before every travel, including Z.  
    • This helps both inside and outside walls significantly, but massively increases number of retractions, which is supposedly bad, though I haven't confirmed this.
    • It can also increase light stringing because now the nozzle travels over empty space instead of the part. 
  • Combing no skin only doesn't retract for infill (only combs in infill). It won't retract or de-retract over skins or walls, which means it adds little lead in and lead outs to the travel paths if you don't have infill. 
    • Only use this if have infill. Turning combing off is better with no infill areas
  • Extra prime amount adds a bit of filament to the end of a de-retraction. This is good for reducing the under extrusion after a bump
    • Started with nozzle size cubed, then adjusted from there
    • The amount depends on layer height and speed
    • Too much forms a second bump because it occurs during the de-retract
    • May depend on parts. Arcs seem to require less than straight edges.
  • Coasting helps reduce the bumps by reducing nozzle pressure by stopping extrusion some amount before the end of the previous wall. There is less pressure when the next wall is started, so less of a bump forms. 
    • Started with nozzle diameter cubed, then adjusted from there.
    • ~0.15 seemed to help
    • However, this does not help with under extrusion after a bump, and can make it worse. 
    • Best used coupled with retraction + extra prime
    • Can smear corners if too much
  • Best combinations tried (for cylinders):
    • 40 mm/s print speed (20 mm/s outer wall), 0.2mm layer height: combing off, extra prime 0.1, coasting 0.15. 
      • Under extrusion after bump gone, bumps are small (about +0.05mm). Hard to measure
    • 60 mm/s print speed (30 mm/s outer wall), 0.2mm layer height: combing off, extra prime 0.064, coasting 0.15,
      • Under extrusion after bump gone, bumps are small (about +0.05-0.1mm). Hard to measure
      • Inner wall will be bad at 60 mm/s. Turn down speed
    • 40 mm/s print speed (20 mm/s outer wall, 30 inner and top/bottom), 0.3mm layer height: combing off, extra prime: 0.13, coasting 0.18
      • Under extrusion after bump gone, bumps are small (about +0.05). Hard to measure
      • Extruder will occasionally skip if print at 40mm/s, 0.3mm layers, such as infill. Drop infill speed to 30-35, too.  
    • 60 mm/s print speed (30 mm/s outer wall), 0.1mm layer height: combing on or off, extra prime 0.04, coasting 0.08
      • Hard to see/find bumps and underextrusions
      • Could probably run faster
    • 40 mm/s print speed (20 mm/s outer wall), 0.1mm layer height, combing off, extra prime 0, coasting 0.06
      • bump is very small
      • Good for super precision parts
    • 100 mm/s print speed (50 mm/s outer wall), 0.1mm layer height, combing off, extra prime 0, coasting 0.18
      • faster = larger bumps
  • Other Notes
    • Aligning Z seam will help concentrate all the bad stuff in one area, which makes all the rest better. I suggest doing this. 
    • Can't really extrude more than that (30 mm/s, 0.2mm layer height) without large bumps.
    • Can't really extrude faster than 45 mm/s, 0.2mm layer height anything without very poor quality. Might be able to go slightly faster with lower heights, or slightly slower with higher heights. Can always go slower with lower heights (best quality).
      • Will need to adjust coasting and priming for every setting combination, though.
    • Straight edges and corners: may want to turn off coasting
      • Coasting into corners looks weird, but if you have a perimeter starting in the middle of an edge, coasting might help reduce blobs.
      • Generally want some prime if have coast to make up for coast
    • Thicker layers generally need less prime. Some straight flat faces might be better with half the above values or 0 extra prime. 
    • Hiding infill requires at least 2 perimeters, 3 are better. 3-4 is also best for strength.
I think to reduce blobs at high flow rates, you really need to use a larger nozzle. If you examine the equation for an orifice, assuming a constant flow rate, then deltaP is proportional to 1/area^2. So increasing the nozzle diameter from 0.4 to 0.5mm at a constant flow rate should result in 60% less internal pressure. There's a limit (discussed in a previous post) to the amount of material the MK10 can melt, but as long as you're under that, increasing the nozzle diameter should help reduce extrusion pressure, which should help reduce blobs.

That's all the ideas I have for now. I will keep updating this post

2 comments:

  1. So we figured it out I had the same problem has to do with the in fill the mini travel if you use line infill connect them and your problem is solved fill gaps between walls give the same problem

    ReplyDelete
  2. I solved a similar issue by turning of the Function that enables resuming print after power failure. G-Code for Marlin printers is M413 S0.

    ReplyDelete