In my opinion, the cooling settings from the slicers are often ignored, most people are discussing the same settings over and over: layer height, extrusion diameter, print speed. But if you are searching for cooling, it’s hard to find anything.
That’s why I want to highlight this in this thread. What’s worth a high perimeter print speed, if your printer is unnecessary slowing down due to cooling limitations? This also affects another sometimes important topic: Layer bonding. If you are printing structural parts, you will find out it’s not the tensile strength that’s limiting your maximum load. It’s the bonding between the layer that will fail first. That’s also affected by cooling: Bonding will be increased, if the new printed lines have time to bond with the last layer.
In the default settings (also in the Lulzbot profiles), the fan is mostly at high power like “more is better”. True if you only want a nice looking part and you don’t want to think about your settings. But it can be done better
I’m using mostly PLA, but it should be basicaly true for all materials. So, how we can optimize this settings?
First, understand your slicers cooling logic!
I’m using Slic3r, so I will start with this one. There is a good description in the online manual, see here. In short terms:
.) If the layer time is below x seconds (max. layer time), the fan is running at minimum speed (can also be always on).
.) If the layer time is between x seconds and y seconds (min. layer time), the fan is running between min and max speed.
.) If layer time is lower than y seconds, fan is running at maximum and print speed will be reduced.
Cura is using another approach:
.) Fan is always on at min. speed
.) If layer time is below y (min. layer time), the print speed will be reduced. The fan is running between min speed (if layer time = y) and max speed (if print speed has to be reduced by more than 200% to keep above y).
Print and calibrate your settings
I will describe my approach for Slic3r, however it will work also for Cura in a simmilar way.
First, you need the test part with linear decreasing layer time for each new layer. This is perfectly true for a cone. A half cone is even better, because it’s more easy to measure the layer height where problems start to occur on the flat side of the part. You find one in the attachment, you may skip the first 10 to 15mm when printing as it’s very likely that nothing will happen befor this height.
Print the half cone with your usual print settings, but completely without cooling enabled. Be shure also slow down due to layer time is disabled. Stand by the printer to stop the print when it reaches a layer height where it starts to make problems, or you nozzle needs cleaning after the print
After removing it from the build plate, inspect the part carefully: At which height from the bottom are the first marks of overheating? Measure the distance and note the number. The layer time of this layer will be time where the fan needs to be running at min. speed, with some safety on top!
Slice the cone again with same settings, but this time with colling enabled. Be shure to enter values for min. and max. layer time and also min and max fan speed that allow for easy calculation. For example, min. fan speed = 50, max speed = 100 and min. layer time 1s and max time 20s.
Open the gcode file in a text editor and search for the layer height where you part starts overheating. For example, search for “G1 Z15” if first molten layers are at 15mm height. Now, search for the next M106 command that happens before this layer height. M106 sets the fan speed and is a value between 0 (off) and 255 (full speed). So if you find “M106 S210” that means the fan would run at 210/255=82% speed. With this knowledge, you can now calculate what’s your layer time where it starts to melt:
You know at 20s layer time, your fan runs at 50%.
You know, at 1s layer time, your fan runs at 100%
You are searching for the time where the fan runs at 82%. x=? Time to think about your first math lessons at school
In this example, we end up with: -19/50*82+39 = 7.8s. So 7.8s with some safety, say 5s, would be the value where the fan has to start with min fan speed. In reality, I got 15s for this, the values in this example where different because I don’t have the real ones in my mind!
Now we know the value for max layer time, but how to get min layer time?
Again, reslice the cone but keep the gcode from step two, we will need it again later. This time, the fan has to run always at 100%, so select propper values for that. Be shure it’s not slowing down your print speed, so stay with max. 1s for min. layer time!
Print and watch, measure height where it starts melting again.
With your measured height, search your needed layer height in the gcode from step to. For example “G1 Z30” for 30mm. Search for the M106 code again that happens before this layer change and calculate the layer time as shown in step two.
You finished, enter this value for your min layer time, don’t forget to add a few seconds for safety again!
I ended up with 15 seconds when the fan starts (I disabled “keep fan always on”) and 2s for min layer time when the fan is at 100% and Slic3r starts print slow down. For comparison, the default values are: Start fan when layer time is lower than 60s (now 15s) and full speed and slow down print when lower than 5s (now 2s).
Enjoy strong and fast printed parts
Cooling.stl (96.5 KB)