Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Variable fan speed #6738

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

vovodroid
Copy link
Contributor

@vovodroid vovodroid commented Sep 12, 2024

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.

@SoftFever
Copy link
Owner

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: #804

@vovodroid
Copy link
Contributor Author

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.

@Azio-Pantheon
Copy link
Contributor

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

prusa3d/PrusaSlicer@a2cabdd 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

@vovodroid
Copy link
Contributor Author

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.

@Azio-Pantheon
Copy link
Contributor

Azio-Pantheon commented Sep 30, 2024

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

@vovodroid
Copy link
Contributor Author

Round fan speed to 10% to reduce speed changes.

image

@quantumfrost
Copy link

quantumfrost commented Oct 17, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants