Browse Source

Single nozzle filament change (#11994)

InsanityAutomation 5 years ago
parent
commit
74cd6cb4fc
94 changed files with 1267 additions and 38 deletions
  1. 12
    0
      Marlin/Configuration.h
  2. 12
    0
      Marlin/src/config/default/Configuration.h
  3. 12
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
  4. 12
    0
      Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
  5. 12
    0
      Marlin/src/config/examples/Anet/A2/Configuration.h
  6. 12
    0
      Marlin/src/config/examples/Anet/A2plus/Configuration.h
  7. 12
    0
      Marlin/src/config/examples/Anet/A6/Configuration.h
  8. 12
    0
      Marlin/src/config/examples/Anet/A8/Configuration.h
  9. 12
    0
      Marlin/src/config/examples/Azteeg/X5GT/Configuration.h
  10. 12
    0
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h
  11. 12
    0
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h
  12. 12
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration.h
  13. 12
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
  14. 12
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration.h
  15. 12
    0
      Marlin/src/config/examples/Cartesio/Configuration.h
  16. 12
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration.h
  17. 12
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration.h
  18. 12
    0
      Marlin/src/config/examples/Creality/CR-10mini/Configuration.h
  19. 12
    0
      Marlin/src/config/examples/Creality/CR-8/Configuration.h
  20. 12
    0
      Marlin/src/config/examples/Creality/Ender-2/Configuration.h
  21. 12
    0
      Marlin/src/config/examples/Creality/Ender-3/Configuration.h
  22. 12
    0
      Marlin/src/config/examples/Creality/Ender-4/Configuration.h
  23. 12
    0
      Marlin/src/config/examples/Einstart-S/Configuration.h
  24. 12
    0
      Marlin/src/config/examples/Felix/Configuration.h
  25. 12
    0
      Marlin/src/config/examples/Felix/DUAL/Configuration.h
  26. 12
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
  27. 12
    0
      Marlin/src/config/examples/Formbot/Raptor/Configuration.h
  28. 12
    0
      Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h
  29. 12
    0
      Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h
  30. 12
    0
      Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
  31. 12
    0
      Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  32. 12
    0
      Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h
  33. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h
  34. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  35. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  36. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  37. 12
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
  38. 12
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration.h
  39. 12
    0
      Marlin/src/config/examples/MakerParts/Configuration.h
  40. 12
    0
      Marlin/src/config/examples/Malyan/M150/Configuration.h
  41. 12
    0
      Marlin/src/config/examples/Malyan/M200/Configuration.h
  42. 12
    0
      Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
  43. 12
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
  44. 12
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration.h
  45. 12
    0
      Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h
  46. 12
    0
      Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
  47. 12
    0
      Marlin/src/config/examples/RigidBot/Configuration.h
  48. 12
    0
      Marlin/src/config/examples/SCARA/Configuration.h
  49. 12
    0
      Marlin/src/config/examples/STM32F10/Configuration.h
  50. 12
    0
      Marlin/src/config/examples/STM32F4/Configuration.h
  51. 12
    0
      Marlin/src/config/examples/Sanguinololu/Configuration.h
  52. 12
    0
      Marlin/src/config/examples/TheBorg/Configuration.h
  53. 12
    0
      Marlin/src/config/examples/TinyBoy2/Configuration.h
  54. 12
    0
      Marlin/src/config/examples/Tronxy/X1/Configuration.h
  55. 12
    0
      Marlin/src/config/examples/Tronxy/X3A/Configuration.h
  56. 12
    0
      Marlin/src/config/examples/Tronxy/X5S/Configuration.h
  57. 12
    0
      Marlin/src/config/examples/Tronxy/XY100/Configuration.h
  58. 12
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h
  59. 12
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration.h
  60. 12
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration.h
  61. 12
    0
      Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
  62. 12
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h
  63. 12
    0
      Marlin/src/config/examples/adafruit/ST7565/Configuration.h
  64. 12
    0
      Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h
  65. 12
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  66. 12
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h
  67. 12
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
  68. 12
    0
      Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h
  69. 12
    0
      Marlin/src/config/examples/delta/generic/Configuration.h
  70. 12
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration.h
  71. 12
    0
      Marlin/src/config/examples/delta/kossel_pro/Configuration.h
  72. 12
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration.h
  73. 12
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
  74. 12
    0
      Marlin/src/config/examples/makibox/Configuration.h
  75. 12
    0
      Marlin/src/config/examples/stm32f103ret6/Configuration.h
  76. 12
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration.h
  77. 12
    0
      Marlin/src/config/examples/wt150/Configuration.h
  78. 1
    1
      Marlin/src/feature/pause.cpp
  79. 2
    0
      Marlin/src/feature/pause.h
  80. 63
    0
      Marlin/src/gcode/config/M217.cpp
  81. 4
    0
      Marlin/src/gcode/gcode.cpp
  82. 5
    0
      Marlin/src/gcode/gcode.h
  83. 14
    15
      Marlin/src/gcode/temperature/M104_M109.cpp
  84. 22
    3
      Marlin/src/gcode/temperature/M106_M107.cpp
  85. 22
    0
      Marlin/src/inc/Conditionals_post.h
  86. 4
    0
      Marlin/src/inc/SanityCheck.h
  87. 12
    0
      Marlin/src/lcd/language/language_en.h
  88. 22
    11
      Marlin/src/lcd/ultralcd.cpp
  89. 51
    0
      Marlin/src/module/configuration_store.cpp
  90. 11
    0
      Marlin/src/module/temperature.cpp
  91. 4
    1
      Marlin/src/module/temperature.h
  92. 94
    6
      Marlin/src/module/tool_change.cpp
  93. 10
    0
      Marlin/src/module/tool_change.h
  94. 2
    1
      buildroot/share/tests/STM32F1_tests

+ 12
- 0
Marlin/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/default/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Anet/A2/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Anet/A2plus/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Anet/A6/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Anet/A8/Configuration.h View File

@@ -156,6 +156,18 @@
156 156
 
157 157
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
158 158
 //#define SINGLENOZZLE
159
+#if ENABLED(SINGLENOZZLE)
160
+  // Length of filament to retract and prime on toolchange
161
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
162
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
164
+  //#define SINGLENOZZLE_SWAP_PARK
165
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
166
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
167
+  #else
168
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
169
+  #endif
170
+#endif
159 171
 
160 172
 /**
161 173
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Azteeg/X5GT/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 #define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h View File

@@ -163,6 +163,18 @@
163 163
 
164 164
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
165 165
 //#define SINGLENOZZLE
166
+#if ENABLED(SINGLENOZZLE)
167
+  // Length of filament to retract and prime on toolchange
168
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
169
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
170
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
171
+  //#define SINGLENOZZLE_SWAP_PARK
172
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
173
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
174
+  #else
175
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
176
+  #endif
177
+#endif
166 178
 
167 179
 /**
168 180
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Cartesio/Configuration.h View File

@@ -156,6 +156,18 @@
156 156
 
157 157
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
158 158
 //#define SINGLENOZZLE
159
+#if ENABLED(SINGLENOZZLE)
160
+  // Length of filament to retract and prime on toolchange
161
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
162
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
164
+  //#define SINGLENOZZLE_SWAP_PARK
165
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
166
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
167
+  #else
168
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
169
+  #endif
170
+#endif
159 171
 
160 172
 /**
161 173
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration.h View File

@@ -159,6 +159,18 @@
159 159
 
160 160
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
161 161
 //#define SINGLENOZZLE
162
+#if ENABLED(SINGLENOZZLE)
163
+  // Length of filament to retract and prime on toolchange
164
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
165
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
166
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PARK
168
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
169
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
170
+  #else
171
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
172
+  #endif
173
+#endif
162 174
 
163 175
 /**
164 176
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/CR-10mini/Configuration.h View File

@@ -164,6 +164,18 @@
164 164
 
165 165
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
166 166
 //#define SINGLENOZZLE
167
+#if ENABLED(SINGLENOZZLE)
168
+  // Length of filament to retract and prime on toolchange
169
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
170
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
171
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
172
+  //#define SINGLENOZZLE_SWAP_PARK
173
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
174
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
175
+  #else
176
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
177
+  #endif
178
+#endif
167 179
 
168 180
 /**
169 181
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/CR-8/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/Ender-2/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/Ender-3/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Creality/Ender-4/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Einstart-S/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Felix/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Felix/DUAL/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Formbot/Raptor/Configuration.h View File

@@ -196,6 +196,18 @@
196 196
 
197 197
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
198 198
 //#define SINGLENOZZLE
199
+#if ENABLED(SINGLENOZZLE)
200
+  // Length of filament to retract and prime on toolchange
201
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
202
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
203
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
204
+  //#define SINGLENOZZLE_SWAP_PARK
205
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
206
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
207
+  #else
208
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
209
+  #endif
210
+#endif
199 211
 
200 212
 /**
201 213
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h View File

@@ -158,6 +158,18 @@
158 158
 
159 159
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
160 160
 //#define SINGLENOZZLE
161
+#if ENABLED(SINGLENOZZLE)
162
+  // Length of filament to retract and prime on toolchange
163
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
164
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
165
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
166
+  //#define SINGLENOZZLE_SWAP_PARK
167
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
168
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
169
+  #else
170
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
171
+  #endif
172
+#endif
161 173
 
162 174
 /**
163 175
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h View File

@@ -159,6 +159,18 @@
159 159
 
160 160
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
161 161
 //#define SINGLENOZZLE
162
+#if ENABLED(SINGLENOZZLE)
163
+  // Length of filament to retract and prime on toolchange
164
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
165
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
166
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PARK
168
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
169
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
170
+  #else
171
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
172
+  #endif
173
+#endif
162 174
 
163 175
 /**
164 176
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration.h View File

@@ -160,6 +160,18 @@
160 160
 
161 161
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
162 162
 //#define SINGLENOZZLE
163
+#if ENABLED(SINGLENOZZLE)
164
+  // Length of filament to retract and prime on toolchange
165
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
166
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
168
+  //#define SINGLENOZZLE_SWAP_PARK
169
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
170
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
171
+  #else
172
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
173
+  #endif
174
+#endif
163 175
 
164 176
 /**
165 177
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/MakerParts/Configuration.h View File

@@ -175,6 +175,18 @@
175 175
 
176 176
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
177 177
 //#define SINGLENOZZLE
178
+#if ENABLED(SINGLENOZZLE)
179
+  // Length of filament to retract and prime on toolchange
180
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
181
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
182
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
183
+  //#define SINGLENOZZLE_SWAP_PARK
184
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
185
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
186
+  #else
187
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
188
+  #endif
189
+#endif
178 190
 
179 191
 /**
180 192
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Malyan/M150/Configuration.h View File

@@ -160,6 +160,18 @@
160 160
 
161 161
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
162 162
 //#define SINGLENOZZLE
163
+#if ENABLED(SINGLENOZZLE)
164
+  // Length of filament to retract and prime on toolchange
165
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
166
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
168
+  //#define SINGLENOZZLE_SWAP_PARK
169
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
170
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
171
+  #else
172
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
173
+  #endif
174
+#endif
163 175
 
164 176
 /**
165 177
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Malyan/M200/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Micromake/C1/basic/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/RigidBot/Configuration.h View File

@@ -158,6 +158,18 @@
158 158
 
159 159
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
160 160
 //#define SINGLENOZZLE
161
+#if ENABLED(SINGLENOZZLE)
162
+  // Length of filament to retract and prime on toolchange
163
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
164
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
165
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
166
+  //#define SINGLENOZZLE_SWAP_PARK
167
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
168
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
169
+  #else
170
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
171
+  #endif
172
+#endif
161 173
 
162 174
 /**
163 175
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/SCARA/Configuration.h View File

@@ -186,6 +186,18 @@
186 186
 
187 187
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
188 188
 //#define SINGLENOZZLE
189
+#if ENABLED(SINGLENOZZLE)
190
+  // Length of filament to retract and prime on toolchange
191
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
192
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
193
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
194
+  //#define SINGLENOZZLE_SWAP_PARK
195
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
196
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
197
+  #else
198
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
199
+  #endif
200
+#endif
189 201
 
190 202
 /**
191 203
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/STM32F10/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/STM32F4/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Sanguinololu/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/TheBorg/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/TinyBoy2/Configuration.h View File

@@ -177,6 +177,18 @@
177 177
 
178 178
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
179 179
 //#define SINGLENOZZLE
180
+#if ENABLED(SINGLENOZZLE)
181
+  // Length of filament to retract and prime on toolchange
182
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
183
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
184
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
185
+  //#define SINGLENOZZLE_SWAP_PARK
186
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
187
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
188
+  #else
189
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
190
+  #endif
191
+#endif
180 192
 
181 193
 /**
182 194
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Tronxy/X1/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Tronxy/X3A/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Tronxy/X5S/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Tronxy/XY100/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration.h View File

@@ -175,6 +175,18 @@
175 175
 
176 176
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
177 177
 //#define SINGLENOZZLE
178
+#if ENABLED(SINGLENOZZLE)
179
+  // Length of filament to retract and prime on toolchange
180
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
181
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
182
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
183
+  //#define SINGLENOZZLE_SWAP_PARK
184
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
185
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
186
+  #else
187
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
188
+  #endif
189
+#endif
178 190
 
179 191
 /**
180 192
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/adafruit/ST7565/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h View File

@@ -168,6 +168,18 @@
168 168
 
169 169
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
170 170
 //#define SINGLENOZZLE
171
+#if ENABLED(SINGLENOZZLE)
172
+  // Length of filament to retract and prime on toolchange
173
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
174
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
175
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
176
+  //#define SINGLENOZZLE_SWAP_PARK
177
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
178
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
179
+  #else
180
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
181
+  #endif
182
+#endif
171 183
 
172 184
 /**
173 185
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h View File

@@ -160,6 +160,18 @@
160 160
 
161 161
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
162 162
 //#define SINGLENOZZLE
163
+#if ENABLED(SINGLENOZZLE)
164
+  // Length of filament to retract and prime on toolchange
165
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
166
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
168
+  //#define SINGLENOZZLE_SWAP_PARK
169
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
170
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
171
+  #else
172
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
173
+  #endif
174
+#endif
163 175
 
164 176
 /**
165 177
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/generic/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/kossel_pro/Configuration.h View File

@@ -159,6 +159,18 @@
159 159
 
160 160
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
161 161
 //#define SINGLENOZZLE
162
+#if ENABLED(SINGLENOZZLE)
163
+  // Length of filament to retract and prime on toolchange
164
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
165
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
166
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PARK
168
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
169
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
170
+  #else
171
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
172
+  #endif
173
+#endif
162 174
 
163 175
 /**
164 176
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h View File

@@ -160,6 +160,18 @@
160 160
 
161 161
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
162 162
 //#define SINGLENOZZLE
163
+#if ENABLED(SINGLENOZZLE)
164
+  // Length of filament to retract and prime on toolchange
165
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
166
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
167
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
168
+  //#define SINGLENOZZLE_SWAP_PARK
169
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
170
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
171
+  #else
172
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
173
+  #endif
174
+#endif
163 175
 
164 176
 /**
165 177
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/makibox/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/stm32f103ret6/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 12
- 0
Marlin/src/config/examples/wt150/Configuration.h View File

@@ -155,6 +155,18 @@
155 155
 
156 156
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
157 157
 //#define SINGLENOZZLE
158
+#if ENABLED(SINGLENOZZLE)
159
+  // Length of filament to retract and prime on toolchange
160
+  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
161
+  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
162
+  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
163
+  //#define SINGLENOZZLE_SWAP_PARK
164
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
165
+    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
166
+  #else
167
+    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
168
+  #endif
169
+#endif
158 170
 
159 171
 /**
160 172
  * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.

+ 1
- 1
Marlin/src/feature/pause.cpp View File

@@ -112,7 +112,7 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_
112 112
   return thermalManager.wait_for_hotend(active_extruder);
113 113
 }
114 114
 
115
-static void do_pause_e_move(const float &length, const float &fr) {
115
+void do_pause_e_move(const float &length, const float &fr) {
116 116
   current_position[E_AXIS] += length / planner.e_factor[active_extruder];
117 117
   planner.buffer_line(current_position, fr, active_extruder);
118 118
   planner.synchronize();

+ 2
- 0
Marlin/src/feature/pause.h View File

@@ -77,6 +77,8 @@ extern uint8_t did_pause_print;
77 77
   #define DXC_PASS
78 78
 #endif
79 79
 
80
+void do_pause_e_move(const float &length, const float &fr);
81
+
80 82
 bool pause_print(const float &retract, const point_t &park_point, const float &unload_length=0, const bool show_lcd=false DXC_PARAMS);
81 83
 
82 84
 void wait_for_filament_reload(const int8_t max_beep_count=0 DXC_PARAMS);

+ 63
- 0
Marlin/src/gcode/config/M217.cpp View File

@@ -0,0 +1,63 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+#include "../../inc/MarlinConfigPre.h"
24
+
25
+#if ENABLED(SINGLENOZZLE)
26
+
27
+#include "../gcode.h"
28
+#include "../../module/tool_change.h"
29
+
30
+#if NUM_SERIAL > 1
31
+  #include "../../gcode/queue.h"
32
+#endif
33
+
34
+void M217_report(const bool eeprom=false) {
35
+  #if NUM_SERIAL > 1
36
+    const int16_t port = command_queue_port[cmd_queue_index_r];
37
+  #endif
38
+  serialprintPGM_P(port, eeprom ? PSTR("  M217") : PSTR("Singlenozzle:"));
39
+  SERIAL_ECHOPAIR_P(port, " S", singlenozzle_swap_length);
40
+  SERIAL_ECHOPAIR_P(port, " P", singlenozzle_prime_speed);
41
+  SERIAL_ECHOLNPAIR_P(port, " R", singlenozzle_retract_speed);
42
+}
43
+
44
+/**
45
+ * M217 - Set SINGLENOZZLE toolchange parameters
46
+ *
47
+ *  S[mm]   Swap length
48
+ *  P[mm/s] Prime speed
49
+ *  R[mm/s] Retract speed
50
+ */
51
+void GcodeSuite::M217() {
52
+
53
+  bool report = true;
54
+
55
+  if (parser.seenval('S')) { report = false; const float v = parser.value_float(); singlenozzle_swap_length = constrain(v, 0, 500); }
56
+  if (parser.seenval('P')) { report = false; const int16_t v = parser.value_int(); singlenozzle_prime_speed = constrain(v, 10, 5400); }
57
+  if (parser.seenval('R')) { report = false; const int16_t v = parser.value_int(); singlenozzle_retract_speed = constrain(v, 10, 5400); }
58
+
59
+  if (report) M217_report();
60
+
61
+}
62
+
63
+#endif // SINGLENOZZLE

+ 4
- 0
Marlin/src/gcode/gcode.cpp View File

@@ -487,6 +487,10 @@ void GcodeSuite::process_parsed_command(
487 487
 
488 488
       case 211: M211(); break;                                    // M211: Enable, Disable, and/or Report software endstops
489 489
 
490
+      #if ENABLED(SINGLENOZZLE)
491
+        case 217: M217(); break;                                  // M217: Set filament swap parameters
492
+      #endif
493
+
490 494
       #if HOTENDS > 1
491 495
         case 218: M218(); break;                                  // M218: Set a tool offset
492 496
       #endif

+ 5
- 0
Marlin/src/gcode/gcode.h View File

@@ -165,6 +165,7 @@
165 165
  * M209 - Turn Automatic Retract Detection on/off: S<0|1> (For slicers that don't support G10/11). (Requires FWRETRACT_AUTORETRACT)
166 166
           Every normal extrude-only move will be classified as retract depending on the direction.
167 167
  * M211 - Enable, Disable, and/or Report software endstops: S<0|1> (Requires MIN_SOFTWARE_ENDSTOPS or MAX_SOFTWARE_ENDSTOPS)
168
+ * M217 - Set filament swap parameters: "M217 S<length> P<feedrate> R<feedrate>". (Requires SINGLENOZZLE)
168 169
  * M218 - Set/get a tool offset: "M218 T<index> X<offset> Y<offset>". (Requires 2 or more extruders)
169 170
  * M220 - Set Feedrate Percentage: "M220 S<percent>" (i.e., "FR" on the LCD)
170 171
  * M221 - Set Flow Percentage: "M221 S<percent>"
@@ -617,6 +618,10 @@ private:
617 618
 
618 619
   static void M211();
619 620
 
621
+  #if ENABLED(SINGLENOZZLE)
622
+    static void M217();
623
+  #endif
624
+
620 625
   #if HOTENDS > 1
621 626
     static void M218();
622 627
   #endif

+ 14
- 15
Marlin/src/gcode/temperature/M104_M109.cpp View File

@@ -35,6 +35,10 @@
35 35
   #include "../../feature/leds/leds.h"
36 36
 #endif
37 37
 
38
+#if ENABLED(SINGLENOZZLE)
39
+  #include "../../module/tool_change.h"
40
+#endif
41
+
38 42
 /**
39 43
  * M104: Set hot end temperature
40 44
  */
@@ -44,12 +48,12 @@ void GcodeSuite::M104() {
44 48
 
45 49
   const uint8_t e = target_extruder;
46 50
 
47
-  #if ENABLED(SINGLENOZZLE)
48
-    if (e != active_extruder) return;
49
-  #endif
50
-
51 51
   if (parser.seenval('S')) {
52 52
     const int16_t temp = parser.value_celsius();
53
+    #if ENABLED(SINGLENOZZLE)
54
+      singlenozzle_temp[e] = temp;
55
+      if (e != active_extruder) return;
56
+    #endif
53 57
     thermalManager.setTargetHotend(temp, e);
54 58
 
55 59
     #if ENABLED(DUAL_X_CARRIAGE)
@@ -85,14 +89,14 @@ void GcodeSuite::M109() {
85 89
   if (get_target_extruder_from_command()) return;
86 90
   if (DEBUGGING(DRYRUN)) return;
87 91
 
88
-  #if ENABLED(SINGLENOZZLE)
89
-    if (target_extruder != active_extruder) return;
90
-  #endif
91
-
92 92
   const bool no_wait_for_cooling = parser.seenval('S'),
93 93
              set_temp = no_wait_for_cooling || parser.seenval('R');
94 94
   if (set_temp) {
95 95
     const int16_t temp = parser.value_celsius();
96
+    #if ENABLED(SINGLENOZZLE)
97
+      singlenozzle_temp[target_extruder] = temp;
98
+      if (target_extruder != active_extruder) return;
99
+    #endif
96 100
     thermalManager.setTargetHotend(temp, target_extruder);
97 101
 
98 102
     #if ENABLED(DUAL_X_CARRIAGE)
@@ -115,13 +119,8 @@ void GcodeSuite::M109() {
115 119
     #endif
116 120
 
117 121
     #if ENABLED(ULTRA_LCD)
118
-      const bool heating = thermalManager.isHeatingHotend(target_extruder);
119
-      if (heating || !no_wait_for_cooling)
120
-        #if HOTENDS > 1
121
-          lcd_status_printf_P(0, heating ? PSTR("E%i " MSG_HEATING) : PSTR("E%i " MSG_COOLING), target_extruder + 1);
122
-        #else
123
-          lcd_setstatusPGM(heating ? PSTR("E " MSG_HEATING) : PSTR("E " MSG_COOLING));
124
-        #endif
122
+      if (thermalManager.isHeatingHotend(target_extruder) || !no_wait_for_cooling)
123
+        thermalManager.set_heating_message(target_extruder);
125 124
     #endif
126 125
   }
127 126
 

+ 22
- 3
Marlin/src/gcode/temperature/M106_M107.cpp View File

@@ -27,6 +27,11 @@
27 27
 #include "../gcode.h"
28 28
 #include "../../Marlin.h" // for fan_speed — should move those to Planner
29 29
 
30
+#if ENABLED(SINGLENOZZLE)
31
+  #include "../../module/motion.h"
32
+  #include "../../module/tool_change.h"
33
+#endif
34
+
30 35
 /**
31 36
  * M106: Set Fan Speed
32 37
  *
@@ -42,6 +47,15 @@
42 47
  */
43 48
 void GcodeSuite::M106() {
44 49
   const uint8_t p = parser.byteval('P');
50
+  const uint16_t s = parser.ushortval('S', 255);
51
+
52
+  #if ENABLED(SINGLENOZZLE)
53
+    if (p != active_extruder) {
54
+      if (p < EXTRUDERS) singlenozzle_fan_speed[p] = MIN(s, 255U);
55
+      return;
56
+    }
57
+  #endif
58
+
45 59
   if (p < FAN_COUNT) {
46 60
     #if ENABLED(EXTRA_FAN_SPEED)
47 61
       const int16_t t = parser.intval('T');
@@ -55,14 +69,12 @@ void GcodeSuite::M106() {
55 69
             fan_speed[p] = new_fan_speed[p];
56 70
             break;
57 71
           default:
58
-            new_fan_speed[p] = MIN(t, 255);
72
+            new_fan_speed[p] = MIN(t, 255U);
59 73
             break;
60 74
         }
61 75
         return;
62
-
63 76
       }
64 77
     #endif // EXTRA_FAN_SPEED
65
-    const uint16_t s = parser.ushortval('S', 255);
66 78
     fan_speed[p] = MIN(s, 255U);
67 79
   }
68 80
 }
@@ -72,6 +84,13 @@ void GcodeSuite::M106() {
72 84
  */
73 85
 void GcodeSuite::M107() {
74 86
   const uint16_t p = parser.ushortval('P');
87
+  #if ENABLED(SINGLENOZZLE)
88
+    if (p != active_extruder) {
89
+      if (p < EXTRUDERS) singlenozzle_fan_speed[p] = 0;
90
+      return;
91
+    }
92
+  #endif
93
+
75 94
   if (p < FAN_COUNT) fan_speed[p] = 0;
76 95
 }
77 96
 

+ 22
- 0
Marlin/src/inc/Conditionals_post.h View File

@@ -1513,6 +1513,28 @@
1513 1513
 // Add commands that need sub-codes to this list
1514 1514
 #define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS) || ENABLED(POWER_LOSS_RECOVERY)
1515 1515
 
1516
+// Single Nozzle swap on toolchange defaults
1517
+#if ENABLED(SINGLENOZZLE)
1518
+  #ifndef SINGLENOZZLE_SWAP_LENGTH
1519
+    #define SINGLENOZZLE_SWAP_LENGTH 0
1520
+  #endif
1521
+  #ifndef SINGLENOZZLE_SWAP_RETRACT_SPEED
1522
+    #define SINGLENOZZLE_SWAP_RETRACT_SPEED 60.0
1523
+  #endif
1524
+  #ifndef SINGLENOZZLE_SWAP_PRIME_SPEED
1525
+    #define SINGLENOZZLE_SWAP_PRIME_SPEED 60.0
1526
+  #endif
1527
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
1528
+    #ifndef SINGLENOZZLE_TOOLCHANGE_POSITION
1529
+      #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
1530
+    #endif
1531
+  #else
1532
+    #ifndef SINGLENOZZLE_TOOLCHANGE_ZRAISE
1533
+      #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
1534
+    #endif
1535
+  #endif
1536
+#endif
1537
+
1516 1538
 // Parking Extruder
1517 1539
 #if ENABLED(PARKING_EXTRUDER)
1518 1540
   #ifndef PARKING_EXTRUDER_GRAB_DISTANCE

+ 4
- 0
Marlin/src/inc/SanityCheck.h View File

@@ -602,6 +602,10 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
602 602
     #error "EXTRUDERS must be 1 with HEATERS_PARALLEL."
603 603
   #endif
604 604
 
605
+  #if ENABLED(SINGLENOZZLE) && !defined(SINGLENOZZLE_SWAP_LENGTH)
606
+    #define SINGLENOZZLE_SWAP_LENGTH 0
607
+  #endif
608
+
605 609
 #elif ENABLED(MK2_MULTIPLEXER)
606 610
   #error "MK2_MULTIPLEXER requires 2 or more EXTRUDERS."
607 611
 #elif ENABLED(SINGLENOZZLE)

+ 12
- 0
Marlin/src/lcd/language/language_en.h View File

@@ -768,6 +768,18 @@
768 768
 #ifndef MSG_AUTORETRACT
769 769
   #define MSG_AUTORETRACT                     _UxGT("AutoRetr.")
770 770
 #endif
771
+#ifndef MSG_FILAMENT_SWAP_LENGTH
772
+  #define MSG_FILAMENT_SWAP_LENGTH            _UxGT("Retract Distance")
773
+#endif
774
+#ifndef MSG_SINGLENOZZLE_TOOL_CHANGE
775
+  #define MSG_SINGLENOZZLE_TOOL_CHANGE        _UxGT("Tool Change")
776
+#endif
777
+#ifndef MSG_SINGLENOZZLE_PRIME_SPD
778
+  #define MSG_SINGLENOZZLE_PRIME_SPD          _UxGT("Prime Speed")
779
+#endif
780
+#ifndef MSG_SINGLENOZZLE_RETRACT_SPD
781
+  #define MSG_SINGLENOZZLE_RETRACT_SPD        _UxGT("Retract Speed")
782
+#endif
771 783
 #ifndef MSG_FILAMENTCHANGE
772 784
   #define MSG_FILAMENTCHANGE                  _UxGT("Change filament")
773 785
 #endif

+ 22
- 11
Marlin/src/lcd/ultralcd.cpp View File

@@ -138,6 +138,7 @@ millis_t next_lcd_update_ms;
138 138
     } \
139 139
     typedef void _name##_void
140 140
   DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int3, itostr3);
141
+  DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int4, itostr4sign);
141 142
   DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(uint8_t, int8, i8tostr3);
142 143
   DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float3, ftostr3);
143 144
   DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float52, ftostr52);
@@ -267,6 +268,7 @@ millis_t next_lcd_update_ms;
267 268
     typedef void _name##_void
268 269
 
269 270
   DECLARE_MENU_EDIT_TYPE(int16_t, int3);
271
+  DECLARE_MENU_EDIT_TYPE(int16_t, int4);
270 272
   DECLARE_MENU_EDIT_TYPE(uint8_t, int8);
271 273
   DECLARE_MENU_EDIT_TYPE(float, float3);
272 274
   DECLARE_MENU_EDIT_TYPE(float, float52);
@@ -974,15 +976,23 @@ void lcd_quick_feedback(const bool clear_buttons) {
974 976
 
975 977
   #endif // POWER_LOSS_RECOVERY
976 978
 
979
+  #if ENABLED(SINGLENOZZLE)
980
+    void singlenozzle_swap_menu() {
981
+      START_MENU();
982
+      MENU_BACK(MSG_MAIN);
983
+      MENU_ITEM_EDIT(float3, MSG_FILAMENT_SWAP_LENGTH, &singlenozzle_swap_length, 0, 200);
984
+      MENU_MULTIPLIER_ITEM_EDIT(int4, MSG_SINGLENOZZLE_RETRACT_SPD, &singlenozzle_retract_speed, 10, 5400);
985
+      MENU_MULTIPLIER_ITEM_EDIT(int4, MSG_SINGLENOZZLE_PRIME_SPD, &singlenozzle_prime_speed, 10, 5400);
986
+      END_MENU();
987
+    }
988
+  #endif
989
+  
977 990
   #if ENABLED(MENU_ITEM_CASE_LIGHT)
978 991
 
979 992
     #include "../feature/caselight.h"
980 993
 
981 994
     void case_light_menu() {
982 995
       START_MENU();
983
-      //
984
-      // ^ Main
985
-      //
986 996
       MENU_BACK(MSG_MAIN);
987 997
       MENU_ITEM_EDIT_CALLBACK(int8, MSG_CASE_LIGHT_BRIGHTNESS, &case_light_brightness, 0, 255, update_case_light, true);
988 998
       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) {
999 1009
      */
1000 1010
     static void bltouch_menu() {
1001 1011
       START_MENU();
1002
-      //
1003
-      // ^ Main
1004
-      //
1005 1012
       MENU_BACK(MSG_MAIN);
1006 1013
       MENU_ITEM(gcode, MSG_BLTOUCH_RESET, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_RESET)));
1007 1014
       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) {
1042 1049
     void lcd_debug_menu() {
1043 1050
       START_MENU();
1044 1051
 
1045
-      MENU_BACK(MSG_MAIN); // ^ Main
1052
+      MENU_BACK(MSG_MAIN);
1046 1053
 
1047 1054
       #if ENABLED(LCD_PROGRESS_BAR_TEST)
1048 1055
         MENU_ITEM(submenu, MSG_PROGRESS_BAR_TEST, _progress_bar_test);
@@ -1494,10 +1501,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
1494 1501
    */
1495 1502
   void lcd_tune_menu() {
1496 1503
     START_MENU();
1497
-
1498
-    //
1499
-    // ^ Main
1500
-    //
1501 1504
     MENU_BACK(MSG_MAIN);
1502 1505
 
1503 1506
     //
@@ -3439,6 +3442,13 @@ void lcd_quick_feedback(const bool clear_buttons) {
3439 3442
     }
3440 3443
 
3441 3444
     //
3445
+    // Set single nozzle filament retract and prime length
3446
+    //
3447
+    #if ENABLED(SINGLENOZZLE)
3448
+      MENU_ITEM(submenu, MSG_SINGLENOZZLE_TOOL_CHANGE, singlenozzle_swap_menu);
3449
+    #endif
3450
+
3451
+    //
3442 3452
     // Set Case light on/off/brightness
3443 3453
     //
3444 3454
     #if ENABLED(MENU_ITEM_CASE_LIGHT)
@@ -5143,6 +5153,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
5143 5153
     typedef void _name##_void
5144 5154
 
5145 5155
   DEFINE_MENU_EDIT_TYPE(int16_t, int3, itostr3, 1);
5156
+  DEFINE_MENU_EDIT_TYPE(int16_t, int4, itostr4sign, 1);
5146 5157
   DEFINE_MENU_EDIT_TYPE(uint8_t, int8, i8tostr3, 1);
5147 5158
   DEFINE_MENU_EDIT_TYPE(float, float3, ftostr3, 1);
5148 5159
   DEFINE_MENU_EDIT_TYPE(float, float52, ftostr52, 100);

+ 51
- 0
Marlin/src/module/configuration_store.cpp View File

@@ -98,6 +98,11 @@ typedef struct {  int16_t X, Y, Z;                                         } tmc
98 98
   #include "../feature/pause.h"
99 99
 #endif
100 100
 
101
+#if ENABLED(SINGLENOZZLE)
102
+  #include "tool_change.h"
103
+  void M217_report(const bool eeprom);
104
+#endif
105
+
101 106
 #if ENABLED(PID_EXTRUSION_SCALING)
102 107
   #define LPQ_LEN thermalManager.lpq_len
103 108
 #endif
@@ -289,6 +294,15 @@ typedef struct SettingsDataStruct {
289 294
   float filament_change_unload_length[EXTRUDERS],       // M603 T U
290 295
         filament_change_load_length[EXTRUDERS];         // M603 T L
291 296
 
297
+  //
298
+  // SINGLENOZZLE toolchange values
299
+  //
300
+  #if ENABLED(SINGLENOZZLE)
301
+    float singlenozzle_swap_length;                     // M217 S
302
+    int16_t singlenozzle_prime_speed,                   // M217 P
303
+            singlenozzle_retract_speed;                 // M217 R
304
+  #endif
305
+
292 306
 } SettingsData;
293 307
 
294 308
 #pragma pack(pop)
@@ -948,6 +962,17 @@ void MarlinSettings::postprocess() {
948 962
     #endif
949 963
 
950 964
     //
965
+    // SINGLENOZZLE
966
+    //
967
+
968
+    #if ENABLED(SINGLENOZZLE)
969
+      _FIELD_TEST(singlenozzle_swap_length);
970
+      EEPROM_WRITE(singlenozzle_swap_length);
971
+      EEPROM_WRITE(singlenozzle_prime_speed);
972
+      EEPROM_WRITE(singlenozzle_retract_speed);
973
+    #endif
974
+
975
+    //
951 976
     // Validate CRC and Data Size
952 977
     //
953 978
     if (!eeprom_error) {
@@ -1582,6 +1607,17 @@ void MarlinSettings::postprocess() {
1582 1607
         for (uint8_t q = EXTRUDERS * 2; q--;) EEPROM_READ(dummy);
1583 1608
       #endif
1584 1609
 
1610
+      //
1611
+      // SINGLENOZZLE toolchange values
1612
+      //
1613
+
1614
+      #if ENABLED(SINGLENOZZLE)
1615
+        _FIELD_TEST(singlenozzle_swap_length);
1616
+        EEPROM_READ(singlenozzle_swap_length);
1617
+        EEPROM_READ(singlenozzle_prime_speed);
1618
+        EEPROM_READ(singlenozzle_retract_speed);
1619
+      #endif
1620
+
1585 1621
       eeprom_error = size_error(eeprom_index - (EEPROM_OFFSET));
1586 1622
       if (eeprom_error) {
1587 1623
         #if ENABLED(EEPROM_CHITCHAT)
@@ -1840,6 +1876,12 @@ void MarlinSettings::reset(PORTARG_SOLO) {
1840 1876
     #endif
1841 1877
   #endif
1842 1878
 
1879
+  #if ENABLED(SINGLENOZZLE)
1880
+    singlenozzle_swap_length = SINGLENOZZLE_SWAP_LENGTH;
1881
+    singlenozzle_prime_speed = SINGLENOZZLE_SWAP_PRIME_SPEED;
1882
+    singlenozzle_retract_speed = SINGLENOZZLE_SWAP_RETRACT_SPEED;
1883
+  #endif
1884
+
1843 1885
   //
1844 1886
   // Global Leveling
1845 1887
   //
@@ -2897,6 +2939,15 @@ void MarlinSettings::reset(PORTARG_SOLO) {
2897 2939
         #endif // EXTRUDERS > 2
2898 2940
       #endif // EXTRUDERS == 1
2899 2941
     #endif // ADVANCED_PAUSE_FEATURE
2942
+
2943
+    #if ENABLED(SINGLENOZZLE)
2944
+      CONFIG_ECHO_START;
2945
+      if (!forReplay) {
2946
+        SERIAL_ECHOLNPGM_P(port, "SINGLENOZZLE:");
2947
+        CONFIG_ECHO_START;
2948
+      }
2949
+      M217_report(true);
2950
+    #endif
2900 2951
   }
2901 2952
 
2902 2953
 #endif // !DISABLE_M503

+ 11
- 0
Marlin/src/module/temperature.cpp View File

@@ -2416,6 +2416,17 @@ void Temperature::isr() {
2416 2416
 
2417 2417
   #endif // AUTO_REPORT_TEMPERATURES
2418 2418
 
2419
+  #if ENABLED(ULTRA_LCD)
2420
+    void Temperature::set_heating_message(const uint8_t e) {
2421
+      const bool heating = isHeatingHotend(e);
2422
+      #if HOTENDS > 1
2423
+        lcd_status_printf_P(0, heating ? PSTR("E%i " MSG_HEATING) : PSTR("E%i " MSG_COOLING), int(e + 1));
2424
+      #else
2425
+        lcd_setstatusPGM(heating ? PSTR("E " MSG_HEATING) : PSTR("E " MSG_COOLING));
2426
+      #endif
2427
+    }
2428
+  #endif
2429
+
2419 2430
   #if HAS_TEMP_HOTEND
2420 2431
 
2421 2432
     #ifndef MIN_COOLING_SLOPE_DEG

+ 4
- 1
Marlin/src/module/temperature.h View File

@@ -616,6 +616,10 @@ class Temperature {
616 616
       #endif
617 617
     #endif
618 618
 
619
+    #if ENABLED(ULTRA_LCD)
620
+      static void set_heating_message(const uint8_t e);
621
+    #endif
622
+
619 623
   private:
620 624
 
621 625
     #if ENABLED(FAST_PWM_FAN)
@@ -659,7 +663,6 @@ class Temperature {
659 663
       #endif
660 664
 
661 665
     #endif // THERMAL_PROTECTION
662
-
663 666
 };
664 667
 
665 668
 extern Temperature thermalManager;

+ 94
- 6
Marlin/src/module/tool_change.cpp View File

@@ -25,9 +25,24 @@
25 25
 #include "probe.h"
26 26
 #include "motion.h"
27 27
 #include "planner.h"
28
+#include "temperature.h"
28 29
 
29 30
 #include "../Marlin.h"
30 31
 
32
+#if ENABLED(SINGLENOZZLE)
33
+  float singlenozzle_swap_length      = SINGLENOZZLE_SWAP_LENGTH;
34
+  int16_t singlenozzle_prime_speed    = SINGLENOZZLE_SWAP_PRIME_SPEED,
35
+          singlenozzle_retract_speed  = SINGLENOZZLE_SWAP_RETRACT_SPEED;
36
+  uint16_t singlenozzle_temp[EXTRUDERS];
37
+  #if FAN_COUNT > 0
38
+    uint8_t singlenozzle_fan_speed[EXTRUDERS];
39
+  #endif
40
+  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
41
+    #include "../libs/point_t.h"
42
+    const point_t singlenozzle_change_point = SINGLENOZZLE_TOOLCHANGE_POSITION;
43
+  #endif
44
+#endif
45
+
31 46
 #if ENABLED(PARKING_EXTRUDER) && PARKING_EXTRUDER_SOLENOIDS_DELAY > 0
32 47
   #include "../gcode/gcode.h" // for dwell()
33 48
 #endif
@@ -625,16 +640,89 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
625 640
       UNUSED(no_move);
626 641
 
627 642
       #if ENABLED(MK2_MULTIPLEXER)
628
-        if (tmp_extruder >= E_STEPPERS)
629
-          return invalid_extruder_error(tmp_extruder);
630
-
643
+        if (tmp_extruder >= E_STEPPERS) return invalid_extruder_error(tmp_extruder);
631 644
         select_multiplexed_stepper(tmp_extruder);
632 645
       #endif
633 646
 
634 647
       #if EXTRUDERS > 1
635
-        // Set the new active extruder
636
-        active_extruder = tmp_extruder;
637
-      #endif
648
+
649
+        #if ENABLED(SINGLENOZZLE)
650
+
651
+          #if ENABLED(PREVENT_COLD_EXTRUSION)
652
+            if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
653
+              SERIAL_ERROR_START();
654
+              SERIAL_ERRORLNPGM(MSG_HOTEND_TOO_COLD);
655
+              return;
656
+            }
657
+          #endif
658
+
659
+          #if FAN_COUNT > 0
660
+            singlenozzle_fan_speed[active_extruder] = fan_speed[0];
661
+            fan_speed[0] = singlenozzle_fan_speed[tmp_extruder];
662
+          #endif
663
+
664
+          set_destination_from_current();
665
+
666
+          current_position[Z_AXIS] += (
667
+            #if ENABLED(SINGLENOZZLE_SWAP_PARK)
668
+              singlenozzle_change_point.z
669
+            #else
670
+              SINGLENOZZLE_TOOLCHANGE_ZRAISE
671
+            #endif
672
+          );
673
+
674
+          planner.buffer_line(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
675
+
676
+          #if ENABLED(SINGLENOZZLE_SWAP_PARK)
677
+            current_position[X_AXIS] = singlenozzle_change_point.x;
678
+            current_position[Y_AXIS] = singlenozzle_change_point.y;
679
+            planner.buffer_line(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
680
+          #endif
681
+
682
+          if (singlenozzle_swap_length) {
683
+            #if ENABLED(ADVANCED_PAUSE_FEATURE)
684
+              do_pause_e_move(-singlenozzle_swap_length, MMM_TO_MMS(singlenozzle_retract_speed));
685
+            #else
686
+              current_position[E_AXIS] -= singlenozzle_swap_length / planner.e_factor[active_extruder];
687
+              planner.buffer_line(current_position, MMM_TO_MMS(singlenozzle_retract_speed), active_extruder);
688
+            #endif
689
+          }
690
+
691
+          singlenozzle_temp[active_extruder] = thermalManager.target_temperature[0];
692
+          if (singlenozzle_temp[tmp_extruder] && singlenozzle_temp[tmp_extruder] != singlenozzle_temp[active_extruder]) {
693
+            thermalManager.setTargetHotend(singlenozzle_temp[tmp_extruder], 0);
694
+            #if ENABLED(ULTRA_LCD)
695
+              thermalManager.set_heating_message(0);
696
+            #endif
697
+            (void)thermalManager.wait_for_hotend(0, false);  // Wait for heating or cooling
698
+          }
699
+
700
+          active_extruder = tmp_extruder;
701
+
702
+          if (singlenozzle_swap_length) {
703
+            #if ENABLED(ADVANCED_PAUSE_FEATURE)
704
+              do_pause_e_move(singlenozzle_swap_length, singlenozzle_prime_speed);
705
+            #else
706
+              current_position[E_AXIS] += singlenozzle_swap_length / planner.e_factor[tmp_extruder];
707
+              planner.buffer_line(current_position, singlenozzle_prime_speed, tmp_extruder);
708
+            #endif
709
+          }
710
+
711
+          #if ENABLED(SINGLENOZZLE_SWAP_PARK)
712
+            current_position[X_AXIS] = destination[X_AXIS];
713
+            current_position[Y_AXIS] = destination[Y_AXIS];
714
+            planner.buffer_line(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
715
+          #endif
716
+
717
+          do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS]);
718
+
719
+        #else // !SINGLENOZZLE
720
+
721
+          active_extruder = tmp_extruder;
722
+
723
+        #endif // !SINGLENOZZLE
724
+
725
+      #endif // EXTRUDERS > 1
638 726
 
639 727
     #endif // HOTENDS <= 1
640 728
 

+ 10
- 0
Marlin/src/module/tool_change.h View File

@@ -50,6 +50,16 @@
50 50
 
51 51
 #endif // PARKING_EXTRUDER
52 52
 
53
+#if ENABLED(SINGLENOZZLE)
54
+  extern float singlenozzle_swap_length;
55
+  extern int16_t singlenozzle_prime_speed,
56
+                 singlenozzle_retract_speed;
57
+  extern uint16_t singlenozzle_temp[EXTRUDERS];
58
+  #if FAN_COUNT > 0
59
+    extern uint8_t singlenozzle_fan_speed[EXTRUDERS];
60
+  #endif
61
+#endif
62
+
53 63
 /**
54 64
  * Perform a tool-change, which may result in moving the
55 65
  * previous tool out of the way and the new tool into place.

+ 2
- 1
buildroot/share/tests/STM32F1_tests View File

@@ -5,8 +5,9 @@ set -e
5 5
 
6 6
 restore_configs
7 7
 opt_set MOTHERBOARD BOARD_STM32F1R
8
+opt_set EXTRUDERS 2
8 9
 opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT \
9
-           PAREN_COMMENTS GCODE_MOTION_MODES
10
+           PAREN_COMMENTS GCODE_MOTION_MODES SINGLENOZZLE SINGLENOZZLE_SWAP_LENGTH
10 11
 exec_test $1 $2 "STM32F1R EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT PAREN_COMMENTS GCODE_MOTION_MODES"
11 12
 
12 13
 opt_enable SPINDLE_LASER_ENABLE

Loading…
Cancel
Save