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
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

153
   #include "feature/fanmux.h"
153
   #include "feature/fanmux.h"
154
 #endif
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
   #include "module/tool_change.h"
157
   #include "module/tool_change.h"
158
 #endif
158
 #endif
159
 
159
 
1078
     pe_solenoid_init();
1078
     pe_solenoid_init();
1079
   #endif
1079
   #endif
1080
 
1080
 
1081
+  #if ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
1082
+    est_init();
1083
+  #endif
1084
+
1081
   #if ENABLED(POWER_LOSS_RECOVERY)
1085
   #if ENABLED(POWER_LOSS_RECOVERY)
1082
     recovery.check();
1086
     recovery.check();
1083
   #endif
1087
   #endif

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

836
 #endif
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
  * (Magnetic) Parking Extruder requirements
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
   #elif EXTRUDERS != 2
858
   #elif EXTRUDERS != 2
873
-    #error "MAGNETIC_PARKING_EXTRUDER requires exactly 2 EXTRUDERS."
859
+    #error "(MAGNETIC_)PARKING_EXTRUDER requires exactly 2 EXTRUDERS."
874
   #elif !defined(PARKING_EXTRUDER_PARKING_X)
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
   #elif !defined(TOOLCHANGE_ZRAISE)
862
   #elif !defined(TOOLCHANGE_ZRAISE)
877
-    #error "MAGNETIC_PARKING_EXTRUDER requires TOOLCHANGE_ZRAISE."
863
+    #error "(MAGNETIC_)PARKING_EXTRUDER requires TOOLCHANGE_ZRAISE."
878
   #elif TOOLCHANGE_ZRAISE < 0
864
   #elif TOOLCHANGE_ZRAISE < 0
879
     #error "TOOLCHANGE_ZRAISE must be 0 or higher."
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
   #endif
874
   #endif
881
 #endif
875
 #endif
882
 
876
 
884
  * Switching Toolhead requirements
878
  * Switching Toolhead requirements
885
  */
879
  */
886
 #if ENABLED(SWITCHING_TOOLHEAD)
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
     #error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SERVO_NR."
882
     #error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SERVO_NR."
895
   #elif EXTRUDERS < 2
883
   #elif EXTRUDERS < 2
896
     #error "SWITCHING_TOOLHEAD requires at least 2 EXTRUDERS."
884
     #error "SWITCHING_TOOLHEAD requires at least 2 EXTRUDERS."
911
   #endif
899
   #endif
912
 #endif
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
  * Part-Cooling Fan Multiplexer requirements
919
  * Part-Cooling Fan Multiplexer requirements
916
  */
920
  */
1348
  * Dual X Carriage requirements
1352
  * Dual X Carriage requirements
1349
  */
1353
  */
1350
 #if ENABLED(DUAL_X_CARRIAGE)
1354
 #if ENABLED(DUAL_X_CARRIAGE)
1351
-  #if EXTRUDERS == 1
1355
+  #if EXTRUDERS < 2
1352
     #error "DUAL_X_CARRIAGE requires 2 (or more) extruders."
1356
     #error "DUAL_X_CARRIAGE requires 2 (or more) extruders."
1353
   #elif CORE_IS_XY || CORE_IS_XZ
1357
   #elif CORE_IS_XY || CORE_IS_XZ
1354
     #error "DUAL_X_CARRIAGE cannot be used with COREXY, COREYX, COREXZ, or COREZX."
1358
     #error "DUAL_X_CARRIAGE cannot be used with COREXY, COREYX, COREXZ, or COREZX."
1361
   #elif X_HOME_DIR != -1 || X2_HOME_DIR != 1
1365
   #elif X_HOME_DIR != -1 || X2_HOME_DIR != 1
1362
     #error "DUAL_X_CARRIAGE requires X_HOME_DIR -1 and X2_HOME_DIR 1."
1366
     #error "DUAL_X_CARRIAGE requires X_HOME_DIR -1 and X2_HOME_DIR 1."
1363
   #endif
1367
   #endif
1364
-#endif // DUAL_X_CARRIAGE
1368
+#endif
1365
 
1369
 
1366
 /**
1370
 /**
1367
  * Make sure auto fan pins don't conflict with the fan pin
1371
  * Make sure auto fan pins don't conflict with the fan pin
2286
 /**
2290
 /**
2287
  * Require soft endstops for certain setups
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
   #if ENABLED(DUAL_X_CARRIAGE)
2294
   #if ENABLED(DUAL_X_CARRIAGE)
2291
     #error "DUAL_X_CARRIAGE requires both MIN_ and MAX_SOFTWARE_ENDSTOPS."
2295
     #error "DUAL_X_CARRIAGE requires both MIN_ and MAX_SOFTWARE_ENDSTOPS."
2292
   #elif HAS_HOTEND_OFFSET
2296
   #elif HAS_HOTEND_OFFSET

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

310
 
310
 
311
       // STEP 3
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
       current_position[X_AXIS] += active_extruder ? -10 : 10; // move 10mm away from parked extruder
315
       current_position[X_AXIS] += active_extruder ? -10 : 10; // move 10mm away from parked extruder
316
 
316
 
370
 
370
 
371
     constexpr uint16_t angles[2] = SWITCHING_TOOLHEAD_SERVO_ANGLES;
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
                 grabxpos = toolheadposx[tmp_extruder];
375
                 grabxpos = toolheadposx[tmp_extruder];
376
 
376
 
377
     /**
377
     /**
465
     if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Toolhead change done.");
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
   inline void magnetic_switching_toolhead_tool_change(const uint8_t tmp_extruder, bool no_move/*=false*/) {
470
   inline void magnetic_switching_toolhead_tool_change(const uint8_t tmp_extruder, bool no_move/*=false*/) {
473
     if (no_move) return;
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
                 grabxpos = toolheadposx[tmp_extruder];
475
                 grabxpos = toolheadposx[tmp_extruder];
478
 
476
 
479
     /**
477
     /**
582
     planner.synchronize();
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
 inline void invalid_extruder_error(const uint8_t e) {
716
 inline void invalid_extruder_error(const uint8_t e) {
588
   SERIAL_ECHO_START();
717
   SERIAL_ECHO_START();
800
 
929
 
801
       #if ENABLED(DUAL_X_CARRIAGE)
930
       #if ENABLED(DUAL_X_CARRIAGE)
802
         dualx_tool_change(tmp_extruder, no_move);
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
         parking_extruder_tool_change(tmp_extruder, no_move);
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
         magnetic_parking_extruder_tool_change(tmp_extruder);
935
         magnetic_parking_extruder_tool_change(tmp_extruder);
807
-      #elif ENABLED(SWITCHING_TOOLHEAD) // Switching Toolhead
936
+      #elif ENABLED(SWITCHING_TOOLHEAD)                                 // Switching Toolhead
808
         switching_toolhead_tool_change(tmp_extruder, no_move);
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
         magnetic_switching_toolhead_tool_change(tmp_extruder, no_move);
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
         // Raise by a configured distance to avoid workpiece, except with
943
         // Raise by a configured distance to avoid workpiece, except with
813
         // SWITCHING_NOZZLE_TWO_SERVOS, as both nozzles will lift instead.
944
         // SWITCHING_NOZZLE_TWO_SERVOS, as both nozzles will lift instead.
814
         current_position[Z_AXIS] += MAX(-zdiff, 0.0) + toolchange_settings.z_raise;
945
         current_position[Z_AXIS] += MAX(-zdiff, 0.0) + toolchange_settings.z_raise;

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

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

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

259
  */
259
  */
260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
270
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
284
   #endif
274
 #endif
285
 #endif
275
 
286
 

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

259
  */
259
  */
260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
270
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
284
   #endif
274
 #endif
285
 #endif
275
 
286
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

266
  */
266
  */
267
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
279
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
280
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
281
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
277
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
286
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
287
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
291
   #endif
281
 #endif
292
 #endif
282
 
293
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

259
  */
259
  */
260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
270
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
284
   #endif
274
 #endif
285
 #endif
275
 
286
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

267
  */
267
  */
268
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
280
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
281
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
282
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
287
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
288
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
292
   #endif
282
 #endif
293
 #endif
283
 
294
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

299
  */
299
  */
300
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
312
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
304
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
313
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
305
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
314
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
310
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
319
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
311
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
320
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
312
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
324
   #endif
314
 #endif
325
 #endif
315
 
326
 

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

261
  */
261
  */
262
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
274
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
266
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
275
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
267
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
276
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
272
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
281
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
273
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
282
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
274
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
286
   #endif
276
 #endif
287
 #endif
277
 
288
 

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

262
  */
262
  */
263
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
275
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
267
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
276
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
268
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
277
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
282
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
274
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
283
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
275
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
287
   #endif
277
 #endif
288
 #endif
278
 
289
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

260
  */
260
  */
261
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
273
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
265
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
274
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
266
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
275
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
271
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
280
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
272
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
281
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
273
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
285
   #endif
275
 #endif
286
 #endif
276
 
287
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

263
  */
263
  */
264
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
276
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
268
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
277
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
269
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
278
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
283
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
275
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
284
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
276
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
288
   #endif
278
 #endif
289
 #endif
279
 
290
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

278
  */
278
  */
279
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
291
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
283
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
292
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
284
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
293
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
289
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
298
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
290
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
299
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
291
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
303
   #endif
293
 #endif
304
 #endif
294
 
305
 

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

263
  */
263
  */
264
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
276
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
268
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
277
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
269
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
278
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
283
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
275
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
284
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
276
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
288
   #endif
278
 #endif
289
 #endif
279
 
290
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

259
  */
259
  */
260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
270
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
284
   #endif
274
 #endif
285
 #endif
275
 
286
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

259
  */
259
  */
260
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
272
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
264
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
273
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
265
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
274
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
270
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
279
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
271
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
280
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
272
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
284
   #endif
274
 #endif
285
 #endif
275
 
286
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

261
  */
261
  */
262
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
274
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
266
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
275
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
267
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
276
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
272
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
281
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
273
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
282
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
274
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
286
   #endif
276
 #endif
287
 #endif
277
 
288
 

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

289
  */
289
  */
290
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
302
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
294
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
303
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
295
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
304
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
300
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
309
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
301
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
310
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
302
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
314
   #endif
304
 #endif
315
 #endif
305
 
316
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

280
  */
280
  */
281
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
293
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
285
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
294
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
286
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
295
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
291
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
300
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
292
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
301
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
293
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
305
   #endif
295
 #endif
306
 #endif
296
 
307
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

260
  */
260
  */
261
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
273
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
265
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
274
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
266
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
275
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
271
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
280
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
272
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
281
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
273
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
285
   #endif
275
 #endif
286
 #endif
276
 
287
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

278
  */
278
  */
279
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
291
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
283
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
292
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
284
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
293
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
289
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
298
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
290
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
299
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
291
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
303
   #endif
293
 #endif
304
 #endif
294
 
305
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

277
  */
277
  */
278
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
290
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
282
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
291
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
283
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
292
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
288
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
297
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
289
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
298
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
290
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
302
   #endif
292
 #endif
303
 #endif
293
 
304
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

258
  */
258
  */
259
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
271
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
263
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
272
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
264
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
273
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
269
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
278
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
270
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
279
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
271
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
283
   #endif
273
 #endif
284
 #endif
274
 
285
 

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

273
  */
273
  */
274
 //#define MAGNETIC_SWITCHING_TOOLHEAD
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
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
286
   #define SWITCHING_TOOLHEAD_Y_POS          235         // (mm) Y position of the toolhead dock
278
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
287
   #define SWITCHING_TOOLHEAD_Y_SECURITY      10         // (mm) Security distance Y axis
279
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
288
   #define SWITCHING_TOOLHEAD_Y_CLEAR         60         // (mm) Minimum distance from dock for unobstructed X axis
284
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
293
   #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
285
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
294
     #define SWITCHING_TOOLHEAD_Y_RELEASE      5         // (mm) Security distance Y axis
286
     #define SWITCHING_TOOLHEAD_X_SECURITY   -35         // (mm) Security distance X axis
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
   #endif
298
   #endif
288
 #endif
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