-
-
Notifications
You must be signed in to change notification settings - Fork 19.6k
Hotend Protection - Prevent deep-fried filament clogs #16362
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
Hotend Protection - Prevent deep-fried filament clogs #16362
Conversation
This feature has been developed to prevent a nozzle being heated too much time without extrusion (usually as result of someone preheating and forgetting), Logic: it checks if extruder have not moved during FCP_TIMEOUT(minutes) and check if temperature is above FCP_MIN_TRIGGER(celsius), if both conditions are true, then set nozzle and bed to their respective FCP_NOZZLE_TARGET and FCP_BED_TARGET New files: \features\FCP.h \features\FCP.cpp Changed: \marlin.cpp (added the "call" for the funcion) \configurations.h (added the definitions line 2216 to 2230) and used my printer config to test.
|
@italocjs You should separate changes that are necessary for this feature from the rest of the changes that are specific for your printer. |
|
Thanks for your contribution! Unfortunately we can't accept PRs directed at release branches. We make patches to the bugfix branches and only later do we push them out as releases. Please redo this PR starting with the It may help to set your fork's default branch to See http://marlinfw.org/docs/development/getting_started_pull_requests.html for full instructions. |
|
The basic concept is sound, but the heuristic might be too simple and the behavior could be problematic when combined with other behaviors. For example, if the user does an intentional pause from the host, the temperature will not be returned to the previous state before continuing the job. Ideally, this should invoke a procedure like the current "pause" (or most of it) in which the screen is locked while the machine is in a temperature standby, and there is a prompt to re-heat and continue. |
|
Hi @thinkyhead , sorry for the delay. Thanks for the fixes in the code, sorry i submitted to the wrong branch, i tried following that guide but i'm not sure where i did wrong. Anyway, i agree with the pause situation, i'll try studying how the pause works and implement something to fix this. |
6a1a2d4 to
022b6b9
Compare
f94b384 to
bd550bb
Compare
|
Sorry, i'm quite new to github/programming, but was this merged into the bugfix? i cant find the feature there, if not, i noticed that the last message says something about conflicts, its because my config.h has my own configs? |
|
Another thing i forgot to mention, i have been printing since i developed this (and thinkyhead improved) without any issue, it has worked well and only detected when i truly forgot |
28c6bd2 to
ebd2bcc
Compare
|
Have you tried the existing |
|
Is the incorporation of the feature on the road map? It would provide an backstop to my forgetfulness. |
39fe6ef to
7aed32d
Compare
7b92348 to
37176ed
Compare
|
Renaming this to “Heater Timeout” or similar (like the OctoPrint plugin) might be a better name. It’d be a nice safety feature. |
5368f99 to
ee5a5dd
Compare
Description
This feature has been developed to prevent clogs and jams caused by filament carbonization, usually caused by a nozzle being heated for too much time without extrusion (usually as result of someone preheating and forgetting)
Logic:
It checks if extruder have not moved during FCP_TIMEOUT(in minutes) and check if temperature is above FCP_MIN_TRIGGER(celsius), if both conditions are met, then it will set the nozzle and bed to their respective FCP_NOZZLE_TARGET and FCP_BED_TARGET
New files:
\features\FCP.h
\features\FCP.cpp
Changed:
\marlin.cpp (added the "call" for the funcion)
\configurations.h (added the definitions line from 2216 to 2230) and used my printer config to test.
Benefits
Prevent user-caused clog and jams
Future improvements
1 - As said in the "best pratices" i did not managed to make use of the elapsed function (to compare time) duo overflows, so i wrote the time comparison code another way.
Related Issues
#16200