Browse Source

[2.0.x] SWITCHING_TOOLHEAD (#11623)

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

17
Marlin/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/default/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Anet/A6/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Anet/A8/Configuration.h

@ -207,6 +207,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Azteeg/X5GT/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/BQ/Hephestos/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h

@ -214,6 +214,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/BQ/WITBOX/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Cartesio/Configuration.h

@ -207,6 +207,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/CR-10/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/CR-10S/Configuration.h

@ -210,6 +210,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/CR-10mini/Configuration.h

@ -215,6 +215,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/CR-8/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/Ender-2/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/Ender-3/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Creality/Ender-4/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Einstart-S/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Felix/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Felix/DUAL/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/JGAurora/A5/Configuration.h

@ -211,6 +211,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/MakerParts/Configuration.h

@ -226,6 +226,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Malyan/M150/Configuration.h

@ -211,6 +211,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Malyan/M200/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Micromake/C1/basic/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Mks/Sbase/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/RigidBot/Configuration.h

@ -209,6 +209,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/SCARA/Configuration.h

@ -237,6 +237,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/STM32F10/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/STM32F4/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Sanguinololu/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/TheBorg/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/TinyBoy2/Configuration.h

@ -228,6 +228,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Tronxy/X1/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Tronxy/X3A/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Tronxy/X5S/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Tronxy/XY100/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Velleman/K8200/Configuration.h

@ -226,6 +226,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Velleman/K8400/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/adafruit/ST7565/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h

@ -211,6 +211,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/generic/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/kossel_mini/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/kossel_pro/Configuration.h

@ -210,6 +210,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/delta/kossel_xl/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h

@ -211,6 +211,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/makibox/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/stm32f103ret6/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/tvrrug/Round2/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

17
Marlin/src/config/examples/wt150/Configuration.h

@ -206,6 +206,23 @@
#define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking
#endif
/**
* Switching Toolhead
*
* Support for swappable and dockable toolheads, such as
* the E3D Tool Changer. Toolheads are locked with a servo.
*/
//#define SWITCHING_TOOLHEAD
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders
#define SWITCHING_TOOLHEAD_SECURITY_RAISE 5 // (mm) Z-raise before parking
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.

11
Marlin/src/inc/Conditionals_LCD.h

@ -423,11 +423,10 @@
#if DISABLED(SWITCHING_NOZZLE)
#define HOTENDS E_STEPPERS
#endif
#define E_MANUAL EXTRUDERS
#elif ENABLED(MIXING_EXTRUDER)
#define E_STEPPERS MIXING_STEPPERS
#define E_MANUAL 1
#else
#elif ENABLED(SWITCHING_TOOLHEAD)
#define E_STEPPERS EXTRUDERS
#define E_MANUAL EXTRUDERS
#endif
@ -454,6 +453,14 @@
#define HOTENDS EXTRUDERS
#endif
#ifndef E_STEPPERS
#define E_STEPPERS EXTRUDERS
#endif
#ifndef E_MANUAL
#define E_MANUAL EXTRUDERS
#endif
#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
#define DO_SWITCH_EXTRUDER (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))

35
Marlin/src/inc/SanityCheck.h

@ -711,6 +711,37 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
#endif
#endif
/**
* Switching Toolhead requirements
*/
#if ENABLED(SWITCHING_TOOLHEAD)
#if ENABLED(DUAL_X_CARRIAGE)
#error "SWITCHING_TOOLHEAD and DUAL_X_CARRIAGE are incompatible."
#elif ENABLED(SINGLENOZZLE)
#error "SWITCHING_TOOLHEAD and SINGLENOZZLE are incompatible."
#elif ENABLED(PARKING_EXTRUDER)
#error "SWITCHING_TOOLHEAD and PARKING_EXTRUDER are incompatible."
#elif !defined(SWITCHING_TOOLHEAD_SERVO_NR)
#error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SERVO_NR."
#elif EXTRUDERS < 2
#error "SWITCHING_TOOLHEAD requires at least 2 EXTRUDERS."
#elif NUM_SERVOS < (SWITCHING_TOOLHEAD_SERVO_NR - 1)
#if SWITCHING_TOOLHEAD_SERVO_NR == 0
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 0 requires NUM_SERVOS >= 1."
#elif SWITCHING_TOOLHEAD_SERVO_NR == 1
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 1 requires NUM_SERVOS >= 2."
#elif SWITCHING_TOOLHEAD_SERVO_NR == 2
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 2 requires NUM_SERVOS >= 3."
#elif SWITCHING_TOOLHEAD_SERVO_NR == 3
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 3 requires NUM_SERVOS >= 4."
#endif
#elif !defined(SWITCHING_TOOLHEAD_SECURITY_RAISE)
#error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SECURITY_RAISE."
#elif SWITCHING_TOOLHEAD_SECURITY_RAISE < 0
#error "SWITCHING_TOOLHEAD _SECURITY_RAISE must be 0 or higher."
#endif
#endif
/**
* Part-Cooling Fan Multiplexer requirements
*/
@ -732,8 +763,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
/**
* Servo deactivation depends on servo endstops, switching nozzle, or switching extruder
*/
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_PROBE && !defined(SWITCHING_NOZZLE_SERVO_NR) && !defined(SWITCHING_EXTRUDER_SERVO_NR)
#error "Z_PROBE_SERVO_NR, switching nozzle, or switching extruder is required for DEACTIVATE_SERVOS_AFTER_MOVE."
#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)
#error "Z_PROBE_SERVO_NR, switching nozzle, switching toolhead or switching extruder is required for DEACTIVATE_SERVOS_AFTER_MOVE."
#endif
/**

150
Marlin/src/module/tool_change.cpp

@ -33,7 +33,7 @@
#include "../gcode/gcode.h" // for dwell()
#endif
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(SWITCHING_NOZZLE)
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(SWITCHING_NOZZLE) || ENABLED(SWITCHING_TOOLHEAD)
#include "../module/servo.h"
#endif
@ -213,6 +213,129 @@
#endif // PARKING_EXTRUDER
#if ENABLED(SWITCHING_TOOLHEAD)
inline void switching_toolhead_tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
if (no_move) return;
constexpr uint16_t angles[2] = SWITCHING_TOOLHEAD_SERVO_ANGLES;
const float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS,
placexpos = toolheadposx[active_extruder],
grabxpos = toolheadposx[tmp_extruder];
/**
* 1. Raise Z to give enough clearance
* 2. Move to switch position of current toolhead
* 3. Unlock tool and drop it in the dock
* 4. Move to the new toolhead
* 5. Grab and lock the new toolhead
* 6. Apply the z-offset of the new toolhead
*/
// STEP 1
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Starting Toolhead change", current_position);
#endif
current_position[Z_AXIS] += SWITCHING_TOOLHEAD_SECURITY_RAISE;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("(1) Raise Z-Axis", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
planner.synchronize();
// STEP 2
current_position[X_AXIS] = placexpos;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) {
SERIAL_ECHOLNPAIR("(2) Place old tool ", int(active_extruder));
DEBUG_POS("Move X SwitchPos", current_position);
}
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
planner.synchronize();
current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS - SWITCHING_TOOLHEAD_Y_SECURITY;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos + Security", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
planner.synchronize();
// STEP 3
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(3) Unlock and Place Toolhead");
#endif
MOVE_SERVO(SWITCHING_TOOLHEAD_SERVO_NR, angles[1]);
safe_delay(500);
current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos", current_position);
#endif
planner.buffer_line_kinematic(current_position,(planner.max_feedrate_mm_s[Y_AXIS] * 0.5), active_extruder);
planner.synchronize();
safe_delay(200);
current_position[Y_AXIS] -= SWITCHING_TOOLHEAD_Y_CLEAR;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move back Y clear", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder); // move away from docked toolhead
planner.synchronize();
// STEP 4
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(4) Move to new toolhead position");
#endif
current_position[X_AXIS] = grabxpos;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move to new toolhead X", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
planner.synchronize();
current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS - SWITCHING_TOOLHEAD_Y_SECURITY;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos + Security", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
planner.synchronize();
// STEP 5
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(5) Grab and lock new toolhead ");
#endif
current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move Y SwitchPos", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS] * 0.5, active_extruder);
planner.synchronize();
safe_delay(200);
MOVE_SERVO(SWITCHING_TOOLHEAD_SERVO_NR, angles[0]);
safe_delay(500);
current_position[Y_AXIS] -= SWITCHING_TOOLHEAD_Y_CLEAR;
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("Move back Y clear", current_position);
#endif
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder); // move away from docked toolhead
planner.synchronize();
// STEP 6
current_position[Z_AXIS] += hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("(6) Apply Z offset", current_position);
#endif
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("Toolhead change done.");
#endif
}
#endif // SWITCHING_TOOLHEAD
inline void invalid_extruder_error(const uint8_t e) {
SERIAL_ECHO_START();
SERIAL_CHAR('T');
@ -386,19 +509,24 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
#else // !DUAL_X_CARRIAGE
set_destination_from_current();
#if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
parking_extruder_tool_change(tmp_extruder, no_move);
#endif
const float xdiff = hotend_offset[X_AXIS][tmp_extruder] - hotend_offset[X_AXIS][active_extruder],
ydiff = hotend_offset[Y_AXIS][tmp_extruder] - hotend_offset[Y_AXIS][active_extruder],
zdiff = hotend_offset[Z_AXIS][tmp_extruder] - hotend_offset[Z_AXIS][active_extruder];
ydiff = hotend_offset[Y_AXIS][tmp_extruder] - hotend_offset[Y_AXIS][active_extruder];
#if ENABLED(SWITCHING_NOZZLE)
// Always raise by at least 1 to avoid workpiece
current_position[Z_AXIS] += (zdiff < 0.0 ? -zdiff : 0.0) + 1;
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
move_nozzle_servo(tmp_extruder);
#if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
constexpr float zdiff = 0;
parking_extruder_tool_change(tmp_extruder, no_move);
#elif ENABLED(SWITCHING_TOOLHEAD) // Switching Toolhead
constexpr float zdiff = 0;
switching_toolhead_tool_change(tmp_extruder, fr_mm_s, no_move);
#else
const float zdiff = hotend_offset[Z_AXIS][tmp_extruder] - hotend_offset[Z_AXIS][active_extruder];
#if ENABLED(SWITCHING_NOZZLE)
// Always raise by at least 1 to avoid workpiece
current_position[Z_AXIS] += MAX(-zdiff, 0.0) + 1;
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
move_nozzle_servo(tmp_extruder);
#endif
#endif
#if ENABLED(DEBUG_LEVELING_FEATURE)

5
buildroot/share/tests/megaatmega2560_tests

@ -140,6 +140,7 @@ exec_test $1 $2 "SWITCHING_EXTRUDER"
# Test many less common options
#
restore_configs
opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
opt_enable COREYX
opt_set_adv FAN_MIN_PWM 50
opt_set_adv FAN_KICKSTART_TIME 100
@ -153,6 +154,10 @@ opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER BABYSTEPPING DAC_MOTOR_CURRENT_DEFAU
opt_enable FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR
opt_enable ENDSTOP_INTERRUPTS_FEATURE FAN_SOFT_PWM SDSUPPORT
opt_enable USE_XMAX_PLUG
opt_enable SWITCHING_TOOLHEAD NUM_SERVOS DEBUG_LEVELING_FEATURE
opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 -4
opt_set SERVO_DELAY "{ 300, 300, 300 }"
exec_test $1 $2 "Many less common options"
#
######## Other Standard LCD/Panels ##############

Loading…
Cancel
Save