Browse Source

Park heads with electromagnet (#14023)

Aliaksei Kvitsinski 6 years ago
parent
commit
2f932a11b3
100 changed files with 1342 additions and 154 deletions
  1. 12
    1
      Marlin/Configuration.h
  2. 5
    1
      Marlin/src/Marlin.cpp
  3. 48
    44
      Marlin/src/inc/SanityCheck.h
  4. 145
    14
      Marlin/src/module/tool_change.cpp
  5. 4
    0
      Marlin/src/module/tool_change.h
  6. 12
    1
      config/default/Configuration.h
  7. 12
    1
      config/examples/3DFabXYZ/Migbot/Configuration.h
  8. 12
    1
      config/examples/AlephObjects/TAZ4/Configuration.h
  9. 12
    1
      config/examples/AliExpress/CL-260/Configuration.h
  10. 12
    1
      config/examples/AliExpress/UM2pExt/Configuration.h
  11. 12
    1
      config/examples/Anet/A2/Configuration.h
  12. 12
    1
      config/examples/Anet/A2plus/Configuration.h
  13. 12
    1
      config/examples/Anet/A6/Configuration.h
  14. 12
    1
      config/examples/Anet/A8/Configuration.h
  15. 12
    1
      config/examples/Anet/A8plus/Configuration.h
  16. 12
    1
      config/examples/Anet/E16/Configuration.h
  17. 12
    1
      config/examples/AnyCubic/i3/Configuration.h
  18. 12
    1
      config/examples/ArmEd/Configuration.h
  19. 12
    1
      config/examples/Azteeg/X5GT/Configuration.h
  20. 12
    1
      config/examples/BIBO/TouchX/cyclops/Configuration.h
  21. 12
    1
      config/examples/BIBO/TouchX/default/Configuration.h
  22. 12
    1
      config/examples/BQ/Hephestos/Configuration.h
  23. 12
    1
      config/examples/BQ/Hephestos_2/Configuration.h
  24. 12
    1
      config/examples/BQ/WITBOX/Configuration.h
  25. 12
    1
      config/examples/Cartesio/Configuration.h
  26. 12
    1
      config/examples/Creality/CR-10/Configuration.h
  27. 12
    1
      config/examples/Creality/CR-10S/Configuration.h
  28. 12
    1
      config/examples/Creality/CR-10_5S/Configuration.h
  29. 12
    1
      config/examples/Creality/CR-10mini/Configuration.h
  30. 12
    1
      config/examples/Creality/CR-20 Pro/Configuration.h
  31. 12
    1
      config/examples/Creality/CR-20/Configuration.h
  32. 12
    1
      config/examples/Creality/CR-8/Configuration.h
  33. 12
    1
      config/examples/Creality/Ender-2/Configuration.h
  34. 12
    1
      config/examples/Creality/Ender-3/Configuration.h
  35. 12
    1
      config/examples/Creality/Ender-4/Configuration.h
  36. 12
    1
      config/examples/Creality/Ender-5/Configuration.h
  37. 12
    1
      config/examples/Dagoma/Disco Ultimate/Configuration.h
  38. 12
    1
      config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration.h
  39. 12
    1
      config/examples/Einstart-S/Configuration.h
  40. 12
    1
      config/examples/Felix/Configuration.h
  41. 12
    1
      config/examples/Felix/DUAL/Configuration.h
  42. 12
    1
      config/examples/FlashForge/CreatorPro/Configuration.h
  43. 12
    1
      config/examples/FolgerTech/i3-2020/Configuration.h
  44. 12
    1
      config/examples/Formbot/Raptor/Configuration.h
  45. 12
    1
      config/examples/Formbot/T_Rex_2+/Configuration.h
  46. 12
    1
      config/examples/Formbot/T_Rex_3/Configuration.h
  47. 12
    1
      config/examples/Fysetc/AIO_II/Configuration.h
  48. 12
    1
      config/examples/Fysetc/CHEETAH/Configuration.h
  49. 12
    1
      config/examples/Fysetc/F6_13/Configuration.h
  50. 12
    1
      config/examples/Geeetech/A10/Configuration.h
  51. 12
    1
      config/examples/Geeetech/A10M/Configuration.h
  52. 12
    1
      config/examples/Geeetech/A20M/Configuration.h
  53. 12
    1
      config/examples/Geeetech/GT2560/Configuration.h
  54. 12
    1
      config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  55. 12
    1
      config/examples/Geeetech/MeCreator2/Configuration.h
  56. 12
    1
      config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h
  57. 12
    1
      config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  58. 12
    1
      config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  59. 12
    1
      config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  60. 12
    1
      config/examples/Infitary/i3-M508/Configuration.h
  61. 12
    1
      config/examples/JGAurora/A1/Configuration.h
  62. 12
    1
      config/examples/JGAurora/A5/Configuration.h
  63. 12
    1
      config/examples/JGAurora/A5S/Configuration.h
  64. 12
    1
      config/examples/MakerParts/Configuration.h
  65. 12
    1
      config/examples/Malyan/M150/Configuration.h
  66. 12
    1
      config/examples/Malyan/M200/Configuration.h
  67. 12
    1
      config/examples/Micromake/C1/basic/Configuration.h
  68. 12
    1
      config/examples/Micromake/C1/enhanced/Configuration.h
  69. 12
    1
      config/examples/Mks/Robin/Configuration.h
  70. 12
    1
      config/examples/Mks/Sbase/Configuration.h
  71. 12
    1
      config/examples/Printrbot/PrintrboardG2/Configuration.h
  72. 12
    1
      config/examples/RapideLite/RL200/Configuration.h
  73. 12
    1
      config/examples/RepRapPro/Huxley/Configuration.h
  74. 12
    1
      config/examples/RepRapWorld/Megatronics/Configuration.h
  75. 12
    1
      config/examples/RigidBot/Configuration.h
  76. 12
    1
      config/examples/SCARA/Configuration.h
  77. 12
    1
      config/examples/STM32/Black_STM32F407VET6/Configuration.h
  78. 12
    1
      config/examples/STM32/STM32F10/Configuration.h
  79. 12
    1
      config/examples/STM32/STM32F4/Configuration.h
  80. 12
    1
      config/examples/STM32/stm32f103ret6/Configuration.h
  81. 12
    1
      config/examples/Sanguinololu/Configuration.h
  82. 12
    1
      config/examples/Tevo/Tarantula Pro/Configuration.h
  83. 12
    1
      config/examples/TheBorg/Configuration.h
  84. 12
    1
      config/examples/TinyBoy2/Configuration.h
  85. 12
    1
      config/examples/Tronxy/X1/Configuration.h
  86. 12
    1
      config/examples/Tronxy/X3A/Configuration.h
  87. 12
    1
      config/examples/Tronxy/X5S-2E/Configuration.h
  88. 12
    1
      config/examples/Tronxy/X5S/Configuration.h
  89. 12
    1
      config/examples/Tronxy/XY100/Configuration.h
  90. 12
    1
      config/examples/UltiMachine/Archim1/Configuration.h
  91. 12
    1
      config/examples/UltiMachine/Archim2/Configuration.h
  92. 12
    1
      config/examples/VORONDesign/Configuration.h
  93. 12
    1
      config/examples/Velleman/K8200/Configuration.h
  94. 12
    1
      config/examples/Velleman/K8400/Configuration.h
  95. 12
    1
      config/examples/Velleman/K8400/Dual-head/Configuration.h
  96. 12
    1
      config/examples/WASP/PowerWASP/Configuration.h
  97. 12
    1
      config/examples/Wanhao/Duplicator 6/Configuration.h
  98. 12
    1
      config/examples/adafruit/ST7565/Configuration.h
  99. 12
    1
      config/examples/delta/Anycubic/Kossel/Configuration.h
  100. 0
    0
      config/examples/delta/FLSUN/auto_calibrate/Configuration.h

+ 12
- 1
Marlin/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 5
- 1
Marlin/src/Marlin.cpp View File

@@ -153,7 +153,7 @@
153 153
   #include "feature/fanmux.h"
154 154
 #endif
155 155
 
156
-#if DO_SWITCH_EXTRUDER || ANY(SWITCHING_NOZZLE, PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)
156
+#if DO_SWITCH_EXTRUDER || ANY(SWITCHING_NOZZLE, PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
157 157
   #include "module/tool_change.h"
158 158
 #endif
159 159
 
@@ -1078,6 +1078,10 @@ void setup() {
1078 1078
     pe_solenoid_init();
1079 1079
   #endif
1080 1080
 
1081
+  #if ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
1082
+    est_init();
1083
+  #endif
1084
+
1081 1085
   #if ENABLED(POWER_LOSS_RECOVERY)
1082 1086
     recovery.check();
1083 1087
   #endif

+ 48
- 44
Marlin/src/inc/SanityCheck.h View File

@@ -836,47 +836,41 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
836 836
 #endif
837 837
 
838 838
 /**
839
+ * Special tool-changing options
840
+ */
841
+#if 1 < 0 \
842
+  + ENABLED(SINGLENOZZLE) \
843
+  + ENABLED(DUAL_X_CARRIAGE) \
844
+  + ENABLED(PARKING_EXTRUDER) \
845
+  + ENABLED(MAGNETIC_PARKING_EXTRUDER) \
846
+  + ENABLED(SWITCHING_TOOLHEAD) \
847
+  + ENABLED(MAGNETIC_SWITCHING_TOOLHEAD) \
848
+  + ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
849
+  #error "Please select only one of SINGLENOZZLE, DUAL_X_CARRIAGE, PARKING_EXTRUDER, SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, or ELECTROMAGNETIC_SWITCHING_TOOLHEAD."
850
+#endif
851
+
852
+/**
839 853
  * (Magnetic) Parking Extruder requirements
840 854
  */
841
-#if ENABLED(PARKING_EXTRUDER)
842
-  #if ENABLED(DUAL_X_CARRIAGE)
843
-    #error "PARKING_EXTRUDER and DUAL_X_CARRIAGE are incompatible."
844
-  #elif ENABLED(SINGLENOZZLE)
845
-    #error "PARKING_EXTRUDER and SINGLENOZZLE are incompatible."
846
-  #elif ENABLED(EXT_SOLENOID)
847
-    #error "PARKING_EXTRUDER and EXT_SOLENOID are incompatible. (Pins are used twice.)"
848
-  #elif ENABLED(MAGNETIC_PARKING_EXTRUDER)
849
-    #error "Enable only one of PARKING_EXTRUDER and MAGNETIC_PARKING_EXTRUDER."
850
-  #elif EXTRUDERS != 2
851
-    #error "PARKING_EXTRUDER requires exactly 2 EXTRUDERS."
852
-  #elif !PIN_EXISTS(SOL0, SOL1)
853
-    #error "PARKING_EXTRUDER requires SOL0_PIN and SOL1_PIN."
854
-  #elif !defined(PARKING_EXTRUDER_PARKING_X)
855
-    #error "PARKING_EXTRUDER requires PARKING_EXTRUDER_PARKING_X."
856
-  #elif !defined(TOOLCHANGE_ZRAISE)
857
-    #error "PARKING_EXTRUDER requires TOOLCHANGE_ZRAISE."
858
-  #elif TOOLCHANGE_ZRAISE < 0
859
-    #error "TOOLCHANGE_ZRAISE must be 0 or higher."
860
-  #elif !defined(PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE) || !WITHIN(PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE, LOW, HIGH)
861
-    #error "PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE must be defined as HIGH or LOW."
862
-  #elif !defined(PARKING_EXTRUDER_SOLENOIDS_DELAY) || !WITHIN(PARKING_EXTRUDER_SOLENOIDS_DELAY, 0, 2000)
863
-    #error "PARKING_EXTRUDER_SOLENOIDS_DELAY must be between 0 and 2000 (ms)."
864
-  #endif
865
-#elif ENABLED(MAGNETIC_PARKING_EXTRUDER)
866
-  #if ENABLED(DUAL_X_CARRIAGE)
867
-    #error "MAGNETIC_PARKING_EXTRUDER and DUAL_X_CARRIAGE are incompatible."
868
-  #elif ENABLED(SINGLENOZZLE)
869
-    #error "MAGNETIC_PARKING_EXTRUDER and SINGLENOZZLE are incompatible."
870
-  #elif ENABLED(EXT_SOLENOID)
871
-    #error "MAGNETIC_PARKING_EXTRUDER and EXT_SOLENOID are incompatible. (Pins are used twice.)"
855
+#if ANY(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)
856
+  #if ENABLED(EXT_SOLENOID)
857
+    #error "(MAGNETIC_)PARKING_EXTRUDER and EXT_SOLENOID are incompatible. (Pins are used twice.)"
872 858
   #elif EXTRUDERS != 2
873
-    #error "MAGNETIC_PARKING_EXTRUDER requires exactly 2 EXTRUDERS."
859
+    #error "(MAGNETIC_)PARKING_EXTRUDER requires exactly 2 EXTRUDERS."
874 860
   #elif !defined(PARKING_EXTRUDER_PARKING_X)
875
-    #error "MAGNETIC_PARKING_EXTRUDER requires PARKING_EXTRUDER_PARKING_X."
861
+    #error "(MAGNETIC_)PARKING_EXTRUDER requires PARKING_EXTRUDER_PARKING_X."
876 862
   #elif !defined(TOOLCHANGE_ZRAISE)
877
-    #error "MAGNETIC_PARKING_EXTRUDER requires TOOLCHANGE_ZRAISE."
863
+    #error "(MAGNETIC_)PARKING_EXTRUDER requires TOOLCHANGE_ZRAISE."
878 864
   #elif TOOLCHANGE_ZRAISE < 0
879 865
     #error "TOOLCHANGE_ZRAISE must be 0 or higher."
866
+  #elif ENABLED(PARKING_EXTRUDER)
867
+    #if !PIN_EXISTS(SOL0, SOL1)
868
+      #error "PARKING_EXTRUDER requires SOL0_PIN and SOL1_PIN."
869
+    #elif !defined(PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE) || !WITHIN(PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE, LOW, HIGH)
870
+      #error "PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE must be defined as HIGH or LOW."
871
+    #elif !defined(PARKING_EXTRUDER_SOLENOIDS_DELAY) || !WITHIN(PARKING_EXTRUDER_SOLENOIDS_DELAY, 0, 2000)
872
+      #error "PARKING_EXTRUDER_SOLENOIDS_DELAY must be between 0 and 2000 (ms)."
873
+    #endif
880 874
   #endif
881 875
 #endif
882 876
 
@@ -884,13 +878,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
884 878
  * Switching Toolhead requirements
885 879
  */
886 880
 #if ENABLED(SWITCHING_TOOLHEAD)
887
-  #if ENABLED(DUAL_X_CARRIAGE)
888
-    #error "SWITCHING_TOOLHEAD and DUAL_X_CARRIAGE are incompatible."
889
-  #elif ENABLED(SINGLENOZZLE)
890
-    #error "SWITCHING_TOOLHEAD and SINGLENOZZLE are incompatible."
891
-  #elif ENABLED(PARKING_EXTRUDER)
892
-    #error "SWITCHING_TOOLHEAD and PARKING_EXTRUDER are incompatible."
893
-  #elif !defined(SWITCHING_TOOLHEAD_SERVO_NR)
881
+  #if !defined(SWITCHING_TOOLHEAD_SERVO_NR)
894 882
     #error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SERVO_NR."
895 883
   #elif EXTRUDERS < 2
896 884
     #error "SWITCHING_TOOLHEAD requires at least 2 EXTRUDERS."
@@ -911,6 +899,22 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
911 899
   #endif
912 900
 #endif
913 901
 
902
+#if ANY(MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
903
+  #if ENABLED(EXT_SOLENOID)
904
+    #error "(ELECTRO)MAGNETIC_SWITCHING_TOOLHEAD and EXT_SOLENOID are incompatible. (Pins are used twice.)"
905
+  #elif !PIN_EXISTS(SOL0)
906
+    #error "(ELECTRO)MAGNETIC_SWITCHING_TOOLHEAD requires SOL0_PIN."
907
+  #elif !defined(SWITCHING_TOOLHEAD_Y_POS)
908
+    #error "(ELECTRO)MAGNETIC_SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_Y_POS"
909
+  #elif !defined(SWITCHING_TOOLHEAD_X_POS)
910
+    #error "(ELECTRO)MAGNETIC_SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_X_POS"
911
+  #elif !defined(SWITCHING_TOOLHEAD_Z_HOP)
912
+    #error "(ELECTRO)MAGNETIC_SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_Z_HOP."
913
+  #elif !defined(SWITCHING_TOOLHEAD_Y_CLEAR)
914
+    #error "(ELECTRO)MAGNETIC_SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_Y_CLEAR."
915
+  #endif
916
+#endif
917
+
914 918
 /**
915 919
  * Part-Cooling Fan Multiplexer requirements
916 920
  */
@@ -1348,7 +1352,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
1348 1352
  * Dual X Carriage requirements
1349 1353
  */
1350 1354
 #if ENABLED(DUAL_X_CARRIAGE)
1351
-  #if EXTRUDERS == 1
1355
+  #if EXTRUDERS < 2
1352 1356
     #error "DUAL_X_CARRIAGE requires 2 (or more) extruders."
1353 1357
   #elif CORE_IS_XY || CORE_IS_XZ
1354 1358
     #error "DUAL_X_CARRIAGE cannot be used with COREXY, COREYX, COREXZ, or COREZX."
@@ -1361,7 +1365,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
1361 1365
   #elif X_HOME_DIR != -1 || X2_HOME_DIR != 1
1362 1366
     #error "DUAL_X_CARRIAGE requires X_HOME_DIR -1 and X2_HOME_DIR 1."
1363 1367
   #endif
1364
-#endif // DUAL_X_CARRIAGE
1368
+#endif
1365 1369
 
1366 1370
 /**
1367 1371
  * Make sure auto fan pins don't conflict with the fan pin
@@ -2286,7 +2290,7 @@ static_assert(   _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
2286 2290
 /**
2287 2291
  * Require soft endstops for certain setups
2288 2292
  */
2289
-#if DISABLED(MIN_SOFTWARE_ENDSTOPS) || DISABLED(MAX_SOFTWARE_ENDSTOPS)
2293
+#if !BOTH(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
2290 2294
   #if ENABLED(DUAL_X_CARRIAGE)
2291 2295
     #error "DUAL_X_CARRIAGE requires both MIN_ and MAX_SOFTWARE_ENDSTOPS."
2292 2296
   #elif HAS_HOTEND_OFFSET

+ 145
- 14
Marlin/src/module/tool_change.cpp View File

@@ -310,7 +310,7 @@ inline void fast_line_to_current(const AxisEnum fr_axis) {
310 310
 
311 311
       // STEP 3
312 312
 
313
-      if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("(3) Move to position near new extruder");
313
+      if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("(3) Move near new extruder");
314 314
 
315 315
       current_position[X_AXIS] += active_extruder ? -10 : 10; // move 10mm away from parked extruder
316 316
 
@@ -370,8 +370,8 @@ inline void fast_line_to_current(const AxisEnum fr_axis) {
370 370
 
371 371
     constexpr uint16_t angles[2] = SWITCHING_TOOLHEAD_SERVO_ANGLES;
372 372
 
373
-    const float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS,
374
-                placexpos = toolheadposx[active_extruder],
373
+    constexpr float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS;
374
+    const float placexpos = toolheadposx[active_extruder],
375 375
                 grabxpos = toolheadposx[tmp_extruder];
376 376
 
377 377
     /**
@@ -465,15 +465,13 @@ inline void fast_line_to_current(const AxisEnum fr_axis) {
465 465
     if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Toolhead change done.");
466 466
   }
467 467
 
468
-#endif // SWITCHING_TOOLHEAD
469
-
470
-#if ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
468
+#elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
471 469
 
472 470
   inline void magnetic_switching_toolhead_tool_change(const uint8_t tmp_extruder, bool no_move/*=false*/) {
473 471
     if (no_move) return;
474 472
 
475
-    const float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS,
476
-                placexpos = toolheadposx[active_extruder],
473
+    constexpr float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS;
474
+    const float placexpos = toolheadposx[active_extruder],
477 475
                 grabxpos = toolheadposx[tmp_extruder];
478 476
 
479 477
     /**
@@ -582,7 +580,138 @@ inline void fast_line_to_current(const AxisEnum fr_axis) {
582 580
     planner.synchronize();
583 581
   }
584 582
 
585
-#endif // MAGNETIC_SWITCHING_TOOLHEAD
583
+#elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
584
+
585
+  inline void est_activate_solenoid()   { OUT_WRITE(SOL0_PIN, HIGH); }
586
+  inline void est_deactivate_solenoid() { OUT_WRITE(SOL0_PIN, LOW); }
587
+  void est_init() { est_activate_solenoid(); }
588
+
589
+  inline void electromagnetic_switching_toolhead(const uint8_t tmp_extruder, bool no_move) {
590
+    if (no_move) return;
591
+
592
+    constexpr float toolheadposx[] = SWITCHING_TOOLHEAD_X_POS;
593
+    const float placexpos = toolheadposx[active_extruder],
594
+                grabxpos = toolheadposx[tmp_extruder];
595
+
596
+    /**
597
+     * 1. Raise Z-Axis to give enough clearance
598
+     * 2. Move to position near active extruder parking
599
+     * 3. Move gently to park position of active extruder
600
+     * 4. Disengage magnetic field, wait for delay
601
+     * 5. Leave extruder and move to position near new extruder parking
602
+     * 6. Move gently to park position of new extruder
603
+     * 7. Engage magnetic field for new extruder parking
604
+     * 8. Unpark extruder
605
+     * 9. Apply Z hotend offset to current position
606
+     */
607
+
608
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
609
+      if (DEBUGGING(LEVELING)) DEBUG_POS("Starting Autopark", current_position);
610
+    #endif
611
+
612
+    // 1. Raise Z-Axis to give enough clearance
613
+
614
+    current_position[Z_AXIS] += SWITCHING_TOOLHEAD_Z_HOP;
615
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
616
+      if (DEBUGGING(LEVELING)) DEBUG_POS("(1) Raise Z-Axis ", current_position);
617
+    #endif
618
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[Z_AXIS], active_extruder);
619
+
620
+    // 2. Move to position near active extruder parking
621
+
622
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
623
+      if (DEBUGGING(LEVELING)) {
624
+        planner.synchronize();
625
+        SERIAL_ECHOLNPAIR("(2) Move near active extruder parking", active_extruder);
626
+        DEBUG_POS("Moving ParkPos", current_position);
627
+      }
628
+    #endif
629
+    current_position[X_AXIS] = placexpos + hotend_offset[X_AXIS][active_extruder];
630
+    current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS + SWITCHING_TOOLHEAD_Y_CLEAR + hotend_offset[Y_AXIS][active_extruder];
631
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[X_AXIS], active_extruder);
632
+
633
+    // 3. Move gently to park position of active extruder
634
+
635
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
636
+      if (DEBUGGING(LEVELING)) {
637
+        planner.synchronize();
638
+        SERIAL_ECHOLNPAIR("(3) Move gently to park position of active extruder", active_extruder);
639
+        DEBUG_POS("Moving ParkPos", current_position);
640
+      }
641
+    #endif
642
+
643
+    current_position[Y_AXIS] -= SWITCHING_TOOLHEAD_Y_CLEAR;
644
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[Y_AXIS] * 0.5, active_extruder);
645
+
646
+    // 4. Disengage magnetic field, wait for delay
647
+
648
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
649
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(4) Disengage magnet");
650
+    #endif
651
+
652
+    planner.synchronize();
653
+    est_deactivate_solenoid();
654
+
655
+    // 5. Leave extruder and move to position near new extruder parking
656
+
657
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
658
+      if (DEBUGGING(LEVELING)) {
659
+        SERIAL_ECHOLNPGM("(5) Move near new extruder parking");
660
+        DEBUG_POS("Moving ParkPos", current_position);
661
+      }
662
+    #endif
663
+
664
+    current_position[Y_AXIS] += SWITCHING_TOOLHEAD_Y_CLEAR;
665
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[Y_AXIS] * 0.5f, active_extruder);
666
+
667
+    current_position[X_AXIS] = grabxpos + hotend_offset[X_AXIS][active_extruder];
668
+    current_position[Y_AXIS] = SWITCHING_TOOLHEAD_Y_POS + SWITCHING_TOOLHEAD_Y_CLEAR  + hotend_offset[Y_AXIS][active_extruder];
669
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[X_AXIS], active_extruder);
670
+
671
+    // 6. Move gently to park position of new extruder
672
+
673
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
674
+      if (DEBUGGING(LEVELING)) {
675
+        planner.synchronize();
676
+        SERIAL_ECHOLNPGM("(6) Move near new extruder");
677
+      }
678
+    #endif
679
+
680
+    current_position[Y_AXIS] -= SWITCHING_TOOLHEAD_Y_CLEAR;
681
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[Y_AXIS] * 0.5f, active_extruder);
682
+
683
+    // 7. Engage magnetic field for new extruder parking
684
+
685
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
686
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(7) Engage magnetic field");
687
+    #endif
688
+
689
+    planner.synchronize();
690
+    est_activate_solenoid();
691
+
692
+    // 8. Unpark extruder
693
+
694
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
695
+      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("(8) Unpark extruder");
696
+    #endif
697
+
698
+    current_position[Y_AXIS] += SWITCHING_TOOLHEAD_Y_CLEAR;
699
+
700
+    planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[X_AXIS] * 0.5f, active_extruder);
701
+
702
+    // 9. Apply Z hotend offset to current position
703
+
704
+    current_position[Z_AXIS] += hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
705
+
706
+    #if ENABLED(DEBUG_LEVELING_FEATURE)
707
+      if (DEBUGGING(LEVELING)) {
708
+        planner.synchronize();
709
+        DEBUG_POS("(9) Applying Z-offset", current_position);
710
+      }
711
+    #endif
712
+  }
713
+
714
+#endif // ELECTROMAGNETIC_SWITCHING_TOOLHEAD
586 715
 
587 716
 inline void invalid_extruder_error(const uint8_t e) {
588 717
   SERIAL_ECHO_START();
@@ -800,15 +929,17 @@ void tool_change(const uint8_t tmp_extruder, bool no_move/*=false*/) {
800 929
 
801 930
       #if ENABLED(DUAL_X_CARRIAGE)
802 931
         dualx_tool_change(tmp_extruder, no_move);
803
-      #elif ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
932
+      #elif ENABLED(PARKING_EXTRUDER)                                   // Dual Parking extruder
804 933
         parking_extruder_tool_change(tmp_extruder, no_move);
805
-      #elif ENABLED(MAGNETIC_PARKING_EXTRUDER) // Magnetic Parking extruder
934
+      #elif ENABLED(MAGNETIC_PARKING_EXTRUDER)                          // Magnetic Parking extruder
806 935
         magnetic_parking_extruder_tool_change(tmp_extruder);
807
-      #elif ENABLED(SWITCHING_TOOLHEAD) // Switching Toolhead
936
+      #elif ENABLED(SWITCHING_TOOLHEAD)                                 // Switching Toolhead
808 937
         switching_toolhead_tool_change(tmp_extruder, no_move);
809
-      #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD) // Magnetic Switching Toolhead
938
+      #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)                        // Magnetic Switching Toolhead
810 939
         magnetic_switching_toolhead_tool_change(tmp_extruder, no_move);
811
-      #elif ENABLED(SWITCHING_NOZZLE) && !SWITCHING_NOZZLE_TWO_SERVOS
940
+      #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)                 // Magnetic Switching ToolChanger
941
+        electromagnetic_switching_toolhead(tmp_extruder, no_move);
942
+      #elif ENABLED(SWITCHING_NOZZLE) && !SWITCHING_NOZZLE_TWO_SERVOS   // Switching Nozzle (single servo)
812 943
         // Raise by a configured distance to avoid workpiece, except with
813 944
         // SWITCHING_NOZZLE_TWO_SERVOS, as both nozzles will lift instead.
814 945
         current_position[Z_AXIS] += MAX(-zdiff, 0.0) + toolchange_settings.z_raise;

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

@@ -92,6 +92,10 @@
92 92
   #endif
93 93
 #endif
94 94
 
95
+#if ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
96
+  void est_init();
97
+#endif
98
+
95 99
 /**
96 100
  * Perform a tool-change, which may result in moving the
97 101
  * previous tool out of the way and the new tool into place.

+ 12
- 1
config/default/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/3DFabXYZ/Migbot/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/AlephObjects/TAZ4/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/AliExpress/CL-260/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/AliExpress/UM2pExt/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Anet/A2/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Anet/A2plus/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Anet/A6/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Anet/A8/Configuration.h View File

@@ -259,7 +259,16 @@
259 259
  */
260 260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
261 261
 
262
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
262
+/**
263
+ * Electromagnetic Switching Toolhead
264
+ *
265
+ * Parking for CoreXY / HBot kinematics.
266
+ * Toolheads are parked at one edge and held with an electromagnet.
267
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
268
+ */
269
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
270
+
271
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
263 272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264 273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265 274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -270,6 +279,8 @@
270 279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271 280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272 281
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
282
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
283
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
273 284
   #endif
274 285
 #endif
275 286
 

+ 12
- 1
config/examples/Anet/A8plus/Configuration.h View File

@@ -259,7 +259,16 @@
259 259
  */
260 260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
261 261
 
262
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
262
+/**
263
+ * Electromagnetic Switching Toolhead
264
+ *
265
+ * Parking for CoreXY / HBot kinematics.
266
+ * Toolheads are parked at one edge and held with an electromagnet.
267
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
268
+ */
269
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
270
+
271
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
263 272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264 273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265 274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -270,6 +279,8 @@
270 279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271 280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272 281
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
282
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
283
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
273 284
   #endif
274 285
 #endif
275 286
 

+ 12
- 1
config/examples/Anet/E16/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/AnyCubic/i3/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/ArmEd/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Azteeg/X5GT/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/BIBO/TouchX/cyclops/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/BIBO/TouchX/default/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/BQ/Hephestos/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/BQ/Hephestos_2/Configuration.h View File

@@ -266,7 +266,16 @@
266 266
  */
267 267
 //#define MAGNETIC_SWITCHING_TOOLHEAD
268 268
 
269
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
269
+/**
270
+ * Electromagnetic Switching Toolhead
271
+ *
272
+ * Parking for CoreXY / HBot kinematics.
273
+ * Toolheads are parked at one edge and held with an electromagnet.
274
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
275
+ */
276
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
277
+
278
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
270 279
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271 280
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272 281
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -277,6 +286,8 @@
277 286
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278 287
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279 288
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
289
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
290
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
280 291
   #endif
281 292
 #endif
282 293
 

+ 12
- 1
config/examples/BQ/WITBOX/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Cartesio/Configuration.h View File

@@ -259,7 +259,16 @@
259 259
  */
260 260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
261 261
 
262
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
262
+/**
263
+ * Electromagnetic Switching Toolhead
264
+ *
265
+ * Parking for CoreXY / HBot kinematics.
266
+ * Toolheads are parked at one edge and held with an electromagnet.
267
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
268
+ */
269
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
270
+
271
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
263 272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264 273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265 274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -270,6 +279,8 @@
270 279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271 280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272 281
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
282
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
283
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
273 284
   #endif
274 285
 #endif
275 286
 

+ 12
- 1
config/examples/Creality/CR-10/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/CR-10S/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/CR-10_5S/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/CR-10mini/Configuration.h View File

@@ -267,7 +267,16 @@
267 267
  */
268 268
 //#define MAGNETIC_SWITCHING_TOOLHEAD
269 269
 
270
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
270
+/**
271
+ * Electromagnetic Switching Toolhead
272
+ *
273
+ * Parking for CoreXY / HBot kinematics.
274
+ * Toolheads are parked at one edge and held with an electromagnet.
275
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
276
+ */
277
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
278
+
279
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
271 280
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272 281
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273 282
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -278,6 +287,8 @@
278 287
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279 288
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280 289
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
290
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
291
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
281 292
   #endif
282 293
 #endif
283 294
 

+ 12
- 1
config/examples/Creality/CR-20 Pro/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/CR-20/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/CR-8/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/Ender-2/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/Ender-3/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/Ender-4/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Creality/Ender-5/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Dagoma/Disco Ultimate/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Einstart-S/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Felix/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Felix/DUAL/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/FlashForge/CreatorPro/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/FolgerTech/i3-2020/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Formbot/Raptor/Configuration.h View File

@@ -299,7 +299,16 @@
299 299
  */
300 300
 //#define MAGNETIC_SWITCHING_TOOLHEAD
301 301
 
302
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
302
+/**
303
+ * Electromagnetic Switching Toolhead
304
+ *
305
+ * Parking for CoreXY / HBot kinematics.
306
+ * Toolheads are parked at one edge and held with an electromagnet.
307
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
308
+ */
309
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
310
+
311
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
303 312
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
304 313
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
305 314
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -310,6 +319,8 @@
310 319
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
311 320
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
312 321
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
322
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
323
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
313 324
   #endif
314 325
 #endif
315 326
 

+ 12
- 1
config/examples/Formbot/T_Rex_2+/Configuration.h View File

@@ -261,7 +261,16 @@
261 261
  */
262 262
 //#define MAGNETIC_SWITCHING_TOOLHEAD
263 263
 
264
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
264
+/**
265
+ * Electromagnetic Switching Toolhead
266
+ *
267
+ * Parking for CoreXY / HBot kinematics.
268
+ * Toolheads are parked at one edge and held with an electromagnet.
269
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
270
+ */
271
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
272
+
273
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
265 274
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
266 275
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
267 276
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -272,6 +281,8 @@
272 281
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
273 282
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
274 283
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
284
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
285
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
275 286
   #endif
276 287
 #endif
277 288
 

+ 12
- 1
config/examples/Formbot/T_Rex_3/Configuration.h View File

@@ -262,7 +262,16 @@
262 262
  */
263 263
 //#define MAGNETIC_SWITCHING_TOOLHEAD
264 264
 
265
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
265
+/**
266
+ * Electromagnetic Switching Toolhead
267
+ *
268
+ * Parking for CoreXY / HBot kinematics.
269
+ * Toolheads are parked at one edge and held with an electromagnet.
270
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
271
+ */
272
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
273
+
274
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
266 275
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
267 276
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
268 277
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -273,6 +282,8 @@
273 282
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
274 283
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
275 284
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
285
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
286
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
276 287
   #endif
277 288
 #endif
278 289
 

+ 12
- 1
config/examples/Fysetc/AIO_II/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Fysetc/CHEETAH/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Fysetc/F6_13/Configuration.h View File

@@ -260,7 +260,16 @@
260 260
  */
261 261
 //#define MAGNETIC_SWITCHING_TOOLHEAD
262 262
 
263
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
263
+/**
264
+ * Electromagnetic Switching Toolhead
265
+ *
266
+ * Parking for CoreXY / HBot kinematics.
267
+ * Toolheads are parked at one edge and held with an electromagnet.
268
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
269
+ */
270
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
271
+
272
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
264 273
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
265 274
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
266 275
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -271,6 +280,8 @@
271 280
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
272 281
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
273 282
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
283
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
284
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
274 285
   #endif
275 286
 #endif
276 287
 

+ 12
- 1
config/examples/Geeetech/A10/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Geeetech/A10M/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Geeetech/A20M/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Geeetech/GT2560/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Geeetech/MeCreator2/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

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

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

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

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

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

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

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

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Infitary/i3-M508/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/JGAurora/A1/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/JGAurora/A5/Configuration.h View File

@@ -263,7 +263,16 @@
263 263
  */
264 264
 //#define MAGNETIC_SWITCHING_TOOLHEAD
265 265
 
266
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
266
+/**
267
+ * Electromagnetic Switching Toolhead
268
+ *
269
+ * Parking for CoreXY / HBot kinematics.
270
+ * Toolheads are parked at one edge and held with an electromagnet.
271
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
272
+ */
273
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
274
+
275
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
267 276
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
268 277
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
269 278
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -274,6 +283,8 @@
274 283
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
275 284
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
276 285
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
286
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
287
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
277 288
   #endif
278 289
 #endif
279 290
 

+ 12
- 1
config/examples/JGAurora/A5S/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/MakerParts/Configuration.h View File

@@ -278,7 +278,16 @@
278 278
  */
279 279
 //#define MAGNETIC_SWITCHING_TOOLHEAD
280 280
 
281
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
281
+/**
282
+ * Electromagnetic Switching Toolhead
283
+ *
284
+ * Parking for CoreXY / HBot kinematics.
285
+ * Toolheads are parked at one edge and held with an electromagnet.
286
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
287
+ */
288
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
289
+
290
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282 291
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
283 292
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
284 293
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -289,6 +298,8 @@
289 298
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
290 299
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
291 300
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
301
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
302
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
292 303
   #endif
293 304
 #endif
294 305
 

+ 12
- 1
config/examples/Malyan/M150/Configuration.h View File

@@ -263,7 +263,16 @@
263 263
  */
264 264
 //#define MAGNETIC_SWITCHING_TOOLHEAD
265 265
 
266
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
266
+/**
267
+ * Electromagnetic Switching Toolhead
268
+ *
269
+ * Parking for CoreXY / HBot kinematics.
270
+ * Toolheads are parked at one edge and held with an electromagnet.
271
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
272
+ */
273
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
274
+
275
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
267 276
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
268 277
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
269 278
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -274,6 +283,8 @@
274 283
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
275 284
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
276 285
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
286
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
287
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
277 288
   #endif
278 289
 #endif
279 290
 

+ 12
- 1
config/examples/Malyan/M200/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Micromake/C1/basic/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Micromake/C1/enhanced/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Mks/Robin/Configuration.h View File

@@ -259,7 +259,16 @@
259 259
  */
260 260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
261 261
 
262
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
262
+/**
263
+ * Electromagnetic Switching Toolhead
264
+ *
265
+ * Parking for CoreXY / HBot kinematics.
266
+ * Toolheads are parked at one edge and held with an electromagnet.
267
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
268
+ */
269
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
270
+
271
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
263 272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264 273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265 274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -270,6 +279,8 @@
270 279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271 280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272 281
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
282
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
283
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
273 284
   #endif
274 285
 #endif
275 286
 

+ 12
- 1
config/examples/Mks/Sbase/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Printrbot/PrintrboardG2/Configuration.h View File

@@ -259,7 +259,16 @@
259 259
  */
260 260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
261 261
 
262
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
262
+/**
263
+ * Electromagnetic Switching Toolhead
264
+ *
265
+ * Parking for CoreXY / HBot kinematics.
266
+ * Toolheads are parked at one edge and held with an electromagnet.
267
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
268
+ */
269
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
270
+
271
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
263 272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264 273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265 274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -270,6 +279,8 @@
270 279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271 280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272 281
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
282
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
283
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
273 284
   #endif
274 285
 #endif
275 286
 

+ 12
- 1
config/examples/RapideLite/RL200/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/RepRapPro/Huxley/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/RepRapWorld/Megatronics/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/RigidBot/Configuration.h View File

@@ -261,7 +261,16 @@
261 261
  */
262 262
 //#define MAGNETIC_SWITCHING_TOOLHEAD
263 263
 
264
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
264
+/**
265
+ * Electromagnetic Switching Toolhead
266
+ *
267
+ * Parking for CoreXY / HBot kinematics.
268
+ * Toolheads are parked at one edge and held with an electromagnet.
269
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
270
+ */
271
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
272
+
273
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
265 274
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
266 275
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
267 276
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -272,6 +281,8 @@
272 281
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
273 282
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
274 283
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
284
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
285
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
275 286
   #endif
276 287
 #endif
277 288
 

+ 12
- 1
config/examples/SCARA/Configuration.h View File

@@ -289,7 +289,16 @@
289 289
  */
290 290
 //#define MAGNETIC_SWITCHING_TOOLHEAD
291 291
 
292
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
292
+/**
293
+ * Electromagnetic Switching Toolhead
294
+ *
295
+ * Parking for CoreXY / HBot kinematics.
296
+ * Toolheads are parked at one edge and held with an electromagnet.
297
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
298
+ */
299
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
300
+
301
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
293 302
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
294 303
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
295 304
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -300,6 +309,8 @@
300 309
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
301 310
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
302 311
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
312
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
313
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
303 314
   #endif
304 315
 #endif
305 316
 

+ 12
- 1
config/examples/STM32/Black_STM32F407VET6/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/STM32/STM32F10/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/STM32/STM32F4/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/STM32/stm32f103ret6/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Sanguinololu/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Tevo/Tarantula Pro/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/TheBorg/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/TinyBoy2/Configuration.h View File

@@ -280,7 +280,16 @@
280 280
  */
281 281
 //#define MAGNETIC_SWITCHING_TOOLHEAD
282 282
 
283
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
283
+/**
284
+ * Electromagnetic Switching Toolhead
285
+ *
286
+ * Parking for CoreXY / HBot kinematics.
287
+ * Toolheads are parked at one edge and held with an electromagnet.
288
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
289
+ */
290
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
291
+
292
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
284 293
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
285 294
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
286 295
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -291,6 +300,8 @@
291 300
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
292 301
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
293 302
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
303
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
304
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
294 305
   #endif
295 306
 #endif
296 307
 

+ 12
- 1
config/examples/Tronxy/X1/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Tronxy/X3A/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Tronxy/X5S-2E/Configuration.h View File

@@ -260,7 +260,16 @@
260 260
  */
261 261
 //#define MAGNETIC_SWITCHING_TOOLHEAD
262 262
 
263
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
263
+/**
264
+ * Electromagnetic Switching Toolhead
265
+ *
266
+ * Parking for CoreXY / HBot kinematics.
267
+ * Toolheads are parked at one edge and held with an electromagnet.
268
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
269
+ */
270
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
271
+
272
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
264 273
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
265 274
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
266 275
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -271,6 +280,8 @@
271 280
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
272 281
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
273 282
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
283
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
284
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
274 285
   #endif
275 286
 #endif
276 287
 

+ 12
- 1
config/examples/Tronxy/X5S/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Tronxy/XY100/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/UltiMachine/Archim1/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/UltiMachine/Archim2/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/VORONDesign/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Velleman/K8200/Configuration.h View File

@@ -278,7 +278,16 @@
278 278
  */
279 279
 //#define MAGNETIC_SWITCHING_TOOLHEAD
280 280
 
281
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
281
+/**
282
+ * Electromagnetic Switching Toolhead
283
+ *
284
+ * Parking for CoreXY / HBot kinematics.
285
+ * Toolheads are parked at one edge and held with an electromagnet.
286
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
287
+ */
288
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
289
+
290
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282 291
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
283 292
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
284 293
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -289,6 +298,8 @@
289 298
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
290 299
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
291 300
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
301
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
302
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
292 303
   #endif
293 304
 #endif
294 305
 

+ 12
- 1
config/examples/Velleman/K8400/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/Velleman/K8400/Dual-head/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/WASP/PowerWASP/Configuration.h View File

@@ -277,7 +277,16 @@
277 277
  */
278 278
 //#define MAGNETIC_SWITCHING_TOOLHEAD
279 279
 
280
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
280
+/**
281
+ * Electromagnetic Switching Toolhead
282
+ *
283
+ * Parking for CoreXY / HBot kinematics.
284
+ * Toolheads are parked at one edge and held with an electromagnet.
285
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
286
+ */
287
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
288
+
289
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
281 290
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
282 291
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
283 292
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -288,6 +297,8 @@
288 297
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
289 298
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
290 299
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
300
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
301
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
291 302
   #endif
292 303
 #endif
293 304
 

+ 12
- 1
config/examples/Wanhao/Duplicator 6/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/adafruit/ST7565/Configuration.h View File

@@ -258,7 +258,16 @@
258 258
  */
259 259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
260 260
 
261
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
261
+/**
262
+ * Electromagnetic Switching Toolhead
263
+ *
264
+ * Parking for CoreXY / HBot kinematics.
265
+ * Toolheads are parked at one edge and held with an electromagnet.
266
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
267
+ */
268
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
269
+
270
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
262 271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263 272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264 273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -269,6 +278,8 @@
269 278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270 279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271 280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
281
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
282
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
272 283
   #endif
273 284
 #endif
274 285
 

+ 12
- 1
config/examples/delta/Anycubic/Kossel/Configuration.h View File

@@ -273,7 +273,16 @@
273 273
  */
274 274
 //#define MAGNETIC_SWITCHING_TOOLHEAD
275 275
 
276
-#if EITHER(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD)
276
+/**
277
+ * Electromagnetic Switching Toolhead
278
+ *
279
+ * Parking for CoreXY / HBot kinematics.
280
+ * Toolheads are parked at one edge and held with an electromagnet.
281
+ * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4
282
+ */
283
+//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
284
+
285
+#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
277 286
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
278 287
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
279 288
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
@@ -284,6 +293,8 @@
284 293
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
285 294
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
286 295
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
296
+  #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
297
+    #define SWITCHING_TOOLHEAD_Z_HOP          2         // (mm) Z raise for switching
287 298
   #endif
288 299
 #endif
289 300
 

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


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save