diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 82b19dea3..027132d77 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 17d6cff5f..9c48e9e87 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -76,8 +76,14 @@ /** * Dual Stepper Drivers */ -#if ENABLED(Z_DUAL_STEPPER_DRIVERS) && ENABLED(Y_DUAL_STEPPER_DRIVERS) - #error "You cannot have dual stepper drivers for both Y and Z." +#if ENABLED(X_DUAL_STEPPER_DRIVERS) && ENABLED(DUAL_X_CARRIAGE) + #error "DUAL_X_CARRIAGE is not compatible with X_DUAL_STEPPER_DRIVERS." +#elif ENABLED(X_DUAL_STEPPER_DRIVERS) && (!HAS_X2_ENABLE || !HAS_X2_STEP || !HAS_X2_DIR) + #error "X_DUAL_STEPPER_DRIVERS requires X2 pins (and an extra E plug)." +#elif ENABLED(Y_DUAL_STEPPER_DRIVERS) && (!HAS_Y2_ENABLE || !HAS_Y2_STEP || !HAS_Y2_DIR) + #error "Y_DUAL_STEPPER_DRIVERS requires Y2 pins (and an extra E plug)." +#elif ENABLED(Z_DUAL_STEPPER_DRIVERS) && (!HAS_Z2_ENABLE || !HAS_Z2_STEP || !HAS_Z2_DIR) + #error "Z_DUAL_STEPPER_DRIVERS requires Z2 pins (and an extra E plug)." #endif /** @@ -152,14 +158,6 @@ #error "EXTRUDERS must be 1 with HEATERS_PARALLEL." #endif - #if ENABLED(Y_DUAL_STEPPER_DRIVERS) - #error "EXTRUDERS must be 1 with Y_DUAL_STEPPER_DRIVERS." - #endif - - #if ENABLED(Z_DUAL_STEPPER_DRIVERS) - #error "EXTRUDERS must be 1 with Z_DUAL_STEPPER_DRIVERS." - #endif - #elif ENABLED(SINGLENOZZLE) #error "SINGLENOZZLE requires 2 or more EXTRUDERS." #endif diff --git a/Marlin/example_configurations/Cartesio/Configuration_adv.h b/Marlin/example_configurations/Cartesio/Configuration_adv.h index 53ee0908e..5fb71efe6 100644 --- a/Marlin/example_configurations/Cartesio/Configuration_adv.h +++ b/Marlin/example_configurations/Cartesio/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index 77148dc88..05189ecfc 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index e1e6666df..1aa7c218b 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index e08dd26dc..95b8c89b8 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index b3b7b26ae..2d0afdff3 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -235,11 +235,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -261,14 +278,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 70debaca9..e3af83bad 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 81b83c18c..a7285ffd2 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 20e7ac19e..116c99abb 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -237,11 +237,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -263,14 +280,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index e1e6666df..1aa7c218b 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 8464cc7b0..3e9fd8670 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index 874031add..1dfeb8c71 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index 1f130084f..e2bb76476 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index db1a8e3c8..3baf69390 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -234,11 +234,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -260,14 +277,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index fc309285e..3b82e06fb 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 960d18630..bdf820937 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index b04440245..9c04c4650 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -229,11 +229,28 @@ //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. +// Dual X Steppers +// Uncomment this option to drive two X axis motors. +// The next unused E driver will be assigned to the second X stepper. +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + // Set true if the two X motors need to rotate in opposite directions + #define INVERT_X2_VS_X_DIR true +#endif + + +// Dual Y Steppers +// Uncomment this option to drive two Y axis motors. +// The next unused E driver will be assigned to the second Y stepper. +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Set true if the two Y motors need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif + // A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. +// Uncomment this option to use a separate stepper driver for each Z axis motor. +// The next unused E driver will be assigned to the second Z stepper. //#define Z_DUAL_STEPPER_DRIVERS #if ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -255,14 +272,6 @@ #endif // Z_DUAL_STEPPER_DRIVERS -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage