Prevent oozing after filament load

Retract 10mm of filament after loading
This commit is contained in:
sarusani 2023-12-06 19:42:27 +01:00
parent 3c64874e20
commit 1407f29362
15 changed files with 40 additions and 1 deletions

View File

@ -3544,6 +3544,9 @@ void gcode_M701(float fastLoadLength, uint8_t mmuSlotIndex){
if (!farm_mode && (eFilamentAction != FilamentAction::None)) { if (!farm_mode && (eFilamentAction != FilamentAction::None)) {
lcd_load_filament_color_check(); lcd_load_filament_color_check();
} }
retract_for_ooze_prevention(); // Retract a little of filament to prevent oozing
lcd_update_enable(true); lcd_update_enable(true);
lcd_update(2); lcd_update(2);
lcd_setstatuspgm(MSG_WELCOME); lcd_setstatuspgm(MSG_WELCOME);

View File

@ -5603,6 +5603,15 @@ static void lcd_sd_updir()
menu_data_reset(); //Forces reloading of cached variables. menu_data_reset(); //Forces reloading of cached variables.
} }
/// @brief retract a little of filament to prevent oozing
void retract_for_ooze_prevention() {
current_position[E_AXIS] += FILAMENTCHANGE_ROOZEFEED;
plan_buffer_line_curposXYZE(FILAMENTCHANGE_RFEED);
current_position[E_AXIS] += FILAMENTCHANGE_EOOZEFEED;
plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST);
st_synchronize();
}
// continue stopping the print from the main loop after lcd_print_stop() is called // continue stopping the print from the main loop after lcd_print_stop() is called
void lcd_print_stop_finish() void lcd_print_stop_finish()
{ {
@ -5617,8 +5626,10 @@ void lcd_print_stop_finish()
current_position[Y_AXIS] = Y_CANCEL_POS; current_position[Y_AXIS] = Y_CANCEL_POS;
plan_buffer_line_curposXYZE(manual_feedrate[0] / 60); plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
} }
st_synchronize();
// Retract a little of filament to prevent oozing
retract_for_ooze_prevention();
// did we come here from a thermal error? // did we come here from a thermal error?
if(get_temp_error()) { if(get_temp_error()) {
// time to stop the error beep // time to stop the error beep

View File

@ -253,5 +253,6 @@ extern void lcd_pinda_temp_compensation_toggle();
#endif //PINDA_TEMP_COMP #endif //PINDA_TEMP_COMP
extern void lcd_heat_bed_on_load_toggle(); extern void lcd_heat_bed_on_load_toggle();
extern void retract_for_ooze_prevention();
#endif //ULTRALCD_H #endif //ULTRALCD_H

View File

@ -232,6 +232,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -233,6 +233,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -232,6 +232,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -233,6 +233,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -366,6 +366,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -367,6 +367,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -369,6 +369,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -370,6 +370,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -371,6 +371,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -373,6 +373,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60 #define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -161,6 +161,8 @@ CHANGE FILAMENT SETTINGS
#define FILAMENTCHANGE_RFEED 400 #define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif

View File

@ -160,6 +160,8 @@ CHANGE FILAMENT SETTINGS
#define FILAMENTCHANGE_RFEED 400 #define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2 #define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15 #define FILAMENTCHANGE_ZFEED 15
#define FILAMENTCHANGE_ROOZEFEED -10 //E retract distance in mm for ooze prevention
#define FILAMENTCHANGE_EOOZEFEED 4 //E extrude distance in mm for ooze prevention
#endif #endif