OrcaSlicer icon indicating copy to clipboard operation
OrcaSlicer copied to clipboard

Variable fan speed

Open vovodroid opened this issue 1 year ago • 9 comments

This PR implements variable cooling fan speed interpolated between overhang threshold/speed and bridge speed.

Currently there is only single fan speed above threshold, in extreme case providing the same speed for all external surface:

image image

If some threshold is set the same speed will be applied to all overhangs and bridges: image

New new bridge speed parameter is introduced: image

Overhangs speed is used for threshold, and bridge speed for bridges (100% overhangs), with interpolation through the range.

image

20% for external wall with increase to 100% for bridges: image image

This PR has been written before commit deprecate overhang_speed_classic option and enable slowdown_for_curled_perimeters by default and contains support for "Classic" mode. If this mode is gone for sure the support could be removed.

vovodroid avatar Sep 12 '24 09:09 vovodroid

Have you noticed any improvement in the actual printing? I have my doubts that this approach will work. The fan needs some time to reach the new speed, and by the time it starts blowing air at the desired flow, the nozzle has already moved on. This makes the results highly unpredictable and negatively impacts print quality.

Furthermore, frequently changing the fan speed tends to cause issues with Klipper. OrcaSlicer even had to be specially optimized to generate fewer M106 commands to mitigate this problem: https://github.com/SoftFever/OrcaSlicer/issues/804

SoftFever avatar Sep 16 '24 14:09 SoftFever

Have you noticed any improvement in the actual printing?

Well, it's difficult to say. I implemented this because I want some cooling for curled overhangs, but not as for bridges, to get maximum layer adhesion and avoid wrapping. Results seems to be good.

The fan needs some time to reach the new speed,

I use "Fan speed-up" time option. Not perfect, but in general it works.

frequently changing the fan speed tends to cause issues with Klipper

We can either round fan speed to some reasonable value (e.g. 5%), or round (or put in already existing range 0-10-25-50-75-95) overhang degree.

vovodroid avatar Sep 16 '24 16:09 vovodroid

Furthermore, frequently changing the fan speed tends to cause issues with Klipper. OrcaSlicer even had to be specially optimized to generate fewer M106 commands to mitigate this problem: #804

https://github.com/prusa3d/PrusaSlicer/commit/a2cabdd74bf9c1ce886cf776e88b6848923fa619 PrusaSlicer pushed a fix for this in their release build last week. Do you mind porting it over, @vovodroid? I am happy to test this feature more in the coming month to collect more data

Azio-Pantheon avatar Sep 27 '24 23:09 Azio-Pantheon

Do you mind porting it over, @vovodroid?

I don't think so(((. There are a lot of changes and I don't use Klipper anyway.

vovodroid avatar Sep 28 '24 06:09 vovodroid

Do you mind porting it over, @vovodroid?

I don't think so(((. There are a lot of changes and I don't use Klipper anyway.

hahaha, no worries. I was hoping it would be easy.

Edit: I will give it a try anyway, thanks for implementing this

Azio-Pantheon avatar Sep 30 '24 18:09 Azio-Pantheon

Round fan speed to 10% to reduce speed changes.

image

vovodroid avatar Oct 04 '24 08:10 vovodroid

I think it's not always preferable to have max overhang speed == bridge speed. On my setup, steep overhangs print great with 100% fan. But on long bridges the fans blow so much air that the extrusion lines are blown away, resulting in worse bridges. So it would be great to those two settings decoupled so you could set a lower bridge fan speed.

quantumfrost avatar Oct 17 '24 12:10 quantumfrost

May I ask if @vovodroid will continue to resolve conflicts? I believe that minimizing speed variations while printing PETG can effectively improve print quality. Under normal circumstances, the fan size when printing PETG is around 15%, which is relatively low, but when there is overhang, the airflow should indeed be adjusted appropriately rather than the speed. Using Prusa's variable airflow to print PETG will yield better results than CuraSlicer's variable speed.

qff233 avatar Feb 18 '25 03:02 qff233

Sure, I saw new internal bridge fun and adapt this PR.

vovodroid avatar Feb 18 '25 07:02 vovodroid

May I ask if @vovodroid will continue to resolve conflicts? I believe that minimizing speed variations while printing PETG can effectively improve print quality. Under normal circumstances, the fan size when printing PETG is around 15%, which is relatively low, but when there is overhang, the airflow should indeed be adjusted appropriately rather than the speed. Using Prusa's variable airflow to print PETG will yield better results than CuraSlicer's variable speed.

I dont disagree with your point as indeed some materials benefit from faster bridging and overhangs.

But don't forget you'll always get speed variations. What you see on the slicer is not what you'll get in the printer. For example if you encounter a 90 degree corner, the printer will slow down to 5mm/sec and then speed up again.

So the printer must be tuned to be able to print well accounting for speed changes, as they are inevitable. Nailing pressure advance is the key thing there, plus possibly reducing PA smooth time to 0.02 instead of 0.04, to minimise deviation from ideal calculated extruder movements.

igiannakas avatar Mar 13 '25 09:03 igiannakas

Round fan speed to 10% to reduce speed changes.

Round to 5%, 10% could be too much for powerful fans.

vovodroid avatar Jun 24 '25 07:06 vovodroid

Now fixes #9988 [BUG] Wrong overhang cooling

vovodroid avatar Jul 22 '25 11:07 vovodroid

image

vovodroid avatar Jul 22 '25 11:07 vovodroid

When will this be merged?

quantumfrost avatar Aug 24 '25 14:08 quantumfrost