|
|
@ -257,48 +257,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
|
|
|
|
//#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.
|
|
|
|
* Dual Steppers / Dual Endstops
|
|
|
|
// The next unused E driver will be assigned to the second X stepper.
|
|
|
|
*
|
|
|
|
|
|
|
|
* This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
|
|
|
|
|
|
|
|
* spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
|
|
|
|
|
|
|
|
* set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
|
|
|
|
|
|
|
|
* that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
|
|
|
|
|
|
|
|
* this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
|
|
|
|
|
|
|
|
* in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
//#define X_DUAL_STEPPER_DRIVERS
|
|
|
|
//#define X_DUAL_STEPPER_DRIVERS
|
|
|
|
#if ENABLED(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 // Set 'true' if X motors should rotate in opposite directions
|
|
|
|
#define INVERT_X2_VS_X_DIR true
|
|
|
|
//#define X_DUAL_ENDSTOPS
|
|
|
|
|
|
|
|
#if ENABLED(X_DUAL_ENDSTOPS)
|
|
|
|
|
|
|
|
#define X2_USE_ENDSTOP _XMAX_
|
|
|
|
|
|
|
|
#define X_DUAL_ENDSTOPS_ADJUSTMENT 0
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#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
|
|
|
|
//#define Y_DUAL_STEPPER_DRIVERS
|
|
|
|
#if ENABLED(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 // Set 'true' if Y motors should rotate in opposite directions
|
|
|
|
#define INVERT_Y2_VS_Y_DIR true
|
|
|
|
//#define Y_DUAL_ENDSTOPS
|
|
|
|
|
|
|
|
#if ENABLED(Y_DUAL_ENDSTOPS)
|
|
|
|
|
|
|
|
#define Y2_USE_ENDSTOP _YMAX_
|
|
|
|
|
|
|
|
#define Y_DUAL_ENDSTOPS_ADJUSTMENT 0
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// A single Z stepper driver is usually used to drive 2 stepper motors.
|
|
|
|
|
|
|
|
// 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
|
|
|
|
//#define Z_DUAL_STEPPER_DRIVERS
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
|
|
|
|
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
|
|
|
|
|
|
|
|
|
|
|
|
// 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.
|
|
|
|
|
|
|
|
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
|
|
|
|
|
|
|
|
// There is also an implementation of M666 (software endstops adjustment) to this feature.
|
|
|
|
|
|
|
|
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
|
|
|
|
|
|
|
|
// 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.
|
|
|
|
|
|
|
|
// 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.
|
|
|
|
|
|
|
|
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
|
|
|
|
|
|
|
|
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//#define Z_DUAL_ENDSTOPS
|
|
|
|
//#define Z_DUAL_ENDSTOPS
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(Z_DUAL_ENDSTOPS)
|
|
|
|
#if ENABLED(Z_DUAL_ENDSTOPS)
|
|
|
|
#define Z2_USE_ENDSTOP _XMAX_
|
|
|
|
#define Z2_USE_ENDSTOP _XMAX_
|
|
|
|
#define Z_DUAL_ENDSTOPS_ADJUSTMENT 0 // Use M666 to determine/test this value
|
|
|
|
#define Z_DUAL_ENDSTOPS_ADJUSTMENT 0
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif // Z_DUAL_STEPPER_DRIVERS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Enable this for dual x-carriage printers.
|
|
|
|
// Enable this for dual x-carriage printers.
|
|
|
|
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
|
|
|
|
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
|
|
|
|