From 31481f81502e8fbed3c1f1820edb0dfb2c5e9494 Mon Sep 17 00:00:00 2001 From: Brian Kahl Date: Thu, 9 Dec 2021 08:25:13 -0600 Subject: [PATCH 1/2] Setting up different feed rates for extracting the plastic during filament change. --- Marlin/Configuration.h | 4 ++-- Marlin/Configuration_adv.h | 11 +++++++---- Marlin/src/feature/pause.cpp | 5 +++++ Marlin/src/inc/SanityCheck.h | 2 -- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 88bd11306..8e7738ff0 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -8,7 +8,7 @@ //#define LULZBOT_KangarooPaw_Experimental //#define TazDualZ - +//#define LULZBOT_FILAMENT_RUNOUT /************** Uncomment a Tool Head Option From Below *********************/ #define LULZBOT_UNIVERSAL_TOOLHEAD //#define TOOLHEAD_SL_SE_HE @@ -1970,7 +1970,7 @@ * RAMPS-based boards use SERVO3_PIN for the first runout sensor. * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. */ -#if ANY(TAZPro, TAZProXT, Sidekick_289, Sidekick_747) +#if ANY(TAZPro, TAZProXT, Sidekick_289, Sidekick_747,LULZBOT_FILAMENT_RUNOUT) #define FILAMENT_RUNOUT_SENSOR #endif #if ENABLED(FILAMENT_RUNOUT_SENSOR) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 9c9e9e75c..5984425ce 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2451,9 +2451,9 @@ #define PAUSE_PARK_RETRACT_FEEDRATE 10 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 5 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 2 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_UNLOAD_LENGTH 70 // (mm) The length of filament for a complete unload. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 50 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. @@ -2477,8 +2477,11 @@ // Filament Unload does a Retract, Delay, and Purge first: #define FILAMENT_UNLOAD_PURGE_RETRACT 5 // (mm) Unload initial retract length. #define FILAMENT_UNLOAD_PURGE_DELAY 1500 // (ms) Delay for the filament to cool after retract. - #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. - #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload + #define FILAMENT_UNLOAD_PURGE_LENGTH 12 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_PURGE_FEEDRATE 20 // (mm/s) feedrate to purge before unload + #define FILAMENT_UNLOAD_FAST_LENGTH 15 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_FAST_FEEDRATE 25 // (mm/s) feedrate to purge before unload + #define FILAMENT_UNLOAD_DELAY 2000 // (ms) Delay for the filament to cool after retract. #define PAUSE_PARK_NOZZLE_TIMEOUT 180 // (seconds) Time limit before the nozzle is turned off for safety. #define FILAMENT_CHANGE_ALERT_BEEPS 2 // Number of alert beeps to play when a response is needed. diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 2bd303380..3f35e9422 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -344,6 +344,11 @@ bool unload_filament(const_float_t unload_length, const bool show_lcd/*=false*/, unscaled_e_move(unload_length * mix_multiplier, (FILAMENT_CHANGE_UNLOAD_FEEDRATE) * mix_multiplier); + safe_delay(FILAMENT_UNLOAD_DELAY); // pausing to allow filament to stiffen up + + unscaled_e_move((-FILAMENT_UNLOAD_FAST_LENGTH) * mix_multiplier, // Doing a fast unload to keep filament from deforming by hobbed gear + (FILAMENT_UNLOAD_FAST_FEEDRATE) * mix_multiplier); + #if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0 planner.settings.retract_acceleration = saved_acceleration; #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 47914c246..e9ba8f2fd 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -488,8 +488,6 @@ #error "PS_DEFAULT_OFF is now PSU_DEFAULT_OFF." #elif defined(FILAMENT_UNLOAD_RETRACT_LENGTH) #error "FILAMENT_UNLOAD_RETRACT_LENGTH is now FILAMENT_UNLOAD_PURGE_RETRACT." -#elif defined(FILAMENT_UNLOAD_DELAY) - #error "FILAMENT_UNLOAD_DELAY is now FILAMENT_UNLOAD_PURGE_DELAY." #elif defined(HOME_USING_SPREADCYCLE) #error "HOME_USING_SPREADCYCLE is now obsolete. Please remove it." #elif defined(DGUS_LCD) From d661d6858dc70963255104af843fc7cfae4b0c1b Mon Sep 17 00:00:00 2001 From: Brian Kahl Date: Tue, 14 Dec 2021 15:33:54 -0600 Subject: [PATCH 2/2] creating new variable name rather than using an old name --- Marlin/Configuration_adv.h | 2 +- Marlin/src/feature/pause.cpp | 2 +- Marlin/src/inc/SanityCheck.h | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 5984425ce..5ece72fa6 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2481,7 +2481,7 @@ #define FILAMENT_UNLOAD_PURGE_FEEDRATE 20 // (mm/s) feedrate to purge before unload #define FILAMENT_UNLOAD_FAST_LENGTH 15 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_FAST_FEEDRATE 25 // (mm/s) feedrate to purge before unload - #define FILAMENT_UNLOAD_DELAY 2000 // (ms) Delay for the filament to cool after retract. + #define LULZBOT_FILAMENT_UNLOAD_DELAY 2000 // (ms) Delay for the filament to cool after retract. #define PAUSE_PARK_NOZZLE_TIMEOUT 180 // (seconds) Time limit before the nozzle is turned off for safety. #define FILAMENT_CHANGE_ALERT_BEEPS 2 // Number of alert beeps to play when a response is needed. diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 3f35e9422..27826c71a 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -344,7 +344,7 @@ bool unload_filament(const_float_t unload_length, const bool show_lcd/*=false*/, unscaled_e_move(unload_length * mix_multiplier, (FILAMENT_CHANGE_UNLOAD_FEEDRATE) * mix_multiplier); - safe_delay(FILAMENT_UNLOAD_DELAY); // pausing to allow filament to stiffen up + safe_delay(LULZBOT_FILAMENT_UNLOAD_DELAY); // pausing to allow filament to stiffen up unscaled_e_move((-FILAMENT_UNLOAD_FAST_LENGTH) * mix_multiplier, // Doing a fast unload to keep filament from deforming by hobbed gear (FILAMENT_UNLOAD_FAST_FEEDRATE) * mix_multiplier); diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index e9ba8f2fd..47914c246 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -488,6 +488,8 @@ #error "PS_DEFAULT_OFF is now PSU_DEFAULT_OFF." #elif defined(FILAMENT_UNLOAD_RETRACT_LENGTH) #error "FILAMENT_UNLOAD_RETRACT_LENGTH is now FILAMENT_UNLOAD_PURGE_RETRACT." +#elif defined(FILAMENT_UNLOAD_DELAY) + #error "FILAMENT_UNLOAD_DELAY is now FILAMENT_UNLOAD_PURGE_DELAY." #elif defined(HOME_USING_SPREADCYCLE) #error "HOME_USING_SPREADCYCLE is now obsolete. Please remove it." #elif defined(DGUS_LCD)