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)) {
lcd_load_filament_color_check();
}
retract_for_ooze_prevention(); // Retract a little of filament to prevent oozing
lcd_update_enable(true);
lcd_update(2);
lcd_setstatuspgm(MSG_WELCOME);

View File

@ -5603,6 +5603,15 @@ static void lcd_sd_updir()
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
void lcd_print_stop_finish()
{
@ -5617,8 +5626,10 @@ void lcd_print_stop_finish()
current_position[Y_AXIS] = Y_CANCEL_POS;
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?
if(get_temp_error()) {
// time to stop the error beep

View File

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

View File

@ -232,6 +232,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -233,6 +233,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -232,6 +232,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -233,6 +233,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -366,6 +366,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -367,6 +367,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -369,6 +369,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -370,6 +370,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -371,6 +371,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -373,6 +373,8 @@
#define FILAMENTCHANGE_RFEED 7000 / 60
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -161,6 +161,8 @@ CHANGE FILAMENT SETTINGS
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#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

View File

@ -160,6 +160,8 @@ CHANGE FILAMENT SETTINGS
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#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