-
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
PFW-1559 Add filament presence check at start of print #4727
Conversation
All values in bytes. Δ Delta to base
|
40193f2
to
d640764
Compare
The following videos demonstrate the changes more visually 😃 This video shows the default setting (Warning). I attempt to start a print with no filament loaded. This video shows the "Strict" setting. It will always cancel the print if filament is not loaded. |
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.
Tested on MK3 (PAT9125). Works really nicely!
673e856
to
fb770cb
Compare
Synced the PR with latest MK3 branch. Also got rid of the "fixup" commit to make the history a bit cleaner. (No code has been changed) |
fb770cb
to
bf62679
Compare
Please do not merge this yet. I want to remove the mmu2.h include in utils.cpp. To make unit testing easier to begin with. To check if the MMU is enabled, I think it is ok to read the EEPROM value. The printer check shouldnt care if the MMU is communicating or not, it only cares if it is enabled at all. |
Should be ready for review again |
e2e2f4e
to
b873b7e
Compare
A new menu setting is added to configure how strict the check should be. - None: No check is performed - Warning (default): The user is warned about missing and is prompted to continue with Yes/No. If No is selected, the print is aborted. If no user input is given (e.g. from host printing) then the warning will expire in 30 seconds and assume the Yes option was selected - Strict: If the filament is not detected when a print is started, it is immediately canceled. The check is currently performed on G-codes: M24 and M75. Starting a SD print and Host print respectively.
This saves ~100B of flash
Change in memory: Flash: -54 bytes SRAM: 0 bytes
Pull all checks needed into the function such that the caller only needs to check the return value Also added description for the filament_presence_check function
ac81ec7
to
f5fe658
Compare
Configuration->HW Setup->Checks showed `a` MSG_FILAMENT `Filament` can only be 8 chars long and only ES and IT had `Filemanto` as translation. But as ES the `o` in `Filamento` was overwritten by `[Estricto]` I removed the MSG_FILAMENT to be translated. Saves few bytes.
Used `trans -b :cs+de+es+fr+hr+hu+it+nl+no+pl+ro+sk+sv "<text>"` to translate Looked at pre-translated text to reuse as much as possible.
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.
Please check gudnimg#8
Thanks to @petrubecheru and @Hauzman
Thanks to @stelgenhof
Thanks to @AttilaSVK
Thanks to @ingbrzy @shatter136
- Croatian, Swedish and Norwegian are inactive since the last few translation review requests have not been done
Fix LCD output and add translations
Add filament presence check at start of print job. This PR aims to resolve issues where a user starts a print with no filament loaded. The idea is to use the M862 warning dialogs instead of relying on filament sensor runout. Relying on filament runout will require some fragile logic which may not be very reliable and risks adding new issues.
A new menu setting is added to configure how strict the check should be.
Yes
/No
. IfNo
is selected, the print is aborted. If no user input is given (e.g. from host printing) then the warning will expire in 30 seconds and the printer assumes theYes
option was selected.The check is currently performed on G-codes: M24 and M75. Starting a SD print and Host print respectively.