-
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
🚧 filament runout: only allowed if E-axis is active #4325
Conversation
|
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.
This sounds like a good idea, but I have a few notes:
What about triggerFilamentInserted()? Do we change to e_active() also there? I'm not sure what such a change would have as a consequence. Do we want to allow filament autoloads when axes are moving, but E is idle?
Also, e_active() can be sped up by breaking out of the loop early when an E move is found in the first block.
#3885 will also need rebasing and rechecking after this is merged |
For this scenario I think it makes sense to not allow autoloading if the axis are moving. I don't see why a user would need to load while the motors are moving 🤔
I tried it and saw having two |
e_active() | ||
|| printJobOngoing() |
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.
Looking back at this... shouldn't this be e_active() && printJobOngoing()
? I don't know of any situation where we can recover from filament runout except when printing.
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.
Is first layer calibration a printJobOngoing()
?
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.
No it's only true if card.sdprinting = true
, which happens only when a gcode file is printing. Or when usb_timer.running()
is true
, which only happens if the user is sending commands via Serial
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.
More changes are coming and back to draft
We do this for FINDA runouts, so why not Fsensor as well? Change in memory: Flash: -6 bytes SRAM: 0 bytes
8678366
to
70a22d4
Compare
Rebased to sync with MK3 branch (123 commits) |
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.
I have mixed feelings about the e_active()
. Technically, it seems to be correct, but I don't see all the consequences.
This part has been a bit sketchy in the past...
Probably not going to finish this PR. |
Only allow filament runouts when the extruder motor is moving. We do this for FINDA runouts, so why not Fsensor as well?
I think this may improve situations like #4323
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes