Pārlūkot izejas kodu

[2.0.x] SWITCHING_TOOLHEAD (#11623)

Kevin 6 gadus atpakaļ
vecāks
revīzija
e25d2ae4a2
74 mainītis faili ar 1376 papildinājumiem un 15 dzēšanām
  1. 17
    0
      Marlin/Configuration.h
  2. 17
    0
      Marlin/src/config/default/Configuration.h
  3. 17
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
  4. 17
    0
      Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
  5. 17
    0
      Marlin/src/config/examples/Anet/A6/Configuration.h
  6. 17
    0
      Marlin/src/config/examples/Anet/A8/Configuration.h
  7. 17
    0
      Marlin/src/config/examples/Azteeg/X5GT/Configuration.h
  8. 17
    0
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h
  9. 17
    0
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h
  10. 17
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration.h
  11. 17
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
  12. 17
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration.h
  13. 17
    0
      Marlin/src/config/examples/Cartesio/Configuration.h
  14. 17
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration.h
  15. 17
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration.h
  16. 17
    0
      Marlin/src/config/examples/Creality/CR-10mini/Configuration.h
  17. 17
    0
      Marlin/src/config/examples/Creality/CR-8/Configuration.h
  18. 17
    0
      Marlin/src/config/examples/Creality/Ender-2/Configuration.h
  19. 17
    0
      Marlin/src/config/examples/Creality/Ender-3/Configuration.h
  20. 17
    0
      Marlin/src/config/examples/Creality/Ender-4/Configuration.h
  21. 17
    0
      Marlin/src/config/examples/Einstart-S/Configuration.h
  22. 17
    0
      Marlin/src/config/examples/Felix/Configuration.h
  23. 17
    0
      Marlin/src/config/examples/Felix/DUAL/Configuration.h
  24. 17
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
  25. 17
    0
      Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
  26. 17
    0
      Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  27. 17
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h
  28. 17
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  29. 17
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  30. 17
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  31. 17
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
  32. 17
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration.h
  33. 17
    0
      Marlin/src/config/examples/MakerParts/Configuration.h
  34. 17
    0
      Marlin/src/config/examples/Malyan/M150/Configuration.h
  35. 17
    0
      Marlin/src/config/examples/Malyan/M200/Configuration.h
  36. 17
    0
      Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
  37. 17
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
  38. 17
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration.h
  39. 17
    0
      Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h
  40. 17
    0
      Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
  41. 17
    0
      Marlin/src/config/examples/RigidBot/Configuration.h
  42. 17
    0
      Marlin/src/config/examples/SCARA/Configuration.h
  43. 17
    0
      Marlin/src/config/examples/STM32F10/Configuration.h
  44. 17
    0
      Marlin/src/config/examples/STM32F4/Configuration.h
  45. 17
    0
      Marlin/src/config/examples/Sanguinololu/Configuration.h
  46. 17
    0
      Marlin/src/config/examples/TheBorg/Configuration.h
  47. 17
    0
      Marlin/src/config/examples/TinyBoy2/Configuration.h
  48. 17
    0
      Marlin/src/config/examples/Tronxy/X1/Configuration.h
  49. 17
    0
      Marlin/src/config/examples/Tronxy/X3A/Configuration.h
  50. 17
    0
      Marlin/src/config/examples/Tronxy/X5S/Configuration.h
  51. 17
    0
      Marlin/src/config/examples/Tronxy/XY100/Configuration.h
  52. 17
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h
  53. 17
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration.h
  54. 17
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration.h
  55. 17
    0
      Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
  56. 17
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h
  57. 17
    0
      Marlin/src/config/examples/adafruit/ST7565/Configuration.h
  58. 17
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  59. 17
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h
  60. 17
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
  61. 17
    0
      Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h
  62. 17
    0
      Marlin/src/config/examples/delta/generic/Configuration.h
  63. 17
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration.h
  64. 17
    0
      Marlin/src/config/examples/delta/kossel_pro/Configuration.h
  65. 17
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration.h
  66. 17
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
  67. 17
    0
      Marlin/src/config/examples/makibox/Configuration.h
  68. 17
    0
      Marlin/src/config/examples/stm32f103ret6/Configuration.h
  69. 17
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration.h
  70. 17
    0
      Marlin/src/config/examples/wt150/Configuration.h
  71. 9
    2
      Marlin/src/inc/Conditionals_LCD.h
  72. 33
    2
      Marlin/src/inc/SanityCheck.h
  73. 139
    11
      Marlin/src/module/tool_change.cpp
  74. 5
    0
      buildroot/share/tests/megaatmega2560_tests

+ 17
- 0
Marlin/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/default/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Anet/A6/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Anet/A8/Configuration.h Parādīt failu

@@ -208,6 +208,23 @@
208 208
 #endif
209 209
 
210 210
 /**
211
+ * Switching Toolhead
212
+ *
213
+ * Support for swappable and dockable toolheads, such as
214
+ * the E3D Tool Changer. Toolheads are locked with a servo.
215
+ */
216
+//#define SWITCHING_TOOLHEAD
217
+#if ENABLED(SWITCHING_TOOLHEAD)
218
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
219
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
220
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
221
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
222
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
223
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
224
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
225
+#endif
226
+
227
+/**
211 228
  * "Mixing Extruder"
212 229
  *   - Adds a new code, M165, to set the current mix factors.
213 230
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Azteeg/X5GT/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h Parādīt failu

@@ -215,6 +215,23 @@
215 215
 #endif
216 216
 
217 217
 /**
218
+ * Switching Toolhead
219
+ *
220
+ * Support for swappable and dockable toolheads, such as
221
+ * the E3D Tool Changer. Toolheads are locked with a servo.
222
+ */
223
+//#define SWITCHING_TOOLHEAD
224
+#if ENABLED(SWITCHING_TOOLHEAD)
225
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
226
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
227
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
228
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
229
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
230
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
231
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
232
+#endif
233
+
234
+/**
218 235
  * "Mixing Extruder"
219 236
  *   - Adds a new code, M165, to set the current mix factors.
220 237
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Cartesio/Configuration.h Parādīt failu

@@ -208,6 +208,23 @@
208 208
 #endif
209 209
 
210 210
 /**
211
+ * Switching Toolhead
212
+ *
213
+ * Support for swappable and dockable toolheads, such as
214
+ * the E3D Tool Changer. Toolheads are locked with a servo.
215
+ */
216
+//#define SWITCHING_TOOLHEAD
217
+#if ENABLED(SWITCHING_TOOLHEAD)
218
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
219
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
220
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
221
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
222
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
223
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
224
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
225
+#endif
226
+
227
+/**
211 228
  * "Mixing Extruder"
212 229
  *   - Adds a new code, M165, to set the current mix factors.
213 230
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration.h Parādīt failu

@@ -211,6 +211,23 @@
211 211
 #endif
212 212
 
213 213
 /**
214
+ * Switching Toolhead
215
+ *
216
+ * Support for swappable and dockable toolheads, such as
217
+ * the E3D Tool Changer. Toolheads are locked with a servo.
218
+ */
219
+//#define SWITCHING_TOOLHEAD
220
+#if ENABLED(SWITCHING_TOOLHEAD)
221
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
222
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
223
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
224
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
225
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
226
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
227
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
228
+#endif
229
+
230
+/**
214 231
  * "Mixing Extruder"
215 232
  *   - Adds a new code, M165, to set the current mix factors.
216 233
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/CR-10mini/Configuration.h Parādīt failu

@@ -216,6 +216,23 @@
216 216
 #endif
217 217
 
218 218
 /**
219
+ * Switching Toolhead
220
+ *
221
+ * Support for swappable and dockable toolheads, such as
222
+ * the E3D Tool Changer. Toolheads are locked with a servo.
223
+ */
224
+//#define SWITCHING_TOOLHEAD
225
+#if ENABLED(SWITCHING_TOOLHEAD)
226
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
227
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
228
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
229
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
230
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
231
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
232
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
233
+#endif
234
+
235
+/**
219 236
  * "Mixing Extruder"
220 237
  *   - Adds a new code, M165, to set the current mix factors.
221 238
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/CR-8/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/Ender-2/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/Ender-3/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Creality/Ender-4/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Einstart-S/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Felix/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Felix/DUAL/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration.h Parādīt failu

@@ -212,6 +212,23 @@
212 212
 #endif
213 213
 
214 214
 /**
215
+ * Switching Toolhead
216
+ *
217
+ * Support for swappable and dockable toolheads, such as
218
+ * the E3D Tool Changer. Toolheads are locked with a servo.
219
+ */
220
+//#define SWITCHING_TOOLHEAD
221
+#if ENABLED(SWITCHING_TOOLHEAD)
222
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
223
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
224
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
225
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
226
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
227
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
228
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
229
+#endif
230
+
231
+/**
215 232
  * "Mixing Extruder"
216 233
  *   - Adds a new code, M165, to set the current mix factors.
217 234
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/MakerParts/Configuration.h Parādīt failu

@@ -227,6 +227,23 @@
227 227
 #endif
228 228
 
229 229
 /**
230
+ * Switching Toolhead
231
+ *
232
+ * Support for swappable and dockable toolheads, such as
233
+ * the E3D Tool Changer. Toolheads are locked with a servo.
234
+ */
235
+//#define SWITCHING_TOOLHEAD
236
+#if ENABLED(SWITCHING_TOOLHEAD)
237
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
238
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
239
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
240
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
241
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
242
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
243
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
244
+#endif
245
+
246
+/**
230 247
  * "Mixing Extruder"
231 248
  *   - Adds a new code, M165, to set the current mix factors.
232 249
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Malyan/M150/Configuration.h Parādīt failu

@@ -212,6 +212,23 @@
212 212
 #endif
213 213
 
214 214
 /**
215
+ * Switching Toolhead
216
+ *
217
+ * Support for swappable and dockable toolheads, such as
218
+ * the E3D Tool Changer. Toolheads are locked with a servo.
219
+ */
220
+//#define SWITCHING_TOOLHEAD
221
+#if ENABLED(SWITCHING_TOOLHEAD)
222
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
223
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
224
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
225
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
226
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
227
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
228
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
229
+#endif
230
+
231
+/**
215 232
  * "Mixing Extruder"
216 233
  *   - Adds a new code, M165, to set the current mix factors.
217 234
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Malyan/M200/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Micromake/C1/basic/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/RigidBot/Configuration.h Parādīt failu

@@ -210,6 +210,23 @@
210 210
 #endif
211 211
 
212 212
 /**
213
+ * Switching Toolhead
214
+ *
215
+ * Support for swappable and dockable toolheads, such as
216
+ * the E3D Tool Changer. Toolheads are locked with a servo.
217
+ */
218
+//#define SWITCHING_TOOLHEAD
219
+#if ENABLED(SWITCHING_TOOLHEAD)
220
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
221
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
222
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
223
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
224
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
225
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
226
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
227
+#endif
228
+
229
+/**
213 230
  * "Mixing Extruder"
214 231
  *   - Adds a new code, M165, to set the current mix factors.
215 232
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/SCARA/Configuration.h Parādīt failu

@@ -238,6 +238,23 @@
238 238
 #endif
239 239
 
240 240
 /**
241
+ * Switching Toolhead
242
+ *
243
+ * Support for swappable and dockable toolheads, such as
244
+ * the E3D Tool Changer. Toolheads are locked with a servo.
245
+ */
246
+//#define SWITCHING_TOOLHEAD
247
+#if ENABLED(SWITCHING_TOOLHEAD)
248
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
249
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
250
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
251
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
252
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
253
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
254
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
255
+#endif
256
+
257
+/**
241 258
  * "Mixing Extruder"
242 259
  *   - Adds a new code, M165, to set the current mix factors.
243 260
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/STM32F10/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/STM32F4/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Sanguinololu/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/TheBorg/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/TinyBoy2/Configuration.h Parādīt failu

@@ -229,6 +229,23 @@
229 229
 #endif
230 230
 
231 231
 /**
232
+ * Switching Toolhead
233
+ *
234
+ * Support for swappable and dockable toolheads, such as
235
+ * the E3D Tool Changer. Toolheads are locked with a servo.
236
+ */
237
+//#define SWITCHING_TOOLHEAD
238
+#if ENABLED(SWITCHING_TOOLHEAD)
239
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
240
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
241
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
242
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
243
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
244
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
245
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
246
+#endif
247
+
248
+/**
232 249
  * "Mixing Extruder"
233 250
  *   - Adds a new code, M165, to set the current mix factors.
234 251
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Tronxy/X1/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Tronxy/X3A/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Tronxy/X5S/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Tronxy/XY100/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration.h Parādīt failu

@@ -227,6 +227,23 @@
227 227
 #endif
228 228
 
229 229
 /**
230
+ * Switching Toolhead
231
+ *
232
+ * Support for swappable and dockable toolheads, such as
233
+ * the E3D Tool Changer. Toolheads are locked with a servo.
234
+ */
235
+//#define SWITCHING_TOOLHEAD
236
+#if ENABLED(SWITCHING_TOOLHEAD)
237
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
238
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
239
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
240
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
241
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
242
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
243
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
244
+#endif
245
+
246
+/**
230 247
  * "Mixing Extruder"
231 248
  *   - Adds a new code, M165, to set the current mix factors.
232 249
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/adafruit/ST7565/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h Parādīt failu

@@ -212,6 +212,23 @@
212 212
 #endif
213 213
 
214 214
 /**
215
+ * Switching Toolhead
216
+ *
217
+ * Support for swappable and dockable toolheads, such as
218
+ * the E3D Tool Changer. Toolheads are locked with a servo.
219
+ */
220
+//#define SWITCHING_TOOLHEAD
221
+#if ENABLED(SWITCHING_TOOLHEAD)
222
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
223
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
224
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
225
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
226
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
227
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
228
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
229
+#endif
230
+
231
+/**
215 232
  * "Mixing Extruder"
216 233
  *   - Adds a new code, M165, to set the current mix factors.
217 234
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/generic/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/kossel_pro/Configuration.h Parādīt failu

@@ -211,6 +211,23 @@
211 211
 #endif
212 212
 
213 213
 /**
214
+ * Switching Toolhead
215
+ *
216
+ * Support for swappable and dockable toolheads, such as
217
+ * the E3D Tool Changer. Toolheads are locked with a servo.
218
+ */
219
+//#define SWITCHING_TOOLHEAD
220
+#if ENABLED(SWITCHING_TOOLHEAD)
221
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
222
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
223
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
224
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
225
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
226
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
227
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
228
+#endif
229
+
230
+/**
214 231
  * "Mixing Extruder"
215 232
  *   - Adds a new code, M165, to set the current mix factors.
216 233
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h Parādīt failu

@@ -212,6 +212,23 @@
212 212
 #endif
213 213
 
214 214
 /**
215
+ * Switching Toolhead
216
+ *
217
+ * Support for swappable and dockable toolheads, such as
218
+ * the E3D Tool Changer. Toolheads are locked with a servo.
219
+ */
220
+//#define SWITCHING_TOOLHEAD
221
+#if ENABLED(SWITCHING_TOOLHEAD)
222
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
223
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
224
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
225
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
226
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
227
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
228
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
229
+#endif
230
+
231
+/**
215 232
  * "Mixing Extruder"
216 233
  *   - Adds a new code, M165, to set the current mix factors.
217 234
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/makibox/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/stm32f103ret6/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 17
- 0
Marlin/src/config/examples/wt150/Configuration.h Parādīt failu

@@ -207,6 +207,23 @@
207 207
 #endif
208 208
 
209 209
 /**
210
+ * Switching Toolhead
211
+ *
212
+ * Support for swappable and dockable toolheads, such as
213
+ * the E3D Tool Changer. Toolheads are locked with a servo.
214
+ */
215
+//#define SWITCHING_TOOLHEAD
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+  #define SWITCHING_TOOLHEAD_SERVO_NR       2         // Index of the servo connector
218
+  #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }  // (degrees) Angles for Lock, Unlock
219
+  #define SWITCHING_TOOLHEAD_Y_POS        235         // (mm) Y position of the toolhead dock
220
+  #define SWITCHING_TOOLHEAD_Y_SECURITY    10         // (mm) Security distance Y axis
221
+  #define SWITCHING_TOOLHEAD_Y_CLEAR       60         // (mm) Minimum distance from dock for unobstructed X axis
222
+  #define SWITCHING_TOOLHEAD_X_POS        { 215, 0 }  // (mm) X positions for parking the extruders
223
+  #define SWITCHING_TOOLHEAD_SECURITY_RAISE 5         // (mm) Z-raise before parking
224
+#endif
225
+
226
+/**
210 227
  * "Mixing Extruder"
211 228
  *   - Adds a new code, M165, to set the current mix factors.
212 229
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 9
- 2
Marlin/src/inc/Conditionals_LCD.h Parādīt failu

@@ -423,11 +423,10 @@
423 423
   #if DISABLED(SWITCHING_NOZZLE)
424 424
     #define HOTENDS       E_STEPPERS
425 425
   #endif
426
-  #define E_MANUAL        EXTRUDERS
427 426
 #elif ENABLED(MIXING_EXTRUDER)
428 427
   #define E_STEPPERS      MIXING_STEPPERS
429 428
   #define E_MANUAL        1
430
-#else
429
+#elif ENABLED(SWITCHING_TOOLHEAD)
431 430
   #define E_STEPPERS      EXTRUDERS
432 431
   #define E_MANUAL        EXTRUDERS
433 432
 #endif
@@ -454,6 +453,14 @@
454 453
   #define HOTENDS EXTRUDERS
455 454
 #endif
456 455
 
456
+#ifndef E_STEPPERS
457
+  #define E_STEPPERS EXTRUDERS
458
+#endif
459
+
460
+#ifndef E_MANUAL
461
+  #define E_MANUAL EXTRUDERS
462
+#endif
463
+
457 464
 #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
458 465
 
459 466
 #define DO_SWITCH_EXTRUDER (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))

+ 33
- 2
Marlin/src/inc/SanityCheck.h Parādīt failu

@@ -712,6 +712,37 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
712 712
 #endif
713 713
 
714 714
 /**
715
+ * Switching Toolhead requirements
716
+ */
717
+#if ENABLED(SWITCHING_TOOLHEAD)
718
+  #if ENABLED(DUAL_X_CARRIAGE)
719
+    #error "SWITCHING_TOOLHEAD and DUAL_X_CARRIAGE are incompatible."
720
+  #elif ENABLED(SINGLENOZZLE)
721
+    #error "SWITCHING_TOOLHEAD and SINGLENOZZLE are incompatible."
722
+  #elif ENABLED(PARKING_EXTRUDER)
723
+    #error "SWITCHING_TOOLHEAD and PARKING_EXTRUDER are incompatible."
724
+  #elif !defined(SWITCHING_TOOLHEAD_SERVO_NR)
725
+    #error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SERVO_NR."
726
+  #elif EXTRUDERS < 2
727
+    #error "SWITCHING_TOOLHEAD requires at least 2 EXTRUDERS."
728
+  #elif NUM_SERVOS < (SWITCHING_TOOLHEAD_SERVO_NR - 1)
729
+    #if SWITCHING_TOOLHEAD_SERVO_NR == 0
730
+      #error "A SWITCHING_TOOLHEAD_SERVO_NR of 0 requires NUM_SERVOS >= 1."
731
+    #elif SWITCHING_TOOLHEAD_SERVO_NR == 1
732
+      #error "A SWITCHING_TOOLHEAD_SERVO_NR of 1 requires NUM_SERVOS >= 2."
733
+    #elif SWITCHING_TOOLHEAD_SERVO_NR == 2
734
+      #error "A SWITCHING_TOOLHEAD_SERVO_NR of 2 requires NUM_SERVOS >= 3."
735
+    #elif SWITCHING_TOOLHEAD_SERVO_NR == 3
736
+      #error "A SWITCHING_TOOLHEAD_SERVO_NR of 3 requires NUM_SERVOS >= 4."
737
+    #endif
738
+  #elif !defined(SWITCHING_TOOLHEAD_SECURITY_RAISE)
739
+    #error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SECURITY_RAISE."
740
+  #elif SWITCHING_TOOLHEAD_SECURITY_RAISE < 0
741
+    #error "SWITCHING_TOOLHEAD _SECURITY_RAISE must be 0 or higher."
742
+  #endif
743
+#endif
744
+
745
+/**
715 746
  * Part-Cooling Fan Multiplexer requirements
716 747
  */
717 748
 #if PIN_EXISTS(FANMUX1)
@@ -732,8 +763,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
732 763
 /**
733 764
  * Servo deactivation depends on servo endstops, switching nozzle, or switching extruder
734 765
  */
735
-#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_PROBE && !defined(SWITCHING_NOZZLE_SERVO_NR) && !defined(SWITCHING_EXTRUDER_SERVO_NR)
736
-  #error "Z_PROBE_SERVO_NR, switching nozzle, or switching extruder is required for DEACTIVATE_SERVOS_AFTER_MOVE."
766
+#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_PROBE && !defined(SWITCHING_NOZZLE_SERVO_NR) && !defined(SWITCHING_EXTRUDER_SERVO_NR) && !defined(SWITCHING_TOOLHEAD_SERVO_NR)
767
+  #error "Z_PROBE_SERVO_NR, switching nozzle, switching toolhead or switching extruder is required for DEACTIVATE_SERVOS_AFTER_MOVE."
737 768
 #endif
738 769
 
739 770
 /**

+ 139
- 11
Marlin/src/module/tool_change.cpp Parādīt failu

@@ -33,7 +33,7 @@
33 33
   #include "../gcode/gcode.h" // for dwell()
34 34
 #endif
35 35
 
36
-#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(SWITCHING_NOZZLE)
36
+#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(SWITCHING_NOZZLE) || ENABLED(SWITCHING_TOOLHEAD)
37 37
   #include "../module/servo.h"
38 38
 #endif
39 39
 
@@ -213,6 +213,129 @@
213 213
 
214 214
 #endif // PARKING_EXTRUDER
215 215
 
216
+#if ENABLED(SWITCHING_TOOLHEAD)
217
+
218
+  inline void switching_toolhead_tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
219
+    if (no_move) return;
220
+
221
+    constexpr uint16_t angles[2] = SWITCHING_TOOLHEAD_SERVO_ANGLES;
222
+
223
+    const float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS,
224
+                placexpos = toolheadposx[active_extruder],
225
+                grabxpos = toolheadposx[tmp_extruder];
226
+
227
+    /**
228
+     * 1. Raise Z to give enough clearance
229
+     * 2. Move to switch position of current toolhead
230
+     * 3. Unlock tool and drop it in the dock
231
+     * 4. Move to the new toolhead
232
+     * 5. Grab and lock the new toolhead
233
+     * 6. Apply the z-offset of the new toolhead
234
+     */
235
+
236
+    // STEP 1
237
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
238
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Starting Toolhead change", current_position);
239
+    #endif
240
+    current_position[Z_AXIS] += SWITCHING_TOOLHEAD_SECURITY_RAISE;
241
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
242
+      if (DEBUGGING(LEVELING)) DEBUG_POS("(1) Raise Z-Axis", current_position);
243
+    #endif
244
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
245
+    planner.synchronize();
246
+
247
+    // STEP 2
248
+    current_position[X_AXIS] = placexpos;
249
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
250
+      if (DEBUGGING(LEVELING)) {
251
+        SERIAL_ECHOLNPAIR("(2) Place old tool ", int(active_extruder));
252
+        DEBUG_POS("Move X SwitchPos", current_position);
253
+      }
254
+    #endif
255
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
256
+    planner.synchronize();
257
+
258
+    current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS - SWITCHING_TOOLHEAD_Y_SECURITY;
259
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
260
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos + Security", current_position);
261
+    #endif
262
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
263
+    planner.synchronize();
264
+
265
+    // STEP 3
266
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
267
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(3) Unlock and Place Toolhead");
268
+    #endif
269
+    MOVE_SERVO(SWITCHING_TOOLHEAD_SERVO_NR, angles[1]);
270
+    safe_delay(500);
271
+
272
+    current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS;
273
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
274
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos", current_position);
275
+    #endif
276
+    planner.buffer_line_kinematic(current_position,(planner.max_feedrate_mm_s[Y_AXIS] * 0.5), active_extruder);
277
+    planner.synchronize();
278
+    safe_delay(200);
279
+    current_position[Y_AXIS] -= SWITCHING_TOOLHEAD_Y_CLEAR;
280
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
281
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move back Y clear", current_position);
282
+    #endif
283
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder); // move away from docked toolhead
284
+    planner.synchronize();
285
+
286
+    // STEP 4
287
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
288
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(4) Move to new toolhead position");
289
+    #endif
290
+    current_position[X_AXIS] = grabxpos;
291
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
292
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move to new toolhead X", current_position);
293
+    #endif
294
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
295
+    planner.synchronize();
296
+    current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS - SWITCHING_TOOLHEAD_Y_SECURITY;
297
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
298
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos + Security", current_position);
299
+    #endif
300
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
301
+    planner.synchronize();
302
+
303
+    // STEP 5
304
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
305
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(5) Grab and lock new toolhead ");
306
+    #endif
307
+    current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS;
308
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
309
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos", current_position);
310
+    #endif
311
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS] * 0.5, active_extruder);
312
+    planner.synchronize();
313
+
314
+    safe_delay(200);
315
+    MOVE_SERVO(SWITCHING_TOOLHEAD_SERVO_NR, angles[0]);
316
+    safe_delay(500);
317
+
318
+    current_position[Y_AXIS] -= SWITCHING_TOOLHEAD_Y_CLEAR;
319
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
320
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Move back Y clear", current_position);
321
+    #endif
322
+    planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder); // move away from docked toolhead
323
+    planner.synchronize();
324
+
325
+    // STEP 6
326
+    current_position[Z_AXIS] += hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
327
+
328
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
329
+      if (DEBUGGING(LEVELING)) DEBUG_POS("(6) Apply Z offset", current_position);
330
+    #endif
331
+
332
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
333
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("Toolhead change done.");
334
+    #endif
335
+  }
336
+
337
+#endif // SWITCHING_TOOLHEAD
338
+
216 339
 inline void invalid_extruder_error(const uint8_t e) {
217 340
   SERIAL_ECHO_START();
218 341
   SERIAL_CHAR('T');
@@ -386,19 +509,24 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
386 509
         #else // !DUAL_X_CARRIAGE
387 510
 
388 511
           set_destination_from_current();
389
-          #if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
390
-            parking_extruder_tool_change(tmp_extruder, no_move);
391
-          #endif
392 512
 
393 513
           const float xdiff = hotend_offset[X_AXIS][tmp_extruder] - hotend_offset[X_AXIS][active_extruder],
394
-                      ydiff = hotend_offset[Y_AXIS][tmp_extruder] - hotend_offset[Y_AXIS][active_extruder],
395
-                      zdiff = hotend_offset[Z_AXIS][tmp_extruder] - hotend_offset[Z_AXIS][active_extruder];
514
+                      ydiff = hotend_offset[Y_AXIS][tmp_extruder] - hotend_offset[Y_AXIS][active_extruder];
396 515
 
397
-          #if ENABLED(SWITCHING_NOZZLE)
398
-            // Always raise by at least 1 to avoid workpiece
399
-            current_position[Z_AXIS] += (zdiff < 0.0 ? -zdiff : 0.0) + 1;
400
-            planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
401
-            move_nozzle_servo(tmp_extruder);
516
+          #if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
517
+            constexpr float zdiff = 0;
518
+            parking_extruder_tool_change(tmp_extruder, no_move);
519
+          #elif ENABLED(SWITCHING_TOOLHEAD) // Switching Toolhead
520
+            constexpr float zdiff = 0;
521
+            switching_toolhead_tool_change(tmp_extruder, fr_mm_s, no_move);
522
+          #else
523
+            const float zdiff = hotend_offset[Z_AXIS][tmp_extruder] - hotend_offset[Z_AXIS][active_extruder];
524
+            #if ENABLED(SWITCHING_NOZZLE)
525
+              // Always raise by at least 1 to avoid workpiece
526
+              current_position[Z_AXIS] += MAX(-zdiff, 0.0) + 1;
527
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
528
+              move_nozzle_servo(tmp_extruder);
529
+            #endif
402 530
           #endif
403 531
 
404 532
           #if ENABLED(DEBUG_LEVELING_FEATURE)

+ 5
- 0
buildroot/share/tests/megaatmega2560_tests Parādīt failu

@@ -140,6 +140,7 @@ exec_test $1 $2 "SWITCHING_EXTRUDER"
140 140
 # Test many less common options
141 141
 #
142 142
 restore_configs
143
+opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
143 144
 opt_enable COREYX
144 145
 opt_set_adv FAN_MIN_PWM 50
145 146
 opt_set_adv FAN_KICKSTART_TIME 100
@@ -153,6 +154,10 @@ opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER BABYSTEPPING DAC_MOTOR_CURRENT_DEFAU
153 154
 opt_enable FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR
154 155
 opt_enable ENDSTOP_INTERRUPTS_FEATURE FAN_SOFT_PWM SDSUPPORT
155 156
 opt_enable USE_XMAX_PLUG
157
+opt_enable SWITCHING_TOOLHEAD NUM_SERVOS DEBUG_LEVELING_FEATURE
158
+opt_set EXTRUDERS 2
159
+opt_set TEMP_SENSOR_1 -4
160
+opt_set SERVO_DELAY "{ 300, 300, 300 }"
156 161
 exec_test $1 $2 "Many less common options"
157 162
 #
158 163
 ######## Other Standard LCD/Panels ##############

Notiek ielāde…
Atcelt
Saglabāt