-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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] Cold extrusion not working #22921
Comments
This sounds like exactly what I see that the override menu was added in the following pull request, but it isn't 100% clear to me whether it was actually effective. It looks like it would allow you to get into the movement menu, but I'm not sure that it would actually bypass the lower-level motion/planner checks. It is possible that it did when it was originally added, but has been broken in refactoring since then. |
It worked at one point, but I ran into this very issue while testing some new board/driver combos with the latest |
I can still reproduce this on current bugfix with my BTT002/TMC2209 & SKR 2/TMC2208 builds. With a cold hotend and
Here's OP's configs ported to the latest bugfix: Marlin Issue 22921.zip |
The point is that you were still given the option to bypass cold extrusion and move E, even when Otherwise, what is the point of giving users the option to bypass? This feature worked fine at one point, even with |
After clearing up the confusion on my part. I can confirm the issue. a partial solution. Might inspire someone while I sleep, --- a/Marlin/src/lcd/menu/menu_motion.cpp
+++ b/Marlin/src/lcd/menu/menu_motion.cpp
@@ -227,9 +227,11 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int
if (too_cold) {
ui.goto_screen([]{
MenuItem_confirm::select_screen(
- GET_TEXT(MSG_BUTTON_PROCEED), GET_TEXT(MSG_BACK),
- _goto_menu_move_distance_e, nullptr,
- GET_TEXT(MSG_HOTEND_TOO_COLD), (const char *)nullptr, PSTR("!")
+ GET_TEXT(MSG_BUTTON_PROCEED), GET_TEXT(MSG_BACK)
+ , [] { Temperature::allow_cold_extrude = true; _goto_menu_move_distance_e(); }
+ , nullptr
+ , GET_TEXT(MSG_HOTEND_TOO_COLD)
+ , (const char *)nullptr, PSTR("!")
);
});
return; This works, but allow_cold_extrude remains set This should reset when you exit the menu, I think It should re-prompt you every time you try and move E when cold. |
This PR should fix it. Closing |
Reopening since #24045 was broken right before it was merged. |
Closing since #24176 has been verified working here & merged. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Did you test the latest
bugfix-2.0.x
code?Yes, and the problem still exists.
Bug Description
I used the LCD screen to test all the axis on my Anycubic i3 Mega. After XYZ worked I wanted to test the extrusion stepper.
After confirming in the menu, that I want to proceed even though the hotend is not heated the motor is not moving at all when commanding it to move.
When disabling the
//#define PREVENT_COLD_EXTRUSION
flag it works as expected.Bug Timeline
No response
Expected behavior
After confirming that I want to proceed even with the cold hotend, I expect the stepper motor to rotate when sending some movement commands to it.
Actual behavior
No response
Steps to Reproduce
No response
Version of Marlin Firmware
Marlin bugfix-2.0.x (Oct 10 2021 17:15:20)
Printer model
Anycubic i3 Mega (dual z-axis)
Electronics
SKR v1.3, TMC2208 drivers
Add-ons
No response
Bed Leveling
No response
Your Slicer
No response
Host Software
No response
Additional information & file uploads
The log says
echo: cold extrusion prevented
when trying to move the stepper motor.Configuration
cold extrusion.zip
I set up the second z-axis for the E0 slot on the board and shifted the E0 config to the E1 pins on the board.
The text was updated successfully, but these errors were encountered: