-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Bug fix: Check for air filtration support on the printer level before emitting air filtration gcode command #8681
Conversation
… air filtration gcode command
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice catch.
Thank you!
@igiannakas The machine settings "support_air_filtration" and "support_chamber_temp_control" are currently in development mode only and may be deprecated or removed in the future. They are there just for the sake of compatibility for now. With this behavioral change, we will cause unexpected changes for those who use these features in the their settings. I could make "support_air_filtration" in advanced mode, but that won't change the fact that we break user's existing profile after upgrading. Imagine users who turn on exhaust fan for PLA printing with his enclosed printer, their print will fail after this change and they won't have a clue. So, I'm going to revert this PR. If you still have any concerns and questions, please let me know! |
hm...The issue comes from having the air filtration in both the filament and the printer settings. For example, if using a shared library filament, the option to enable air filtration is attached to the filament, hence is issued as a command to the printer. However the printer doesnt say support air filtration. This means that it gets a M106 P3 command issued which in klipper gets interpreted as an M106 part cooling command -> hence turns on the part cooling by default. Hence why in this PR I made the printer profile take priority - if the user has disabled air filtration in the printer profile -> the filament setting is ignored. I think having both options kind off makes sense, as you can share filament profiles between printers and for any printer that supports air filtration, the exhaust fan is enabled. For any that doesnt, the exhaust fan is ignored. Or am I miss judging this? ie the air filtration option at the printer level is not populated by default in the printer profiles hence it would break user's experience during the transition until they enable the fan filtration option in the printer profile themselves? Thoughts? |
Oh I see... So they are def->mode=comDevelop; options only, so they won't be visible. Also we can't guarantee that they have been set in the profiles correctly. In which case, probably this PR needs to be rolled back but in this release, we should really enable this option as advanced and tool tip it to say - populate this ahead of the next release or something similar where this will be active. The need for this I think is still there as when sharing filaments across printers there needs to be a mechanism to override these settings on a per printer basis (I think at least)? |
That's right. Almost no printers are correctly set up, and they can't be set properly either. Because for DIY printers, this setup isn't required. While having the printer option makes sense on paper, I think it’s worth the hassle.
Like I mentioned before, changing this would disrupt all custom profiles that rely on the exhaust fan setting in their filament profiles. If this behavior is altered without prior notice (let’s be real, only a few users read all the change notes), many won’t realize they need to enable the printer option until they run into multiple failed prints and start troubleshooting—assuming they even know what to look for. |
My thought process is this: the default filament profiles in the Orca Filament Library shouldn’t enable such an optional fan. The specialized filament profiles for each printer are responsible for such options. |
Let’s revert it :) fyi klipper with automatically enable the part cooling fan if they don’t have a definition of the P part of the command. So may be worth having a look at the updated profiles just in case anything has changed? I couldn’t spot anything myself but it’s puzzling how that happened. Maybe also klipper stated defaulting this to enable the part cooling fan? Not sure :( |
Ah, good point! |
Sweet, thank you 🙏🏻👌🏻 |
Prevents spurious M106 P3 commands being sent if air filtration is enabled at the filament level but disabled at the printer level.
In klipper these enable the part cooling fan by default which is a no-no for ABS prints if the user has inadvertently used a filament profile from the shared library against a printer that doesnt support air filtration.
Tests
Enabled option in print profile - M106 P3 command issued
Disabled option in print profile - M106 P3 command not issued
In both cases air filtration was enabled in the filament profile.