diff --git a/.travis.yml b/.travis.yml index fc51921a0e..4cb03f69ed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -122,7 +122,7 @@ script: - opt_enable ULTIMAKERCONTROLLER SDSUPPORT - opt_enable PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE PCA9632 USE_XMAX_PLUG - opt_enable_adv BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS - - opt_enable_adv ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE LCD_INFO_MENU M114_DETAIL + - opt_enable_adv ADVANCED_PAUSE_FEATURE FILAMENT_LOAD_UNLOAD_GCODES PARK_HEAD_ON_PAUSE LCD_INFO_MENU M114_DETAIL - opt_set_adv PWM_MOTOR_CURRENT {1300,1300,1250} - opt_set_adv I2C_SLAVE_ADDRESS 63 - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM} diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 764d757444..8cc0eb4b33 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp index a12cbdb25b..b801281dd6 100644 --- a/Marlin/src/Marlin.cpp +++ b/Marlin/src/Marlin.cpp @@ -191,10 +191,6 @@ volatile bool wait_for_heatup = true; millis_t max_inactive_time = 0, stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL; -#if ENABLED(ADVANCED_PAUSE_FEATURE) - AdvancedPauseMenuResponse advanced_pause_menu_response; -#endif - #ifdef CHDK millis_t chdkHigh = 0; bool chdkActive = false; @@ -308,6 +304,16 @@ void disable_e_steppers() { disable_E4(); } +void disable_e_stepper(const uint8_t e) { + switch (e) { + case 0: disable_E0(); break; + case 1: disable_E1(); break; + case 2: disable_E2(); break; + case 3: disable_E3(); break; + case 4: disable_E4(); break; + } +} + void disable_all_steppers() { disable_X(); disable_Y(); diff --git a/Marlin/src/Marlin.h b/Marlin/src/Marlin.h index a1b6741b95..3f1ad93576 100644 --- a/Marlin/src/Marlin.h +++ b/Marlin/src/Marlin.h @@ -159,6 +159,7 @@ void manage_inactivity(bool ignore_stepper_queue = false); #define _AXIS(AXIS) AXIS ##_AXIS void enable_all_steppers(); +void disable_e_stepper(const uint8_t e); void disable_e_steppers(); void disable_all_steppers(); @@ -198,15 +199,6 @@ extern millis_t max_inactive_time, stepper_inactive_time; #endif #endif -#if ENABLED(ADVANCED_PAUSE_FEATURE) - enum AdvancedPauseMenuResponse { - ADVANCED_PAUSE_RESPONSE_WAIT_FOR, - ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE, - ADVANCED_PAUSE_RESPONSE_RESUME_PRINT - }; - extern AdvancedPauseMenuResponse advanced_pause_menu_response; -#endif - #if ENABLED(PID_EXTRUSION_SCALING) extern int lpq_len; #endif diff --git a/Marlin/src/config/default/Configuration_adv.h b/Marlin/src/config/default/Configuration_adv.h index 764d757444..8cc0eb4b33 100644 --- a/Marlin/src/config/default/Configuration_adv.h +++ b/Marlin/src/config/default/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h index 105af2e6a3..c5a67c631b 100644 --- a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h +++ b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Anet/A6/Configuration_adv.h b/Marlin/src/config/examples/Anet/A6/Configuration_adv.h index ecd077f91f..f0ddf90ee9 100644 --- a/Marlin/src/config/examples/Anet/A6/Configuration_adv.h +++ b/Marlin/src/config/examples/Anet/A6/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Anet/A8/Configuration_adv.h b/Marlin/src/config/examples/Anet/A8/Configuration_adv.h index e2ba07cfbe..1838306ddd 100644 --- a/Marlin/src/config/examples/Anet/A8/Configuration_adv.h +++ b/Marlin/src/config/examples/Anet/A8/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h b/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h index fd9fc98d6a..cd8f881623 100644 --- a/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h +++ b/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h @@ -882,29 +882,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h b/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h index b43e859d1e..60a4898bfa 100644 --- a/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h +++ b/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h index 0d72b1f111..dcd4a6c185 100644 --- a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h +++ b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h b/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h index b43e859d1e..60a4898bfa 100644 --- a/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h +++ b/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Cartesio/Configuration_adv.h b/Marlin/src/config/examples/Cartesio/Configuration_adv.h index 0a1744c73b..8db2403c57 100644 --- a/Marlin/src/config/examples/Cartesio/Configuration_adv.h +++ b/Marlin/src/config/examples/Cartesio/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 1 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - //#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_LENGTH 1 // (mm) Initial retract. + // This short retract is done immediately, before parking the nozzle. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + //#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h b/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h index 4ce49210ea..a5f35d1094 100644 --- a/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h +++ b/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h @@ -881,29 +881,38 @@ */ #define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 4 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 420 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 8 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 120 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 3 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - #define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract. + // This short retract is done immediately, before parking the nozzle. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 420 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 8 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 120 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 6 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. #define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Felix/Configuration_adv.h b/Marlin/src/config/examples/Felix/Configuration_adv.h index 160680b7f4..e934e694e0 100644 --- a/Marlin/src/config/examples/Felix/Configuration_adv.h +++ b/Marlin/src/config/examples/Felix/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h index ff22a2c12c..b368ecd8ba 100644 --- a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h +++ b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h @@ -881,29 +881,38 @@ */ #define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - #define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h b/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h index 1e8dbd7ae0..0adb8d0e63 100644 --- a/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h +++ b/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/MakerParts/Configuration_adv.h b/Marlin/src/config/examples/MakerParts/Configuration_adv.h index a38dbc5016..21b2fc2d09 100644 --- a/Marlin/src/config/examples/MakerParts/Configuration_adv.h +++ b/Marlin/src/config/examples/MakerParts/Configuration_adv.h @@ -882,29 +882,38 @@ */ #define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h b/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h index 0493f1acb2..650f7b0a5b 100644 --- a/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h +++ b/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Malyan/M200/Configuration_adv.h b/Marlin/src/config/examples/Malyan/M200/Configuration_adv.h index 940e7abd23..403d8e7a8f 100644 --- a/Marlin/src/config/examples/Malyan/M200/Configuration_adv.h +++ b/Marlin/src/config/examples/Malyan/M200/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h index 52e3d90ca9..d2c3e4c1c5 100644 --- a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h +++ b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h @@ -882,29 +882,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h b/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h index fe780a7f41..e5b7ee9932 100644 --- a/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h +++ b/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h @@ -889,29 +889,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/RigidBot/Configuration_adv.h b/Marlin/src/config/examples/RigidBot/Configuration_adv.h index 601304837d..b8e965c93f 100644 --- a/Marlin/src/config/examples/RigidBot/Configuration_adv.h +++ b/Marlin/src/config/examples/RigidBot/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/SCARA/Configuration_adv.h b/Marlin/src/config/examples/SCARA/Configuration_adv.h index 7cde50813b..8b4b2b70e0 100644 --- a/Marlin/src/config/examples/SCARA/Configuration_adv.h +++ b/Marlin/src/config/examples/SCARA/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h b/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h index 0c7bda0b54..59d37dc30d 100644 --- a/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h +++ b/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h @@ -870,29 +870,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h b/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h index d2d510af41..b6f27505af 100644 --- a/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h +++ b/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h b/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h index 4bc5461465..57575d34c8 100644 --- a/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h +++ b/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h b/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h index e917e269b5..c18525912d 100644 --- a/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h +++ b/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h @@ -892,29 +892,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h b/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h index fc82be6b8b..bcf3e2b4c8 100644 --- a/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h +++ b/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 5 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 600 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 100 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_LENGTH 5 // (mm) Initial retract. + // This short retract is done immediately, before parking the nozzle. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 600 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 100 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h b/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h index 3e2907c531..1755cc571e 100644 --- a/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h +++ b/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h @@ -883,29 +883,38 @@ */ #define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h index c618be4f7b..cc4afd923e 100644 --- a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h +++ b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h @@ -883,29 +883,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h index 5e57ed5113..83bde0e19e 100644 --- a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h +++ b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h @@ -883,29 +883,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/delta/generic/Configuration_adv.h b/Marlin/src/config/examples/delta/generic/Configuration_adv.h index 5e57ed5113..83bde0e19e 100644 --- a/Marlin/src/config/examples/delta/generic/Configuration_adv.h +++ b/Marlin/src/config/examples/delta/generic/Configuration_adv.h @@ -883,29 +883,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h b/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h index 5e57ed5113..83bde0e19e 100644 --- a/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h @@ -883,29 +883,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h b/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h index fa16d39df0..4543129674 100644 --- a/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h @@ -888,29 +888,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h b/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h index 00ed77d661..18602a3ed6 100644 --- a/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h @@ -883,29 +883,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h index 68838786ec..1a012652e3 100644 --- a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h +++ b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h @@ -881,29 +881,38 @@ */ #define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - #define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/makibox/Configuration_adv.h b/Marlin/src/config/examples/makibox/Configuration_adv.h index 0bbbcb2321..a3b327a607 100644 --- a/Marlin/src/config/examples/makibox/Configuration_adv.h +++ b/Marlin/src/config/examples/makibox/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h b/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h index 180667ac5a..a22b44a921 100644 --- a/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h @@ -881,29 +881,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/config/examples/wt150/Configuration_adv.h b/Marlin/src/config/examples/wt150/Configuration_adv.h index 483e0418bd..3ac5a05292 100644 --- a/Marlin/src/config/examples/wt150/Configuration_adv.h +++ b/Marlin/src/config/examples/wt150/Configuration_adv.h @@ -882,29 +882,38 @@ */ //#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s - #define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm - // It is a short retract used immediately after print interrupt before move to filament exchange position - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm - // Longer length for bowden printers to unload filament from whole bowden tube, - // shorter length for printers without bowden to unload filament from extruder only, - // 0 to disable unloading for manual unloading - #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast - #define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm - // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend, - // Short or zero length for printers without bowden where loading is not used - #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate - #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend, - // 0 to disable for manual extrusion - // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend, - // or until outcoming filament color is not clear for filament color change - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds - #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet - #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change - // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. - //#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (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 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (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. + #define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_DELAY 5000 // (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 PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif // @section tmc diff --git a/Marlin/src/core/language.h b/Marlin/src/core/language.h index 49f78c4047..8cd650b05e 100644 --- a/Marlin/src/core/language.h +++ b/Marlin/src/core/language.h @@ -205,7 +205,15 @@ #define MSG_ENDSTOPS_HIT "endstops hit: " #define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" #define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented" -#define MSG_TOO_COLD_FOR_M600 "M600 Hotend too cold to change filament" +#define MSG_HOTEND_TOO_COLD "Hotend too cold" + +#define MSG_FILAMENT_CHANGE_HEAT "Press button (or M108) to heat nozzle" +#define MSG_FILAMENT_CHANGE_HEAT_LCD "Press button to heat nozzle" +#define MSG_FILAMENT_CHANGE_HEAT_M108 "Send M108 to heat nozzle" +#define MSG_FILAMENT_CHANGE_INSERT "Insert filament and press button (or M108)" +#define MSG_FILAMENT_CHANGE_INSERT_LCD "Insert filament and press button" +#define MSG_FILAMENT_CHANGE_INSERT_M108 "Insert filament and send M108" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #define MSG_ERR_EEPROM_WRITE "Error writing to EEPROM!" diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index ccdeb429dd..43244acbc9 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -27,7 +27,7 @@ #include "../inc/MarlinConfig.h" -#if ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PARK_HEAD_ON_PAUSE) +#if ENABLED(ADVANCED_PAUSE_FEATURE) #include "../Marlin.h" #include "../gcode/gcode.h" @@ -56,6 +56,11 @@ static float resume_position[XYZE]; +AdvancedPauseMenuResponse advanced_pause_menu_response; + +float filament_change_unload_length[EXTRUDERS], + filament_change_load_length[EXTRUDERS]; + #if ENABLED(SDSUPPORT) #include "../sd/cardreader.h" #endif @@ -70,68 +75,197 @@ static float resume_position[XYZE]; const millis_t ms = millis(); if (ELAPSED(ms, next_buzz)) { if (max_beep_count < 0 || runout_beep < max_beep_count + 5) { // Only beep as long as we're supposed to - next_buzz = ms + ((max_beep_count < 0 || runout_beep < max_beep_count) ? 2500 : 400); - BUZZ(300, 2000); + next_buzz = ms + ((max_beep_count < 0 || runout_beep < max_beep_count) ? 1000 : 500); + BUZZ(50, 880 - (runout_beep & 1) * 220); runout_beep++; } } } #endif -static void ensure_safe_temperature() { - bool heaters_heating = true; +static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT) { - wait_for_heatup = true; // M108 will clear this - while (wait_for_heatup && heaters_heating) { - idle(); - heaters_heating = false; - HOTEND_LOOP() { - if (thermalManager.degTargetHotend(e) && abs(thermalManager.degHotend(e) - thermalManager.degTargetHotend(e)) > TEMP_HYSTERESIS) { - heaters_heating = true; - #if ENABLED(ULTIPANEL) - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT); - #endif - break; - } + #if ENABLED(PREVENT_COLD_EXTRUSION) + if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) { + SERIAL_ERROR_START(); + SERIAL_ERRORLNPGM(MSG_HOTEND_TOO_COLD); + return false; } - } + #endif + + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT, mode); + #else + UNUSED(mode); + #endif + + wait_for_heatup = true; // M108 will clear this + while (wait_for_heatup && thermalManager.wait_for_heating(active_extruder)) idle(); + const bool status = wait_for_heatup; + wait_for_heatup = false; + + return status; } -void do_pause_e_move(const float &length, const float fr) { - current_position[E_AXIS] += length / planner.e_factor[active_extruder]; +static void do_pause_e_move(const float &length, const float &fr) { set_destination_from_current(); - #if IS_KINEMATIC - planner.buffer_line_kinematic(destination, fr, active_extruder); - #else - buffer_line_to_destination(fr); - #endif + destination[E_AXIS] += length / planner.e_factor[active_extruder]; + buffer_line_to_destination(fr); stepper.synchronize(); + set_current_from_destination(); +} + +bool load_filament(const float &load_length/*=0*/, const float &extrude_length/*=0*/, const int8_t max_beep_count/*=0*/, + const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/, + const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/ +) { + #if DISABLED(ULTIPANEL) + UNUSED(show_lcd); + #endif + + if (!ensure_safe_temperature(mode)) { + #if ENABLED(ULTIPANEL) + if (show_lcd) // Show status screen + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); + #endif + + return false; + } + + if (pause_for_user) { + #if ENABLED(ULTIPANEL) + if (show_lcd) // Show "insert filament" + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT, mode); + #endif + SERIAL_ECHO_START(); + SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_INSERT); + + #if HAS_BUZZER + filament_change_beep(max_beep_count, true); + #else + UNUSED(max_beep_count); + #endif + + KEEPALIVE_STATE(PAUSED_FOR_USER); + wait_for_user = true; // LCD click or M108 will clear this + while (wait_for_user) { + #if HAS_BUZZER + filament_change_beep(max_beep_count); + #endif + idle(true); + } + KEEPALIVE_STATE(IN_HANDLER); + } + + #if ENABLED(ULTIPANEL) + if (show_lcd) // Show "load" message + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, mode); + #endif + + // Load filament + do_pause_e_move(load_length, FILAMENT_CHANGE_LOAD_FEEDRATE); + + do { + if (extrude_length > 0) { + // "Wait for filament purge" + #if ENABLED(ULTIPANEL) + if (show_lcd) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE, mode); + #endif + + // Extrude filament to get into hotend + do_pause_e_move(extrude_length, ADVANCED_PAUSE_EXTRUDE_FEEDRATE); + } + + // Show "Extrude More" / "Resume" menu and wait for reply + #if ENABLED(ULTIPANEL) + if (show_lcd) { + KEEPALIVE_STATE(PAUSED_FOR_USER); + wait_for_user = false; + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_OPTION, mode); + while (advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_WAIT_FOR) idle(true); + KEEPALIVE_STATE(IN_HANDLER); + } + #endif + + // Keep looping if "Extrude More" was selected + } while ( + #if ENABLED(ULTIPANEL) + show_lcd && advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE + #else + 0 + #endif + ); + + return true; +} + +bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/, + const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/ +) { + if (!ensure_safe_temperature(mode)) { + #if ENABLED(ULTIPANEL) + if (show_lcd) // Show status screen + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); + #endif + + return false; + } + + #if DISABLED(ULTIPANEL) + UNUSED(show_lcd); + #else + if (show_lcd) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, mode); + #endif + + // Retract filament + do_pause_e_move(-FILAMENT_UNLOAD_RETRACT_LENGTH, PAUSE_PARK_RETRACT_FEEDRATE); + + // Wait for filament to cool + safe_delay(FILAMENT_UNLOAD_DELAY); + + // Quickly purge + do_pause_e_move(FILAMENT_UNLOAD_RETRACT_LENGTH + FILAMENT_UNLOAD_PURGE_LENGTH, planner.max_feedrate_mm_s[E_AXIS]); + + // Unload filament + do_pause_e_move(unload_length, FILAMENT_CHANGE_UNLOAD_FEEDRATE); + + // Disable extruders steppers for manual filament changing (only on boards that have separate ENABLE_PINS) + #if E0_ENABLE_PIN != X_ENABLE_PIN && E1_ENABLE_PIN != Y_ENABLE_PIN + disable_e_stepper(active_extruder); + safe_delay(100); + #endif + + return true; } // public: uint8_t did_pause_print = 0; -bool pause_print(const float &retract, const point_t &park_point, const float &unload_length/*=0*/, - const int8_t max_beep_count/*=0*/, const bool show_lcd/*=false*/ -) { +bool pause_print(const float &retract, const point_t &park_point, const float &unload_length/*=0*/, const bool show_lcd/*=false*/) { if (did_pause_print) return false; // already paused #ifdef ACTION_ON_PAUSE SERIAL_ECHOLNPGM("//action:" ACTION_ON_PAUSE); #endif - if (!DEBUGGING(DRYRUN) && unload_length != 0) { - #if ENABLED(PREVENT_COLD_EXTRUSION) - if (!thermalManager.allow_cold_extrude && - thermalManager.degTargetHotend(active_extruder) < thermalManager.extrude_min_temp) { - SERIAL_ERROR_START(); - SERIAL_ERRORLNPGM(MSG_TOO_COLD_FOR_M600); - return false; - } + #if ENABLED(ULTIPANEL) + if (show_lcd) // Show initial message + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT); + #endif + + if (!DEBUGGING(DRYRUN) && unload_length && thermalManager.targetTooColdToExtrude(active_extruder)) { + SERIAL_ERROR_START(); + SERIAL_ERRORLNPGM(MSG_HOTEND_TOO_COLD); + + #if ENABLED(ULTIPANEL) + if (show_lcd) // Show status screen + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); #endif - ensure_safe_temperature(); // wait for extruder to heat up before unloading + return false; // unable to reach safe temperature } // Indicate that the printer is paused @@ -139,22 +273,18 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u // Pause the print job and timer #if ENABLED(SDSUPPORT) - if (IS_SD_PRINTING) { + if (card.sdprinting) { card.pauseSDPrint(); ++did_pause_print; } #endif print_job_timer.pause(); - // Show initial message and wait for synchronize steppers - if (show_lcd) { - #if ENABLED(ULTIPANEL) - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT); - #endif - } - + // Wait for synchronize steppers stepper.synchronize(); - COPY(resume_position, current_position); // Save current position for later + + // Save current position + COPY(resume_position, current_position); // Initial retract before move to filament change position if (retract && !thermalManager.tooColdToExtrude(active_extruder)) @@ -163,48 +293,32 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u // Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos) Nozzle::park(2, park_point); - if (unload_length != 0) { - if (show_lcd) { - #if ENABLED(ULTIPANEL) - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD); - idle(); - #endif - } + // Unload the filament + if (unload_length) + unload_filament(unload_length, show_lcd); - // Unload filament - do_pause_e_move(unload_length, FILAMENT_CHANGE_UNLOAD_FEEDRATE); - } + return true; +} - if (show_lcd) { - #if ENABLED(ULTIPANEL) - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT); - #endif - } +void wait_for_filament_reload(const int8_t max_beep_count/*=0*/) { + bool nozzle_timed_out = false; + + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT); + #endif + SERIAL_ECHO_START(); + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_INSERT); #if HAS_BUZZER filament_change_beep(max_beep_count, true); #endif - idle(); - - // Disable extruders steppers for manual filament changing (only on boards that have separate ENABLE_PINS) - #if E0_ENABLE_PIN != X_ENABLE_PIN && E1_ENABLE_PIN != Y_ENABLE_PIN - disable_e_steppers(); - safe_delay(100); - #endif - // Start the heater idle timers const millis_t nozzle_timeout = (millis_t)(PAUSE_PARK_NOZZLE_TIMEOUT) * 1000UL; HOTEND_LOOP() thermalManager.start_heater_idle_timer(e, nozzle_timeout); - return true; -} - -void wait_for_filament_reload(const int8_t max_beep_count/*=0*/) { - bool nozzle_timed_out = false; - // Wait for filament insert by user and press button KEEPALIVE_STATE(PAUSED_FOR_USER); wait_for_user = true; // LCD click or M108 will clear this @@ -223,6 +337,14 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/) { #if ENABLED(ULTIPANEL) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE); #endif + SERIAL_ECHO_START(); + #if ENABLED(ULTIPANEL) && ENABLED(EMERGENCY_PARSER) + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_HEAT); + #elif ENABLED(EMERGENCY_PARSER) + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_HEAT_M108); + #else + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_HEAT_LCD); + #endif // Wait for LCD click or M108 while (wait_for_user) idle(true); @@ -236,6 +358,14 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/) { #if ENABLED(ULTIPANEL) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT); #endif + SERIAL_ECHO_START(); + #if ENABLED(ULTIPANEL) && ENABLED(EMERGENCY_PARSER) + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_INSERT); + #elif ENABLED(EMERGENCY_PARSER) + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_INSERT_M108); + #else + SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_INSERT_LCD); + #endif // Start the heater idle timers const millis_t nozzle_timeout = (millis_t)(PAUSE_PARK_NOZZLE_TIMEOUT) * 1000UL; @@ -243,7 +373,7 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/) { HOTEND_LOOP() thermalManager.start_heater_idle_timer(e, nozzle_timeout); - wait_for_user = true; /* Wait for user to load filament */ + wait_for_user = true; // Wait for user to load filament nozzle_timed_out = false; #if HAS_BUZZER @@ -256,7 +386,7 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/) { KEEPALIVE_STATE(IN_HANDLER); } -void resume_print(const float &load_length/*=0*/, const float &initial_extrude_length/*=0*/, const int8_t max_beep_count/*=0*/) { +void resume_print(const float &load_length/*=0*/, const float &extrude_length/*=ADVANCED_PAUSE_EXTRUDE_LENGTH*/, const int8_t max_beep_count/*=0*/) { bool nozzle_timed_out = false; if (!did_pause_print) return; @@ -267,67 +397,11 @@ void resume_print(const float &load_length/*=0*/, const float &initial_extrude_l thermalManager.reset_heater_idle_timer(e); } - if (nozzle_timed_out) ensure_safe_temperature(); - - #if HAS_BUZZER - filament_change_beep(max_beep_count, true); - #endif - - if (load_length != 0) { - #if ENABLED(ULTIPANEL) - // Show "insert filament" - if (nozzle_timed_out) - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT); - #endif - - KEEPALIVE_STATE(PAUSED_FOR_USER); - wait_for_user = true; // LCD click or M108 will clear this - while (wait_for_user && nozzle_timed_out) { - #if HAS_BUZZER - filament_change_beep(max_beep_count); - #endif - idle(true); - } - KEEPALIVE_STATE(IN_HANDLER); - - #if ENABLED(ULTIPANEL) - // Show "load" message - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD); - #endif - - // Load filament - do_pause_e_move(load_length, FILAMENT_CHANGE_LOAD_FEEDRATE); + if (nozzle_timed_out || !thermalManager.tooColdToExtrude(active_extruder)) { + // Load the new filament + load_filament(load_length, extrude_length, max_beep_count, true, nozzle_timed_out); } - #if ENABLED(ULTIPANEL) && ADVANCED_PAUSE_EXTRUDE_LENGTH > 0 - - if (!thermalManager.tooColdToExtrude(active_extruder)) { - float extrude_length = initial_extrude_length; - - do { - if (extrude_length > 0) { - // "Wait for filament extrude" - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_EXTRUDE); - - // Extrude filament to get into hotend - do_pause_e_move(extrude_length, ADVANCED_PAUSE_EXTRUDE_FEEDRATE); - } - - // Show "Extrude More" / "Resume" menu and wait for reply - KEEPALIVE_STATE(PAUSED_FOR_USER); - wait_for_user = false; - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_OPTION); - while (advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_WAIT_FOR) idle(true); - KEEPALIVE_STATE(IN_HANDLER); - - extrude_length = ADVANCED_PAUSE_EXTRUDE_LENGTH; - - // Keep looping if "Extrude More" was selected - } while (advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE); - } - - #endif - #if ENABLED(ULTIPANEL) // "Wait for print to resume" lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_RESUME); @@ -358,7 +432,7 @@ void resume_print(const float &load_length/*=0*/, const float &initial_extrude_l #endif #if ENABLED(ULTIPANEL) - // Show pause status screen + // Show status screen lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); #endif @@ -376,4 +450,4 @@ void resume_print(const float &load_length/*=0*/, const float &initial_extrude_l #endif } -#endif // ADVANCED_PAUSE_FEATURE || PARK_HEAD_ON_PAUSE +#endif // ADVANCED_PAUSE_FEATURE diff --git a/Marlin/src/feature/pause.h b/Marlin/src/feature/pause.h index 2bceaa2912..16f3389472 100644 --- a/Marlin/src/feature/pause.h +++ b/Marlin/src/feature/pause.h @@ -30,14 +30,49 @@ #include "../libs/nozzle.h" +#include "../inc/MarlinConfigPre.h" + +enum AdvancedPauseMode { + ADVANCED_PAUSE_MODE_PAUSE_PRINT, + ADVANCED_PAUSE_MODE_LOAD_FILAMENT, + ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT +}; + +enum AdvancedPauseMessage { + ADVANCED_PAUSE_MESSAGE_INIT, + ADVANCED_PAUSE_MESSAGE_UNLOAD, + ADVANCED_PAUSE_MESSAGE_INSERT, + ADVANCED_PAUSE_MESSAGE_LOAD, + ADVANCED_PAUSE_MESSAGE_PURGE, + ADVANCED_PAUSE_MESSAGE_OPTION, + ADVANCED_PAUSE_MESSAGE_RESUME, + ADVANCED_PAUSE_MESSAGE_STATUS, + ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE, + ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT +}; + +enum AdvancedPauseMenuResponse { + ADVANCED_PAUSE_RESPONSE_WAIT_FOR, + ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE, + ADVANCED_PAUSE_RESPONSE_RESUME_PRINT +}; + +extern AdvancedPauseMenuResponse advanced_pause_menu_response; + +extern float filament_change_unload_length[EXTRUDERS], + filament_change_load_length[EXTRUDERS]; + extern uint8_t did_pause_print; -bool pause_print(const float &retract, const point_t &park_point, const float &unload_length=0, - const int8_t max_beep_count=0, const bool show_lcd=false -); +bool pause_print(const float &retract, const point_t &park_point, const float &unload_length=0, const bool show_lcd=false); void wait_for_filament_reload(const int8_t max_beep_count=0); -void resume_print(const float &load_length=0, const float &initial_extrude_length=0, const int8_t max_beep_count=0); +void resume_print(const float &load_length=0, const float &extrude_length=ADVANCED_PAUSE_EXTRUDE_LENGTH, const int8_t max_beep_count=0); + +bool load_filament(const float &load_length=0, const float &extrude_length=0, const int8_t max_beep_count=0, const bool show_lcd=false, + const bool pause_for_user=false, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT); + +bool unload_filament(const float &unload_length, const bool show_lcd=false, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT); #endif // _PAUSE_H_ diff --git a/Marlin/src/gcode/control/M17_M18_M84.cpp b/Marlin/src/gcode/control/M17_M18_M84.cpp index 003687c2c6..2049aebae7 100644 --- a/Marlin/src/gcode/control/M17_M18_M84.cpp +++ b/Marlin/src/gcode/control/M17_M18_M84.cpp @@ -54,7 +54,7 @@ void GcodeSuite::M18_M84() { if (parser.seen('X')) disable_X(); if (parser.seen('Y')) disable_Y(); if (parser.seen('Z')) disable_Z(); - #if E0_ENABLE_PIN != X_ENABLE_PIN && E1_ENABLE_PIN != Y_ENABLE_PIN // Only enable on boards that have separate ENABLE_PINS + #if E0_ENABLE_PIN != X_ENABLE_PIN && E1_ENABLE_PIN != Y_ENABLE_PIN // Only disable on boards that have separate ENABLE_PINS if (parser.seen('E')) disable_e_steppers(); #endif } diff --git a/Marlin/src/gcode/feature/pause/M600.cpp b/Marlin/src/gcode/feature/pause/M600.cpp index c1793f6faf..8589a48d93 100644 --- a/Marlin/src/gcode/feature/pause/M600.cpp +++ b/Marlin/src/gcode/feature/pause/M600.cpp @@ -33,24 +33,34 @@ #include "../../../module/tool_change.h" #endif +#if ENABLED(ULTIPANEL) + #include "../../../lcd/ultralcd.h" +#endif + /** * M600: Pause for filament change * - * E[distance] - Retract the filament this far (negative value) + * E[distance] - Retract the filament this far * Z[distance] - Move the Z axis by this distance * X[position] - Move to this X position, with Y * Y[position] - Move to this Y position, with X - * U[distance] - Retract distance for removal (negative value) (manual reload) - * L[distance] - Extrude distance for insertion (positive value) (manual reload) + * U[distance] - Retract distance for removal (manual reload) + * L[distance] - Extrude distance for insertion (manual reload) * B[count] - Number of times to beep, -1 for indefinite (if equipped with a buzzer) * T[toolhead] - Select extruder for filament change * * Default values are used for omitted arguments. - * */ void GcodeSuite::M600() { point_t park_point = NOZZLE_PARK_POINT; + if (get_target_extruder_from_command()) return; + + // Show initial message + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, target_extruder); + #endif + #if ENABLED(HOME_BEFORE_FILAMENT_CHANGE) // Don't allow filament change without homing first if (axis_unhomed_error()) home_all_axes(); @@ -58,22 +68,17 @@ void GcodeSuite::M600() { #if EXTRUDERS > 1 // Change toolhead if specified - uint8_t active_extruder_before_filament_change = -1; - if (parser.seen('T')) { - const uint8_t extruder = parser.value_byte(); - if (active_extruder != extruder) { - active_extruder_before_filament_change = active_extruder; - tool_change(extruder, 0, true); - } - } + uint8_t active_extruder_before_filament_change = active_extruder; + if (active_extruder != target_extruder) + tool_change(target_extruder, 0, true); #endif // Initial retract before move to filament change position - const float retract = parser.seen('E') ? parser.value_axis_units(E_AXIS) : 0 + const float retract = -FABS(parser.seen('E') ? parser.value_axis_units(E_AXIS) : 0 #ifdef PAUSE_PARK_RETRACT_LENGTH - - (PAUSE_PARK_RETRACT_LENGTH) + + (PAUSE_PARK_RETRACT_LENGTH) #endif - ; + ); // Move XY axes to filament change position or given position if (parser.seenval('X')) park_point.x = parser.linearval('X'); @@ -88,22 +93,16 @@ void GcodeSuite::M600() { #endif // Unload filament - const float unload_length = parser.seen('U') ? parser.value_axis_units(E_AXIS) : 0 - #if defined(FILAMENT_CHANGE_UNLOAD_LENGTH) && FILAMENT_CHANGE_UNLOAD_LENGTH > 0 - - (FILAMENT_CHANGE_UNLOAD_LENGTH) - #endif - ; + const float unload_length = -FABS(parser.seen('U') ? parser.value_axis_units(E_AXIS) + : filament_change_unload_length[active_extruder]); // Load filament - const float load_length = parser.seen('L') ? parser.value_axis_units(E_AXIS) : 0 - #ifdef FILAMENT_CHANGE_LOAD_LENGTH - + FILAMENT_CHANGE_LOAD_LENGTH - #endif - ; + const float load_length = FABS(parser.seen('L') ? parser.value_axis_units(E_AXIS) + : filament_change_load_length[active_extruder]); const int beep_count = parser.intval('B', - #ifdef FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS - FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS + #ifdef FILAMENT_CHANGE_ALERT_BEEPS + FILAMENT_CHANGE_ALERT_BEEPS #else -1 #endif @@ -111,14 +110,14 @@ void GcodeSuite::M600() { const bool job_running = print_job_timer.isRunning(); - if (pause_print(retract, park_point, unload_length, beep_count, true)) { + if (pause_print(retract, park_point, unload_length, true)) { wait_for_filament_reload(beep_count); resume_print(load_length, ADVANCED_PAUSE_EXTRUDE_LENGTH, beep_count); } #if EXTRUDERS > 1 // Restore toolhead if it was changed - if (active_extruder_before_filament_change >= 0) + if (active_extruder_before_filament_change != active_extruder) tool_change(active_extruder_before_filament_change, 0, true); #endif diff --git a/Marlin/src/gcode/feature/pause/M603.cpp b/Marlin/src/gcode/feature/pause/M603.cpp new file mode 100644 index 0000000000..feabe2b929 --- /dev/null +++ b/Marlin/src/gcode/feature/pause/M603.cpp @@ -0,0 +1,65 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if ENABLED(ADVANCED_PAUSE_FEATURE) + +#include "../../gcode.h" +#include "../../../feature/pause.h" +#include "../../../module/motion.h" +#include "../../../module/printcounter.h" + +#if EXTRUDERS > 1 + #include "../../../module/tool_change.h" +#endif + +/** + * M603: Configure filament change + * + * T[toolhead] - Select extruder to configure, active extruder if not specified + * U[distance] - Retract distance for removal, for the specified extruder + * L[distance] - Extrude distance for insertion, for the specified extruder + * + */ +inline void GcodeSuite::M603() { + + if (get_target_extruder_from_command()) return; + + // Unload length + if (parser.seen('U')) { + filament_change_unload_length[target_extruder] = FABS(parser.value_axis_units(E_AXIS)); + #if ENABLED(PREVENT_LENGTHY_EXTRUDE) + NOMORE(filament_change_unload_length[target_extruder], EXTRUDE_MAXLENGTH); + #endif + } + + // Load length + if (parser.seen('L')) { + filament_change_load_length[target_extruder] = FABS(parser.value_axis_units(E_AXIS)); + #if ENABLED(PREVENT_LENGTHY_EXTRUDE) + NOMORE(filament_change_load_length[target_extruder], EXTRUDE_MAXLENGTH); + #endif + } +} + +#endif // ADVANCED_PAUSE_FEATURE diff --git a/Marlin/src/gcode/feature/pause/M701_M702.cpp b/Marlin/src/gcode/feature/pause/M701_M702.cpp new file mode 100644 index 0000000000..d032107bc3 --- /dev/null +++ b/Marlin/src/gcode/feature/pause/M701_M702.cpp @@ -0,0 +1,165 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + +#include "../../gcode.h" +#include "../../../Marlin.h" +#include "../../../module/motion.h" +#include "../../../module/temperature.h" +#include "../../../libs/point_t.h" + +#if EXTRUDERS > 1 + #include "../../../module/tool_change.h" +#endif + +#if ENABLED(ULTIPANEL) + #include "../../../lcd/ultralcd.h" +#endif + +/** + * M701: Load filament + * + * T[extruder] - Optional extruder number. Current extruder if omitted. + * Z[distance] - Move the Z axis by this distance + * L[distance] - Extrude distance for insertion (positive value) (manual reload) + * + * Default values are used for omitted arguments. + */ +void GcodeSuite::M701() { + point_t park_point = NOZZLE_PARK_POINT; + + if (get_target_extruder_from_command()) return; + + // Z axis lift + if (parser.seenval('Z')) park_point.z = parser.linearval('Z'); + + // Load filament + const float load_length = FABS(parser.seen('L') ? parser.value_axis_units(E_AXIS) : + filament_change_load_length[target_extruder]); + + // Show initial message + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, ADVANCED_PAUSE_MODE_LOAD_FILAMENT, target_extruder); + #endif + + #if EXTRUDERS > 1 + // Change toolhead if specified + uint8_t active_extruder_before_filament_change = active_extruder; + if (active_extruder != target_extruder) + tool_change(target_extruder, 0, true); + #endif + + // Lift Z axis + if (park_point.z > 0) + do_blocking_move_to_z(min(current_position[Z_AXIS] + park_point.z, Z_MAX_POS), NOZZLE_PARK_Z_FEEDRATE); + + load_filament(load_length, ADVANCED_PAUSE_EXTRUDE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS, true, + thermalManager.wait_for_heating(target_extruder), ADVANCED_PAUSE_MODE_LOAD_FILAMENT); + + // Restore Z axis + if (park_point.z > 0) + do_blocking_move_to_z(max(current_position[Z_AXIS] - park_point.z, Z_MIN_POS), NOZZLE_PARK_Z_FEEDRATE); + + #if EXTRUDERS > 1 + // Restore toolhead if it was changed + if (active_extruder_before_filament_change != active_extruder) + tool_change(active_extruder_before_filament_change, 0, true); + #endif + + // Show status screen + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); + #endif +} + +/** + * M702: Unload filament + * + * T[extruder] - Optional extruder number. If omitted, current extruder + * (or ALL extruders with FILAMENT_UNLOAD_ALL_EXTRUDERS). + * Z[distance] - Move the Z axis by this distance + * U[distance] - Retract distance for removal (manual reload) + * + * Default values are used for omitted arguments. + */ +void GcodeSuite::M702() { + point_t park_point = NOZZLE_PARK_POINT; + + if (get_target_extruder_from_command()) return; + + // Z axis lift + if (parser.seenval('Z')) park_point.z = parser.linearval('Z'); + + // Show initial message + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, target_extruder); + #endif + + #if EXTRUDERS > 1 + // Change toolhead if specified + uint8_t active_extruder_before_filament_change = active_extruder; + if (active_extruder != target_extruder) + tool_change(target_extruder, 0, true); + #endif + + // Lift Z axis + if (park_point.z > 0) + do_blocking_move_to_z(min(current_position[Z_AXIS] + park_point.z, Z_MAX_POS), NOZZLE_PARK_Z_FEEDRATE); + + // Unload filament + #if EXTRUDERS > 1 && ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS) + if (!parser.seenval('T')) { + HOTEND_LOOP() { + if (e != active_extruder) tool_change(e, 0, true); + unload_filament(-filament_change_unload_length[e], true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT); + } + } + else + #endif + { + // Unload length + const float unload_length = -FABS(parser.seen('U') ? parser.value_axis_units(E_AXIS) : + filament_change_unload_length[target_extruder]); + + unload_filament(unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT); + } + + // Restore Z axis + if (park_point.z > 0) + do_blocking_move_to_z(max(current_position[Z_AXIS] - park_point.z, Z_MIN_POS), NOZZLE_PARK_Z_FEEDRATE); + + #if EXTRUDERS > 1 + // Restore toolhead if it was changed + if (active_extruder_before_filament_change != active_extruder) + tool_change(active_extruder_before_filament_change, 0, true); + #endif + + // Show status screen + #if ENABLED(ULTIPANEL) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); + #endif +} + +#endif // ADVANCED_PAUSE_FEATURE diff --git a/Marlin/src/gcode/feature/snmm/M702.cpp b/Marlin/src/gcode/feature/snmm/M702.cpp deleted file mode 100644 index ff8ee062ea..0000000000 --- a/Marlin/src/gcode/feature/snmm/M702.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include "../../../inc/MarlinConfig.h" - -#if ENABLED(MK2_MULTIPLEXER) - -#include "../../gcode.h" -#include "../../../module/motion.h" -#include "../../../feature/snmm.h" -#include "../../../Marlin.h" - -/** - * M702: Unload all extruders - */ -void GcodeSuite::M702() { - for (uint8_t s = 0; s < E_STEPPERS; s++) { - select_multiplexed_stepper(s); - // TODO: standard unload filament function - // MK2 firmware behavior: - // - Make sure temperature is high enough - // - Raise Z to at least 15 to make room - // - Extrude 1cm of filament in 1 second - // - Under 230C quickly purge ~12mm, over 230C purge ~10mm - // - Change E max feedrate to 80, eject the filament from the tube. Sync. - // - Restore E max feedrate to 50 - } - // Go back to the last active extruder - select_multiplexed_stepper(active_extruder); - disable_e_steppers(); -} - -#endif // MK2_MULTIPLEXER diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 35305df7b1..31d628d859 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -399,8 +399,7 @@ void GcodeSuite::process_parsed_command() { #endif #if ENABLED(PARK_HEAD_ON_PAUSE) - case 125: // M125: Store current position and move to filament change position - M125(); break; + case 125: M125(); break; // M125: Store current position and move to filament change position #endif #if ENABLED(BARICUDA) diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 648a27392e..377c948b68 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -198,9 +198,12 @@ * M503 - Print the current settings (in memory): "M503 S". S0 specifies compact output. * M540 - Enable/disable SD card abort on endstop hit: "M540 S". (Requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) * M600 - Pause for filament change: "M600 X Y Z E L". (Requires ADVANCED_PAUSE_FEATURE) + * M603 - Configure filament change: "M603 T U L". (Requires ADVANCED_PAUSE_FEATURE) + * M605 - Set Dual X-Carriage movement mode: "M605 S [X] [R]". (Requires DUAL_X_CARRIAGE) * M665 - Set delta configurations: "M665 L R S A B C I J K" (Requires DELTA) * M666 - Set delta endstop adjustment. (Requires DELTA) - * M605 - Set dual x-carriage movement mode: "M605 S [X] [R]". (Requires DUAL_X_CARRIAGE) + * M701 - Load filament (requires FILAMENT_LOAD_UNLOAD_GCODES) + * M702 - Unload filament (requires FILAMENT_LOAD_UNLOAD_GCODES) * M851 - Set Z probe's Z offset in current units. (Negative = below the nozzle.) * M852 - Set skew factors: "M852 [I] [J] [K]". (Requires SKEW_CORRECTION_GCODE, and SKEW_CORRECTION_FOR_Z for IJ) * M860 - Report the position of position encoder modules. @@ -685,6 +688,7 @@ private: #if ENABLED(ADVANCED_PAUSE_FEATURE) static void M600(); + static void M603(); #endif #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) @@ -699,7 +703,8 @@ private: static void M666(); #endif - #if ENABLED(MK2_MULTIPLEXER) + #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + static void M701(); static void M702(); #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index fd03c4d126..fe69cf92ec 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -131,6 +131,8 @@ #error "FILAMENT_CHANGE_EXTRUDE_LENGTH is now ADVANCED_PAUSE_EXTRUDE_LENGTH. Please update your configuration." #elif defined(FILAMENT_CHANGE_NOZZLE_TIMEOUT) #error "FILAMENT_CHANGE_NOZZLE_TIMEOUT is now PAUSE_PARK_NOZZLE_TIMEOUT. Please update your configuration." +#elif defined(FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS) + #error "FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS is now FILAMENT_CHANGE_ALERT_BEEPS. Please update your configuration." #elif ENABLED(FILAMENT_CHANGE_NO_STEPPER_TIMEOUT) #error "FILAMENT_CHANGE_NO_STEPPER_TIMEOUT is now PAUSE_PARK_NO_STEPPER_TIMEOUT. Please update your configuration." #elif defined(PLA_PREHEAT_HOTEND_TEMP) @@ -406,16 +408,20 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE, * Advanced Pause */ #if ENABLED(ADVANCED_PAUSE_FEATURE) - #if DISABLED(NEWPANEL) - #error "ADVANCED_PAUSE_FEATURE currently requires an LCD controller." + #if !HAS_RESUME_CONTINUE + #error "ADVANCED_PAUSE_FEATURE currently requires an LCD controller or EMERGENCY_PARSER." #elif ENABLED(EXTRUDER_RUNOUT_PREVENT) #error "EXTRUDER_RUNOUT_PREVENT is incompatible with ADVANCED_PAUSE_FEATURE." #elif ENABLED(PARK_HEAD_ON_PAUSE) && DISABLED(SDSUPPORT) && DISABLED(NEWPANEL) && DISABLED(EMERGENCY_PARSER) #error "PARK_HEAD_ON_PAUSE requires SDSUPPORT, EMERGENCY_PARSER, or an LCD controller." #elif ENABLED(HOME_BEFORE_FILAMENT_CHANGE) && DISABLED(PAUSE_PARK_NO_STEPPER_TIMEOUT) - #error "HOME_BEFORE_FILAMENT_CHANGE requires PAUSE_PARK_NO_STEPPER_TIMEOUT" + #error "HOME_BEFORE_FILAMENT_CHANGE requires PAUSE_PARK_NO_STEPPER_TIMEOUT." #elif DISABLED(NOZZLE_PARK_FEATURE) - #error "ADVANCED_PAUSE_FEATURE requires NOZZLE_PARK_FEATURE" + #error "ADVANCED_PAUSE_FEATURE requires NOZZLE_PARK_FEATURE." + #elif ENABLED(PREVENT_LENGTHY_EXTRUDE) && FILAMENT_CHANGE_UNLOAD_LENGTH > EXTRUDE_MAXLENGTH + #error "FILAMENT_CHANGE_UNLOAD_LENGTH must be less than or equal to EXTRUDE_MAXLENGTH." + #elif ENABLED(PREVENT_LENGTHY_EXTRUDE) && FILAMENT_CHANGE_LOAD_LENGTH > EXTRUDE_MAXLENGTH + #error "FILAMENT_CHANGE_LOAD_LENGTH must be less than or equal to EXTRUDE_MAXLENGTH." #endif #endif @@ -454,8 +460,6 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE, */ #ifdef SNMM #error "SNMM is now MK2_MULTIPLEXER. Please update your configuration." -#elif ENABLED(MK2_MULTIPLEXER) && DISABLED(ADVANCED_PAUSE_FEATURE) - #error "ADVANCED_PAUSE_FEATURE is required with MK2_MULTIPLEXER." #endif /** diff --git a/Marlin/src/lcd/language/language_an.h b/Marlin/src/lcd/language/language_an.h index 3ab4d1d250..f5245d314c 100644 --- a/Marlin/src/lcd/language/language_an.h +++ b/Marlin/src/lcd/language/language_an.h @@ -217,9 +217,6 @@ #define MSG_DRIVE_STRENGTH _UxGT("Fuerza d'o driver") #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("Escri. DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extruir mas") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Resumir imp.") // @@ -246,8 +243,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("expulsar filament") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Aguardando a") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("cargar filamento") -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Aguardando a") -#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extruir filamento") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Aguardando impre.") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("pa continar") diff --git a/Marlin/src/lcd/language/language_ca.h b/Marlin/src/lcd/language/language_ca.h index 54137f7d4a..9af28baf2a 100644 --- a/Marlin/src/lcd/language/language_ca.h +++ b/Marlin/src/lcd/language/language_ca.h @@ -219,11 +219,7 @@ #define MSG_DRIVE_STRENGTH _UxGT("Força motor") #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extrudeix mes") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Repren impressió") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Temp minima es ") // // Filament Change screens show up to 3 lines on a 4-line display @@ -244,8 +240,6 @@ #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Espereu...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperant carrega") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("de filament") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Esperant per") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extreure filament") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperant per") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("reprendre") #else // LCD_HEIGHT < 4 @@ -254,7 +248,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insereix i prem") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Escalfant...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Carregant...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrudint...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reprenent...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_cz.h b/Marlin/src/lcd/language/language_cz.h index 4a6bdbee53..034cd78583 100644 --- a/Marlin/src/lcd/language/language_cz.h +++ b/Marlin/src/lcd/language/language_cz.h @@ -336,11 +336,7 @@ #define MSG_DRIVE_STRENGTH _UxGT("Buzeni motoru") #define MSG_DAC_PERCENT _UxGT("Motor %") #define MSG_DAC_EEPROM_WRITE _UxGT("Ulozit do EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Jeste vytlacit") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnovit tisk") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Min. teplota je ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ") #define MSG_ERR_HOMING_FAILED _UxGT("Parkovani selhalo") #define MSG_ERR_PROBING_FAILED _UxGT("Kalibrace selhala") @@ -363,9 +359,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Cekejte prosim") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("na vytlaceni") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku") @@ -376,7 +369,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Vytlacovani...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_cz_utf8.h b/Marlin/src/lcd/language/language_cz_utf8.h index b5f3e92726..dfc3a5a828 100644 --- a/Marlin/src/lcd/language/language_cz_utf8.h +++ b/Marlin/src/lcd/language/language_cz_utf8.h @@ -338,11 +338,7 @@ #define MSG_DRIVE_STRENGTH _UxGT("Buzení motorů") #define MSG_DAC_PERCENT _UxGT("Motor %") #define MSG_DAC_EEPROM_WRITE _UxGT("Uložit do EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Ještě vytlačit") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnovit tisk") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Min. teplota je ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ") #define MSG_ERR_HOMING_FAILED _UxGT("Parkování selhalo") #define MSG_ERR_PROBING_FAILED _UxGT("Kalibrace selhala") @@ -365,9 +361,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Čekejte prosím") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("na vytlačení") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku") @@ -378,7 +371,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Vytlačování...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_da.h b/Marlin/src/lcd/language/language_da.h index 1a3fdd4441..9755c66aed 100644 --- a/Marlin/src/lcd/language/language_da.h +++ b/Marlin/src/lcd/language/language_da.h @@ -217,9 +217,6 @@ #define MSG_DAC_PERCENT _UxGT("Driv %") #define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Skriv") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extruder mere") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Forsæt print") #if LCD_HEIGHT >= 4 @@ -233,8 +230,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("for at fortsætte...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Vent på") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament indtag") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Vent på") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("filament extrudering") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Vent på at print") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("fortsætter") #else // LCD_HEIGHT < 4 @@ -242,7 +237,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Udskyder...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Indsæt og klik") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Indtager...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrudere...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsætter...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_de.h b/Marlin/src/lcd/language/language_de.h index 4036a0dcfe..da6c04c928 100644 --- a/Marlin/src/lcd/language/language_de.h +++ b/Marlin/src/lcd/language/language_de.h @@ -308,11 +308,9 @@ #define MSG_DAC_PERCENT _UxGT("Treiber %") #define MSG_DAC_EEPROM_WRITE _UxGT("Werte speichern") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("DRUCK PAUSIERT") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("DRUCK PAUSIERT") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("FORTS. OPTIONEN:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extrude mehr") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Drucke weiter") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Min. Temperatur ist ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Düse: ") #if LCD_HEIGHT >= 4 @@ -333,9 +331,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Warte auf") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("Extrusion des") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("Filaments") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Warte auf") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("Fortsetzung des") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("Druckes...") @@ -346,7 +341,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laden und Klick") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heizen...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Laden...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrudieren...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsetzen...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_el.h b/Marlin/src/lcd/language/language_el.h index 1ae2a5b931..fec01782a2 100644 --- a/Marlin/src/lcd/language/language_el.h +++ b/Marlin/src/lcd/language/language_el.h @@ -168,7 +168,6 @@ #define MSG_ERR_MAXTEMP_BED _UxGT("ΜΕΓΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ") //SHORTEN #define MSG_ERR_MINTEMP_BED _UxGT("ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ") //SHORTEN #define MSG_HALTED _UxGT("H εκτύπωση διακόπηκε") -#define MSG_PLEASE_RESET _UxGT("PLEASE RESET") //TRANSLATE #define MSG_HEATING _UxGT("Θερμαίνεται…") #define MSG_HEATING_COMPLETE _UxGT("Η θέρμανση ολοκληρώθηκε.") //SHORTEN #define MSG_BED_HEATING _UxGT("Θέρμανση ΕΠ. Εκτύπωσης") //SHORTEN @@ -179,56 +178,4 @@ #define MSG_DELTA_CALIBRATE_Z _UxGT("Βαθμονόμηση Z") #define MSG_DELTA_CALIBRATE_CENTER _UxGT("Βαθμονόμηση κέντρου") -#define MSG_INFO_MENU _UxGT("About Printer") -#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info") -#define MSG_INFO_STATS_MENU _UxGT("Printer Stats") -#define MSG_INFO_BOARD_MENU _UxGT("Board Info") -#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors") -#define MSG_INFO_EXTRUDERS _UxGT("Extruders") -#define MSG_INFO_BAUDRATE _UxGT("Baud") -#define MSG_INFO_PROTOCOL _UxGT("Protocol") - -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Print Count") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed ") - #define MSG_INFO_PRINT_TIME _UxGT("Total Time ") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Prints ") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed") - #define MSG_INFO_PRINT_TIME _UxGT("Duration ") -#endif -#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") -#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") -#define MSG_INFO_PSU _UxGT("PSU") - -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("CHANGE FILAMENT") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extrude more") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Resume print") - -#if LCD_HEIGHT >= 4 - // Up to 3 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wait for start") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("of the filament") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("change") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wait for") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament unload") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("and press button") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("to continue...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wait for") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament load") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Wait for") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("filament extrude") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("to resume") -#else // LCD_HEIGHT < 4 - // Up to 2 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Please wait...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejecting...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert and Click") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Loading...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extruding...") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Resuming...") -#endif - #endif // LANGUAGE_EL_H diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index dcf8f1dcc0..a9be4a2a6e 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -590,6 +590,12 @@ #ifndef MSG_FILAMENT_DIAM #define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") #endif +#ifndef MSG_FILAMENT_UNLOAD + #define MSG_FILAMENT_UNLOAD _UxGT("Unload mm") +#endif +#ifndef MSG_FILAMENT_LOAD + #define MSG_FILAMENT_LOAD _UxGT("Load mm") +#endif #ifndef MSG_ADVANCE_K #define MSG_ADVANCE_K _UxGT("Advance K") #endif @@ -689,6 +695,15 @@ #ifndef MSG_FILAMENTCHANGE #define MSG_FILAMENTCHANGE _UxGT("Change filament") #endif +#ifndef MSG_FILAMENTLOAD + #define MSG_FILAMENTLOAD _UxGT("Load filament") +#endif +#ifndef MSG_FILAMENTUNLOAD + #define MSG_FILAMENTUNLOAD _UxGT("Unload filament") +#endif +#ifndef MSG_FILAMENTUNLOAD_ALL + #define MSG_FILAMENTUNLOAD_ALL _UxGT("Unload All") +#endif #ifndef MSG_INIT_SDCARD #define MSG_INIT_SDCARD _UxGT("Init. SD card") #endif @@ -918,19 +933,22 @@ #define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write") #endif #ifndef MSG_FILAMENT_CHANGE_HEADER - #define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") + #define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("PRINT PAUSED") +#endif +#ifndef MSG_FILAMENT_CHANGE_HEADER_LOAD + #define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("LOAD FILAMENT") +#endif +#ifndef MSG_FILAMENT_CHANGE_HEADER_UNLOAD + #define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("UNLOAD FILAMENT") #endif #ifndef MSG_FILAMENT_CHANGE_OPTION_HEADER #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") #endif -#ifndef MSG_FILAMENT_CHANGE_OPTION_EXTRUDE - #define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extrude more") +#ifndef MSG_FILAMENT_CHANGE_OPTION_PURGE + #define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purge more") #endif #ifndef MSG_FILAMENT_CHANGE_OPTION_RESUME - #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Resume print") -#endif -#ifndef MSG_FILAMENT_CHANGE_MINTEMP - #define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Minimum Temp is ") + #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continue") #endif #ifndef MSG_FILAMENT_CHANGE_NOZZLE #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozzle: ") @@ -973,9 +991,9 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wait for") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament load") #endif - #ifndef MSG_FILAMENT_CHANGE_EXTRUDE_1 - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Wait for") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("filament extrude") + #ifndef MSG_FILAMENT_CHANGE_PURGE_1 + #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Wait for") + #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("filament purge") #endif #ifndef MSG_FILAMENT_CHANGE_RESUME_1 #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print") @@ -997,8 +1015,8 @@ #ifndef MSG_FILAMENT_CHANGE_LOAD_1 #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Loading...") #endif - #ifndef MSG_FILAMENT_CHANGE_EXTRUDE_1 - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extruding...") + #ifndef MSG_FILAMENT_CHANGE_PURGE_1 + #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purging...") #endif #ifndef MSG_FILAMENT_CHANGE_RESUME_1 #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Resuming...") diff --git a/Marlin/src/lcd/language/language_es.h b/Marlin/src/lcd/language/language_es.h index 248ecb1931..6831038b28 100644 --- a/Marlin/src/lcd/language/language_es.h +++ b/Marlin/src/lcd/language/language_es.h @@ -226,12 +226,10 @@ #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("Escribe DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("IMPR. PAUSADA") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPR. PAUSADA") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPC. REINICIO:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extruir mas") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Resumir imp.") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Temp Minima es ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Boquilla: ") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando iniciar") @@ -254,8 +252,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filamento expulsado") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperado por") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Cargar filamento") -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Esperado por") -#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("Extruir filamento") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando imp.") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("para resumir") #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Oprima boton para") diff --git a/Marlin/src/lcd/language/language_eu.h b/Marlin/src/lcd/language/language_eu.h index 5be54c5468..33452312ea 100644 --- a/Marlin/src/lcd/language/language_eu.h +++ b/Marlin/src/lcd/language/language_eu.h @@ -225,12 +225,10 @@ #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("Idatzi DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("HARIZPIA ALDATU") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("HARIZPIA ALDATU") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ALDAKETA AUKERAK:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Gehiago estruitu") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Inprima. jarraitu") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Tenp Minimoa ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Pita: ") #endif // LANGUAGE_EU_H diff --git a/Marlin/src/lcd/language/language_fr.h b/Marlin/src/lcd/language/language_fr.h index 17e9da11b5..d3c67465ff 100644 --- a/Marlin/src/lcd/language/language_fr.h +++ b/Marlin/src/lcd/language/language_fr.h @@ -305,11 +305,7 @@ #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM sauv.") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("+ extrusion") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Reprendre impr.") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("La temp. minimum est ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Buse: ") #if LCD_HEIGHT >= 4 @@ -328,8 +324,6 @@ #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Patientez SVP...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("attente de") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("chargement filament") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("attente de") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extrusion filament") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("attente impression") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("pour reprendre") #else // LCD_HEIGHT < 4 @@ -338,7 +332,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejection...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserer et clic") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Chargement...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrusion...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reprise...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_fr_utf8.h b/Marlin/src/lcd/language/language_fr_utf8.h index ab328950f0..89db38a1d3 100644 --- a/Marlin/src/lcd/language/language_fr_utf8.h +++ b/Marlin/src/lcd/language/language_fr_utf8.h @@ -304,11 +304,7 @@ #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM sauv.") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("+ extrusion") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Reprendre impr.") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("La temp. minimum est ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Buse: ") #if LCD_HEIGHT >= 4 @@ -327,8 +323,6 @@ #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Patientez SVP...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("attente de") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("chargement filament") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("attente de") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extrusion filament") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("attente impression") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("pour reprendre") #else // LCD_HEIGHT < 4 @@ -337,7 +331,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejection...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insérer et clic") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Chargement...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrusion...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reprise...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_gl.h b/Marlin/src/lcd/language/language_gl.h index f8d50035e7..8ee3acbdd9 100644 --- a/Marlin/src/lcd/language/language_gl.h +++ b/Marlin/src/lcd/language/language_gl.h @@ -214,9 +214,6 @@ #define MSG_DAC_PERCENT _UxGT("Motor %") #define MSG_DAC_EEPROM_WRITE _UxGT("Garda DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extruir mais") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Segue traballo") #if LCD_HEIGHT >= 4 @@ -233,9 +230,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Agarde pola") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("carga do") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamento") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Agarde pola") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extrusion do") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("filamento") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Agarde para") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("seguir co") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("traballo") @@ -245,7 +239,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Descargando...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Introduza e click") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cargando...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extruindo...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Seguindo...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_hr.h b/Marlin/src/lcd/language/language_hr.h index 64de7492bf..0d435c9f09 100644 --- a/Marlin/src/lcd/language/language_hr.h +++ b/Marlin/src/lcd/language/language_hr.h @@ -214,9 +214,6 @@ #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extrudiraj više") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Nastavi print") #if LCD_HEIGHT >= 4 @@ -231,8 +228,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("za nastavak...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Pričekaj") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament load") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Pričekaj") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("filament extrude") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("to resume") #else // LCD_HEIGHT < 4 @@ -241,7 +236,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejecting...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert and Click") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Loading...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrudiranje...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Nastavljam...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h index fae438ce5b..f2986a4ff9 100644 --- a/Marlin/src/lcd/language/language_it.h +++ b/Marlin/src/lcd/language/language_it.h @@ -301,11 +301,9 @@ #define MSG_DAC_PERCENT _UxGT("Driver %") #define MSG_DAC_EEPROM_WRITE _UxGT("Scrivi DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("STAMPA IN PAUSA") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("STAMPA IN PAUSA") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPZIONI:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Estrudi ancora") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Riprendi stampa") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Temp minima è ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Ugello: ") #if LCD_HEIGHT >= 4 @@ -326,9 +324,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Attendere") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("il caricamento") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("del filamento") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Attendere") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("l'estrusione") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("del filamento") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Attendere") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("la ripresa") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("della stampa") @@ -339,7 +334,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserisci e premi") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Riscaldamento...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Caricamento...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Estrusione...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Ripresa...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_kana.h b/Marlin/src/lcd/language/language_kana.h index 200aed4ecf..b596078360 100644 --- a/Marlin/src/lcd/language/language_kana.h +++ b/Marlin/src/lcd/language/language_kana.h @@ -285,10 +285,7 @@ #else #define MSG_DAC_PERCENT "DAC\xbc\xad\xc2\xd8\xae\xb8" // "DACシュツリョク" ("Driver %") #endif -#define MSG_DAC_EEPROM_WRITE MSG_STORE_EPROM // "メモリヘカクノウ" ("DAC EEPROM Write") -#define MSG_FILAMENT_CHANGE_HEADER "PRINT PAUSED" -#define MSG_FILAMENT_CHANGE_OPTION_HEADER "RESUME OPTIONS:" -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "\xbb\xd7\xc6\xb5\xbc\xc0\xde\xbd" // "サラニオシダス" ("Extrude more") +#define MSG_DAC_EEPROM_WRITE MSG_STORE_EEPROM // "メモリヘカクノウ" ("DAC EEPROM Write") #define MSG_FILAMENT_CHANGE_OPTION_RESUME "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resume print") #if LCD_HEIGHT >= 4 @@ -301,8 +298,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_2 "\xb8\xd8\xaf\xb8\xbd\xd9\xc4\xbf\xde\xaf\xba\xb3\xbc\xcf\xbd" // "クリックスルトゾッコウシマス" ("and press button") #define MSG_FILAMENT_CHANGE_LOAD_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xbf\xb3\xc3\xdd\xc1\xad\xb3" // "フィラメントソウテンチュウ" ("Wait for") #define MSG_FILAMENT_CHANGE_LOAD_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("filament load") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xb5\xbc\xc0\xde\xbc\xc1\xad\xb3" // "フィラメントオシダシチュウ" ("Wait for") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("filament extrude") #define MSG_FILAMENT_CHANGE_RESUME_1 "\xcc\xdf\xd8\xdd\xc4\xa6\xbb\xb2\xb6\xb2\xbc\xcf\xbd" // "プリントヲサイカイシマス" ("Wait for print") #define MSG_FILAMENT_CHANGE_RESUME_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("to resume") #else // LCD_HEIGHT < 4 @@ -315,7 +310,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 "\xbf\xb3\xc6\xad\xb3\xbc\x2c\xb8\xd8\xaf\xb8\xbe\xd6" // "ソウニュウシ,クリックセヨ" ("Insert and Click") #endif #define MSG_FILAMENT_CHANGE_LOAD_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xbf\xb3\xc3\xdd\xc1\xad\xb3" // "フィラメントソウテンチュウ" ("Loading...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xb5\xbc\xc0\xde\xbc\xc1\xad\xb3" // "フィラメントオシダシチュウ" ("Extruding...") #define MSG_FILAMENT_CHANGE_RESUME_1 "\xcc\xdf\xd8\xdd\xc4\xa6\xbb\xb2\xb6\xb2\xbc\xcf\xbd" // "プリントヲサイカイシマス" ("Resuming...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_kana_utf8.h b/Marlin/src/lcd/language/language_kana_utf8.h index b07aa40977..248bf46eb7 100644 --- a/Marlin/src/lcd/language/language_kana_utf8.h +++ b/Marlin/src/lcd/language/language_kana_utf8.h @@ -204,10 +204,7 @@ #define MSG_INFO_PSU _UxGT("デンゲンシュベツ") // "Power Supply" #define MSG_DRIVE_STRENGTH _UxGT("モータークドウリョク") // "Drive Strength" #define MSG_DAC_PERCENT _UxGT("DACシュツリョク %") // "Driver %" -#define MSG_DAC_EEPROM_WRITE MSG_STORE_EPROM // "DAC EEPROM Write" -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("サラニオシダス") // "Extrude more" +#define MSG_DAC_EEPROM_WRITE MSG_STORE_EEPROM // "DAC EEPROM Write" #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("プリントサイカイ") // "Resume print" #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("コウカンヲカイシシマス") // "Wait for start" #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("シバラクオマチクダサイ") // "of the filament" @@ -217,8 +214,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("クリックスルトゾッコウシマス") // "and press button" #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("フィラメントソウテンチュウ") // "Wait for" #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("シバラクオマチクダサイ") // "filament load" -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("フィラメントオシダシチュウ") // "Wait for" -#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("シバラクオマチクダサイ") // "filament extrude" #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("プリントヲサイカイシマス") // "Wait for print" #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("シバラクオマチクダサイ") // "to resume" diff --git a/Marlin/src/lcd/language/language_nl.h b/Marlin/src/lcd/language/language_nl.h index 11f612de81..5283013c19 100644 --- a/Marlin/src/lcd/language/language_nl.h +++ b/Marlin/src/lcd/language/language_nl.h @@ -226,11 +226,7 @@ #define MSG_DRIVE_STRENGTH _UxGT("Motorstroom") #define MSG_DAC_PERCENT _UxGT("Driver %") //accepted English term in Dutch #define MSG_DAC_EEPROM_WRITE _UxGT("DAC Opslaan") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Extrudeer meer") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Hervat print") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Minimum Temp is ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozzle: ") //accepeted English term // // Filament Change screens show up to 3 lines on a 4-line display @@ -254,10 +250,7 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament te") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("laden") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("filament te") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("extruderen") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor print") + #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor print") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("om verder") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("te gaan") #else // LCD_HEIGHT < 4 @@ -273,8 +266,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("en druk knop") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("inladen...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extrudering") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("printing...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_pl-DOGM.h b/Marlin/src/lcd/language/language_pl-DOGM.h index e712185c61..b5584a6838 100644 --- a/Marlin/src/lcd/language/language_pl-DOGM.h +++ b/Marlin/src/lcd/language/language_pl-DOGM.h @@ -213,9 +213,8 @@ #define MSG_DAC_PERCENT _UxGT("Siła %") #define MSG_DAC_EEPROM_WRITE _UxGT("Zapisz DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("ZMIEŃ FILAMENT") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ZMIEŃ FILAMENT") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ZMIEŃ OPCJE:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Ekstruduj więcej") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Wznów drukowanie") #if LCD_HEIGHT >= 4 @@ -229,8 +228,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuować...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("włożenie filamentu") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Czekam na") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("ekstruzję filamentu") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku") #else // LCD_HEIGHT < 4 @@ -239,7 +236,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Włóż i naciśnij prz.") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ładowanie...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Ekstruzja...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_pl-HD44780.h b/Marlin/src/lcd/language/language_pl-HD44780.h index d14cf9d77a..3b25a5dd9a 100644 --- a/Marlin/src/lcd/language/language_pl-HD44780.h +++ b/Marlin/src/lcd/language/language_pl-HD44780.h @@ -215,9 +215,8 @@ #define MSG_DAC_PERCENT _UxGT("Sila %") #define MSG_DAC_EEPROM_WRITE _UxGT("Zapisz DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("ZMIEN FILAMENT") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ZMIEN FILAMENT") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ZMIEN OPCJE:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Ekstruduj wiecej") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Wznow drukowanie") #if LCD_HEIGHT >= 4 @@ -231,8 +230,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuowac...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("wlozenie filamentu") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Czekam na") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("ekstruzje filamentu") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku") #else // LCD_HEIGHT < 4 @@ -241,7 +238,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Wloz i nacisnij prz.") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ladowanie...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Ekstruzja...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...") #endif // LCD_HEIGHT < 4 @@ -256,8 +252,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuowac...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("wlozenie filamentu") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Czekam na") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("ekstruzje filamentu") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku") #else // LCD_HEIGHT < 4 @@ -266,7 +260,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Wloz i nacisnij prz.") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ladowanie...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Ekstruzja...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index 328198770d..27135a38db 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -296,11 +296,9 @@ #define MSG_DRIVE_STRENGTH _UxGT("Сила привода") #define MSG_DAC_PERCENT _UxGT("Привод %") #define MSG_DAC_EEPROM_WRITE _UxGT("Записи DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("ПЕЧАТЬ ОСТАНОВЛЕНА") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ПЕЧАТЬ ОСТАНОВЛЕНА") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ОПЦИИ ВОЗОБНОВЛЕНИЯ:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Выдавить ещё") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Возобновить печать") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Мин. температура") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Сопла: ") // // Filament Change screens show up to 3 lines on a 4-line display @@ -329,7 +327,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Вставь и нажми") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Нагрев...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Загрузка...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Выдавливание...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Возобновление...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_sk_utf8.h b/Marlin/src/lcd/language/language_sk_utf8.h index d7157ca41e..28a4660b65 100644 --- a/Marlin/src/lcd/language/language_sk_utf8.h +++ b/Marlin/src/lcd/language/language_sk_utf8.h @@ -305,11 +305,9 @@ #define MSG_DAC_PERCENT _UxGT("Motor %") #define MSG_DAC_EEPROM_WRITE _UxGT("Uložiť do EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PAUZA TLAČE") +#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("PAUZA TLAČE") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("MOŽN. POKRAČ.:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Ešte vytlačiť") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnoviť tlač") -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Min. teplota je ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ") #if LCD_HEIGHT >= 4 @@ -330,9 +328,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čakajte prosím") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedenie") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Čakajte prosím") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("na vytlačenie") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čakajte prosím") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračovanie") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tlače") @@ -343,7 +338,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, kliknite") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Ohrev...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádzanie...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Vytlačovanie...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračovanie...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_tr.h b/Marlin/src/lcd/language/language_tr.h index daaa4c56f7..b4b0cc37e8 100644 --- a/Marlin/src/lcd/language/language_tr.h +++ b/Marlin/src/lcd/language/language_tr.h @@ -228,12 +228,8 @@ #define MSG_DRIVE_STRENGTH _UxGT("Sürücü Gücü") // Sürücü Gücü #define MSG_DAC_PERCENT _UxGT("Sürücü %") // Sürücü % -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("Seçenekler:") // Seçenekler: -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Daha Akıt") // Daha Akıt #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Baskıyı sürdür") // Baskıyı sürdür -#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Min. Sıcaklık") // Min. Sıcaklık: #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozül: ") // Nozül: #if LCD_HEIGHT >= 4 @@ -252,8 +248,6 @@ #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Lütfen Bekleyin...") // Lütfen Bekleyin... #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Bekleniyor") // Bekleniyor #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filamanın yüklenmesi") // filamanın yüklenmesi - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Bekleniyor") // Bekleniyor - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("filaman akması") // filaman akması #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Baskının sürdürülmesini") // Baskının sürdürülmesini #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("bekle") // bekle #else // LCD_HEIGHT < 4 @@ -262,7 +256,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Çıkartılıyor...") // Çıkartılıyor... #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Yükle ve bas") // Yükle ve bas #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Yüklüyor...") // Yüklüyor... - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Akıtılıyor...") // Akıtılıyor... #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Sürdürülüyor...") // Sürdürülüyor... #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h index e687e49b26..8b92709af8 100644 --- a/Marlin/src/lcd/language/language_uk.h +++ b/Marlin/src/lcd/language/language_uk.h @@ -204,9 +204,6 @@ #define MSG_DAC_PERCENT _UxGT("% мотору") #define MSG_DAC_EEPROM_WRITE _UxGT("Запис ЦАП на ПЗП") -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Екструдувати") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Відновити друк") #if LCD_HEIGHT >= 4 @@ -221,9 +218,6 @@ #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("продовження...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Зачекайте на") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("ввід волокна") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Зачекайте на") - #define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("екструзію") - #define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("волокна") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Зачекайте на") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("відновлення") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("друку") @@ -233,7 +227,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Вивід...") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Вставте і нат.") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ввід...") - #define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Екструзія...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Відновлення...") #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_zh_CN.h b/Marlin/src/lcd/language/language_zh_CN.h index af5454b13a..30f4a75cdb 100644 --- a/Marlin/src/lcd/language/language_zh_CN.h +++ b/Marlin/src/lcd/language/language_zh_CN.h @@ -201,9 +201,6 @@ #define MSG_INFO_MAX_TEMP _UxGT("最高温度") //"Max Temp" #define MSG_INFO_PSU _UxGT("电源供应") //"Power Supply" -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("挤出更多") //"Extrude more" #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("恢复打印") //"Resume print" #if LCD_HEIGHT >= 4 @@ -219,9 +216,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("等待") //"Wait for" #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("进料") //"filament load" #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("") //"" -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("等待") //"Wait for" -#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("丝料挤出") //"filament extrude" -#define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("") //"" #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("等待打印") //"Wait for print" #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("恢复") //"to resume" #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("") //"" @@ -231,7 +225,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("退出中 ...") //"Ejecting..." #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入并单击") //"Insert and Click" #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("装载中 ...") //"Loading..." -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("挤出中 ...") //"Extruding..." #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("恢复中 ...") //"Resuming..." #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/language/language_zh_TW.h b/Marlin/src/lcd/language/language_zh_TW.h index 315f77f7f4..39b0e99444 100644 --- a/Marlin/src/lcd/language/language_zh_TW.h +++ b/Marlin/src/lcd/language/language_zh_TW.h @@ -201,9 +201,6 @@ #define MSG_INFO_MAX_TEMP _UxGT("最高溫度") //"Max Temp" #define MSG_INFO_PSU _UxGT("電源供應") //"Power Supply" -#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:") -#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("擠出更多") //"Extrude more" #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("恢復列印") //"Resume print" #if LCD_HEIGHT >= 4 @@ -219,9 +216,6 @@ #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("等待") //"Wait for" #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("進料") //"filament load" #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("") //"" -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("等待") //"Wait for" -#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("絲料擠出") //"filament extrude" -#define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("") //"" #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("等待列印") //"Wait for print" #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("恢復") //"to resume" #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("") //"" @@ -231,7 +225,6 @@ #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("退出中 ...") //"Ejecting..." #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入並點擊") //"Insert and Click" #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("載入中 ...") //"Loading..." -#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("擠出中 ...") //"Extruding..." #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("恢復中 ...") //"Resuming..." #endif // LCD_HEIGHT < 4 diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 28f80c5056..550c712630 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -39,6 +39,10 @@ #include "../Marlin.h" +#if ENABLED(ADVANCED_PAUSE_FEATURE) + #include "../feature/pause.h" +#endif + #if ENABLED(PRINTCOUNTER) && ENABLED(LCD_INFO_MENU) #include "../libs/duration_t.h" #endif @@ -183,7 +187,7 @@ uint16_t max_display_update_time = 0; void lcd_control_temperature_preheat_material2_settings_menu(); #endif - #if DISABLED(NO_VOLUMETRICS) + #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE) void lcd_control_filament_menu(); #endif @@ -201,14 +205,18 @@ uint16_t max_display_update_time = 0; #endif #if ENABLED(ADVANCED_PAUSE_FEATURE) - void lcd_advanced_pause_toocold_menu(); + #if E_STEPPERS > 1 || ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + void lcd_change_filament_menu(); + #else + void lcd_temp_menu_e0_filament_change(); + #endif void lcd_advanced_pause_option_menu(); void lcd_advanced_pause_init_message(); void lcd_advanced_pause_unload_message(); void lcd_advanced_pause_insert_message(); void lcd_advanced_pause_load_message(); void lcd_advanced_pause_heat_nozzle(); - void lcd_advanced_pause_extrude_message(); + void lcd_advanced_pause_purge_message(); void lcd_advanced_pause_resume_message(); #endif @@ -303,36 +311,40 @@ uint16_t max_display_update_time = 0; if (encoderLine == _thisItemNr && lcd_clicked) { \ lcd_clicked = false - #define _MENU_ITEM_PART_2(TYPE, LABEL, ...) \ + #define _MENU_ITEM_PART_2(TYPE, PLABEL, ...) \ menu_action_ ## TYPE(__VA_ARGS__); \ if (screen_changed) return; \ } \ if (lcdDrawUpdate) \ - lcd_implementation_drawmenu_ ## TYPE(encoderLine == _thisItemNr, _lcdLineNr, PSTR(LABEL), ## __VA_ARGS__); \ + lcd_implementation_drawmenu_ ## TYPE(encoderLine == _thisItemNr, _lcdLineNr, PLABEL, ## __VA_ARGS__); \ } \ ++_thisItemNr - #define MENU_ITEM(TYPE, LABEL, ...) do { \ + #define MENU_ITEM_P(TYPE, PLABEL, ...) do { \ _skipStatic = false; \ _MENU_ITEM_PART_1(TYPE, ## __VA_ARGS__); \ - _MENU_ITEM_PART_2(TYPE, LABEL, ## __VA_ARGS__); \ + _MENU_ITEM_PART_2(TYPE, PLABEL, ## __VA_ARGS__); \ }while(0) + #define MENU_ITEM(TYPE, LABEL, ...) MENU_ITEM_P(TYPE, PSTR(LABEL), ## __VA_ARGS__) + #define MENU_BACK(LABEL) MENU_ITEM(back, LABEL, 0) // Used to print static text with no visible cursor. // Parameters: label [, bool center [, bool invert [, char *value] ] ] - #define STATIC_ITEM(LABEL, ...) \ + #define STATIC_ITEM_P(LABEL, ...) \ if (_menuLineNr == _thisItemNr) { \ if (_skipStatic && encoderLine <= _thisItemNr) { \ encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; \ ++encoderLine; \ } \ if (lcdDrawUpdate) \ - lcd_implementation_drawmenu_static(_lcdLineNr, PSTR(LABEL), ## __VA_ARGS__); \ + lcd_implementation_drawmenu_static(_lcdLineNr, LABEL, ## __VA_ARGS__); \ } \ ++_thisItemNr + #define STATIC_ITEM(LABEL, ...) STATIC_ITEM_P(PSTR(LABEL), ## __VA_ARGS__) + #if ENABLED(ENCODER_RATE_MULTIPLIER) bool encoderRateMultiplierEnabled; @@ -343,11 +355,11 @@ uint16_t max_display_update_time = 0; /** * MENU_MULTIPLIER_ITEM generates drawing and handling code for a multiplier menu item */ - #define MENU_MULTIPLIER_ITEM(type, label, ...) do { \ - _MENU_ITEM_PART_1(type, ## __VA_ARGS__); \ + #define MENU_MULTIPLIER_ITEM(TYPE, LABEL, ...) do { \ + _MENU_ITEM_PART_1(TYPE, ## __VA_ARGS__); \ encoderRateMultiplierEnabled = true; \ lastEncoderMovementMillis = 0; \ - _MENU_ITEM_PART_2(type, label, ## __VA_ARGS__); \ + _MENU_ITEM_PART_2(TYPE, PSTR(LABEL), ## __VA_ARGS__); \ }while(0) #else // !ENCODER_RATE_MULTIPLIER @@ -355,14 +367,14 @@ uint16_t max_display_update_time = 0; #endif // !ENCODER_RATE_MULTIPLIER #define MENU_ITEM_DUMMY() do { _thisItemNr++; }while(0) - #define MENU_ITEM_EDIT(type, label, ...) MENU_ITEM(setting_edit_ ## type, label, PSTR(label), ## __VA_ARGS__) - #define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__) + #define MENU_ITEM_EDIT(TYPE, LABEL, ...) MENU_ITEM(setting_edit_ ## TYPE, LABEL, PSTR(LABEL), ## __VA_ARGS__) + #define MENU_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) MENU_ITEM(setting_edit_callback_ ## TYPE, LABEL, PSTR(LABEL), ## __VA_ARGS__) #if ENABLED(ENCODER_RATE_MULTIPLIER) - #define MENU_MULTIPLIER_ITEM_EDIT(type, label, ...) MENU_MULTIPLIER_ITEM(setting_edit_ ## type, label, PSTR(label), ## __VA_ARGS__) - #define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(type, label, ...) MENU_MULTIPLIER_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__) + #define MENU_MULTIPLIER_ITEM_EDIT(TYPE, LABEL, ...) MENU_MULTIPLIER_ITEM(setting_edit_ ## TYPE, LABEL, PSTR(LABEL), ## __VA_ARGS__) + #define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) MENU_MULTIPLIER_ITEM(setting_edit_callback_ ## TYPE, LABEL, PSTR(LABEL), ## __VA_ARGS__) #else // !ENCODER_RATE_MULTIPLIER - #define MENU_MULTIPLIER_ITEM_EDIT(type, label, ...) MENU_ITEM(setting_edit_ ## type, label, PSTR(label), ## __VA_ARGS__) - #define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__) + #define MENU_MULTIPLIER_ITEM_EDIT(TYPE, LABEL, ...) MENU_ITEM(setting_edit_ ## TYPE, LABEL, PSTR(LABEL), ## __VA_ARGS__) + #define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) MENU_ITEM(setting_edit_callback_ ## TYPE, LABEL, PSTR(LABEL), ## __VA_ARGS__) #endif // !ENCODER_RATE_MULTIPLIER /** @@ -1245,61 +1257,6 @@ void kill_screen(const char* lcd_msg) { #endif } - #if ENABLED(ADVANCED_PAUSE_FEATURE) - - void lcd_enqueue_filament_change( - #if EXTRUDERS > 1 - const uint8_t extruder - #endif - ) { - - #if ENABLED(PREVENT_COLD_EXTRUSION) - if (!DEBUGGING(DRYRUN) && thermalManager.tooColdToExtrude(active_extruder)) { - lcd_save_previous_screen(); - lcd_goto_screen(lcd_advanced_pause_toocold_menu); - return; - } - #endif - - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT); - - #if EXTRUDERS <= 1 - enqueue_and_echo_commands_P(PSTR("M600 B0")); - #else - char *command_M600; - switch (extruder) { - case 0: command_M600 = PSTR("M600 B0 T0"); break; - case 1: command_M600 = PSTR("M600 B0 T1"); break; - #if EXTRUDERS > 2 - case 2: command_M600 = PSTR("M600 B0 T2"); break; - #if EXTRUDERS > 3 - case 3: command_M600 = PSTR("M600 B0 T3"); break; - #if EXTRUDERS > 4 - case 4: command_M600 = PSTR("M600 B0 T4"); break; - #endif // EXTRUDERS > 4 - #endif // EXTRUDERS > 3 - #endif // EXTRUDERS > 2 - } - enqueue_and_echo_commands_P(command_M600); - #endif // EXTRUDERS > 1 - } - - #if EXTRUDERS > 1 - void lcd_enqueue_filament_change_e0() { lcd_enqueue_filament_change(0); } - void lcd_enqueue_filament_change_e1() { lcd_enqueue_filament_change(1); } - #if EXTRUDERS > 2 - void lcd_enqueue_filament_change_e2() { lcd_enqueue_filament_change(2); } - #if EXTRUDERS > 3 - void lcd_enqueue_filament_change_e3() { lcd_enqueue_filament_change(3); } - #if EXTRUDERS > 4 - void lcd_enqueue_filament_change_e4() { lcd_enqueue_filament_change(4); } - #endif // EXTRUDERS > 4 - #endif // EXTRUDERS > 3 - #endif // EXTRUDERS > 2 - #endif // EXTRUDERS > 1 - - #endif // ADVANCED_PAUSE_FEATURE - // First Fan Speed title in "Tune" and "Control>Temperature" menus #if FAN_COUNT > 0 && HAS_FAN0 #if FAN_COUNT > 1 @@ -1441,26 +1398,13 @@ void kill_screen(const char* lcd_msg) { // Change filament // #if ENABLED(ADVANCED_PAUSE_FEATURE) - #if EXTRUDERS > 1 - if (!thermalManager.tooColdToExtrude(0)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E1, lcd_enqueue_filament_change_e0); - if (!thermalManager.tooColdToExtrude(1)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E2, lcd_enqueue_filament_change_e1); - #if EXTRUDERS > 2 - if (!thermalManager.tooColdToExtrude(2)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E3, lcd_enqueue_filament_change_e2); - #if EXTRUDERS > 3 - if (!thermalManager.tooColdToExtrude(3)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E4, lcd_enqueue_filament_change_e3); - #if EXTRUDERS > 4 - if (!thermalManager.tooColdToExtrude(4)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E5, lcd_enqueue_filament_change_e4); - #endif // EXTRUDERS > 4 - #endif // EXTRUDERS > 3 - #endif // EXTRUDERS > 2 + #if E_STEPPERS == 1 && !ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + if (!thermalManager.targetTooColdToExtrude(active_extruder)) + MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600 B0")); + else + MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_temp_menu_e0_filament_change); #else - if (!thermalManager.tooColdToExtrude(active_extruder)) - MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change); + MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_change_filament_menu); #endif #endif @@ -2647,7 +2591,6 @@ void kill_screen(const char* lcd_msg) { // Set Home Offsets // MENU_ITEM(function, MSG_SET_HOME_OFFSETS, lcd_set_home_offsets); - //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0")); #endif // @@ -2660,26 +2603,13 @@ void kill_screen(const char* lcd_msg) { // #if ENABLED(ADVANCED_PAUSE_FEATURE) if (!IS_SD_FILE_OPEN) { - #if EXTRUDERS > 1 - if (!thermalManager.tooColdToExtrude(0)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E1, lcd_enqueue_filament_change_e0); - if (!thermalManager.tooColdToExtrude(1)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E2, lcd_enqueue_filament_change_e1); - #if EXTRUDERS > 2 - if (!thermalManager.tooColdToExtrude(2)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E3, lcd_enqueue_filament_change_e2); - #if EXTRUDERS > 3 - if (!thermalManager.tooColdToExtrude(3)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E4, lcd_enqueue_filament_change_e3); - #if EXTRUDERS > 4 - if (!thermalManager.tooColdToExtrude(4)) - MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E5, lcd_enqueue_filament_change_e4); - #endif // EXTRUDERS > 4 - #endif // EXTRUDERS > 3 - #endif // EXTRUDERS > 2 + #if E_STEPPERS == 1 && !ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + if (!thermalManager.targetTooColdToExtrude(active_extruder)) + MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600 B0")); + else + MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_temp_menu_e0_filament_change); #else - if (!thermalManager.tooColdToExtrude(active_extruder)) - MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change); + MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_change_filament_menu); #endif } #endif // ADVANCED_PAUSE_FEATURE @@ -3228,14 +3158,14 @@ void kill_screen(const char* lcd_msg) { MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu); MENU_ITEM(submenu, MSG_MOTION, lcd_control_motion_menu); - #if DISABLED(NO_VOLUMETRICS) + #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE) MENU_ITEM(submenu, MSG_FILAMENT, lcd_control_filament_menu); #elif ENABLED(LIN_ADVANCE) MENU_ITEM_EDIT(float3, MSG_ADVANCE_K, &planner.extruder_advance_k, 0, 999); #endif #if HAS_LCD_CONTRAST - MENU_ITEM_EDIT_CALLBACK(int3, MSG_CONTRAST, (int16_t*) &lcd_contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX, lcd_callback_set_contrast, true); + MENU_ITEM_EDIT_CALLBACK(int3, MSG_CONTRAST, &lcd_contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX, lcd_callback_set_contrast, true); #endif #if ENABLED(FWRETRACT) MENU_ITEM(submenu, MSG_RETRACT, lcd_control_retract_menu); @@ -3487,7 +3417,7 @@ void kill_screen(const char* lcd_msg) { #if DISABLED(SLIM_LCD_MENUS) - void _lcd_control_temperature_preheat_settings_menu(uint8_t material) { + void _lcd_control_temperature_preheat_settings_menu(const uint8_t material) { #if HOTENDS > 4 #define MINTEMP_ALL MIN5(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP, HEATER_4_MINTEMP) #define MAXTEMP_ALL MAX5(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP) @@ -3733,7 +3663,7 @@ void kill_screen(const char* lcd_msg) { END_MENU(); } - #if DISABLED(NO_VOLUMETRICS) + #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE) /** * * "Control" > "Filament" submenu @@ -3747,30 +3677,76 @@ void kill_screen(const char* lcd_msg) { MENU_ITEM_EDIT(float3, MSG_ADVANCE_K, &planner.extruder_advance_k, 0, 999); #endif - MENU_ITEM_EDIT_CALLBACK(bool, MSG_VOLUMETRIC_ENABLED, &parser.volumetric_enabled, planner.calculate_volumetric_multipliers); + #if DISABLED(NO_VOLUMETRICS) + MENU_ITEM_EDIT_CALLBACK(bool, MSG_VOLUMETRIC_ENABLED, &parser.volumetric_enabled, planner.calculate_volumetric_multipliers); - if (parser.volumetric_enabled) { - #if EXTRUDERS == 1 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5, 3.25, planner.calculate_volumetric_multipliers); - #else // EXTRUDERS > 1 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5, 3.25, planner.calculate_volumetric_multipliers); - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E1, &planner.filament_size[0], 1.5, 3.25, planner.calculate_volumetric_multipliers); - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E2, &planner.filament_size[1], 1.5, 3.25, planner.calculate_volumetric_multipliers); - #if EXTRUDERS > 2 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E3, &planner.filament_size[2], 1.5, 3.25, planner.calculate_volumetric_multipliers); + if (parser.volumetric_enabled) { + #if EXTRUDERS == 1 + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5, 3.25, planner.calculate_volumetric_multipliers); + #else // EXTRUDERS > 1 + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5, 3.25, planner.calculate_volumetric_multipliers); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E1, &planner.filament_size[0], 1.5, 3.25, planner.calculate_volumetric_multipliers); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E2, &planner.filament_size[1], 1.5, 3.25, planner.calculate_volumetric_multipliers); + #if EXTRUDERS > 2 + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E3, &planner.filament_size[2], 1.5, 3.25, planner.calculate_volumetric_multipliers); #if EXTRUDERS > 3 MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E4, &planner.filament_size[3], 1.5, 3.25, planner.calculate_volumetric_multipliers); #if EXTRUDERS > 4 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E5, &planner.filament_size[4], 1.5, 3.25, planner.calculate_volumetric_multipliers); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E5, &planner.filament_size[4], 1.5, 3.25, planner.calculate_volumetric_multipliers); + #endif // EXTRUDERS > 4 + #endif // EXTRUDERS > 3 + #endif // EXTRUDERS > 2 + #endif // EXTRUDERS > 1 + } + #endif + + #if ENABLED(ADVANCED_PAUSE_FEATURE) + const float extrude_maxlength = + #if ENABLED(PREVENT_LENGTHY_EXTRUDE) + EXTRUDE_MAXLENGTH + #else + 999.0f + #endif + ; + + #if EXTRUDERS == 1 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD, &filament_change_unload_length[0], 0.0, extrude_maxlength); + #else // EXTRUDERS > 1 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD, &filament_change_unload_length[active_extruder], 0.0, extrude_maxlength); + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E1, &filament_change_unload_length[0], 0.0, extrude_maxlength); + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E2, &filament_change_unload_length[1], 0.0, extrude_maxlength); + #if EXTRUDERS > 2 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E3, &filament_change_unload_length[2], 0.0, extrude_maxlength); + #if EXTRUDERS > 3 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E4, &filament_change_unload_length[3], 0.0, extrude_maxlength); + #if EXTRUDERS > 4 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E5, &filament_change_unload_length[4], 0.0, extrude_maxlength); #endif // EXTRUDERS > 4 #endif // EXTRUDERS > 3 #endif // EXTRUDERS > 2 #endif // EXTRUDERS > 1 - } + + #if EXTRUDERS == 1 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD, &filament_change_load_length[0], 0.0, extrude_maxlength); + #else // EXTRUDERS > 1 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD, &filament_change_load_length[active_extruder], 0.0, extrude_maxlength); + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD MSG_DIAM_E1, &filament_change_load_length[0], 0.0, extrude_maxlength); + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD MSG_DIAM_E2, &filament_change_load_length[1], 0.0, extrude_maxlength); + #if EXTRUDERS > 2 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD MSG_DIAM_E3, &filament_change_load_length[2], 0.0, extrude_maxlength); + #if EXTRUDERS > 3 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD MSG_DIAM_E4, &filament_change_load_length[3], 0.0, extrude_maxlength); + #if EXTRUDERS > 4 + MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD MSG_DIAM_E5, &filament_change_load_length[4], 0.0, extrude_maxlength); + #endif // EXTRUDERS > 4 + #endif // EXTRUDERS > 3 + #endif // EXTRUDERS > 2 + #endif // EXTRUDERS > 1 + #endif END_MENU(); } - #endif // !NO_VOLUMETRICS + #endif // !NO_VOLUMETRICS || ADVANCED_PAUSE_FEATURE /** * @@ -4127,12 +4103,258 @@ void kill_screen(const char* lcd_msg) { */ #if ENABLED(ADVANCED_PAUSE_FEATURE) + /** + * + * "Change Filament" > "Change/Unload/Load Filament" submenu + * + */ + static AdvancedPauseMode _change_filament_temp_mode; + static int8_t _change_filament_temp_extruder; + + static const char* _change_filament_temp_command() { + switch (_change_filament_temp_mode) { + case ADVANCED_PAUSE_MODE_LOAD_FILAMENT: + return PSTR("M701 T%d"); + case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT: + return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d"); + case ADVANCED_PAUSE_MODE_PAUSE_PRINT: + default: + return PSTR("M600 B0 T%d"); + } + return PSTR(MSG_FILAMENTCHANGE); + } + + void _change_filament_temp(const uint8_t index) { + char cmd[11]; + sprintf_P(cmd, _change_filament_temp_command(), _change_filament_temp_extruder); + thermalManager.setTargetHotend(index == 1 ? PREHEAT_1_TEMP_HOTEND : PREHEAT_2_TEMP_HOTEND, _change_filament_temp_extruder); + lcd_enqueue_command(cmd); + } + void _lcd_change_filament_temp_1_menu() { _change_filament_temp(1); } + void _lcd_change_filament_temp_2_menu() { _change_filament_temp(2); } + + static const char* change_filament_header(const AdvancedPauseMode mode) { + switch (mode) { + case ADVANCED_PAUSE_MODE_LOAD_FILAMENT: + return PSTR(MSG_FILAMENTLOAD); + case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT: + return PSTR(MSG_FILAMENTUNLOAD); + default: break; + } + return PSTR(MSG_FILAMENTCHANGE); + } + + void _lcd_temp_menu_filament_op(const AdvancedPauseMode mode, const int8_t extruder) { + _change_filament_temp_mode = mode; + _change_filament_temp_extruder = extruder; + START_MENU(); + if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), true, true); + MENU_BACK(MSG_FILAMENTCHANGE); + MENU_ITEM(submenu, MSG_PREHEAT_1, _lcd_change_filament_temp_1_menu); + MENU_ITEM(submenu, MSG_PREHEAT_2, _lcd_change_filament_temp_2_menu); + END_MENU(); + } + void lcd_temp_menu_e0_filament_change() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 0); } + void lcd_temp_menu_e0_filament_load() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 0); } + void lcd_temp_menu_e0_filament_unload() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 0); } + #if E_STEPPERS > 1 + void lcd_temp_menu_e1_filament_change() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 1); } + void lcd_temp_menu_e1_filament_load() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 1); } + void lcd_temp_menu_e1_filament_unload() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 1); } + #if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS) + void lcd_unload_filament_all_temp_menu() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, -1); } + #endif + #if E_STEPPERS > 2 + void lcd_temp_menu_e2_filament_change() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 2); } + void lcd_temp_menu_e2_filament_load() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 2); } + void lcd_temp_menu_e2_filament_unload() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 2); } + #if E_STEPPERS > 3 + void lcd_temp_menu_e3_filament_change() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 3); } + void lcd_temp_menu_e3_filament_load() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 3); } + void lcd_temp_menu_e3_filament_unload() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 3); } + #if E_STEPPERS > 4 + void lcd_temp_menu_e4_filament_change() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 4); } + void lcd_temp_menu_e4_filament_load() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 4); } + void lcd_temp_menu_e4_filament_unload() { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 4); } + #endif // E_STEPPERS > 4 + #endif // E_STEPPERS > 3 + #endif // E_STEPPERS > 2 + #endif // E_STEPPERS > 1 + + /** + * + * "Change Filament" submenu + * + */ + #if E_STEPPERS > 1 || ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + void lcd_change_filament_menu() { + START_MENU(); + MENU_BACK(MSG_PREPARE); + + // Change filament + #if E_STEPPERS == 1 + PGM_P msg0 = PSTR(MSG_FILAMENTCHANGE); + if (thermalManager.targetTooColdToExtrude(active_extruder)) + MENU_ITEM_P(submenu, msg0, lcd_temp_menu_e0_filament_change); + else + MENU_ITEM_P(gcode, msg0, PSTR("M600 B0")); + #else + PGM_P msg0 = PSTR(MSG_FILAMENTCHANGE " " MSG_E1); + PGM_P msg1 = PSTR(MSG_FILAMENTCHANGE " " MSG_E2); + if (thermalManager.targetTooColdToExtrude(0)) + MENU_ITEM_P(submenu, msg0, lcd_temp_menu_e0_filament_change); + else + MENU_ITEM_P(gcode, msg0, PSTR("M600 B0 T0")); + if (thermalManager.targetTooColdToExtrude(1)) + MENU_ITEM_P(submenu, msg1, lcd_temp_menu_e1_filament_change); + else + MENU_ITEM_P(gcode, msg1, PSTR("M600 B0 T1")); + #if E_STEPPERS > 2 + PGM_P msg2 = PSTR(MSG_FILAMENTCHANGE " " MSG_E3); + if (thermalManager.targetTooColdToExtrude(2)) + MENU_ITEM_P(submenu, msg2, lcd_temp_menu_e2_filament_change); + else + MENU_ITEM_P(gcode, msg2, PSTR("M600 B0 T2")); + #if E_STEPPERS > 3 + PGM_P msg3 = PSTR(MSG_FILAMENTCHANGE " " MSG_E4); + if (thermalManager.targetTooColdToExtrude(3)) + MENU_ITEM_P(submenu, msg3, lcd_temp_menu_e3_filament_change); + else + MENU_ITEM_P(gcode, msg3, PSTR("M600 B0 T3")); + #if E_STEPPERS > 4 + PGM_P msg4 = PSTR(MSG_FILAMENTCHANGE " " MSG_E5); + if (thermalManager.targetTooColdToExtrude(4)) + MENU_ITEM_P(submenu, msg4, lcd_temp_menu_e4_filament_change); + else + MENU_ITEM_P(gcode, msg4, PSTR("M600 B0 T4")); + #endif // E_STEPPERS > 4 + #endif // E_STEPPERS > 3 + #endif // E_STEPPERS > 2 + #endif // E_STEPPERS == 1 + + #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES) + if (!planner.movesplanned() && !IS_SD_FILE_OPEN) { + // Load filament + #if E_STEPPERS == 1 + PGM_P msg0 = PSTR(MSG_FILAMENTLOAD); + if (thermalManager.targetTooColdToExtrude(active_extruder)) + MENU_ITEM_P(submenu, msg0, lcd_temp_menu_e0_filament_load); + else + MENU_ITEM_P(gcode, msg0, PSTR("M701")); + #else + PGM_P msg0 = PSTR(MSG_FILAMENTLOAD " " MSG_E1); + PGM_P msg1 = PSTR(MSG_FILAMENTLOAD " " MSG_E2); + if (thermalManager.targetTooColdToExtrude(0)) + MENU_ITEM_P(submenu, msg0, lcd_temp_menu_e0_filament_load); + else + MENU_ITEM_P(gcode, msg0, PSTR("M701 T0")); + if (thermalManager.targetTooColdToExtrude(1)) + MENU_ITEM_P(submenu, msg1, lcd_temp_menu_e1_filament_load); + else + MENU_ITEM_P(gcode, msg1, PSTR("M701 T1")); + #if E_STEPPERS > 2 + PGM_P msg2 = PSTR(MSG_FILAMENTLOAD " " MSG_E3); + if (thermalManager.targetTooColdToExtrude(2)) + MENU_ITEM_P(submenu, msg2, lcd_temp_menu_e2_filament_load); + else + MENU_ITEM_P(gcode, msg2, PSTR("M701 T2")); + #if E_STEPPERS > 3 + PGM_P msg3 = PSTR(MSG_FILAMENTLOAD " " MSG_E4); + if (thermalManager.targetTooColdToExtrude(3)) + MENU_ITEM_P(submenu, msg3, lcd_temp_menu_e3_filament_load); + else + MENU_ITEM_P(gcode, msg3, PSTR("M701 T3")); + #if E_STEPPERS > 4 + PGM_P msg4 = PSTR(MSG_FILAMENTLOAD " " MSG_E5); + if (thermalManager.targetTooColdToExtrude(4)) + MENU_ITEM_P(submenu, msg4, lcd_temp_menu_e4_filament_load); + else + MENU_ITEM_P(gcode, msg4, PSTR("M701 T4")); + #endif // E_STEPPERS > 4 + #endif // E_STEPPERS > 3 + #endif // E_STEPPERS > 2 + #endif // E_STEPPERS == 1 + + // Unload filament + #if E_STEPPERS == 1 + if (!thermalManager.targetTooColdToExtrude(active_extruder)) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD, PSTR("M702")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD, lcd_temp_menu_e0_filament_unload); + #else + #if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS) + if (!thermalManager.targetTooColdToExtrude(0) + #if E_STEPPERS > 1 + && !thermalManager.targetTooColdToExtrude(1) + #if E_STEPPERS > 2 + && !thermalManager.targetTooColdToExtrude(2) + #if E_STEPPERS > 3 + && !thermalManager.targetTooColdToExtrude(3) + #if E_STEPPERS > 4 + && !thermalManager.targetTooColdToExtrude(4) + #endif // E_STEPPERS > 4 + #endif // E_STEPPERS > 3 + #endif // E_STEPPERS > 2 + #endif // E_STEPPERS > 1 + ) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD_ALL, PSTR("M702")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD_ALL, lcd_unload_filament_all_temp_menu); + #endif + if (!thermalManager.targetTooColdToExtrude(0)) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD " " MSG_E1, PSTR("M702 T0")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD " " MSG_E1, lcd_temp_menu_e0_filament_unload); + if (!thermalManager.targetTooColdToExtrude(1)) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD " " MSG_E2, PSTR("M702 T1")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD " " MSG_E2, lcd_temp_menu_e1_filament_unload); + #if E_STEPPERS > 2 + if (!thermalManager.targetTooColdToExtrude(2)) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD " " MSG_E3, PSTR("M702 T2")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD " " MSG_E3, lcd_temp_menu_e2_filament_unload); + #if E_STEPPERS > 3 + if (!thermalManager.targetTooColdToExtrude(3)) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD " " MSG_E4, PSTR("M702 T3")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD " " MSG_E4, lcd_temp_menu_e3_filament_unload); + #if E_STEPPERS > 4 + if (!thermalManager.targetTooColdToExtrude(4)) + MENU_ITEM(gcode, MSG_FILAMENTUNLOAD " " MSG_E5, PSTR("M702 T4")); + else + MENU_ITEM(submenu, MSG_FILAMENTUNLOAD " " MSG_E5, lcd_temp_menu_e4_filament_unload); + #endif // E_STEPPERS > 4 + #endif // E_STEPPERS > 3 + #endif // E_STEPPERS > 2 + #endif // E_STEPPERS == 1 + } + #endif + + END_MENU(); + } + #endif + + static AdvancedPauseMode advanced_pause_mode = ADVANCED_PAUSE_MODE_PAUSE_PRINT; + static uint8_t hotend_status_extruder = 0; + + static const char* advanced_pause_header() { + switch (advanced_pause_mode) { + case ADVANCED_PAUSE_MODE_LOAD_FILAMENT: + return PSTR(MSG_FILAMENT_CHANGE_HEADER_LOAD); + case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT: + return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD); + default: break; + } + return PSTR(MSG_FILAMENT_CHANGE_HEADER_PAUSE); + } + // Portions from STATIC_ITEM... #define HOTEND_STATUS_ITEM() do { \ if (_menuLineNr == _thisItemNr) { \ if (lcdDrawUpdate) { \ lcd_implementation_drawmenu_static(_lcdLineNr, PSTR(MSG_FILAMENT_CHANGE_NOZZLE), false, true); \ - lcd_implementation_hotend_status(_lcdLineNr); \ + lcd_implementation_hotend_status(_lcdLineNr, hotend_status_extruder); \ } \ if (_skipStatic && encoderLine <= _thisItemNr) { \ encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; \ @@ -4143,18 +4365,6 @@ void kill_screen(const char* lcd_msg) { ++_thisItemNr; \ }while(0) - void lcd_advanced_pause_toocold_menu() { - START_MENU(); - STATIC_ITEM(MSG_HEATING_FAILED_LCD, true, true); - STATIC_ITEM(MSG_FILAMENT_CHANGE_MINTEMP STRINGIFY(EXTRUDE_MINTEMP) ".", false, false); - MENU_BACK(MSG_BACK); - #if LCD_HEIGHT > 4 - STATIC_ITEM(" "); - #endif - HOTEND_STATUS_ITEM(); - END_MENU(); - } - void lcd_advanced_pause_resume_print() { advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_RESUME_PRINT; } @@ -4169,13 +4379,13 @@ void kill_screen(const char* lcd_msg) { STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false); #endif MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_advanced_pause_resume_print); - MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_EXTRUDE, lcd_advanced_pause_extrude_more); + MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_PURGE, lcd_advanced_pause_extrude_more); END_MENU(); } void lcd_advanced_pause_init_message() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1); #ifdef MSG_FILAMENT_CHANGE_INIT_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_2); @@ -4198,7 +4408,7 @@ void kill_screen(const char* lcd_msg) { void lcd_advanced_pause_unload_message() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1); #ifdef MSG_FILAMENT_CHANGE_UNLOAD_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_2); @@ -4221,7 +4431,7 @@ void kill_screen(const char* lcd_msg) { void lcd_advanced_pause_wait_for_nozzles_to_heat() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_1); #ifdef MSG_FILAMENT_CHANGE_HEATING_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_2); @@ -4238,7 +4448,7 @@ void kill_screen(const char* lcd_msg) { void lcd_advanced_pause_heat_nozzle() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_1); #ifdef MSG_FILAMENT_CHANGE_INSERT_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_2); @@ -4255,7 +4465,7 @@ void kill_screen(const char* lcd_msg) { void lcd_advanced_pause_insert_message() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1); #ifdef MSG_FILAMENT_CHANGE_INSERT_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_2); @@ -4278,7 +4488,7 @@ void kill_screen(const char* lcd_msg) { void lcd_advanced_pause_load_message() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1); #ifdef MSG_FILAMENT_CHANGE_LOAD_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_2); @@ -4299,18 +4509,18 @@ void kill_screen(const char* lcd_msg) { END_SCREEN(); } - void lcd_advanced_pause_extrude_message() { + void lcd_advanced_pause_purge_message() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); - STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_1); - #ifdef MSG_FILAMENT_CHANGE_EXTRUDE_2 - STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_2); + STATIC_ITEM_P(advanced_pause_header(), true, true); + STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_1); + #ifdef MSG_FILAMENT_CHANGE_PURGE_2 + STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_2); #define __FC_LINES_G 3 #else #define __FC_LINES_G 2 #endif - #ifdef MSG_FILAMENT_CHANGE_EXTRUDE_3 - STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_3); + #ifdef MSG_FILAMENT_CHANGE_PURGE_3 + STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_3); #define _FC_LINES_G (__FC_LINES_G + 1) #else #define _FC_LINES_G __FC_LINES_G @@ -4324,7 +4534,7 @@ void kill_screen(const char* lcd_msg) { void lcd_advanced_pause_resume_message() { START_SCREEN(); - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); + STATIC_ITEM_P(advanced_pause_header(), true, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1); #ifdef MSG_FILAMENT_CHANGE_RESUME_2 STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_2); @@ -4335,49 +4545,38 @@ void kill_screen(const char* lcd_msg) { END_SCREEN(); } - void lcd_advanced_pause_show_message(const AdvancedPauseMessage message) { + FORCE_INLINE screenFunc_t ap_message_screen(const AdvancedPauseMessage message) { switch (message) { - case ADVANCED_PAUSE_MESSAGE_INIT: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_init_message); - break; - case ADVANCED_PAUSE_MESSAGE_UNLOAD: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_unload_message); - break; - case ADVANCED_PAUSE_MESSAGE_INSERT: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_insert_message); - break; - case ADVANCED_PAUSE_MESSAGE_LOAD: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_load_message); - break; - case ADVANCED_PAUSE_MESSAGE_EXTRUDE: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_extrude_message); - break; - case ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_heat_nozzle); - break; - case ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_wait_for_nozzles_to_heat); - break; - case ADVANCED_PAUSE_MESSAGE_OPTION: - defer_return_to_status = true; - advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR; - lcd_goto_screen(lcd_advanced_pause_option_menu); - break; - case ADVANCED_PAUSE_MESSAGE_RESUME: - defer_return_to_status = true; - lcd_goto_screen(lcd_advanced_pause_resume_message); - break; + case ADVANCED_PAUSE_MESSAGE_INIT: return lcd_advanced_pause_init_message; + case ADVANCED_PAUSE_MESSAGE_UNLOAD: return lcd_advanced_pause_unload_message; + case ADVANCED_PAUSE_MESSAGE_INSERT: return lcd_advanced_pause_insert_message; + case ADVANCED_PAUSE_MESSAGE_LOAD: return lcd_advanced_pause_load_message; + case ADVANCED_PAUSE_MESSAGE_PURGE: return lcd_advanced_pause_purge_message; + case ADVANCED_PAUSE_MESSAGE_RESUME: return lcd_advanced_pause_resume_message; + case ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE: return lcd_advanced_pause_heat_nozzle; + case ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT: return lcd_advanced_pause_wait_for_nozzles_to_heat; + case ADVANCED_PAUSE_MESSAGE_OPTION: advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR; + return lcd_advanced_pause_option_menu; case ADVANCED_PAUSE_MESSAGE_STATUS: - lcd_return_to_status(); - break; + default: break; } + return NULL; + } + + void lcd_advanced_pause_show_message( + const AdvancedPauseMessage message, + const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/, + const uint8_t extruder/*=active_extruder*/ + ) { + advanced_pause_mode = mode; + hotend_status_extruder = extruder; + const screenFunc_t next_screen = ap_message_screen(message); + if (next_screen) { + defer_return_to_status = true; + lcd_goto_screen(next_screen); + } + else + lcd_return_to_status(); } #endif // ADVANCED_PAUSE_FEATURE @@ -4738,7 +4937,7 @@ void lcd_update() { if (UBL_CONDITION && LCD_CLICKED) { if (!wait_for_unclick) { // If not waiting for a debounce release: wait_for_unclick = true; // Set debounce flag to ignore continous clicks - lcd_clicked = !wait_for_user && !no_reentry; // Flag the click if allowed + lcd_clicked = !wait_for_user && !no_reentry; // Keep the click if not waiting for a user-click wait_for_user = false; // Any click clears wait for user lcd_quick_feedback(); // Always make a click sound } diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index 23148ae351..98e8ffa134 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -29,6 +29,10 @@ #include "../Marlin.h" + #if ENABLED(ADVANCED_PAUSE_FEATURE) + #include "../feature/pause.h" + #endif + #if ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(G26_MESH_VALIDATION) extern bool lcd_external_control; #else @@ -116,20 +120,11 @@ void lcd_completion_feedback(const bool good=true); #if ENABLED(ADVANCED_PAUSE_FEATURE) - enum AdvancedPauseMessage { - ADVANCED_PAUSE_MESSAGE_INIT, - ADVANCED_PAUSE_MESSAGE_UNLOAD, - ADVANCED_PAUSE_MESSAGE_INSERT, - ADVANCED_PAUSE_MESSAGE_LOAD, - ADVANCED_PAUSE_MESSAGE_EXTRUDE, - ADVANCED_PAUSE_MESSAGE_OPTION, - ADVANCED_PAUSE_MESSAGE_RESUME, - ADVANCED_PAUSE_MESSAGE_STATUS, - ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE, - ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT - }; - void lcd_advanced_pause_show_message(const AdvancedPauseMessage message); - #endif + extern uint8_t active_extruder; + void lcd_advanced_pause_show_message(const AdvancedPauseMessage message, + const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT, + const uint8_t extruder=active_extruder); + #endif // ADVANCED_PAUSE_FEATURE #if ENABLED(G26_MESH_VALIDATION) void lcd_chirp(); diff --git a/Marlin/src/lcd/ultralcd_impl_DOGM.h b/Marlin/src/lcd/ultralcd_impl_DOGM.h index 27cfc8d4f4..cf1719297f 100644 --- a/Marlin/src/lcd/ultralcd_impl_DOGM.h +++ b/Marlin/src/lcd/ultralcd_impl_DOGM.h @@ -773,7 +773,7 @@ static void lcd_implementation_status_screen() { #if ENABLED(ADVANCED_PAUSE_FEATURE) - static void lcd_implementation_hotend_status(const uint8_t row) { + static void lcd_implementation_hotend_status(const uint8_t row, const uint8_t extruder=active_extruder) { row_y1 = row * row_height + 1; row_y2 = row_y1 + row_height - 1; @@ -781,13 +781,13 @@ static void lcd_implementation_status_screen() { u8g.setPrintPos(LCD_PIXEL_WIDTH - 11 * (DOG_CHAR_WIDTH), row_y2); lcd_print('E'); - lcd_print((char)('1' + active_extruder)); + lcd_print((char)('1' + extruder)); lcd_print(' '); - lcd_print(itostr3(thermalManager.degHotend(active_extruder))); + lcd_print(itostr3(thermalManager.degHotend(extruder))); lcd_print('/'); - if (lcd_blink() || !thermalManager.is_heater_idle(active_extruder)) - lcd_print(itostr3(thermalManager.degTargetHotend(active_extruder))); + if (lcd_blink() || !thermalManager.is_heater_idle(extruder)) + lcd_print(itostr3(thermalManager.degTargetHotend(extruder))); } #endif // ADVANCED_PAUSE_FEATURE diff --git a/Marlin/src/lcd/ultralcd_impl_HD44780.h b/Marlin/src/lcd/ultralcd_impl_HD44780.h index 72f2574b81..0331af6819 100644 --- a/Marlin/src/lcd/ultralcd_impl_HD44780.h +++ b/Marlin/src/lcd/ultralcd_impl_HD44780.h @@ -803,7 +803,6 @@ static void lcd_implementation_status_screen() { // If the first line has two extruder temps, // show more temperatures on the next line - // instead of #if HOTENDS > 2 || (HOTENDS > 1 && TEMP_SENSOR_BED) @@ -954,10 +953,10 @@ static void lcd_implementation_status_screen() { #if ENABLED(ADVANCED_PAUSE_FEATURE) - static void lcd_implementation_hotend_status(const uint8_t row) { + static void lcd_implementation_hotend_status(const uint8_t row, const uint8_t extruder=active_extruder) { if (row < LCD_HEIGHT) { lcd.setCursor(LCD_WIDTH - 9, row); - _draw_heater_status(active_extruder, LCD_STR_THERMOMETER[0], lcd_blink()); + _draw_heater_status(extruder, LCD_STR_THERMOMETER[0], lcd_blink()); } } diff --git a/Marlin/src/libs/nozzle.cpp b/Marlin/src/libs/nozzle.cpp index 93ed937d66..9d62cf3912 100644 --- a/Marlin/src/libs/nozzle.cpp +++ b/Marlin/src/libs/nozzle.cpp @@ -162,7 +162,7 @@ #if ENABLED(NOZZLE_PARK_FEATURE) - void Nozzle::park(const uint8_t &z_action, const point_t &park /*= NOZZLE_PARK_POINT*/) { + void Nozzle::park(const uint8_t z_action, const point_t &park /*= NOZZLE_PARK_POINT*/) { const float fr_xy = NOZZLE_PARK_XY_FEEDRATE; const float fr_z = NOZZLE_PARK_Z_FEEDRATE; diff --git a/Marlin/src/libs/nozzle.h b/Marlin/src/libs/nozzle.h index 4629d7b948..3adf6f3ac8 100644 --- a/Marlin/src/libs/nozzle.h +++ b/Marlin/src/libs/nozzle.h @@ -86,7 +86,7 @@ class Nozzle { #if ENABLED(NOZZLE_PARK_FEATURE) - static void park(const uint8_t &z_action, const point_t &park = NOZZLE_PARK_POINT) _Os; + static void park(const uint8_t z_action, const point_t &park=NOZZLE_PARK_POINT) _Os; #endif }; diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index 9cc2b66782..5b986e9e41 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -36,13 +36,13 @@ * */ -#define EEPROM_VERSION "V47" +#define EEPROM_VERSION "V48" // Change EEPROM version if these are changed: #define EEPROM_OFFSET 100 /** - * V47 EEPROM Layout: + * V48 EEPROM Layout: * * 100 Version (char x4) * 104 EEPROM CRC16 (uint16_t) @@ -139,7 +139,7 @@ * * Volumetric Extrusion: 21 bytes * 539 M200 D parser.volumetric_enabled (bool) - * 540 M200 T D planner.filament_size (float x5) (T0..3) + * 540 M200 T D planner.filament_size (float x5) (T0..4) * * HAS_TRINAMIC: 22 bytes * 560 M906 X Stepper X current (uint16_t) @@ -154,7 +154,7 @@ * 578 M906 E3 Stepper E3 current (uint16_t) * 580 M906 E4 Stepper E4 current (uint16_t) * - * SENSORLESS HOMING 4 bytes + * SENSORLESS_HOMING: 4 bytes * 582 M914 X Stepper X and X2 threshold (int16_t) * 584 M914 Y Stepper Y and Y2 threshold (int16_t) * @@ -167,7 +167,7 @@ * 598 M907 Z Stepper Z current (uint32_t) * 602 M907 E Stepper E current (uint32_t) * - * CNC_COORDINATE_SYSTEMS 108 bytes + * CNC_COORDINATE_SYSTEMS: 108 bytes * 606 G54-G59.3 coordinate_system (float x 27) * * SKEW_CORRECTION: 12 bytes @@ -175,8 +175,12 @@ * 718 M852 J planner.xz_skew_factor (float) * 722 M852 K planner.yz_skew_factor (float) * - * 726 Minimum end-point - * 2255 (726 + 208 + 36 + 9 + 288 + 988) Maximum end-point + * ADVANCED_PAUSE_FEATURE: 40 bytes + * 726 M603 T U filament_change_unload_length (float x 5) (T0..4) + * 746 M603 T L filament_change_load_length (float x 5) (T0..4) + * + * 766 Minimum end-point + * 2295 (766 + 208 + 36 + 9 + 288 + 988) Maximum end-point * * ======================================================================== * meshes_begin (between max and min end-point, directly above) @@ -698,6 +702,23 @@ void MarlinSettings::postprocess() { for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy); #endif + // + // Advanced Pause filament load & unload lengths + // + #if ENABLED(ADVANCED_PAUSE_FEATURE) + for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) { + if (q < COUNT(filament_change_unload_length)) dummy = filament_change_unload_length[q]; + EEPROM_WRITE(dummy); + } + for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) { + if (q < COUNT(filament_change_load_length)) dummy = filament_change_load_length[q]; + EEPROM_WRITE(dummy); + } + #else + dummy = 0.0f; + for (uint8_t q = MAX_EXTRUDERS * 2; q--;) EEPROM_WRITE(dummy); + #endif + if (!eeprom_error) { #if ENABLED(EEPROM_CHITCHAT) const int eeprom_size = eeprom_index; @@ -1183,6 +1204,23 @@ void MarlinSettings::postprocess() { for (uint8_t q = 3; q--;) EEPROM_READ(dummy); #endif + // + // Advanced Pause filament load & unload lengths + // + + #if ENABLED(ADVANCED_PAUSE_FEATURE) + for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) { + EEPROM_READ(dummy); + if (q < COUNT(filament_change_unload_length)) filament_change_unload_length[q] = dummy; + } + for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) { + EEPROM_READ(dummy); + if (q < COUNT(filament_change_load_length)) filament_change_load_length[q] = dummy; + } + #else + for (uint8_t q = MAX_EXTRUDERS * 2; q--;) EEPROM_READ(dummy); + #endif + if (working_crc == stored_crc) { postprocess(); #if ENABLED(EEPROM_CHITCHAT) @@ -1593,6 +1631,13 @@ void MarlinSettings::reset() { #endif #endif + #if ENABLED(ADVANCED_PAUSE_FEATURE) + for (uint8_t e = 0; e < E_STEPPERS; e++) { + filament_change_unload_length[e] = FILAMENT_CHANGE_UNLOAD_LENGTH; + filament_change_load_length[e] = FILAMENT_CHANGE_LOAD_LENGTH; + } + #endif + postprocess(); #if ENABLED(EEPROM_CHITCHAT) @@ -1804,36 +1849,35 @@ void MarlinSettings::reset() { } #endif - #if ENABLED(MESH_BED_LEVELING) + /** + * Bed Leveling + */ + #if HAS_LEVELING - if (!forReplay) { - CONFIG_ECHO_START; - SERIAL_ECHOLNPGM("Mesh Bed Leveling:"); - } - CONFIG_ECHO_START; - SERIAL_ECHOPAIR(" M420 S", leveling_is_valid() ? 1 : 0); - #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) - SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(planner.z_fade_height)); - #endif - SERIAL_EOL(); - for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) { - for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) { + #if ENABLED(MESH_BED_LEVELING) + + if (!forReplay) { CONFIG_ECHO_START; - SERIAL_ECHOPAIR(" G29 S3 X", (int)px + 1); - SERIAL_ECHOPAIR(" Y", (int)py + 1); - SERIAL_ECHOPGM(" Z"); - SERIAL_PROTOCOL_F(LINEAR_UNIT(mbl.z_values[px][py]), 5); - SERIAL_EOL(); + SERIAL_ECHOLNPGM("Mesh Bed Leveling:"); } - } - #elif ENABLED(AUTO_BED_LEVELING_UBL) + #elif ENABLED(AUTO_BED_LEVELING_UBL) + + if (!forReplay) { + CONFIG_ECHO_START; + ubl.echo_name(); + SERIAL_ECHOLNPGM(":"); + } + + #elif HAS_ABL + + if (!forReplay) { + CONFIG_ECHO_START; + SERIAL_ECHOLNPGM("Auto Bed Leveling:"); + } + + #endif - if (!forReplay) { - CONFIG_ECHO_START; - ubl.echo_name(); - SERIAL_ECHOLNPGM(":"); - } CONFIG_ECHO_START; SERIAL_ECHOPAIR(" M420 S", planner.leveling_active ? 1 : 0); #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) @@ -1841,29 +1885,32 @@ void MarlinSettings::reset() { #endif SERIAL_EOL(); - if (!forReplay) { - SERIAL_EOL(); - ubl.report_state(); + #if ENABLED(MESH_BED_LEVELING) - SERIAL_ECHOLNPAIR("\nActive Mesh Slot: ", ubl.storage_slot); - SERIAL_ECHOPAIR("EEPROM can hold ", calc_num_meshes()); - SERIAL_ECHOLNPGM(" meshes.\n"); - } + for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) { + for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) { + CONFIG_ECHO_START; + SERIAL_ECHOPAIR(" G29 S3 X", (int)px + 1); + SERIAL_ECHOPAIR(" Y", (int)py + 1); + SERIAL_ECHOPGM(" Z"); + SERIAL_PROTOCOL_F(LINEAR_UNIT(mbl.z_values[px][py]), 5); + SERIAL_EOL(); + } + } - #elif HAS_ABL + #elif ENABLED(AUTO_BED_LEVELING_UBL) + + if (!forReplay) { + SERIAL_EOL(); + ubl.report_state(); + SERIAL_ECHOLNPAIR("\nActive Mesh Slot: ", ubl.storage_slot); + SERIAL_ECHOPAIR("EEPROM can hold ", calc_num_meshes()); + SERIAL_ECHOLNPGM(" meshes.\n"); + } - if (!forReplay) { - CONFIG_ECHO_START; - SERIAL_ECHOLNPGM("Auto Bed Leveling:"); - } - CONFIG_ECHO_START; - SERIAL_ECHOPAIR(" M420 S", planner.leveling_active ? 1 : 0); - #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) - SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(planner.z_fade_height)); #endif - SERIAL_EOL(); - #endif + #endif // HAS_LEVELING #if ENABLED(DELTA) if (!forReplay) { @@ -2045,7 +2092,7 @@ void MarlinSettings::reset() { /** * TMC2130 stepper driver current */ - #if ENABLED(HAVE_TMC2130) + #if HAS_TRINAMIC if (!forReplay) { CONFIG_ECHO_START; SERIAL_ECHOLNPGM("Stepper driver current:"); @@ -2091,7 +2138,7 @@ void MarlinSettings::reset() { /** * TMC2130 Sensorless homing thresholds */ - #if ENABLED(HAVE_TMC2130) && ENABLED(SENSORLESS_HOMING) + #if ENABLED(SENSORLESS_HOMING) if (!forReplay) { CONFIG_ECHO_START; SERIAL_ECHOLNPGM("Sensorless homing threshold:"); @@ -2137,6 +2184,42 @@ void MarlinSettings::reset() { SERIAL_ECHOPAIR(" E", stepper.motor_current_setting[2]); SERIAL_EOL(); #endif + + /** + * Advanced Pause filament load & unload lengths + */ + #if ENABLED(ADVANCED_PAUSE_FEATURE) + if (!forReplay) { + CONFIG_ECHO_START; + SERIAL_ECHOLNPGM("Filament load/unload lengths:"); + } + CONFIG_ECHO_START; + #if EXTRUDERS == 1 + SERIAL_ECHOPAIR(" M603 L", LINEAR_UNIT(filament_change_load_length[0])); + SERIAL_ECHOLNPAIR(" U", LINEAR_UNIT(filament_change_unload_length[0])); + #else + SERIAL_ECHOPAIR(" M603 T0 L", LINEAR_UNIT(filament_change_load_length[0])); + SERIAL_ECHOLNPAIR(" U", LINEAR_UNIT(filament_change_unload_length[0])); + CONFIG_ECHO_START; + SERIAL_ECHOPAIR(" M603 T1 L", LINEAR_UNIT(filament_change_load_length[1])); + SERIAL_ECHOLNPAIR(" U", LINEAR_UNIT(filament_change_unload_length[1])); + #if EXTRUDERS > 2 + CONFIG_ECHO_START; + SERIAL_ECHOPAIR(" M603 T2 L", LINEAR_UNIT(filament_change_load_length[2])); + SERIAL_ECHOLNPAIR(" U", LINEAR_UNIT(filament_change_unload_length[2])); + #if EXTRUDERS > 3 + CONFIG_ECHO_START; + SERIAL_ECHOPAIR(" M603 T3 L", LINEAR_UNIT(filament_change_load_length[3])); + SERIAL_ECHOLNPAIR(" U", LINEAR_UNIT(filament_change_unload_length[3])); + #if EXTRUDERS > 4 + CONFIG_ECHO_START; + SERIAL_ECHOPAIR(" M603 T4 L", LINEAR_UNIT(filament_change_load_length[4])); + SERIAL_ECHOLNPAIR(" U", LINEAR_UNIT(filament_change_unload_length[4])); + #endif // EXTRUDERS > 4 + #endif // EXTRUDERS > 3 + #endif // EXTRUDERS > 2 + #endif // EXTRUDERS == 1 + #endif // ADVANCED_PAUSE_FEATURE } #endif // !DISABLE_M503