Quellcode durchsuchen

Support SWITCHING_NOZZLE with 2 servos (#13054)

Marcio Teixeira vor 6 Jahren
Ursprung
Commit
5cfc1cdacc
95 geänderte Dateien mit 253 neuen und 105 gelöschten Zeilen
  1. 3
    2
      Marlin/Configuration.h
  2. 7
    1
      Marlin/src/Marlin.cpp
  3. 2
    1
      Marlin/src/config/default/Configuration.h
  4. 2
    1
      Marlin/src/config/examples/3DFabXYZ/Migbot/Configuration.h
  5. 2
    1
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
  6. 2
    1
      Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
  7. 2
    1
      Marlin/src/config/examples/Anet/A2/Configuration.h
  8. 2
    1
      Marlin/src/config/examples/Anet/A2plus/Configuration.h
  9. 2
    1
      Marlin/src/config/examples/Anet/A6/Configuration.h
  10. 2
    1
      Marlin/src/config/examples/Anet/A8/Configuration.h
  11. 2
    1
      Marlin/src/config/examples/AnyCubic/i3/Configuration.h
  12. 2
    1
      Marlin/src/config/examples/ArmEd/Configuration.h
  13. 2
    1
      Marlin/src/config/examples/Azteeg/X5GT/Configuration.h
  14. 2
    1
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h
  15. 2
    1
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h
  16. 2
    1
      Marlin/src/config/examples/BQ/Hephestos/Configuration.h
  17. 2
    1
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
  18. 2
    1
      Marlin/src/config/examples/BQ/WITBOX/Configuration.h
  19. 2
    1
      Marlin/src/config/examples/Cartesio/Configuration.h
  20. 2
    1
      Marlin/src/config/examples/Creality/CR-10/Configuration.h
  21. 2
    1
      Marlin/src/config/examples/Creality/CR-10S/Configuration.h
  22. 2
    1
      Marlin/src/config/examples/Creality/CR-10mini/Configuration.h
  23. 2
    1
      Marlin/src/config/examples/Creality/CR-8/Configuration.h
  24. 2
    1
      Marlin/src/config/examples/Creality/Ender-2/Configuration.h
  25. 2
    1
      Marlin/src/config/examples/Creality/Ender-3/Configuration.h
  26. 2
    1
      Marlin/src/config/examples/Creality/Ender-4/Configuration.h
  27. 2
    1
      Marlin/src/config/examples/Einstart-S/Configuration.h
  28. 2
    1
      Marlin/src/config/examples/Felix/Configuration.h
  29. 2
    1
      Marlin/src/config/examples/Felix/DUAL/Configuration.h
  30. 2
    1
      Marlin/src/config/examples/FlashForge/CreatorPro/Configuration.h
  31. 2
    1
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
  32. 2
    1
      Marlin/src/config/examples/Formbot/Raptor/Configuration.h
  33. 2
    1
      Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h
  34. 2
    1
      Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h
  35. 2
    1
      Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
  36. 2
    1
      Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  37. 2
    1
      Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h
  38. 2
    1
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h
  39. 2
    1
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  40. 2
    1
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  41. 2
    1
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  42. 2
    1
      Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
  43. 2
    1
      Marlin/src/config/examples/JGAurora/A5/Configuration.h
  44. 2
    1
      Marlin/src/config/examples/MakerParts/Configuration.h
  45. 2
    1
      Marlin/src/config/examples/Malyan/M150/Configuration.h
  46. 2
    1
      Marlin/src/config/examples/Malyan/M200/Configuration.h
  47. 2
    1
      Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
  48. 2
    1
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
  49. 2
    1
      Marlin/src/config/examples/Mks/Robin/Configuration.h
  50. 2
    1
      Marlin/src/config/examples/Mks/Sbase/Configuration.h
  51. 2
    1
      Marlin/src/config/examples/RapideLite/RL200/Configuration.h
  52. 2
    1
      Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h
  53. 2
    1
      Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
  54. 2
    1
      Marlin/src/config/examples/RigidBot/Configuration.h
  55. 2
    1
      Marlin/src/config/examples/SCARA/Configuration.h
  56. 2
    1
      Marlin/src/config/examples/STM32F10/Configuration.h
  57. 2
    1
      Marlin/src/config/examples/STM32F4/Configuration.h
  58. 2
    1
      Marlin/src/config/examples/Sanguinololu/Configuration.h
  59. 2
    1
      Marlin/src/config/examples/TheBorg/Configuration.h
  60. 2
    1
      Marlin/src/config/examples/TinyBoy2/Configuration.h
  61. 2
    1
      Marlin/src/config/examples/Tronxy/X1/Configuration.h
  62. 2
    1
      Marlin/src/config/examples/Tronxy/X3A/Configuration.h
  63. 2
    1
      Marlin/src/config/examples/Tronxy/X5S/Configuration.h
  64. 2
    1
      Marlin/src/config/examples/Tronxy/XY100/Configuration.h
  65. 2
    1
      Marlin/src/config/examples/UltiMachine/Archim1/Configuration.h
  66. 2
    1
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h
  67. 2
    1
      Marlin/src/config/examples/VORONDesign/Configuration.h
  68. 2
    1
      Marlin/src/config/examples/Velleman/K8200/Configuration.h
  69. 2
    1
      Marlin/src/config/examples/Velleman/K8400/Configuration.h
  70. 2
    1
      Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
  71. 2
    1
      Marlin/src/config/examples/WASP/PowerWASP/Configuration.h
  72. 2
    1
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h
  73. 2
    1
      Marlin/src/config/examples/adafruit/ST7565/Configuration.h
  74. 2
    1
      Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h
  75. 2
    1
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  76. 2
    1
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h
  77. 2
    1
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
  78. 2
    1
      Marlin/src/config/examples/delta/Geeetech/Rostock 301/Configuration.h
  79. 2
    1
      Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h
  80. 2
    1
      Marlin/src/config/examples/delta/MKS/SBASE/Configuration.h
  81. 2
    1
      Marlin/src/config/examples/delta/Tevo Little Monster/Configuration.h
  82. 2
    1
      Marlin/src/config/examples/delta/generic/Configuration.h
  83. 2
    1
      Marlin/src/config/examples/delta/kossel_mini/Configuration.h
  84. 2
    1
      Marlin/src/config/examples/delta/kossel_pro/Configuration.h
  85. 2
    1
      Marlin/src/config/examples/delta/kossel_xl/Configuration.h
  86. 2
    1
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
  87. 2
    1
      Marlin/src/config/examples/makibox/Configuration.h
  88. 2
    1
      Marlin/src/config/examples/stm32f103ret6/Configuration.h
  89. 2
    1
      Marlin/src/config/examples/tvrrug/Round2/Configuration.h
  90. 2
    1
      Marlin/src/config/examples/wt150/Configuration.h
  91. 1
    0
      Marlin/src/inc/Conditionals_LCD.h
  92. 18
    0
      Marlin/src/inc/SanityCheck.h
  93. 35
    7
      Marlin/src/module/tool_change.cpp
  94. 6
    1
      Marlin/src/module/tool_change.h
  95. 7
    6
      buildroot/share/tests/LPC1768_tests

+ 3
- 2
Marlin/Configuration.h Datei anzeigen

194
   #endif
194
   #endif
195
 #endif
195
 #endif
196
 
196
 
197
-// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
197
+// A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles
198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 7
- 1
Marlin/src/Marlin.cpp Datei anzeigen

966
   #endif
966
   #endif
967
 
967
 
968
   #if ENABLED(SWITCHING_NOZZLE)
968
   #if ENABLED(SWITCHING_NOZZLE)
969
-    move_nozzle_servo(0);     // Initialize nozzle servo
969
+    // Initialize nozzle servo(s)
970
+    #if SWITCHING_NOZZLE_TWO_SERVOS
971
+      lower_nozzle(0);
972
+      raise_nozzle(1);
973
+    #else
974
+      move_nozzle_servo(0);
975
+    #endif
970
   #endif
976
   #endif
971
 
977
 
972
   #if ENABLED(PARKING_EXTRUDER)
978
   #if ENABLED(PARKING_EXTRUDER)

+ 2
- 1
Marlin/src/config/default/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/3DFabXYZ/Migbot/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Anet/A2/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Anet/A2plus/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Anet/A6/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Anet/A8/Configuration.h Datei anzeigen

199
 //#define SWITCHING_NOZZLE
199
 //#define SWITCHING_NOZZLE
200
 #if ENABLED(SWITCHING_NOZZLE)
200
 #if ENABLED(SWITCHING_NOZZLE)
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
202
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
202
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
203
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
203
 #endif
204
 #endif
204
 
205
 
205
 /**
206
 /**

+ 2
- 1
Marlin/src/config/examples/AnyCubic/i3/Configuration.h Datei anzeigen

199
 //#define SWITCHING_NOZZLE
199
 //#define SWITCHING_NOZZLE
200
 #if ENABLED(SWITCHING_NOZZLE)
200
 #if ENABLED(SWITCHING_NOZZLE)
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
202
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
202
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
203
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
203
 #endif
204
 #endif
204
 
205
 
205
 /**
206
 /**

+ 2
- 1
Marlin/src/config/examples/ArmEd/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Azteeg/X5GT/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/BQ/Hephestos/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h Datei anzeigen

206
 //#define SWITCHING_NOZZLE
206
 //#define SWITCHING_NOZZLE
207
 #if ENABLED(SWITCHING_NOZZLE)
207
 #if ENABLED(SWITCHING_NOZZLE)
208
   #define SWITCHING_NOZZLE_SERVO_NR 0
208
   #define SWITCHING_NOZZLE_SERVO_NR 0
209
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
209
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
210
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
210
 #endif
211
 #endif
211
 
212
 
212
 /**
213
 /**

+ 2
- 1
Marlin/src/config/examples/BQ/WITBOX/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Cartesio/Configuration.h Datei anzeigen

199
 //#define SWITCHING_NOZZLE
199
 //#define SWITCHING_NOZZLE
200
 #if ENABLED(SWITCHING_NOZZLE)
200
 #if ENABLED(SWITCHING_NOZZLE)
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
202
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
202
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
203
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
203
 #endif
204
 #endif
204
 
205
 
205
 /**
206
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/CR-10/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/CR-10S/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/CR-10mini/Configuration.h Datei anzeigen

207
 //#define SWITCHING_NOZZLE
207
 //#define SWITCHING_NOZZLE
208
 #if ENABLED(SWITCHING_NOZZLE)
208
 #if ENABLED(SWITCHING_NOZZLE)
209
   #define SWITCHING_NOZZLE_SERVO_NR 0
209
   #define SWITCHING_NOZZLE_SERVO_NR 0
210
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
210
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
211
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
211
 #endif
212
 #endif
212
 
213
 
213
 /**
214
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/CR-8/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/Ender-2/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/Ender-3/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Creality/Ender-4/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Einstart-S/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Felix/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Felix/DUAL/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/FlashForge/CreatorPro/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Formbot/Raptor/Configuration.h Datei anzeigen

239
 //#define SWITCHING_NOZZLE
239
 //#define SWITCHING_NOZZLE
240
 #if ENABLED(SWITCHING_NOZZLE)
240
 #if ENABLED(SWITCHING_NOZZLE)
241
   #define SWITCHING_NOZZLE_SERVO_NR 0
241
   #define SWITCHING_NOZZLE_SERVO_NR 0
242
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
242
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
243
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
243
 #endif
244
 #endif
244
 
245
 
245
 /**
246
 /**

+ 2
- 1
Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h Datei anzeigen

201
 //#define SWITCHING_NOZZLE
201
 //#define SWITCHING_NOZZLE
202
 #if ENABLED(SWITCHING_NOZZLE)
202
 #if ENABLED(SWITCHING_NOZZLE)
203
   #define SWITCHING_NOZZLE_SERVO_NR 0
203
   #define SWITCHING_NOZZLE_SERVO_NR 0
204
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
204
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
205
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
205
 #endif
206
 #endif
206
 
207
 
207
 /**
208
 /**

+ 2
- 1
Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h Datei anzeigen

202
 //#define SWITCHING_NOZZLE
202
 //#define SWITCHING_NOZZLE
203
 #if ENABLED(SWITCHING_NOZZLE)
203
 #if ENABLED(SWITCHING_NOZZLE)
204
   #define SWITCHING_NOZZLE_SERVO_NR 0
204
   #define SWITCHING_NOZZLE_SERVO_NR 0
205
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
205
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
206
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
206
 #endif
207
 #endif
207
 
208
 
208
 /**
209
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/JGAurora/A5/Configuration.h Datei anzeigen

203
 //#define SWITCHING_NOZZLE
203
 //#define SWITCHING_NOZZLE
204
 #if ENABLED(SWITCHING_NOZZLE)
204
 #if ENABLED(SWITCHING_NOZZLE)
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
206
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
206
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
207
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
207
 #endif
208
 #endif
208
 
209
 
209
 /**
210
 /**

+ 2
- 1
Marlin/src/config/examples/MakerParts/Configuration.h Datei anzeigen

218
 //#define SWITCHING_NOZZLE
218
 //#define SWITCHING_NOZZLE
219
 #if ENABLED(SWITCHING_NOZZLE)
219
 #if ENABLED(SWITCHING_NOZZLE)
220
   #define SWITCHING_NOZZLE_SERVO_NR 0
220
   #define SWITCHING_NOZZLE_SERVO_NR 0
221
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
221
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
222
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
222
 #endif
223
 #endif
223
 
224
 
224
 /**
225
 /**

+ 2
- 1
Marlin/src/config/examples/Malyan/M150/Configuration.h Datei anzeigen

203
 //#define SWITCHING_NOZZLE
203
 //#define SWITCHING_NOZZLE
204
 #if ENABLED(SWITCHING_NOZZLE)
204
 #if ENABLED(SWITCHING_NOZZLE)
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
206
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
206
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
207
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
207
 #endif
208
 #endif
208
 
209
 
209
 /**
210
 /**

+ 2
- 1
Marlin/src/config/examples/Malyan/M200/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Micromake/C1/basic/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Mks/Robin/Configuration.h Datei anzeigen

199
 //#define SWITCHING_NOZZLE
199
 //#define SWITCHING_NOZZLE
200
 #if ENABLED(SWITCHING_NOZZLE)
200
 #if ENABLED(SWITCHING_NOZZLE)
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
   #define SWITCHING_NOZZLE_SERVO_NR 0
202
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
202
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
203
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
203
 #endif
204
 #endif
204
 
205
 
205
 /**
206
 /**

+ 2
- 1
Marlin/src/config/examples/Mks/Sbase/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/RapideLite/RL200/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/RigidBot/Configuration.h Datei anzeigen

201
 //#define SWITCHING_NOZZLE
201
 //#define SWITCHING_NOZZLE
202
 #if ENABLED(SWITCHING_NOZZLE)
202
 #if ENABLED(SWITCHING_NOZZLE)
203
   #define SWITCHING_NOZZLE_SERVO_NR 0
203
   #define SWITCHING_NOZZLE_SERVO_NR 0
204
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
204
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
205
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
205
 #endif
206
 #endif
206
 
207
 
207
 /**
208
 /**

+ 2
- 1
Marlin/src/config/examples/SCARA/Configuration.h Datei anzeigen

229
 //#define SWITCHING_NOZZLE
229
 //#define SWITCHING_NOZZLE
230
 #if ENABLED(SWITCHING_NOZZLE)
230
 #if ENABLED(SWITCHING_NOZZLE)
231
   #define SWITCHING_NOZZLE_SERVO_NR 0
231
   #define SWITCHING_NOZZLE_SERVO_NR 0
232
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
232
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
233
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
233
 #endif
234
 #endif
234
 
235
 
235
 /**
236
 /**

+ 2
- 1
Marlin/src/config/examples/STM32F10/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/STM32F4/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Sanguinololu/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/TheBorg/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/TinyBoy2/Configuration.h Datei anzeigen

220
 //#define SWITCHING_NOZZLE
220
 //#define SWITCHING_NOZZLE
221
 #if ENABLED(SWITCHING_NOZZLE)
221
 #if ENABLED(SWITCHING_NOZZLE)
222
   #define SWITCHING_NOZZLE_SERVO_NR 0
222
   #define SWITCHING_NOZZLE_SERVO_NR 0
223
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
223
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
224
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
224
 #endif
225
 #endif
225
 
226
 
226
 /**
227
 /**

+ 2
- 1
Marlin/src/config/examples/Tronxy/X1/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Tronxy/X3A/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Tronxy/X5S/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Tronxy/XY100/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/UltiMachine/Archim1/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/VORONDesign/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Velleman/K8200/Configuration.h Datei anzeigen

218
 //#define SWITCHING_NOZZLE
218
 //#define SWITCHING_NOZZLE
219
 #if ENABLED(SWITCHING_NOZZLE)
219
 #if ENABLED(SWITCHING_NOZZLE)
220
   #define SWITCHING_NOZZLE_SERVO_NR 0
220
   #define SWITCHING_NOZZLE_SERVO_NR 0
221
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
221
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
222
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
222
 #endif
223
 #endif
223
 
224
 
224
 /**
225
 /**

+ 2
- 1
Marlin/src/config/examples/Velleman/K8400/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/WASP/PowerWASP/Configuration.h Datei anzeigen

217
 //#define SWITCHING_NOZZLE
217
 //#define SWITCHING_NOZZLE
218
 #if ENABLED(SWITCHING_NOZZLE)
218
 #if ENABLED(SWITCHING_NOZZLE)
219
   #define SWITCHING_NOZZLE_SERVO_NR 0
219
   #define SWITCHING_NOZZLE_SERVO_NR 0
220
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
220
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
221
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
221
 #endif
222
 #endif
222
 
223
 
223
 /**
224
 /**

+ 2
- 1
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/adafruit/ST7565/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h Datei anzeigen

213
 //#define SWITCHING_NOZZLE
213
 //#define SWITCHING_NOZZLE
214
 #if ENABLED(SWITCHING_NOZZLE)
214
 #if ENABLED(SWITCHING_NOZZLE)
215
   #define SWITCHING_NOZZLE_SERVO_NR 0
215
   #define SWITCHING_NOZZLE_SERVO_NR 0
216
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
216
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
217
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
217
 #endif
218
 #endif
218
 
219
 
219
 /**
220
 /**

+ 2
- 1
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/Geeetech/Rostock 301/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h Datei anzeigen

203
 //#define SWITCHING_NOZZLE
203
 //#define SWITCHING_NOZZLE
204
 #if ENABLED(SWITCHING_NOZZLE)
204
 #if ENABLED(SWITCHING_NOZZLE)
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
206
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
206
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
207
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
207
 #endif
208
 #endif
208
 
209
 
209
 /**
210
 /**

+ 2
- 1
Marlin/src/config/examples/delta/MKS/SBASE/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/Tevo Little Monster/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/generic/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/kossel_mini/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/delta/kossel_pro/Configuration.h Datei anzeigen

202
 //#define SWITCHING_NOZZLE
202
 //#define SWITCHING_NOZZLE
203
 #if ENABLED(SWITCHING_NOZZLE)
203
 #if ENABLED(SWITCHING_NOZZLE)
204
   #define SWITCHING_NOZZLE_SERVO_NR 0
204
   #define SWITCHING_NOZZLE_SERVO_NR 0
205
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
205
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
206
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
206
 #endif
207
 #endif
207
 
208
 
208
 /**
209
 /**

+ 2
- 1
Marlin/src/config/examples/delta/kossel_xl/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h Datei anzeigen

203
 //#define SWITCHING_NOZZLE
203
 //#define SWITCHING_NOZZLE
204
 #if ENABLED(SWITCHING_NOZZLE)
204
 #if ENABLED(SWITCHING_NOZZLE)
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
205
   #define SWITCHING_NOZZLE_SERVO_NR 0
206
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
206
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
207
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
207
 #endif
208
 #endif
208
 
209
 
209
 /**
210
 /**

+ 2
- 1
Marlin/src/config/examples/makibox/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/stm32f103ret6/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/tvrrug/Round2/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 2
- 1
Marlin/src/config/examples/wt150/Configuration.h Datei anzeigen

198
 //#define SWITCHING_NOZZLE
198
 //#define SWITCHING_NOZZLE
199
 #if ENABLED(SWITCHING_NOZZLE)
199
 #if ENABLED(SWITCHING_NOZZLE)
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
200
   #define SWITCHING_NOZZLE_SERVO_NR 0
201
-  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
201
+  //#define SWITCHING_NOZZLE_E1_SERVO_NR 1          // If two servos are used, the index of the second
202
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
202
 #endif
203
 #endif
203
 
204
 
204
 /**
205
 /**

+ 1
- 0
Marlin/src/inc/Conditionals_LCD.h Datei anzeigen

426
 #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
426
 #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
427
 
427
 
428
 #define DO_SWITCH_EXTRUDER (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))
428
 #define DO_SWITCH_EXTRUDER (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))
429
+#define SWITCHING_NOZZLE_TWO_SERVOS defined(SWITCHING_NOZZLE_E1_SERVO_NR)
429
 
430
 
430
 #define HAS_HOTEND_OFFSET (HOTENDS > 1)
431
 #define HAS_HOTEND_OFFSET (HOTENDS > 1)
431
 
432
 

+ 18
- 0
Marlin/src/inc/SanityCheck.h Datei anzeigen

702
     #error "SWITCHING_NOZZLE requires exactly 2 EXTRUDERS."
702
     #error "SWITCHING_NOZZLE requires exactly 2 EXTRUDERS."
703
   #elif NUM_SERVOS < 1
703
   #elif NUM_SERVOS < 1
704
     #error "SWITCHING_NOZZLE requires NUM_SERVOS >= 1."
704
     #error "SWITCHING_NOZZLE requires NUM_SERVOS >= 1."
705
+  #endif
706
+
707
+  #ifndef SWITCHING_NOZZLE_SERVO_NR
708
+    #error "SWITCHING_NOZZLE requires SWITCHING_NOZZLE_SERVO_NR."
705
   #elif SWITCHING_NOZZLE_SERVO_NR == 0 && !PIN_EXISTS(SERVO0)
709
   #elif SWITCHING_NOZZLE_SERVO_NR == 0 && !PIN_EXISTS(SERVO0)
706
     #error "SERVO0_PIN must be defined for your SWITCHING_NOZZLE."
710
     #error "SERVO0_PIN must be defined for your SWITCHING_NOZZLE."
707
   #elif SWITCHING_NOZZLE_SERVO_NR == 1 && !PIN_EXISTS(SERVO1)
711
   #elif SWITCHING_NOZZLE_SERVO_NR == 1 && !PIN_EXISTS(SERVO1)
711
   #elif SWITCHING_NOZZLE_SERVO_NR == 3 && !PIN_EXISTS(SERVO3)
715
   #elif SWITCHING_NOZZLE_SERVO_NR == 3 && !PIN_EXISTS(SERVO3)
712
     #error "SERVO3_PIN must be defined for your SWITCHING_NOZZLE."
716
     #error "SERVO3_PIN must be defined for your SWITCHING_NOZZLE."
713
   #endif
717
   #endif
718
+
719
+  #ifdef SWITCHING_NOZZLE_E1_SERVO_NR
720
+    #if SWITCHING_NOZZLE_E1_SERVO_NR == SWITCHING_NOZZLE_SERVO_NR
721
+      #error "SWITCHING_NOZZLE_E1_SERVO_NR must be different from SWITCHING_NOZZLE_SERVO_NR."
722
+    #elif SWITCHING_NOZZLE_E1_SERVO_NR == 0 && !PIN_EXISTS(SERVO0)
723
+      #error "SERVO0_PIN must be defined for your SWITCHING_NOZZLE."
724
+    #elif SWITCHING_NOZZLE_E1_SERVO_NR == 1 && !PIN_EXISTS(SERVO1)
725
+      #error "SERVO1_PIN must be defined for your SWITCHING_NOZZLE."
726
+    #elif SWITCHING_NOZZLE_E1_SERVO_NR == 2 && !PIN_EXISTS(SERVO2)
727
+      #error "SERVO2_PIN must be defined for your SWITCHING_NOZZLE."
728
+    #elif SWITCHING_NOZZLE_E1_SERVO_NR == 3 && !PIN_EXISTS(SERVO3)
729
+      #error "SERVO3_PIN must be defined for your SWITCHING_NOZZLE."
730
+    #endif
731
+  #endif
714
 #endif
732
 #endif
715
 
733
 
716
 /**
734
 /**

+ 35
- 7
Marlin/src/module/tool_change.cpp Datei anzeigen

100
 #endif // DO_SWITCH_EXTRUDER
100
 #endif // DO_SWITCH_EXTRUDER
101
 
101
 
102
 #if ENABLED(SWITCHING_NOZZLE)
102
 #if ENABLED(SWITCHING_NOZZLE)
103
-  void move_nozzle_servo(const uint8_t e) {
104
-    planner.synchronize();
105
-    MOVE_SERVO(SWITCHING_NOZZLE_SERVO_NR, servo_angles[SWITCHING_NOZZLE_SERVO_NR][e]);
106
-    safe_delay(500);
107
-  }
103
+
104
+  #if SWITCHING_NOZZLE_TWO_SERVOS
105
+
106
+    inline void _move_nozzle_servo(const uint8_t e, const uint8_t angle_index) {
107
+      constexpr int8_t  sns_index[2] = { SWITCHING_NOZZLE_SERVO_NR, SWITCHING_NOZZLE_E1_SERVO_NR };
108
+      constexpr int16_t sns_angles[2] = SWITCHING_NOZZLE_SERVO_ANGLES;
109
+      planner.synchronize();
110
+      MOVE_SERVO(sns_index[e], sns_angles[angle_index]);
111
+      safe_delay(500);
112
+    }
113
+
114
+    void lower_nozzle(const uint8_t e) { _move_nozzle_servo(e, 0); }
115
+    void raise_nozzle(const uint8_t e) { _move_nozzle_servo(e, 1); }
116
+
117
+  #else
118
+
119
+    void move_nozzle_servo(const uint8_t angle_index) {
120
+      planner.synchronize();
121
+      MOVE_SERVO(SWITCHING_NOZZLE_SERVO_NR, servo_angles[SWITCHING_NOZZLE_SERVO_NR][e]);
122
+      safe_delay(500);
123
+    }
124
+
125
+  #endif
126
+
108
 #endif // SWITCHING_NOZZLE
127
 #endif // SWITCHING_NOZZLE
109
 
128
 
110
 #if ENABLED(PARKING_EXTRUDER)
129
 #if ENABLED(PARKING_EXTRUDER)
581
     #endif // TOOLCHANGE_FILAMENT_SWAP
600
     #endif // TOOLCHANGE_FILAMENT_SWAP
582
 
601
 
583
     if (tmp_extruder != active_extruder) {
602
     if (tmp_extruder != active_extruder) {
603
+
604
+      #if SWITCHING_NOZZLE_TWO_SERVOS
605
+        raise_nozzle(active_extruder);
606
+      #endif
607
+
584
       const float old_feedrate_mm_s = fr_mm_s > 0.0 ? fr_mm_s : feedrate_mm_s;
608
       const float old_feedrate_mm_s = fr_mm_s > 0.0 ? fr_mm_s : feedrate_mm_s;
585
       feedrate_mm_s = fr_mm_s > 0.0 ? fr_mm_s : XY_PROBE_FEEDRATE_MM_S;
609
       feedrate_mm_s = fr_mm_s > 0.0 ? fr_mm_s : XY_PROBE_FEEDRATE_MM_S;
586
 
610
 
639
         parking_extruder_tool_change(tmp_extruder, no_move);
663
         parking_extruder_tool_change(tmp_extruder, no_move);
640
       #elif ENABLED(SWITCHING_TOOLHEAD) // Switching Toolhead
664
       #elif ENABLED(SWITCHING_TOOLHEAD) // Switching Toolhead
641
         switching_toolhead_tool_change(tmp_extruder, fr_mm_s, no_move);
665
         switching_toolhead_tool_change(tmp_extruder, fr_mm_s, no_move);
642
-      #elif ENABLED(SWITCHING_NOZZLE)
643
-        // Always raise by a configured distance to avoid workpiece
666
+      #elif ENABLED(SWITCHING_NOZZLE) && !SWITCHING_NOZZLE_TWO_SERVOS
667
+        // Raise by a configured distance to avoid workpiece, except with
668
+        // SWITCHING_NOZZLE_TWO_SERVOS, as both nozzles will lift instead.
644
         current_position[Z_AXIS] += MAX(-zdiff, 0.0) + toolchange_settings.z_raise;
669
         current_position[Z_AXIS] += MAX(-zdiff, 0.0) + toolchange_settings.z_raise;
645
         #if HAS_SOFTWARE_ENDSTOPS
670
         #if HAS_SOFTWARE_ENDSTOPS
646
           NOMORE(current_position[Z_AXIS], soft_endstop_max[Z_AXIS]);
671
           NOMORE(current_position[Z_AXIS], soft_endstop_max[Z_AXIS]);
729
         mmu2.toolChange(tmp_extruder);
754
         mmu2.toolChange(tmp_extruder);
730
       #endif
755
       #endif
731
 
756
 
757
+      #if SWITCHING_NOZZLE_TWO_SERVOS
758
+        lower_nozzle(active_extruder);
759
+      #endif
732
     } // (tmp_extruder != active_extruder)
760
     } // (tmp_extruder != active_extruder)
733
 
761
 
734
     planner.synchronize();
762
     planner.synchronize();

+ 6
- 1
Marlin/src/module/tool_change.h Datei anzeigen

45
 #endif
45
 #endif
46
 
46
 
47
 #if ENABLED(SWITCHING_NOZZLE)
47
 #if ENABLED(SWITCHING_NOZZLE)
48
-  void move_nozzle_servo(const uint8_t e);
48
+  #if SWITCHING_NOZZLE_TWO_SERVOS
49
+    void lower_nozzle(const uint8_t e);
50
+    void raise_nozzle(const uint8_t e);
51
+  #else
52
+    void move_nozzle_servo(const uint8_t angle_index);
53
+  #endif
49
 #endif
54
 #endif
50
 
55
 
51
 #if ENABLED(PARKING_EXTRUDER)
56
 #if ENABLED(PARKING_EXTRUDER)

+ 7
- 6
buildroot/share/tests/LPC1768_tests Datei anzeigen

26
 restore_configs
26
 restore_configs
27
 opt_set MOTHERBOARD BOARD_MKS_SBASE
27
 opt_set MOTHERBOARD BOARD_MKS_SBASE
28
 opt_set EXTRUDERS 2
28
 opt_set EXTRUDERS 2
29
-opt_set NUM_SERVOS 1
30
-opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
31
-exec_test $1 $2 "MKS_SBASE SWITCHING_EXTRUDER"
29
+opt_set TEMP_SENSOR_1 1
30
+opt_set NUM_SERVOS 2
31
+opt_set SERVO_DELAY "{ 300, 300 }"
32
+opt_enable SWITCHING_NOZZLE SWITCHING_NOZZLE_E1_SERVO_NR ULTIMAKERCONTROLLER
33
+exec_test $1 $2 "MKS_SBASE SWITCHING_NOZZLE"
32
 
34
 
33
 restore_configs
35
 restore_configs
34
 opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EEB
36
 opt_set MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EEB
35
 opt_set EXTRUDERS 2
37
 opt_set EXTRUDERS 2
36
-opt_set TEMP_SENSOR_0 1
37
-opt_set TEMP_SENSOR_1 5
38
-opt_set TEMP_SENSOR_BED 1
38
+opt_set TEMP_SENSOR_1 -1
39
+opt_set TEMP_SENSOR_BED 5
39
 opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
40
 opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
40
            FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY \
41
            FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY \
41
            FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
42
            FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \

Laden…
Abbrechen
Speichern