Browse Source

Add Dual Steppers / Endstops to configs

Scott Lahteine 7 years ago
parent
commit
e04425281d
32 changed files with 1176 additions and 431 deletions
  1. 29
    28
      Marlin/Configuration_adv.h
  2. 37
    13
      Marlin/src/config/default/Configuration_adv.h
  3. 37
    13
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
  4. 37
    13
      Marlin/src/config/examples/Anet/A6/Configuration_adv.h
  5. 37
    13
      Marlin/src/config/examples/Anet/A8/Configuration_adv.h
  6. 37
    13
      Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
  7. 37
    13
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
  8. 37
    13
      Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
  9. 37
    13
      Marlin/src/config/examples/Cartesio/Configuration_adv.h
  10. 37
    13
      Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
  11. 37
    13
      Marlin/src/config/examples/Felix/Configuration_adv.h
  12. 37
    13
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
  13. 37
    13
      Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
  14. 37
    13
      Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
  15. 37
    13
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
  16. 37
    13
      Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
  17. 37
    13
      Marlin/src/config/examples/RigidBot/Configuration_adv.h
  18. 37
    13
      Marlin/src/config/examples/SCARA/Configuration_adv.h
  19. 37
    13
      Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
  20. 37
    13
      Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
  21. 37
    13
      Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
  22. 37
    13
      Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
  23. 37
    13
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  24. 37
    13
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  25. 37
    13
      Marlin/src/config/examples/delta/generic/Configuration_adv.h
  26. 37
    13
      Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
  27. 37
    13
      Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h
  28. 37
    13
      Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
  29. 37
    13
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
  30. 37
    13
      Marlin/src/config/examples/makibox/Configuration_adv.h
  31. 37
    13
      Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
  32. 37
    13
      Marlin/src/config/examples/wt150/Configuration_adv.h

+ 29
- 28
Marlin/Configuration_adv.h View File

257
 
257
 
258
 //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
258
 //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
259
 
259
 
260
-// Dual X Steppers
261
-// Uncomment this option to drive two X axis motors.
262
-// The next unused E driver will be assigned to the second X stepper.
260
+/**
261
+ * Dual Steppers / Dual Endstops
262
+ *
263
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
264
+ *
265
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
266
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
267
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
268
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
269
+ *
270
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
271
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
272
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
273
+ */
274
+
263
 //#define X_DUAL_STEPPER_DRIVERS
275
 //#define X_DUAL_STEPPER_DRIVERS
264
 #if ENABLED(X_DUAL_STEPPER_DRIVERS)
276
 #if ENABLED(X_DUAL_STEPPER_DRIVERS)
265
-  // Set true if the two X motors need to rotate in opposite directions
266
-  #define INVERT_X2_VS_X_DIR true
277
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
278
+  //#define X_DUAL_ENDSTOPS
279
+  #if ENABLED(X_DUAL_ENDSTOPS)
280
+    #define X2_USE_ENDSTOP _XMAX_
281
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
282
+  #endif
267
 #endif
283
 #endif
268
 
284
 
269
-// Dual Y Steppers
270
-// Uncomment this option to drive two Y axis motors.
271
-// The next unused E driver will be assigned to the second Y stepper.
272
 //#define Y_DUAL_STEPPER_DRIVERS
285
 //#define Y_DUAL_STEPPER_DRIVERS
273
 #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
286
 #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
274
-  // Set true if the two Y motors need to rotate in opposite directions
275
-  #define INVERT_Y2_VS_Y_DIR true
287
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
288
+  //#define Y_DUAL_ENDSTOPS
289
+  #if ENABLED(Y_DUAL_ENDSTOPS)
290
+    #define Y2_USE_ENDSTOP _YMAX_
291
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
292
+  #endif
276
 #endif
293
 #endif
277
 
294
 
278
-// A single Z stepper driver is usually used to drive 2 stepper motors.
279
-// Uncomment this option to use a separate stepper driver for each Z axis motor.
280
-// The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
295
 //#define Z_DUAL_STEPPER_DRIVERS
282
-
283
 #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
296
 #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
284
-
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
293
-
294
   //#define Z_DUAL_ENDSTOPS
297
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
298
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
299
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
300
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
301
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
302
+#endif
302
 
303
 
303
 // Enable this for dual x-carriage printers.
304
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
305
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/default/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Anet/A6/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Anet/A8/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Cartesio/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Felix/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Malyan/M150/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 #define Z_DUAL_STEPPER_DRIVERS
281
 #define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
284
 
297
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
293
 
307
 
294
-  //#define Z_DUAL_ENDSTOPS
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
295
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
320
+  //#define Z_DUAL_ENDSTOPS
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/RigidBot/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/SCARA/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Sanguinololu/Configuration_adv.h View File

269
 // The next unused E driver will be assigned to the second Z stepper.
269
 // The next unused E driver will be assigned to the second Z stepper.
270
 //#define Z_DUAL_STEPPER_DRIVERS
270
 //#define Z_DUAL_STEPPER_DRIVERS
271
 
271
 
272
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
272
+/**
273
+ * Dual Steppers / Dual Endstops
274
+ *
275
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
276
+ *
277
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
278
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
279
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
280
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
281
+ *
282
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
283
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
284
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
285
+ */
286
+
287
+//#define X_DUAL_STEPPER_DRIVERS
288
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
289
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
290
+  //#define X_DUAL_ENDSTOPS
291
+  #if ENABLED(X_DUAL_ENDSTOPS)
292
+    #define X2_USE_ENDSTOP _XMAX_
293
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
294
+  #endif
295
+#endif
273
 
296
 
274
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
275
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
276
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
277
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
278
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
279
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
280
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
281
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
297
+//#define Y_DUAL_STEPPER_DRIVERS
298
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
299
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
300
+  //#define Y_DUAL_ENDSTOPS
301
+  #if ENABLED(Y_DUAL_ENDSTOPS)
302
+    #define Y2_USE_ENDSTOP _YMAX_
303
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
304
+  #endif
305
+#endif
282
 
306
 
307
+//#define Z_DUAL_STEPPER_DRIVERS
308
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
   //#define Z_DUAL_ENDSTOPS
309
   //#define Z_DUAL_ENDSTOPS
284
-
285
   #if ENABLED(Z_DUAL_ENDSTOPS)
310
   #if ENABLED(Z_DUAL_ENDSTOPS)
286
     #define Z2_USE_ENDSTOP _XMAX_
311
     #define Z2_USE_ENDSTOP _XMAX_
287
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
312
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
288
   #endif
313
   #endif
289
-
290
-#endif // Z_DUAL_STEPPER_DRIVERS
314
+#endif
291
 
315
 
292
 // Enable this for dual x-carriage printers.
316
 // Enable this for dual x-carriage printers.
293
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
317
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/TinyBoy2/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h View File

293
 // The next unused E driver will be assigned to the second Z stepper.
293
 // The next unused E driver will be assigned to the second Z stepper.
294
 //#define Z_DUAL_STEPPER_DRIVERS
294
 //#define Z_DUAL_STEPPER_DRIVERS
295
 
295
 
296
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
296
+/**
297
+ * Dual Steppers / Dual Endstops
298
+ *
299
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
300
+ *
301
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
302
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
303
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
304
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
305
+ *
306
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
307
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
308
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
309
+ */
310
+
311
+//#define X_DUAL_STEPPER_DRIVERS
312
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
313
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
314
+  //#define X_DUAL_ENDSTOPS
315
+  #if ENABLED(X_DUAL_ENDSTOPS)
316
+    #define X2_USE_ENDSTOP _XMAX_
317
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
318
+  #endif
319
+#endif
297
 
320
 
298
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
299
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
300
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
301
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
302
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
303
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
304
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
305
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
321
+//#define Y_DUAL_STEPPER_DRIVERS
322
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
323
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
324
+  //#define Y_DUAL_ENDSTOPS
325
+  #if ENABLED(Y_DUAL_ENDSTOPS)
326
+    #define Y2_USE_ENDSTOP _YMAX_
327
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
328
+  #endif
329
+#endif
306
 
330
 
331
+//#define Z_DUAL_STEPPER_DRIVERS
332
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
307
   //#define Z_DUAL_ENDSTOPS
333
   //#define Z_DUAL_ENDSTOPS
308
-
309
   #if ENABLED(Z_DUAL_ENDSTOPS)
334
   #if ENABLED(Z_DUAL_ENDSTOPS)
310
     #define Z2_USE_ENDSTOP _XMAX_
335
     #define Z2_USE_ENDSTOP _XMAX_
311
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
336
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
312
   #endif
337
   #endif
313
-
314
-#endif // Z_DUAL_STEPPER_DRIVERS
338
+#endif
315
 
339
 
316
 // Enable this for dual x-carriage printers.
340
 // Enable this for dual x-carriage printers.
317
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
341
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/delta/generic/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h View File

285
 // The next unused E driver will be assigned to the second Z stepper.
285
 // The next unused E driver will be assigned to the second Z stepper.
286
 //#define Z_DUAL_STEPPER_DRIVERS
286
 //#define Z_DUAL_STEPPER_DRIVERS
287
 
287
 
288
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
288
+/**
289
+ * Dual Steppers / Dual Endstops
290
+ *
291
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
292
+ *
293
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
294
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
295
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
296
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
297
+ *
298
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
299
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
300
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
301
+ */
302
+
303
+//#define X_DUAL_STEPPER_DRIVERS
304
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
305
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
306
+  //#define X_DUAL_ENDSTOPS
307
+  #if ENABLED(X_DUAL_ENDSTOPS)
308
+    #define X2_USE_ENDSTOP _XMAX_
309
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
310
+  #endif
311
+#endif
289
 
312
 
290
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
291
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
292
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
293
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
294
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
295
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
296
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
297
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
313
+//#define Y_DUAL_STEPPER_DRIVERS
314
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
315
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
316
+  //#define Y_DUAL_ENDSTOPS
317
+  #if ENABLED(Y_DUAL_ENDSTOPS)
318
+    #define Y2_USE_ENDSTOP _YMAX_
319
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
320
+  #endif
321
+#endif
298
 
322
 
323
+//#define Z_DUAL_STEPPER_DRIVERS
324
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
299
   //#define Z_DUAL_ENDSTOPS
325
   //#define Z_DUAL_ENDSTOPS
300
-
301
   #if ENABLED(Z_DUAL_ENDSTOPS)
326
   #if ENABLED(Z_DUAL_ENDSTOPS)
302
     #define Z2_USE_ENDSTOP _XMAX_
327
     #define Z2_USE_ENDSTOP _XMAX_
303
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
328
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
304
   #endif
329
   #endif
305
-
306
-#endif // Z_DUAL_STEPPER_DRIVERS
330
+#endif
307
 
331
 
308
 // Enable this for dual x-carriage printers.
332
 // Enable this for dual x-carriage printers.
309
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
333
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/makibox/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

+ 37
- 13
Marlin/src/config/examples/wt150/Configuration_adv.h View File

280
 // The next unused E driver will be assigned to the second Z stepper.
280
 // The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
281
 //#define Z_DUAL_STEPPER_DRIVERS
282
 
282
 
283
-#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
283
+/**
284
+ * Dual Steppers / Dual Endstops
285
+ *
286
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
287
+ *
288
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
289
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
290
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
291
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
292
+ *
293
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
294
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
295
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
296
+ */
297
+
298
+//#define X_DUAL_STEPPER_DRIVERS
299
+#if ENABLED(X_DUAL_STEPPER_DRIVERS)
300
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
301
+  //#define X_DUAL_ENDSTOPS
302
+  #if ENABLED(X_DUAL_ENDSTOPS)
303
+    #define X2_USE_ENDSTOP _XMAX_
304
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
305
+  #endif
306
+#endif
284
 
307
 
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
308
+//#define Y_DUAL_STEPPER_DRIVERS
309
+#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
310
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
311
+  //#define Y_DUAL_ENDSTOPS
312
+  #if ENABLED(Y_DUAL_ENDSTOPS)
313
+    #define Y2_USE_ENDSTOP _YMAX_
314
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
315
+  #endif
316
+#endif
293
 
317
 
318
+//#define Z_DUAL_STEPPER_DRIVERS
319
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
294
   //#define Z_DUAL_ENDSTOPS
320
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
321
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
322
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
323
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
324
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
325
+#endif
302
 
326
 
303
 // Enable this for dual x-carriage printers.
327
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
328
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which

Loading…
Cancel
Save