From 74cd6cb4fc90e4c483e7a97a313c0257790f1375 Mon Sep 17 00:00:00 2001 From: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Date: Sun, 7 Oct 2018 18:06:14 -0400 Subject: [PATCH] Single nozzle filament change (#11994) --- Marlin/Configuration.h | 12 +++ Marlin/src/config/default/Configuration.h | 12 +++ .../AlephObjects/TAZ4/Configuration.h | 12 +++ .../AliExpress/CL-260/Configuration.h | 12 +++ .../config/examples/Anet/A2/Configuration.h | 12 +++ .../examples/Anet/A2plus/Configuration.h | 12 +++ .../config/examples/Anet/A6/Configuration.h | 12 +++ .../config/examples/Anet/A8/Configuration.h | 12 +++ .../examples/Azteeg/X5GT/Configuration.h | 12 +++ .../BIBO/TouchX/cyclops/Configuration.h | 12 +++ .../BIBO/TouchX/default/Configuration.h | 12 +++ .../examples/BQ/Hephestos/Configuration.h | 12 +++ .../examples/BQ/Hephestos_2/Configuration.h | 12 +++ .../config/examples/BQ/WITBOX/Configuration.h | 12 +++ .../config/examples/Cartesio/Configuration.h | 12 +++ .../examples/Creality/CR-10/Configuration.h | 12 +++ .../examples/Creality/CR-10S/Configuration.h | 12 +++ .../Creality/CR-10mini/Configuration.h | 12 +++ .../examples/Creality/CR-8/Configuration.h | 12 +++ .../examples/Creality/Ender-2/Configuration.h | 12 +++ .../examples/Creality/Ender-3/Configuration.h | 12 +++ .../examples/Creality/Ender-4/Configuration.h | 12 +++ .../examples/Einstart-S/Configuration.h | 12 +++ .../src/config/examples/Felix/Configuration.h | 12 +++ .../examples/Felix/DUAL/Configuration.h | 12 +++ .../FolgerTech/i3-2020/Configuration.h | 12 +++ .../examples/Formbot/Raptor/Configuration.h | 12 +++ .../examples/Formbot/T_Rex_2+/Configuration.h | 12 +++ .../examples/Formbot/T_Rex_3/Configuration.h | 12 +++ .../examples/Geeetech/GT2560/Configuration.h | 12 +++ .../Geeetech/I3_Pro_X-GT2560/Configuration.h | 12 +++ .../Geeetech/MeCreator2/Configuration.h | 12 +++ .../Prusa i3 Pro B/bltouch/Configuration.h | 12 +++ .../Prusa i3 Pro B/noprobe/Configuration.h | 12 +++ .../Geeetech/Prusa i3 Pro C/Configuration.h | 12 +++ .../Geeetech/Prusa i3 Pro W/Configuration.h | 12 +++ .../examples/Infitary/i3-M508/Configuration.h | 12 +++ .../examples/JGAurora/A5/Configuration.h | 12 +++ .../examples/MakerParts/Configuration.h | 12 +++ .../examples/Malyan/M150/Configuration.h | 12 +++ .../examples/Malyan/M200/Configuration.h | 12 +++ .../Micromake/C1/basic/Configuration.h | 12 +++ .../Micromake/C1/enhanced/Configuration.h | 12 +++ .../config/examples/Mks/Sbase/Configuration.h | 12 +++ .../examples/RepRapPro/Huxley/Configuration.h | 12 +++ .../RepRapWorld/Megatronics/Configuration.h | 12 +++ .../config/examples/RigidBot/Configuration.h | 12 +++ .../src/config/examples/SCARA/Configuration.h | 12 +++ .../config/examples/STM32F10/Configuration.h | 12 +++ .../config/examples/STM32F4/Configuration.h | 12 +++ .../examples/Sanguinololu/Configuration.h | 12 +++ .../config/examples/TheBorg/Configuration.h | 12 +++ .../config/examples/TinyBoy2/Configuration.h | 12 +++ .../config/examples/Tronxy/X1/Configuration.h | 12 +++ .../examples/Tronxy/X3A/Configuration.h | 12 +++ .../examples/Tronxy/X5S/Configuration.h | 12 +++ .../examples/Tronxy/XY100/Configuration.h | 12 +++ .../UltiMachine/Archim2/Configuration.h | 12 +++ .../examples/Velleman/K8200/Configuration.h | 12 +++ .../examples/Velleman/K8400/Configuration.h | 12 +++ .../Velleman/K8400/Dual-head/Configuration.h | 12 +++ .../Wanhao/Duplicator 6/Configuration.h | 12 +++ .../examples/adafruit/ST7565/Configuration.h | 12 +++ .../delta/Anycubic/Kossel/Configuration.h | 12 +++ .../FLSUN/auto_calibrate/Configuration.h | 12 +++ .../delta/FLSUN/kossel/Configuration.h | 12 +++ .../delta/FLSUN/kossel_mini/Configuration.h | 12 +++ .../delta/Hatchbox_Alpha/Configuration.h | 12 +++ .../examples/delta/generic/Configuration.h | 12 +++ .../delta/kossel_mini/Configuration.h | 12 +++ .../examples/delta/kossel_pro/Configuration.h | 12 +++ .../examples/delta/kossel_xl/Configuration.h | 12 +++ .../examples/gCreate/gMax1.5+/Configuration.h | 12 +++ .../config/examples/makibox/Configuration.h | 12 +++ .../examples/stm32f103ret6/Configuration.h | 12 +++ .../examples/tvrrug/Round2/Configuration.h | 12 +++ .../src/config/examples/wt150/Configuration.h | 12 +++ Marlin/src/feature/pause.cpp | 2 +- Marlin/src/feature/pause.h | 2 + Marlin/src/gcode/config/M217.cpp | 63 +++++++++++ Marlin/src/gcode/gcode.cpp | 4 + Marlin/src/gcode/gcode.h | 5 + Marlin/src/gcode/temperature/M104_M109.cpp | 29 +++-- Marlin/src/gcode/temperature/M106_M107.cpp | 25 ++++- Marlin/src/inc/Conditionals_post.h | 22 ++++ Marlin/src/inc/SanityCheck.h | 4 + Marlin/src/lcd/language/language_en.h | 12 +++ Marlin/src/lcd/ultralcd.cpp | 33 ++++-- Marlin/src/module/configuration_store.cpp | 51 +++++++++ Marlin/src/module/temperature.cpp | 11 ++ Marlin/src/module/temperature.h | 5 +- Marlin/src/module/tool_change.cpp | 100 ++++++++++++++++-- Marlin/src/module/tool_change.h | 10 ++ buildroot/share/tests/STM32F1_tests | 3 +- 94 files changed, 1267 insertions(+), 38 deletions(-) create mode 100644 Marlin/src/gcode/config/M217.cpp diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 5bcfa97d12..5ff732ade2 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/default/Configuration.h b/Marlin/src/config/default/Configuration.h index 5bcfa97d12..5ff732ade2 100644 --- a/Marlin/src/config/default/Configuration.h +++ b/Marlin/src/config/default/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h index a1d4099e45..814495b81e 100644 --- a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h +++ b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h b/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h index ea3ee5956b..fbaf4bf5db 100644 --- a/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h +++ b/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Anet/A2/Configuration.h b/Marlin/src/config/examples/Anet/A2/Configuration.h index b913182ae4..469e9b6c72 100644 --- a/Marlin/src/config/examples/Anet/A2/Configuration.h +++ b/Marlin/src/config/examples/Anet/A2/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Anet/A2plus/Configuration.h b/Marlin/src/config/examples/Anet/A2plus/Configuration.h index f0c53291fc..3f80ea3675 100644 --- a/Marlin/src/config/examples/Anet/A2plus/Configuration.h +++ b/Marlin/src/config/examples/Anet/A2plus/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Anet/A6/Configuration.h b/Marlin/src/config/examples/Anet/A6/Configuration.h index 81e5eac56d..ac7c75aa62 100644 --- a/Marlin/src/config/examples/Anet/A6/Configuration.h +++ b/Marlin/src/config/examples/Anet/A6/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Anet/A8/Configuration.h b/Marlin/src/config/examples/Anet/A8/Configuration.h index 84d65e107d..5faaba065d 100644 --- a/Marlin/src/config/examples/Anet/A8/Configuration.h +++ b/Marlin/src/config/examples/Anet/A8/Configuration.h @@ -156,6 +156,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Azteeg/X5GT/Configuration.h b/Marlin/src/config/examples/Azteeg/X5GT/Configuration.h index 947bb82d94..595b1c9362 100644 --- a/Marlin/src/config/examples/Azteeg/X5GT/Configuration.h +++ b/Marlin/src/config/examples/Azteeg/X5GT/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h b/Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h index d0a6c5e642..6efca2a7d8 100644 --- a/Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h +++ b/Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. #define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h b/Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h index 6728218d5f..485e59d65b 100644 --- a/Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h +++ b/Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/BQ/Hephestos/Configuration.h b/Marlin/src/config/examples/BQ/Hephestos/Configuration.h index 20d9ec5920..43b5002943 100644 --- a/Marlin/src/config/examples/BQ/Hephestos/Configuration.h +++ b/Marlin/src/config/examples/BQ/Hephestos/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h index 01827fce72..dee62ff2c5 100644 --- a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h +++ b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h @@ -163,6 +163,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/BQ/WITBOX/Configuration.h b/Marlin/src/config/examples/BQ/WITBOX/Configuration.h index 659011de9d..718fb1b796 100644 --- a/Marlin/src/config/examples/BQ/WITBOX/Configuration.h +++ b/Marlin/src/config/examples/BQ/WITBOX/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Cartesio/Configuration.h b/Marlin/src/config/examples/Cartesio/Configuration.h index 01bf13435e..c0cb2308a0 100644 --- a/Marlin/src/config/examples/Cartesio/Configuration.h +++ b/Marlin/src/config/examples/Cartesio/Configuration.h @@ -156,6 +156,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/CR-10/Configuration.h b/Marlin/src/config/examples/Creality/CR-10/Configuration.h index fe7de2e8d6..699e0cda6c 100755 --- a/Marlin/src/config/examples/Creality/CR-10/Configuration.h +++ b/Marlin/src/config/examples/Creality/CR-10/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/CR-10S/Configuration.h b/Marlin/src/config/examples/Creality/CR-10S/Configuration.h index e0bd4754c8..e25fe92273 100644 --- a/Marlin/src/config/examples/Creality/CR-10S/Configuration.h +++ b/Marlin/src/config/examples/Creality/CR-10S/Configuration.h @@ -159,6 +159,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/CR-10mini/Configuration.h b/Marlin/src/config/examples/Creality/CR-10mini/Configuration.h index 66b9e567b1..b00891d6b0 100644 --- a/Marlin/src/config/examples/Creality/CR-10mini/Configuration.h +++ b/Marlin/src/config/examples/Creality/CR-10mini/Configuration.h @@ -164,6 +164,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/CR-8/Configuration.h b/Marlin/src/config/examples/Creality/CR-8/Configuration.h index 81f66c6a01..0207753544 100644 --- a/Marlin/src/config/examples/Creality/CR-8/Configuration.h +++ b/Marlin/src/config/examples/Creality/CR-8/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/Ender-2/Configuration.h b/Marlin/src/config/examples/Creality/Ender-2/Configuration.h index 771cb34cb2..15946881e9 100644 --- a/Marlin/src/config/examples/Creality/Ender-2/Configuration.h +++ b/Marlin/src/config/examples/Creality/Ender-2/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/Ender-3/Configuration.h b/Marlin/src/config/examples/Creality/Ender-3/Configuration.h index 92dc8f4c0a..325446d677 100644 --- a/Marlin/src/config/examples/Creality/Ender-3/Configuration.h +++ b/Marlin/src/config/examples/Creality/Ender-3/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Creality/Ender-4/Configuration.h b/Marlin/src/config/examples/Creality/Ender-4/Configuration.h index dc1b17581d..2e1ca27497 100644 --- a/Marlin/src/config/examples/Creality/Ender-4/Configuration.h +++ b/Marlin/src/config/examples/Creality/Ender-4/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Einstart-S/Configuration.h b/Marlin/src/config/examples/Einstart-S/Configuration.h index 57637bd7bd..6f499527ca 100644 --- a/Marlin/src/config/examples/Einstart-S/Configuration.h +++ b/Marlin/src/config/examples/Einstart-S/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Felix/Configuration.h b/Marlin/src/config/examples/Felix/Configuration.h index a797130b9d..54b631220d 100644 --- a/Marlin/src/config/examples/Felix/Configuration.h +++ b/Marlin/src/config/examples/Felix/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Felix/DUAL/Configuration.h b/Marlin/src/config/examples/Felix/DUAL/Configuration.h index 1181d0516f..d90fedf120 100644 --- a/Marlin/src/config/examples/Felix/DUAL/Configuration.h +++ b/Marlin/src/config/examples/Felix/DUAL/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h index bd6bae8a3b..5fb3adf3f1 100644 --- a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h +++ b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Formbot/Raptor/Configuration.h b/Marlin/src/config/examples/Formbot/Raptor/Configuration.h index f0dd500109..922ad228bd 100644 --- a/Marlin/src/config/examples/Formbot/Raptor/Configuration.h +++ b/Marlin/src/config/examples/Formbot/Raptor/Configuration.h @@ -196,6 +196,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h b/Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h index d0f5d8bf84..a1b65fe2d3 100644 --- a/Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h +++ b/Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h @@ -158,6 +158,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h b/Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h index 7ee67af0bd..b0c0776fc3 100644 --- a/Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h +++ b/Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h @@ -159,6 +159,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h b/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h index 01dd31e0b2..ce83a71bbf 100644 --- a/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h b/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h index 62a5ecf1c3..409ac78ffa 100644 --- a/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h b/Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h index 37af96e764..84dc0cf728 100644 --- a/Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h index 6e0a691b17..6217e2e53d 100644 --- a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h index 7d3f4b9e06..4f1e9e7e59 100644 --- a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h index b0dcb677d2..69d44c9e63 100644 --- a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h index 48842ba087..4d02fe1101 100644 --- a/Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h +++ b/Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h b/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h index 90506121f6..4784c78db3 100644 --- a/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h +++ b/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/JGAurora/A5/Configuration.h b/Marlin/src/config/examples/JGAurora/A5/Configuration.h index fed11676d9..2e230c76cf 100644 --- a/Marlin/src/config/examples/JGAurora/A5/Configuration.h +++ b/Marlin/src/config/examples/JGAurora/A5/Configuration.h @@ -160,6 +160,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/MakerParts/Configuration.h b/Marlin/src/config/examples/MakerParts/Configuration.h index a884c1dff6..506a12abf2 100644 --- a/Marlin/src/config/examples/MakerParts/Configuration.h +++ b/Marlin/src/config/examples/MakerParts/Configuration.h @@ -175,6 +175,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Malyan/M150/Configuration.h b/Marlin/src/config/examples/Malyan/M150/Configuration.h index 10c375b364..83a57148d9 100644 --- a/Marlin/src/config/examples/Malyan/M150/Configuration.h +++ b/Marlin/src/config/examples/Malyan/M150/Configuration.h @@ -160,6 +160,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Malyan/M200/Configuration.h b/Marlin/src/config/examples/Malyan/M200/Configuration.h index 4da1d5a3cc..9c4099ec90 100644 --- a/Marlin/src/config/examples/Malyan/M200/Configuration.h +++ b/Marlin/src/config/examples/Malyan/M200/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h b/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h index 089e129f3e..d60955fd60 100644 --- a/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h +++ b/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h index 7a56d29f6c..0d03ee3aa3 100644 --- a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h +++ b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Mks/Sbase/Configuration.h b/Marlin/src/config/examples/Mks/Sbase/Configuration.h index 02aab0e683..0c9b76576f 100644 --- a/Marlin/src/config/examples/Mks/Sbase/Configuration.h +++ b/Marlin/src/config/examples/Mks/Sbase/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h b/Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h index af0127d6ee..47de651221 100644 --- a/Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h +++ b/Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h b/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h index 4f0402611d..376ad4839e 100644 --- a/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/RigidBot/Configuration.h b/Marlin/src/config/examples/RigidBot/Configuration.h index 113a9a8293..12f768fb07 100644 --- a/Marlin/src/config/examples/RigidBot/Configuration.h +++ b/Marlin/src/config/examples/RigidBot/Configuration.h @@ -158,6 +158,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/SCARA/Configuration.h b/Marlin/src/config/examples/SCARA/Configuration.h index c8ee618f77..aa10616578 100644 --- a/Marlin/src/config/examples/SCARA/Configuration.h +++ b/Marlin/src/config/examples/SCARA/Configuration.h @@ -186,6 +186,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/STM32F10/Configuration.h b/Marlin/src/config/examples/STM32F10/Configuration.h index 9808e74dfa..be3da5e391 100644 --- a/Marlin/src/config/examples/STM32F10/Configuration.h +++ b/Marlin/src/config/examples/STM32F10/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/STM32F4/Configuration.h b/Marlin/src/config/examples/STM32F4/Configuration.h index 4da899f46c..32b7c98e83 100644 --- a/Marlin/src/config/examples/STM32F4/Configuration.h +++ b/Marlin/src/config/examples/STM32F4/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Sanguinololu/Configuration.h b/Marlin/src/config/examples/Sanguinololu/Configuration.h index 41e1629d2c..a28132658c 100644 --- a/Marlin/src/config/examples/Sanguinololu/Configuration.h +++ b/Marlin/src/config/examples/Sanguinololu/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/TheBorg/Configuration.h b/Marlin/src/config/examples/TheBorg/Configuration.h index 8e0136dc6f..38d43af9a5 100644 --- a/Marlin/src/config/examples/TheBorg/Configuration.h +++ b/Marlin/src/config/examples/TheBorg/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/TinyBoy2/Configuration.h b/Marlin/src/config/examples/TinyBoy2/Configuration.h index 0a4ca24555..2328e3bebb 100644 --- a/Marlin/src/config/examples/TinyBoy2/Configuration.h +++ b/Marlin/src/config/examples/TinyBoy2/Configuration.h @@ -177,6 +177,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Tronxy/X1/Configuration.h b/Marlin/src/config/examples/Tronxy/X1/Configuration.h index fb91a54ad8..f0d2377263 100644 --- a/Marlin/src/config/examples/Tronxy/X1/Configuration.h +++ b/Marlin/src/config/examples/Tronxy/X1/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Tronxy/X3A/Configuration.h b/Marlin/src/config/examples/Tronxy/X3A/Configuration.h index 63864bc7d1..c1f609d623 100644 --- a/Marlin/src/config/examples/Tronxy/X3A/Configuration.h +++ b/Marlin/src/config/examples/Tronxy/X3A/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Tronxy/X5S/Configuration.h b/Marlin/src/config/examples/Tronxy/X5S/Configuration.h index 6ce684d4c4..a5f7db375e 100644 --- a/Marlin/src/config/examples/Tronxy/X5S/Configuration.h +++ b/Marlin/src/config/examples/Tronxy/X5S/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Tronxy/XY100/Configuration.h b/Marlin/src/config/examples/Tronxy/XY100/Configuration.h index d7ae94c451..ffc3316ec9 100644 --- a/Marlin/src/config/examples/Tronxy/XY100/Configuration.h +++ b/Marlin/src/config/examples/Tronxy/XY100/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h b/Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h index c4874e6954..86f5c137cc 100644 --- a/Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h +++ b/Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Velleman/K8200/Configuration.h b/Marlin/src/config/examples/Velleman/K8200/Configuration.h index a54d5c74df..27e5202374 100644 --- a/Marlin/src/config/examples/Velleman/K8200/Configuration.h +++ b/Marlin/src/config/examples/Velleman/K8200/Configuration.h @@ -175,6 +175,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Velleman/K8400/Configuration.h b/Marlin/src/config/examples/Velleman/K8400/Configuration.h index 7fad7c7f13..7866ae025a 100644 --- a/Marlin/src/config/examples/Velleman/K8400/Configuration.h +++ b/Marlin/src/config/examples/Velleman/K8400/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h b/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h index fee73ac896..8b8faa13da 100644 --- a/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h +++ b/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h b/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h index 0ff39029d5..f6b7858f47 100644 --- a/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h +++ b/Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/adafruit/ST7565/Configuration.h b/Marlin/src/config/examples/adafruit/ST7565/Configuration.h index cfb1e091be..3fdd3cf2d9 100644 --- a/Marlin/src/config/examples/adafruit/ST7565/Configuration.h +++ b/Marlin/src/config/examples/adafruit/ST7565/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h b/Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h index 1063bc60ce..9639460424 100644 --- a/Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h +++ b/Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h @@ -168,6 +168,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h index 0fc0ea47bf..bd56066cb6 100644 --- a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h +++ b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h b/Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h index fea8748c31..1dbd9047b1 100644 --- a/Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h +++ b/Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h index 8842d3e3e5..0dbf385846 100644 --- a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h +++ b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h b/Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h index d2a9666659..327ec18f2c 100644 --- a/Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h +++ b/Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h @@ -160,6 +160,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/generic/Configuration.h b/Marlin/src/config/examples/delta/generic/Configuration.h index 60c0b15821..edc5855fd8 100644 --- a/Marlin/src/config/examples/delta/generic/Configuration.h +++ b/Marlin/src/config/examples/delta/generic/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/kossel_mini/Configuration.h b/Marlin/src/config/examples/delta/kossel_mini/Configuration.h index 3d84362026..99a2543809 100644 --- a/Marlin/src/config/examples/delta/kossel_mini/Configuration.h +++ b/Marlin/src/config/examples/delta/kossel_mini/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/kossel_pro/Configuration.h b/Marlin/src/config/examples/delta/kossel_pro/Configuration.h index a4878e7f22..b85a241fe6 100644 --- a/Marlin/src/config/examples/delta/kossel_pro/Configuration.h +++ b/Marlin/src/config/examples/delta/kossel_pro/Configuration.h @@ -159,6 +159,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/delta/kossel_xl/Configuration.h b/Marlin/src/config/examples/delta/kossel_xl/Configuration.h index 0cf1a98792..30c45f5db5 100644 --- a/Marlin/src/config/examples/delta/kossel_xl/Configuration.h +++ b/Marlin/src/config/examples/delta/kossel_xl/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h index 13ea8ccdc8..8fa2709f23 100644 --- a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h +++ b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h @@ -160,6 +160,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/makibox/Configuration.h b/Marlin/src/config/examples/makibox/Configuration.h index d8c1919570..615e62e08e 100644 --- a/Marlin/src/config/examples/makibox/Configuration.h +++ b/Marlin/src/config/examples/makibox/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/stm32f103ret6/Configuration.h b/Marlin/src/config/examples/stm32f103ret6/Configuration.h index c9583f21e6..746e5edf9e 100644 --- a/Marlin/src/config/examples/stm32f103ret6/Configuration.h +++ b/Marlin/src/config/examples/stm32f103ret6/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/tvrrug/Round2/Configuration.h b/Marlin/src/config/examples/tvrrug/Round2/Configuration.h index d5a2dde9ac..7054601846 100644 --- a/Marlin/src/config/examples/tvrrug/Round2/Configuration.h +++ b/Marlin/src/config/examples/tvrrug/Round2/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/config/examples/wt150/Configuration.h b/Marlin/src/config/examples/wt150/Configuration.h index 43079c89c7..b1ab4d40a5 100644 --- a/Marlin/src/config/examples/wt150/Configuration.h +++ b/Marlin/src/config/examples/wt150/Configuration.h @@ -155,6 +155,18 @@ // For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE +#if ENABLED(SINGLENOZZLE) + // Length of filament to retract and prime on toolchange + //#define SINGLENOZZLE_SWAP_LENGTH 12.0 + //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m) + //#define SINGLENOZZLE_SWAP_PARK + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #else + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 0828875871..bda88ec6e3 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -112,7 +112,7 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_ return thermalManager.wait_for_hotend(active_extruder); } -static void do_pause_e_move(const float &length, const float &fr) { +void do_pause_e_move(const float &length, const float &fr) { current_position[E_AXIS] += length / planner.e_factor[active_extruder]; planner.buffer_line(current_position, fr, active_extruder); planner.synchronize(); diff --git a/Marlin/src/feature/pause.h b/Marlin/src/feature/pause.h index 5eb39a5e1a..2f607989fc 100644 --- a/Marlin/src/feature/pause.h +++ b/Marlin/src/feature/pause.h @@ -77,6 +77,8 @@ extern uint8_t did_pause_print; #define DXC_PASS #endif +void do_pause_e_move(const float &length, const float &fr); + bool pause_print(const float &retract, const point_t &park_point, const float &unload_length=0, const bool show_lcd=false DXC_PARAMS); void wait_for_filament_reload(const int8_t max_beep_count=0 DXC_PARAMS); diff --git a/Marlin/src/gcode/config/M217.cpp b/Marlin/src/gcode/config/M217.cpp new file mode 100644 index 0000000000..630c826d4b --- /dev/null +++ b/Marlin/src/gcode/config/M217.cpp @@ -0,0 +1,63 @@ +/** + * 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(SINGLENOZZLE) + +#include "../gcode.h" +#include "../../module/tool_change.h" + +#if NUM_SERIAL > 1 + #include "../../gcode/queue.h" +#endif + +void M217_report(const bool eeprom=false) { + #if NUM_SERIAL > 1 + const int16_t port = command_queue_port[cmd_queue_index_r]; + #endif + serialprintPGM_P(port, eeprom ? PSTR(" M217") : PSTR("Singlenozzle:")); + SERIAL_ECHOPAIR_P(port, " S", singlenozzle_swap_length); + SERIAL_ECHOPAIR_P(port, " P", singlenozzle_prime_speed); + SERIAL_ECHOLNPAIR_P(port, " R", singlenozzle_retract_speed); +} + +/** + * M217 - Set SINGLENOZZLE toolchange parameters + * + * S[mm] Swap length + * P[mm/s] Prime speed + * R[mm/s] Retract speed + */ +void GcodeSuite::M217() { + + bool report = true; + + if (parser.seenval('S')) { report = false; const float v = parser.value_float(); singlenozzle_swap_length = constrain(v, 0, 500); } + if (parser.seenval('P')) { report = false; const int16_t v = parser.value_int(); singlenozzle_prime_speed = constrain(v, 10, 5400); } + if (parser.seenval('R')) { report = false; const int16_t v = parser.value_int(); singlenozzle_retract_speed = constrain(v, 10, 5400); } + + if (report) M217_report(); + +} + +#endif // SINGLENOZZLE diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 36a01c1f7f..39953a2461 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -487,6 +487,10 @@ void GcodeSuite::process_parsed_command( case 211: M211(); break; // M211: Enable, Disable, and/or Report software endstops + #if ENABLED(SINGLENOZZLE) + case 217: M217(); break; // M217: Set filament swap parameters + #endif + #if HOTENDS > 1 case 218: M218(); break; // M218: Set a tool offset #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 106b980e7c..bf3db6550e 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -165,6 +165,7 @@ * M209 - Turn Automatic Retract Detection on/off: S<0|1> (For slicers that don't support G10/11). (Requires FWRETRACT_AUTORETRACT) Every normal extrude-only move will be classified as retract depending on the direction. * M211 - Enable, Disable, and/or Report software endstops: S<0|1> (Requires MIN_SOFTWARE_ENDSTOPS or MAX_SOFTWARE_ENDSTOPS) + * M217 - Set filament swap parameters: "M217 S P R". (Requires SINGLENOZZLE) * M218 - Set/get a tool offset: "M218 T X Y". (Requires 2 or more extruders) * M220 - Set Feedrate Percentage: "M220 S" (i.e., "FR" on the LCD) * M221 - Set Flow Percentage: "M221 S" @@ -617,6 +618,10 @@ private: static void M211(); + #if ENABLED(SINGLENOZZLE) + static void M217(); + #endif + #if HOTENDS > 1 static void M218(); #endif diff --git a/Marlin/src/gcode/temperature/M104_M109.cpp b/Marlin/src/gcode/temperature/M104_M109.cpp index 7804b9ec75..7ce80d9ae7 100644 --- a/Marlin/src/gcode/temperature/M104_M109.cpp +++ b/Marlin/src/gcode/temperature/M104_M109.cpp @@ -35,6 +35,10 @@ #include "../../feature/leds/leds.h" #endif +#if ENABLED(SINGLENOZZLE) + #include "../../module/tool_change.h" +#endif + /** * M104: Set hot end temperature */ @@ -44,12 +48,12 @@ void GcodeSuite::M104() { const uint8_t e = target_extruder; - #if ENABLED(SINGLENOZZLE) - if (e != active_extruder) return; - #endif - if (parser.seenval('S')) { const int16_t temp = parser.value_celsius(); + #if ENABLED(SINGLENOZZLE) + singlenozzle_temp[e] = temp; + if (e != active_extruder) return; + #endif thermalManager.setTargetHotend(temp, e); #if ENABLED(DUAL_X_CARRIAGE) @@ -85,14 +89,14 @@ void GcodeSuite::M109() { if (get_target_extruder_from_command()) return; if (DEBUGGING(DRYRUN)) return; - #if ENABLED(SINGLENOZZLE) - if (target_extruder != active_extruder) return; - #endif - const bool no_wait_for_cooling = parser.seenval('S'), set_temp = no_wait_for_cooling || parser.seenval('R'); if (set_temp) { const int16_t temp = parser.value_celsius(); + #if ENABLED(SINGLENOZZLE) + singlenozzle_temp[target_extruder] = temp; + if (target_extruder != active_extruder) return; + #endif thermalManager.setTargetHotend(temp, target_extruder); #if ENABLED(DUAL_X_CARRIAGE) @@ -115,13 +119,8 @@ void GcodeSuite::M109() { #endif #if ENABLED(ULTRA_LCD) - const bool heating = thermalManager.isHeatingHotend(target_extruder); - if (heating || !no_wait_for_cooling) - #if HOTENDS > 1 - lcd_status_printf_P(0, heating ? PSTR("E%i " MSG_HEATING) : PSTR("E%i " MSG_COOLING), target_extruder + 1); - #else - lcd_setstatusPGM(heating ? PSTR("E " MSG_HEATING) : PSTR("E " MSG_COOLING)); - #endif + if (thermalManager.isHeatingHotend(target_extruder) || !no_wait_for_cooling) + thermalManager.set_heating_message(target_extruder); #endif } diff --git a/Marlin/src/gcode/temperature/M106_M107.cpp b/Marlin/src/gcode/temperature/M106_M107.cpp index 8fe50940f2..12e2dc4f26 100644 --- a/Marlin/src/gcode/temperature/M106_M107.cpp +++ b/Marlin/src/gcode/temperature/M106_M107.cpp @@ -27,6 +27,11 @@ #include "../gcode.h" #include "../../Marlin.h" // for fan_speed — should move those to Planner +#if ENABLED(SINGLENOZZLE) + #include "../../module/motion.h" + #include "../../module/tool_change.h" +#endif + /** * M106: Set Fan Speed * @@ -42,6 +47,15 @@ */ void GcodeSuite::M106() { const uint8_t p = parser.byteval('P'); + const uint16_t s = parser.ushortval('S', 255); + + #if ENABLED(SINGLENOZZLE) + if (p != active_extruder) { + if (p < EXTRUDERS) singlenozzle_fan_speed[p] = MIN(s, 255U); + return; + } + #endif + if (p < FAN_COUNT) { #if ENABLED(EXTRA_FAN_SPEED) const int16_t t = parser.intval('T'); @@ -55,14 +69,12 @@ void GcodeSuite::M106() { fan_speed[p] = new_fan_speed[p]; break; default: - new_fan_speed[p] = MIN(t, 255); + new_fan_speed[p] = MIN(t, 255U); break; } return; - } #endif // EXTRA_FAN_SPEED - const uint16_t s = parser.ushortval('S', 255); fan_speed[p] = MIN(s, 255U); } } @@ -72,6 +84,13 @@ void GcodeSuite::M106() { */ void GcodeSuite::M107() { const uint16_t p = parser.ushortval('P'); + #if ENABLED(SINGLENOZZLE) + if (p != active_extruder) { + if (p < EXTRUDERS) singlenozzle_fan_speed[p] = 0; + return; + } + #endif + if (p < FAN_COUNT) fan_speed[p] = 0; } diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 326a701af5..5189529850 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1513,6 +1513,28 @@ // Add commands that need sub-codes to this list #define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS) || ENABLED(POWER_LOSS_RECOVERY) +// Single Nozzle swap on toolchange defaults +#if ENABLED(SINGLENOZZLE) + #ifndef SINGLENOZZLE_SWAP_LENGTH + #define SINGLENOZZLE_SWAP_LENGTH 0 + #endif + #ifndef SINGLENOZZLE_SWAP_RETRACT_SPEED + #define SINGLENOZZLE_SWAP_RETRACT_SPEED 60.0 + #endif + #ifndef SINGLENOZZLE_SWAP_PRIME_SPEED + #define SINGLENOZZLE_SWAP_PRIME_SPEED 60.0 + #endif + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #ifndef SINGLENOZZLE_TOOLCHANGE_POSITION + #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 } + #endif + #else + #ifndef SINGLENOZZLE_TOOLCHANGE_ZRAISE + #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0 + #endif + #endif +#endif + // Parking Extruder #if ENABLED(PARKING_EXTRUDER) #ifndef PARKING_EXTRUDER_GRAB_DISTANCE diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 1c2ae52fae..6c75b028dc 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -602,6 +602,10 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE, #error "EXTRUDERS must be 1 with HEATERS_PARALLEL." #endif + #if ENABLED(SINGLENOZZLE) && !defined(SINGLENOZZLE_SWAP_LENGTH) + #define SINGLENOZZLE_SWAP_LENGTH 0 + #endif + #elif ENABLED(MK2_MULTIPLEXER) #error "MK2_MULTIPLEXER requires 2 or more EXTRUDERS." #elif ENABLED(SINGLENOZZLE) diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 40e84be8a1..3091dda415 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -768,6 +768,18 @@ #ifndef MSG_AUTORETRACT #define MSG_AUTORETRACT _UxGT("AutoRetr.") #endif +#ifndef MSG_FILAMENT_SWAP_LENGTH + #define MSG_FILAMENT_SWAP_LENGTH _UxGT("Retract Distance") +#endif +#ifndef MSG_SINGLENOZZLE_TOOL_CHANGE + #define MSG_SINGLENOZZLE_TOOL_CHANGE _UxGT("Tool Change") +#endif +#ifndef MSG_SINGLENOZZLE_PRIME_SPD + #define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Prime Speed") +#endif +#ifndef MSG_SINGLENOZZLE_RETRACT_SPD + #define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Retract Speed") +#endif #ifndef MSG_FILAMENTCHANGE #define MSG_FILAMENTCHANGE _UxGT("Change filament") #endif diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 6d8902a12a..9167bbe248 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -138,6 +138,7 @@ millis_t next_lcd_update_ms; } \ typedef void _name##_void DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int3, itostr3); + DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int4, itostr4sign); DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(uint8_t, int8, i8tostr3); DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float3, ftostr3); DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float52, ftostr52); @@ -267,6 +268,7 @@ millis_t next_lcd_update_ms; typedef void _name##_void DECLARE_MENU_EDIT_TYPE(int16_t, int3); + DECLARE_MENU_EDIT_TYPE(int16_t, int4); DECLARE_MENU_EDIT_TYPE(uint8_t, int8); DECLARE_MENU_EDIT_TYPE(float, float3); DECLARE_MENU_EDIT_TYPE(float, float52); @@ -974,15 +976,23 @@ void lcd_quick_feedback(const bool clear_buttons) { #endif // POWER_LOSS_RECOVERY + #if ENABLED(SINGLENOZZLE) + void singlenozzle_swap_menu() { + START_MENU(); + MENU_BACK(MSG_MAIN); + MENU_ITEM_EDIT(float3, MSG_FILAMENT_SWAP_LENGTH, &singlenozzle_swap_length, 0, 200); + MENU_MULTIPLIER_ITEM_EDIT(int4, MSG_SINGLENOZZLE_RETRACT_SPD, &singlenozzle_retract_speed, 10, 5400); + MENU_MULTIPLIER_ITEM_EDIT(int4, MSG_SINGLENOZZLE_PRIME_SPD, &singlenozzle_prime_speed, 10, 5400); + END_MENU(); + } + #endif + #if ENABLED(MENU_ITEM_CASE_LIGHT) #include "../feature/caselight.h" void case_light_menu() { START_MENU(); - // - // ^ Main - // MENU_BACK(MSG_MAIN); MENU_ITEM_EDIT_CALLBACK(int8, MSG_CASE_LIGHT_BRIGHTNESS, &case_light_brightness, 0, 255, update_case_light, true); MENU_ITEM_EDIT_CALLBACK(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light); @@ -999,9 +1009,6 @@ void lcd_quick_feedback(const bool clear_buttons) { */ static void bltouch_menu() { START_MENU(); - // - // ^ Main - // MENU_BACK(MSG_MAIN); MENU_ITEM(gcode, MSG_BLTOUCH_RESET, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_RESET))); MENU_ITEM(gcode, MSG_BLTOUCH_SELFTEST, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_SELFTEST))); @@ -1042,7 +1049,7 @@ void lcd_quick_feedback(const bool clear_buttons) { void lcd_debug_menu() { START_MENU(); - MENU_BACK(MSG_MAIN); // ^ Main + MENU_BACK(MSG_MAIN); #if ENABLED(LCD_PROGRESS_BAR_TEST) MENU_ITEM(submenu, MSG_PROGRESS_BAR_TEST, _progress_bar_test); @@ -1494,10 +1501,6 @@ void lcd_quick_feedback(const bool clear_buttons) { */ void lcd_tune_menu() { START_MENU(); - - // - // ^ Main - // MENU_BACK(MSG_MAIN); // @@ -3438,6 +3441,13 @@ void lcd_quick_feedback(const bool clear_buttons) { #endif } + // + // Set single nozzle filament retract and prime length + // + #if ENABLED(SINGLENOZZLE) + MENU_ITEM(submenu, MSG_SINGLENOZZLE_TOOL_CHANGE, singlenozzle_swap_menu); + #endif + // // Set Case light on/off/brightness // @@ -5143,6 +5153,7 @@ void lcd_quick_feedback(const bool clear_buttons) { typedef void _name##_void DEFINE_MENU_EDIT_TYPE(int16_t, int3, itostr3, 1); + DEFINE_MENU_EDIT_TYPE(int16_t, int4, itostr4sign, 1); DEFINE_MENU_EDIT_TYPE(uint8_t, int8, i8tostr3, 1); DEFINE_MENU_EDIT_TYPE(float, float3, ftostr3, 1); DEFINE_MENU_EDIT_TYPE(float, float52, ftostr52, 100); diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index fae14db100..993ea39644 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -98,6 +98,11 @@ typedef struct { int16_t X, Y, Z; } tmc #include "../feature/pause.h" #endif +#if ENABLED(SINGLENOZZLE) + #include "tool_change.h" + void M217_report(const bool eeprom); +#endif + #if ENABLED(PID_EXTRUSION_SCALING) #define LPQ_LEN thermalManager.lpq_len #endif @@ -289,6 +294,15 @@ typedef struct SettingsDataStruct { float filament_change_unload_length[EXTRUDERS], // M603 T U filament_change_load_length[EXTRUDERS]; // M603 T L + // + // SINGLENOZZLE toolchange values + // + #if ENABLED(SINGLENOZZLE) + float singlenozzle_swap_length; // M217 S + int16_t singlenozzle_prime_speed, // M217 P + singlenozzle_retract_speed; // M217 R + #endif + } SettingsData; #pragma pack(pop) @@ -947,6 +961,17 @@ void MarlinSettings::postprocess() { for (uint8_t q = EXTRUDERS * 2; q--;) EEPROM_WRITE(dummy); #endif + // + // SINGLENOZZLE + // + + #if ENABLED(SINGLENOZZLE) + _FIELD_TEST(singlenozzle_swap_length); + EEPROM_WRITE(singlenozzle_swap_length); + EEPROM_WRITE(singlenozzle_prime_speed); + EEPROM_WRITE(singlenozzle_retract_speed); + #endif + // // Validate CRC and Data Size // @@ -1582,6 +1607,17 @@ void MarlinSettings::postprocess() { for (uint8_t q = EXTRUDERS * 2; q--;) EEPROM_READ(dummy); #endif + // + // SINGLENOZZLE toolchange values + // + + #if ENABLED(SINGLENOZZLE) + _FIELD_TEST(singlenozzle_swap_length); + EEPROM_READ(singlenozzle_swap_length); + EEPROM_READ(singlenozzle_prime_speed); + EEPROM_READ(singlenozzle_retract_speed); + #endif + eeprom_error = size_error(eeprom_index - (EEPROM_OFFSET)); if (eeprom_error) { #if ENABLED(EEPROM_CHITCHAT) @@ -1840,6 +1876,12 @@ void MarlinSettings::reset(PORTARG_SOLO) { #endif #endif + #if ENABLED(SINGLENOZZLE) + singlenozzle_swap_length = SINGLENOZZLE_SWAP_LENGTH; + singlenozzle_prime_speed = SINGLENOZZLE_SWAP_PRIME_SPEED; + singlenozzle_retract_speed = SINGLENOZZLE_SWAP_RETRACT_SPEED; + #endif + // // Global Leveling // @@ -2897,6 +2939,15 @@ void MarlinSettings::reset(PORTARG_SOLO) { #endif // EXTRUDERS > 2 #endif // EXTRUDERS == 1 #endif // ADVANCED_PAUSE_FEATURE + + #if ENABLED(SINGLENOZZLE) + CONFIG_ECHO_START; + if (!forReplay) { + SERIAL_ECHOLNPGM_P(port, "SINGLENOZZLE:"); + CONFIG_ECHO_START; + } + M217_report(true); + #endif } #endif // !DISABLE_M503 diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 1f49cae90c..a64db1f013 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -2416,6 +2416,17 @@ void Temperature::isr() { #endif // AUTO_REPORT_TEMPERATURES + #if ENABLED(ULTRA_LCD) + void Temperature::set_heating_message(const uint8_t e) { + const bool heating = isHeatingHotend(e); + #if HOTENDS > 1 + lcd_status_printf_P(0, heating ? PSTR("E%i " MSG_HEATING) : PSTR("E%i " MSG_COOLING), int(e + 1)); + #else + lcd_setstatusPGM(heating ? PSTR("E " MSG_HEATING) : PSTR("E " MSG_COOLING)); + #endif + } + #endif + #if HAS_TEMP_HOTEND #ifndef MIN_COOLING_SLOPE_DEG diff --git a/Marlin/src/module/temperature.h b/Marlin/src/module/temperature.h index 8f451be2b8..870345a342 100644 --- a/Marlin/src/module/temperature.h +++ b/Marlin/src/module/temperature.h @@ -616,6 +616,10 @@ class Temperature { #endif #endif + #if ENABLED(ULTRA_LCD) + static void set_heating_message(const uint8_t e); + #endif + private: #if ENABLED(FAST_PWM_FAN) @@ -659,7 +663,6 @@ class Temperature { #endif #endif // THERMAL_PROTECTION - }; extern Temperature thermalManager; diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp index 2b840491c8..36a89e951f 100644 --- a/Marlin/src/module/tool_change.cpp +++ b/Marlin/src/module/tool_change.cpp @@ -25,9 +25,24 @@ #include "probe.h" #include "motion.h" #include "planner.h" +#include "temperature.h" #include "../Marlin.h" +#if ENABLED(SINGLENOZZLE) + float singlenozzle_swap_length = SINGLENOZZLE_SWAP_LENGTH; + int16_t singlenozzle_prime_speed = SINGLENOZZLE_SWAP_PRIME_SPEED, + singlenozzle_retract_speed = SINGLENOZZLE_SWAP_RETRACT_SPEED; + uint16_t singlenozzle_temp[EXTRUDERS]; + #if FAN_COUNT > 0 + uint8_t singlenozzle_fan_speed[EXTRUDERS]; + #endif + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + #include "../libs/point_t.h" + const point_t singlenozzle_change_point = SINGLENOZZLE_TOOLCHANGE_POSITION; + #endif +#endif + #if ENABLED(PARKING_EXTRUDER) && PARKING_EXTRUDER_SOLENOIDS_DELAY > 0 #include "../gcode/gcode.h" // for dwell() #endif @@ -625,16 +640,89 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n UNUSED(no_move); #if ENABLED(MK2_MULTIPLEXER) - if (tmp_extruder >= E_STEPPERS) - return invalid_extruder_error(tmp_extruder); - + if (tmp_extruder >= E_STEPPERS) return invalid_extruder_error(tmp_extruder); select_multiplexed_stepper(tmp_extruder); #endif #if EXTRUDERS > 1 - // Set the new active extruder - active_extruder = tmp_extruder; - #endif + + #if ENABLED(SINGLENOZZLE) + + #if ENABLED(PREVENT_COLD_EXTRUSION) + if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) { + SERIAL_ERROR_START(); + SERIAL_ERRORLNPGM(MSG_HOTEND_TOO_COLD); + return; + } + #endif + + #if FAN_COUNT > 0 + singlenozzle_fan_speed[active_extruder] = fan_speed[0]; + fan_speed[0] = singlenozzle_fan_speed[tmp_extruder]; + #endif + + set_destination_from_current(); + + current_position[Z_AXIS] += ( + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + singlenozzle_change_point.z + #else + SINGLENOZZLE_TOOLCHANGE_ZRAISE + #endif + ); + + planner.buffer_line(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder); + + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + current_position[X_AXIS] = singlenozzle_change_point.x; + current_position[Y_AXIS] = singlenozzle_change_point.y; + planner.buffer_line(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder); + #endif + + if (singlenozzle_swap_length) { + #if ENABLED(ADVANCED_PAUSE_FEATURE) + do_pause_e_move(-singlenozzle_swap_length, MMM_TO_MMS(singlenozzle_retract_speed)); + #else + current_position[E_AXIS] -= singlenozzle_swap_length / planner.e_factor[active_extruder]; + planner.buffer_line(current_position, MMM_TO_MMS(singlenozzle_retract_speed), active_extruder); + #endif + } + + singlenozzle_temp[active_extruder] = thermalManager.target_temperature[0]; + if (singlenozzle_temp[tmp_extruder] && singlenozzle_temp[tmp_extruder] != singlenozzle_temp[active_extruder]) { + thermalManager.setTargetHotend(singlenozzle_temp[tmp_extruder], 0); + #if ENABLED(ULTRA_LCD) + thermalManager.set_heating_message(0); + #endif + (void)thermalManager.wait_for_hotend(0, false); // Wait for heating or cooling + } + + active_extruder = tmp_extruder; + + if (singlenozzle_swap_length) { + #if ENABLED(ADVANCED_PAUSE_FEATURE) + do_pause_e_move(singlenozzle_swap_length, singlenozzle_prime_speed); + #else + current_position[E_AXIS] += singlenozzle_swap_length / planner.e_factor[tmp_extruder]; + planner.buffer_line(current_position, singlenozzle_prime_speed, tmp_extruder); + #endif + } + + #if ENABLED(SINGLENOZZLE_SWAP_PARK) + current_position[X_AXIS] = destination[X_AXIS]; + current_position[Y_AXIS] = destination[Y_AXIS]; + planner.buffer_line(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder); + #endif + + do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS]); + + #else // !SINGLENOZZLE + + active_extruder = tmp_extruder; + + #endif // !SINGLENOZZLE + + #endif // EXTRUDERS > 1 #endif // HOTENDS <= 1 diff --git a/Marlin/src/module/tool_change.h b/Marlin/src/module/tool_change.h index 53da00d178..2edcf95c94 100644 --- a/Marlin/src/module/tool_change.h +++ b/Marlin/src/module/tool_change.h @@ -50,6 +50,16 @@ #endif // PARKING_EXTRUDER +#if ENABLED(SINGLENOZZLE) + extern float singlenozzle_swap_length; + extern int16_t singlenozzle_prime_speed, + singlenozzle_retract_speed; + extern uint16_t singlenozzle_temp[EXTRUDERS]; + #if FAN_COUNT > 0 + extern uint8_t singlenozzle_fan_speed[EXTRUDERS]; + #endif +#endif + /** * Perform a tool-change, which may result in moving the * previous tool out of the way and the new tool into place. diff --git a/buildroot/share/tests/STM32F1_tests b/buildroot/share/tests/STM32F1_tests index b9b91ff66d..5a769ad437 100755 --- a/buildroot/share/tests/STM32F1_tests +++ b/buildroot/share/tests/STM32F1_tests @@ -5,8 +5,9 @@ set -e restore_configs opt_set MOTHERBOARD BOARD_STM32F1R +opt_set EXTRUDERS 2 opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT \ - PAREN_COMMENTS GCODE_MOTION_MODES + PAREN_COMMENTS GCODE_MOTION_MODES SINGLENOZZLE SINGLENOZZLE_SWAP_LENGTH exec_test $1 $2 "STM32F1R EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT PAREN_COMMENTS GCODE_MOTION_MODES" opt_enable SPINDLE_LASER_ENABLE