Search This Blog

Thursday, April 5, 2018

Back to poor prints...and thermal troubleshooting

Well, it seems my print quality has plummeted after the nozzle clog. Bummer.

The only physical thing different between now (bad prints) and before (good prints) is ash in the nozzle threads and slightly tighter fitting PTFE tube (tighter to nozzle hole, hole for filament is the same). The nozzles are identical. I just have a hard time believing that that could have this big of an affect.

venturi flow meter

Lots of sanding in my future
Notice how it looks smoother when the Z seam is aligned? What's happening is initial under extrusion at the start of every wall (perimeter), inner and outer. The inner wall under extrusion results in a gap about 10-20mm long on every layer, and the outer initial under extrusion causes the radius to gradual grow as the nozzle completes the circular movement. The final diameter is surprisingly consistent, but it's slightly under sized. There are also lots of zits on the side of one of the parts facing the other. I think these are where the nozzle passed during travel...not sure which direction, and the other part doesn't have any zits.

This is apparently a pretty common problem across many printers and slicers, but there are multiple possible causes.

Time for some test cases. 20mm diameter, 1.6mm (2 inside and outside walls) thick cylinders. 0.25mm layer height, 0.4mm wall thickness, 50 mm/s speed (cura makes outer wall speed half of that), no infill (solid perimeters). The inside walls are between the outside walls, which form the inner and outer diameter. 

Case 1:
225 C, retraction speed 50 mm/s, retraction distance 2mm, z-seam shortest (which ended up being aligned)

Analysis: You can see the gap caused by initial under extrusion. I managed to stop it at the beginning of an inner wall perimeter on the left, and you can see the blob-y inconsistent extrusion. No zits this time, not sure why. Maybe I'm retracting too much and not fast enough?

Case 2: 
225 C, retraction speed 70 mm/s, retraction distance 1mm, z-seam random (to better show under extrusion). 

Analysis: This case had zits on the left one. They are from the oozing material as the nozzle traverses the distance from the right one to the left. Every layer deposits a blob onto the stack. A new stack starts when a new (random) z seam location is picked. Oddly, there are less zits on the right one. Not really sure why. I think I need the 2mm retract distance. The retraction speed seems to have not mattered. Note: It only retracts when traversing between the two cylinders. The initial under extrusion is more apparent with the Z seam not aligned. It looks like some locations have worse under extrusion that others, which is really odd. Also odd: the inner wall starts at the same location on the left one and leaves an impression on the outer wall, but it starts at different locations on the right one.

Case 3: 
225 C, retraction speed 60 mm/s, retraction distance 2mm, z-seam random, retract before outer wall enabled.

Analysis: No more zits, so need 2mm retraction distance. Retract before outer wall did not help with initial under extrusion.
Case 4:
225 C, retraction speed 60 mm/s, retraction distance 2mm, z-seam random, retract before outer wall disabled, initial prime amount 0.15 mm^3

Analysis: I've never had to use initial prime amount before. It might have helped a little, but I don't think so.

Case 5:
225 C, retraction speed 60 mm/s, retraction distance 2mm, z-seam random, retract before outer wall enabled, initial prime amount off, speed 30 mm/s

Analysis: Going slower helps a lot. I watched carefully this time. There is initial under extrusion at the start of every perimeter, but at the end of the perimeter, there is a blob, which is what the bumps are. So maybe its losing some material at the end of the perimeters that should be used at the start of the next one? It looks there's more under extrusion than the blob could account for though. Reducing the temperature (215 form ~10-15mm, 205 ~15-24mm) reduced the blob, but increased the under extrusion. 230 from ~24mm. Blobs increased, but underextrusion went back down. Then upped speed to 45 mm/s at ~30mm. Faster definitely makes underextrusion worse. Back to 225C 30 mm/s for 35-40mm.

I don't really understand the physical mechanism behind why this happens. I don't see any oozing or strings to indicate material is leaking out of the nozzle between moves (travel or otherwise). The inside perimeters are being printed first, and there is not a retraction between inside and outside walls, but both the start of inside and outside walls show underextrusion. Thus, I don't think it's necessarily retraction related, though that might make it worse.

Maybe it's a thermal problem. Let's say the thermal conductivity is fairly low between the heat block and the nozzle due to, for example, ash in the threads. The aluminum heat block acts as a heat capacitor. The thermistor PID loop attempts to maintain the temperature of whatever is around the thermistor, in this case air (in the hole) and the heat block, via the heater core. The temperature gradient (magnitude, disregard sign) between the heater core and the thermistor is fairly constant because there is a fixed amount of non-moving aluminum between them. However, the temperature gradient between the nozzle and heater core is variable with the amount of nozzle cooling. The nozzle is cooled by two things: 1. cooling fan (roughly constant, want to minimize with insulation), 2. filament flow rate. As material flow rate increases, the nozzle is cooled more, which causes the temperature gradient between heater core and nozzle to be higher/steeper, particularly in the region of low thermal conductivity (the threads). However, the temperature gradient between the thermistor and heater core won't increase as much due to its location (in the block). Therefore, the PID temperature controller isn't really compensating for nozzle temperature, i.e. increased material flow rate. If the thermal conductivity between the heater block and nozzle is high (no ash), then the nozzle will be able to pull more heat from the block to maintain a more constant temperature. If heat is pulled from the block (lower temperature gradient between core and nozzle), then the thermistor will register that more and compensate. I went through this reasoning earlier to explain why I've been having to run at higher temperatures. Let's go back to assuming low thermal conductivity at the nozzle threads. If you make the aluminum block hotter, which is the temperature the thermistor reads with a time delay due to the thermal conductivity of the block and the air in the hole, then you'll make the nozzle hotter, too. The temperature gradient between core and nozzle will stay roughly the same, though, i.e. steep. Now lets say you increase the material flow rate (extrusion rate) from 0 to X. The thermistor PID loop will keep the aluminum block at roughly the same temperature (again, with a time delay), but the nozzle will cool, and the temperature gradient between the core and nozzle will get steeper. In order to maintain nozzle temperature, you have to increase the thermistor temperature set point. This explains why I've had to increase temperature as flow rates increase. So lets say your desired flow rate is pretty high, so you temperature set point is pretty high. You're printer is cruising along at the high flow rate. Everything is steady. Then the movement stops and the extruder stops in order to move to start new perimeter. The flow rate suddenly decreases to zero. This means the nozzle cooling is lower, which means the nozzle (and material) warms up to the point oozing is possible. This warming is caused by the temperature gradient between the core and nozzle suddenly getting lower (less steep). Remember, the thermistor isn't compensating nozzle temperature, but block temperature, and since the block's temperature doesn't increase much (due to short time span, conductivity time delay, and thermal insulation -ash- between the nozzle and block), the PID loop does not compensate by lowering heater core output. This causes a blob to form at the end of the perimeter as material leaks out of the nozzle. So that explains the blobs. It also explains why lower temperatures result in smaller blobs. Then the nozzle re-positions and begins a new perimeter. There is missing material in the nozzle due to the blob, so one would expect some initial under extrusion. However, I've been seeing more than can be accounted for by the blobs. My only guess is that the time it takes to build up pressure (for the extruder to reach full speed pushing filament) is too long. This would explain why the flow rate seems to gradually increase to a constant value and why running at higher speeds is worse. Thermally, what might be happening is the sudden onset of cool filament at the start of an extrusion rapidly cools the filament in the nozzle (and the nozzle), and it takes time to warm up due to the low thermal conductivity between block and nozzle. Running at lower set point temperatures would naturally make this worse. However, increasing the thermal conductivity (decreasing the temperature gradient between nozzle and heater core) would improve this, and would explain why I was having better prints before.

I have a new heater block and another new nozzle coming. I'm going to replace both when they get here and see if this problem goes away.

I examined some of the extruder settings more carefully. Looks like it's actually using dead time with default value instead of PID, which is fine. My temperature fluctuations are about +/- 2 C, which is ok.

Another thing to note: The extrusion "feed rate" is actually the speed of the nozzle, i.e. XY feed rate. Extrusion rate is slaved to the XY feed rate. This is why "G1 X100 Y0 Z0.4 E5.2245 F3000" doesn't push 3000 mm/min (50mm/s) of 1.75mm filament into the extruder. It makes X move at 50 mm/s and the extruder stepper rate is calculated based on volume flow rate. Source. There is a max feed rate (again, XY feed rate, to which extruder is slaved) that the MK10 hot ends can sustain of about 65 mm/s at 0.3mm layer heights, or about 8-9 mm^3/s. Above that, they can't heat the filament fast enough and you get under extrusion.

Case 6:
225 C, retraction speed 60 mm/s, retraction distance 2mm, z-seam random, retract before outer wall disabled, initial prime amount off, speed 45 mm/s, extruder firmware settings: acceleration increased from 900 to 2000 (default is 5000), start feedrate from 20 to 1 (not sure what that is).

Analysis: 225 C to about 5mm, 220 C after that. Bumps are still present. Under extrusion still present at 220C. Also turned the extruder start feedrate up to 30. Doesn't seem to do much, so maybe the acceleration is what helped. Tried turning that up to 3000. Didn't seem to do much either.

I think I'm stuck. I need to fix the thermal conductivity problem or this won't go away.

Case 6:
200 C, retraction speed 60 mm/s, retraction distance 2mm, z-seam random, retract before outer wall disabled, initial prime amount off, speed 15 mm/s (7.5 for outer walls)

Analysis: Testing my above thermal theory on the other speed end (already tested in on the fast end). If I run slower and cooler, it should reduce under extrusion and bumps respectively. Inner wall under extrusion has been reduced to a small hole about 0.5mm long. Outer wall under extrusion looks like it's just the first ~2-6mm. Bumps are basically non-existent. What looks like bumps is actually under-extrusion at the beginning of the perimeter. Good quality prints. Turned temperature up to 205 C at ~14.5mm. Tried going 30 mm/s and 215 C again, same under extrusion problem as before. Tried 20 mm/s and 215C. Looks decent.

So if I really need to print something before I fix the hot end, I can do it at ~15 mm/s and 200-205 C. 20 mm/s at ~215 C seems to work ok, too. Unfortunately, that doubles the print times for the same quality is what I was doing before.

If replacing the heater block and nozzle works, lesson learned: good thermal conductivity between nozzle and heater block is a must.

No comments:

Post a Comment