-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Add independent setting for external perimeter fan speed #2921
base: master
Are you sure you want to change the base?
Conversation
I've been running with this patch for several weeks now and am very happy with it. I don't have equipment to properly compare the strength of the resulting parts against those produced without the patch. However, anecdotally I'm now able to print at lower temperatures while getting robust parts with very good surface finish (particularly for top layers). This has been especially useful for structural PETG parts, because I can now enable the fan for only external perimeters, bridges, and overhangs. Whereas previously I would strengthen parts by making the tradeoff of either reducing the cooling (worsening the surface finish) or cranking up the nozzle temperature (worsening overhangs and bridges). If you want to try this patch on Windows, here's a build compiled from my fork. I would certainly recommend you build from source rather than downloading and running random executables, but I appreciate that building isn't an option for everyone. |
@jschuh Tested. It works. But i think better to use it only on overhang perimeters instead all external. What do you think? |
It sounds like what you're asking for can already be achieved by enabling "Detect bridging perimeters" under "Layers and perimeters". I know that I specifically wanted to control the fan speed for all external perimeters. My typical config is: very low or zero fan for infill and internal perimeters, medium fan speed for normal external perimeters, and the highest fan speed for bridges and overhangs (so I enable "Detect bridging perimeters"). |
Thanks. True! Found it. |
@enricoturri1966 could you look into merging this? I think I added the feature in the safest way possible (i.e. clean merge, minimal changes, and doesn't take effect unless the new filament setting is added). I'm happy to make any other necessary changes, but I'd really appreciate getting it landed since I've found this feature essential for printing structural parts. And sorry if you're the wrong person to ask, but I figured I'd give it a shot since you merged my last PR. |
@jschuh, I'm interested in your PR. I'm trying to find ways to improve corner overhang that curls up. The main issue is that too much cooling stress the corners and the resulting shrink makes them curl up. Do you think your PR address that issue? |
@rongith, I don't have any idea if this would address your issue. It might, since this patch allows me to print at lower temperatures with significantly reduced cooling. So, perhaps that would give you a lower temperature differential with the surrounding air, and thus reduce the curling affect. However, I assume there are a lot of other contributing factors (material, base temperature, ambient room temperature, etc.), and to be honest I haven't had the time to experiment with this patch in the last several months anyway. |
b5d0b39
to
286adc1
Compare
286adc1
to
7133616
Compare
@bubnikv any interest in pulling this in? I realize the PR is well over a year old at this point, but there's no conflicts since I've been maintaining it for a custom build I run locally. FWIW Superslicer has added an equivalent feature in the interim, so it seems like other people find it useful. |
Most likely not in this version. We have to evaluate its usefulness first. |
Totally fair. I just figured I should ask since I realized that it's been sitting here long enough that the assumption might be it was bitrotted. Also, If it's evaluated and considered useful but changes are needed in the implementation/approach, I would be happy to make those. |
thanks |
@bubnikv, figured I'd follow up to see if someone will be able to evaluate the usefulness of this change. Like I mentioned before, I'm happy to alter the implementation/approach if that would help. |
This is an extremely useful feature. It allows for fine detail whilst retaining the strength. Here's an example of 3 benchies, printed in ABS with 230°C in a build chamber. Print speed was 40mm/s max. From left to right:
Note: Newer Marlin Firmware can equalize the fan speed to the usable PWM range of a fan - 1% fan in the slicer equals to 20% PWM duty cycle. |
Out of curiosity I separated the chute of each benchy using pliers. It is noteworthy that ABS turns white if bent and in this case it shows us how effective the perimeter fan is compared to no fan or a permanent fan. Again, left is without any fan, middle is with 1% permanent fan, right is 1% perimeter only fan. The middle chute took very little effort, the right one took a bit more force and the left one took quite some force. It is also interesting to see that there is a small perimeter gap with the perimeter fan (rightmost chute), yet this part is much stronger than the permanent 1% fan one where the perimeters touch each other. |
Thanks @Drachenkaetzchen, your testing matches what I've found anecdotally when printing with PETG and PC blends (I rarely print with ABS, so I don't have enough experience to say on that). I get a good surface finish and comparable part strength to no-fan by enabling the fan for only external perimeters and bridges/overhangs (after dialing in the exact cooling parameters for those flows). |
@bubnikv, I see the version was recently switched to alpha. Any chance of someone taking a look at this in time for the next release? I'm happy to help, and make any changes or do any cleanup that might be needed. If you have specific prints or demonstrations you'd like to see of usefulness, I have a stock MK3S that I can test with. |
4cb6f93
to
6e33915
Compare
I assume it's too late to target the current alpha, so I squashed and rebased the patch to make it easier to maintain my local build. |
Thanks, that is an interesting point about the consistent surface finish. Please, show your results if you do some testing. |
390530b
to
354eaf7
Compare
I just did a quick and dirty integration with I'll try to run off some prints today or tomorrow that demonstrate the surface finish issues I mentioned. |
354eaf7
to
90cd1f8
Compare
How did tests went? I am very much interested in this feature. |
There's a difference in the surface finish; basically some portions of the print come out a bit more glossy versus having more of a sheen. But it's subtle enough that it just wasn't very noticeable when I tried to photograph it (at least for the filament I tried). So, I didn't bother uploading pics. I have kept the PR updated, because it's what I run in my own build (see the last setting in the pic below for an example of how I use it). The PR also fades in the dynamic fan speed (including the external perimeter fan), because otherwise you get a really stark change in surface finish at the layer that it kicks in. |
8d544ea
to
d8df128
Compare
d8df128
to
7f87838
Compare
I moved the dynamic fan speed fading into #13988 (although it's arguably necessary for this patch). |
Adds a new setting and plumbs through the UI to independently control the fan speed for external perimeters. Higher fan speed on external perimeters improves surface finish and overhangs, while lower fan speeds for internal perimeters and infill improves layer adhesion. Filed as issues #2776 and #154.