From 1407f29362532a2c8586244a6be2481e6b4dd7e7 Mon Sep 17 00:00:00 2001 From: sarusani <62053849+sarusani@users.noreply.github.com> Date: Wed, 6 Dec 2023 19:42:27 +0100 Subject: [PATCH] Prevent oozing after filament load Retract 10mm of filament after loading --- Firmware/Marlin_main.cpp | 3 +++ Firmware/ultralcd.cpp | 13 ++++++++++++- Firmware/ultralcd.h | 1 + Firmware/variants/MK25-RAMBo10a.h | 2 ++ Firmware/variants/MK25-RAMBo13a.h | 2 ++ Firmware/variants/MK25S-RAMBo10a.h | 2 ++ Firmware/variants/MK25S-RAMBo13a.h | 2 ++ Firmware/variants/MK3-E3DREVO.h | 2 ++ Firmware/variants/MK3-E3DREVO_HF_60W.h | 2 ++ Firmware/variants/MK3.h | 2 ++ Firmware/variants/MK3S-E3DREVO.h | 2 ++ Firmware/variants/MK3S-E3DREVO_HF_60W.h | 2 ++ Firmware/variants/MK3S.h | 2 ++ .../obsolete/1_75mm_MK2-RAMBo10a-E3Dv6full.h | 2 ++ .../obsolete/1_75mm_MK2-RAMBo13a-E3Dv6full.h | 2 ++ 15 files changed, 40 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6317852df..892f337d7 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -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); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f042dca01..61b691ec2 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -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 diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 2ff77e2cb..dcae0a2c5 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -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 diff --git a/Firmware/variants/MK25-RAMBo10a.h b/Firmware/variants/MK25-RAMBo10a.h index 7ff78d2d4..bc2c6d719 100644 --- a/Firmware/variants/MK25-RAMBo10a.h +++ b/Firmware/variants/MK25-RAMBo10a.h @@ -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 diff --git a/Firmware/variants/MK25-RAMBo13a.h b/Firmware/variants/MK25-RAMBo13a.h index c0ef8b558..313619ff5 100644 --- a/Firmware/variants/MK25-RAMBo13a.h +++ b/Firmware/variants/MK25-RAMBo13a.h @@ -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 diff --git a/Firmware/variants/MK25S-RAMBo10a.h b/Firmware/variants/MK25S-RAMBo10a.h index 293930f7b..1b1ed7311 100644 --- a/Firmware/variants/MK25S-RAMBo10a.h +++ b/Firmware/variants/MK25S-RAMBo10a.h @@ -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 diff --git a/Firmware/variants/MK25S-RAMBo13a.h b/Firmware/variants/MK25S-RAMBo13a.h index 705a5d1dc..202910828 100644 --- a/Firmware/variants/MK25S-RAMBo13a.h +++ b/Firmware/variants/MK25S-RAMBo13a.h @@ -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 diff --git a/Firmware/variants/MK3-E3DREVO.h b/Firmware/variants/MK3-E3DREVO.h index 6c1cdee78..4f6686fe5 100644 --- a/Firmware/variants/MK3-E3DREVO.h +++ b/Firmware/variants/MK3-E3DREVO.h @@ -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 diff --git a/Firmware/variants/MK3-E3DREVO_HF_60W.h b/Firmware/variants/MK3-E3DREVO_HF_60W.h index c8fbf6886..1150728be 100644 --- a/Firmware/variants/MK3-E3DREVO_HF_60W.h +++ b/Firmware/variants/MK3-E3DREVO_HF_60W.h @@ -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 diff --git a/Firmware/variants/MK3.h b/Firmware/variants/MK3.h index 6f91daaad..2ad822208 100644 --- a/Firmware/variants/MK3.h +++ b/Firmware/variants/MK3.h @@ -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 diff --git a/Firmware/variants/MK3S-E3DREVO.h b/Firmware/variants/MK3S-E3DREVO.h index 4b6f5112c..633f4a2b1 100644 --- a/Firmware/variants/MK3S-E3DREVO.h +++ b/Firmware/variants/MK3S-E3DREVO.h @@ -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 diff --git a/Firmware/variants/MK3S-E3DREVO_HF_60W.h b/Firmware/variants/MK3S-E3DREVO_HF_60W.h index 23aa69f90..de14e2815 100644 --- a/Firmware/variants/MK3S-E3DREVO_HF_60W.h +++ b/Firmware/variants/MK3S-E3DREVO_HF_60W.h @@ -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 diff --git a/Firmware/variants/MK3S.h b/Firmware/variants/MK3S.h index 43fef35f7..a0dc63366 100644 --- a/Firmware/variants/MK3S.h +++ b/Firmware/variants/MK3S.h @@ -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 diff --git a/Firmware/variants/obsolete/1_75mm_MK2-RAMBo10a-E3Dv6full.h b/Firmware/variants/obsolete/1_75mm_MK2-RAMBo10a-E3Dv6full.h index 52129c065..78a558a89 100644 --- a/Firmware/variants/obsolete/1_75mm_MK2-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/obsolete/1_75mm_MK2-RAMBo10a-E3Dv6full.h @@ -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 diff --git a/Firmware/variants/obsolete/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/obsolete/1_75mm_MK2-RAMBo13a-E3Dv6full.h index efc1c48dd..212d01f73 100644 --- a/Firmware/variants/obsolete/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/obsolete/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -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