|
|
@ -386,7 +386,7 @@ |
|
|
|
#endif |
|
|
|
|
|
|
|
#if !defined(PSU_POWERUP_DELAY) && ENABLED(PSU_CONTROL) |
|
|
|
#define PSU_POWERUP_DELAY 100 |
|
|
|
#define PSU_POWERUP_DELAY 250 |
|
|
|
#endif |
|
|
|
|
|
|
|
/**
|
|
|
@ -1255,94 +1255,238 @@ |
|
|
|
*/ |
|
|
|
|
|
|
|
// Steppers
|
|
|
|
#define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(X))) |
|
|
|
#define HAS_X_DIR (PIN_EXISTS(X_DIR)) |
|
|
|
#define HAS_X_STEP (PIN_EXISTS(X_STEP)) |
|
|
|
#define HAS_X_MICROSTEPS (PIN_EXISTS(X_MS1)) |
|
|
|
|
|
|
|
#define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(X2))) |
|
|
|
#define HAS_X2_DIR (PIN_EXISTS(X2_DIR)) |
|
|
|
#define HAS_X2_STEP (PIN_EXISTS(X2_STEP)) |
|
|
|
#define HAS_X2_MICROSTEPS (PIN_EXISTS(X2_MS1)) |
|
|
|
|
|
|
|
#define HAS_Y_ENABLE (PIN_EXISTS(Y_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Y))) |
|
|
|
#define HAS_Y_DIR (PIN_EXISTS(Y_DIR)) |
|
|
|
#define HAS_Y_STEP (PIN_EXISTS(Y_STEP)) |
|
|
|
#define HAS_Y_MICROSTEPS (PIN_EXISTS(Y_MS1)) |
|
|
|
|
|
|
|
#define HAS_Y2_ENABLE (PIN_EXISTS(Y2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Y2))) |
|
|
|
#define HAS_Y2_DIR (PIN_EXISTS(Y2_DIR)) |
|
|
|
#define HAS_Y2_STEP (PIN_EXISTS(Y2_STEP)) |
|
|
|
#define HAS_Y2_MICROSTEPS (PIN_EXISTS(Y2_MS1)) |
|
|
|
|
|
|
|
#define HAS_Z_ENABLE (PIN_EXISTS(Z_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z))) |
|
|
|
#define HAS_Z_DIR (PIN_EXISTS(Z_DIR)) |
|
|
|
#define HAS_Z_STEP (PIN_EXISTS(Z_STEP)) |
|
|
|
#define HAS_Z_MICROSTEPS (PIN_EXISTS(Z_MS1)) |
|
|
|
|
|
|
|
#define HAS_Z2_ENABLE (PIN_EXISTS(Z2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z2))) |
|
|
|
#define HAS_Z2_DIR (PIN_EXISTS(Z2_DIR)) |
|
|
|
#define HAS_Z2_STEP (PIN_EXISTS(Z2_STEP)) |
|
|
|
#define HAS_Z2_MICROSTEPS (PIN_EXISTS(Z2_MS1)) |
|
|
|
|
|
|
|
#define HAS_Z3_ENABLE (PIN_EXISTS(Z3_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z3))) |
|
|
|
#define HAS_Z3_DIR (PIN_EXISTS(Z3_DIR)) |
|
|
|
#define HAS_Z3_STEP (PIN_EXISTS(Z3_STEP)) |
|
|
|
#define HAS_Z3_MICROSTEPS (PIN_EXISTS(Z3_MS1)) |
|
|
|
|
|
|
|
#define HAS_Z4_ENABLE (PIN_EXISTS(Z4_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z4))) |
|
|
|
#define HAS_Z4_DIR (PIN_EXISTS(Z4_DIR)) |
|
|
|
#define HAS_Z4_STEP (PIN_EXISTS(Z4_STEP)) |
|
|
|
#define HAS_Z4_MICROSTEPS (PIN_EXISTS(Z4_MS1)) |
|
|
|
#if PIN_EXISTS(X_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(X)) |
|
|
|
#define HAS_X_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X_DIR) |
|
|
|
#define HAS_X_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X_STEP) |
|
|
|
#define HAS_X_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X_MS1) |
|
|
|
#define HAS_X_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(X2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(X2)) |
|
|
|
#define HAS_X2_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X2_DIR) |
|
|
|
#define HAS_X2_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X2_STEP) |
|
|
|
#define HAS_X2_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X2_MS1) |
|
|
|
#define HAS_X2_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(Y_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Y)) |
|
|
|
#define HAS_Y_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y_DIR) |
|
|
|
#define HAS_Y_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y_STEP) |
|
|
|
#define HAS_Y_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y_MS1) |
|
|
|
#define HAS_Y_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(Y2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Y2)) |
|
|
|
#define HAS_Y2_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y2_DIR) |
|
|
|
#define HAS_Y2_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y2_STEP) |
|
|
|
#define HAS_Y2_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y2_MS1) |
|
|
|
#define HAS_Y2_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(Z_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z)) |
|
|
|
#define HAS_Z_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z_DIR) |
|
|
|
#define HAS_Z_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z_STEP) |
|
|
|
#define HAS_Z_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z_MS1) |
|
|
|
#define HAS_Z_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(Z2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z2)) |
|
|
|
#define HAS_Z2_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z2_DIR) |
|
|
|
#define HAS_Z2_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z2_STEP) |
|
|
|
#define HAS_Z2_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z2_MS1) |
|
|
|
#define HAS_Z2_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(Z3_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z3)) |
|
|
|
#define HAS_Z3_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z3_DIR) |
|
|
|
#define HAS_Z3_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z3_STEP) |
|
|
|
#define HAS_Z3_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z3_MS1) |
|
|
|
#define HAS_Z3_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(Z4_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z4)) |
|
|
|
#define HAS_Z4_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z4_DIR) |
|
|
|
#define HAS_Z4_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z4_STEP) |
|
|
|
#define HAS_Z4_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z4_MS1) |
|
|
|
#define HAS_Z4_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// Extruder steppers and solenoids
|
|
|
|
#define HAS_E0_ENABLE (PIN_EXISTS(E0_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E0))) |
|
|
|
#define HAS_E0_DIR (PIN_EXISTS(E0_DIR)) |
|
|
|
#define HAS_E0_STEP (PIN_EXISTS(E0_STEP)) |
|
|
|
#define HAS_E0_MICROSTEPS (PIN_EXISTS(E0_MS1)) |
|
|
|
#define HAS_SOLENOID_0 (PIN_EXISTS(SOL0)) |
|
|
|
|
|
|
|
#define HAS_E1_ENABLE (PIN_EXISTS(E1_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E1))) |
|
|
|
#define HAS_E1_DIR (PIN_EXISTS(E1_DIR)) |
|
|
|
#define HAS_E1_STEP (PIN_EXISTS(E1_STEP)) |
|
|
|
#define HAS_E1_MICROSTEPS (PIN_EXISTS(E1_MS1)) |
|
|
|
#define HAS_SOLENOID_1 (PIN_EXISTS(SOL1)) |
|
|
|
|
|
|
|
#define HAS_E2_ENABLE (PIN_EXISTS(E2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E2))) |
|
|
|
#define HAS_E2_DIR (PIN_EXISTS(E2_DIR)) |
|
|
|
#define HAS_E2_STEP (PIN_EXISTS(E2_STEP)) |
|
|
|
#define HAS_E2_MICROSTEPS (PIN_EXISTS(E2_MS1)) |
|
|
|
#define HAS_SOLENOID_2 (PIN_EXISTS(SOL2)) |
|
|
|
|
|
|
|
#define HAS_E3_ENABLE (PIN_EXISTS(E3_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E3))) |
|
|
|
#define HAS_E3_DIR (PIN_EXISTS(E3_DIR)) |
|
|
|
#define HAS_E3_STEP (PIN_EXISTS(E3_STEP)) |
|
|
|
#define HAS_E3_MICROSTEPS (PIN_EXISTS(E3_MS1)) |
|
|
|
#define HAS_SOLENOID_3 (PIN_EXISTS(SOL3)) |
|
|
|
|
|
|
|
#define HAS_E4_ENABLE (PIN_EXISTS(E4_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E4))) |
|
|
|
#define HAS_E4_DIR (PIN_EXISTS(E4_DIR)) |
|
|
|
#define HAS_E4_STEP (PIN_EXISTS(E4_STEP)) |
|
|
|
#define HAS_E4_MICROSTEPS (PIN_EXISTS(E4_MS1)) |
|
|
|
#define HAS_SOLENOID_4 (PIN_EXISTS(SOL4)) |
|
|
|
|
|
|
|
#define HAS_E5_ENABLE (PIN_EXISTS(E5_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E5))) |
|
|
|
#define HAS_E5_DIR (PIN_EXISTS(E5_DIR)) |
|
|
|
#define HAS_E5_STEP (PIN_EXISTS(E5_STEP)) |
|
|
|
#define HAS_E5_MICROSTEPS (PIN_EXISTS(E5_MS1)) |
|
|
|
#define HAS_SOLENOID_5 (PIN_EXISTS(SOL5)) |
|
|
|
|
|
|
|
#define HAS_E6_ENABLE (PIN_EXISTS(E6_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E6))) |
|
|
|
#define HAS_E6_DIR (PIN_EXISTS(E6_DIR)) |
|
|
|
#define HAS_E6_STEP (PIN_EXISTS(E6_STEP)) |
|
|
|
#define HAS_E6_MICROSTEPS (PIN_EXISTS(E6_MS1)) |
|
|
|
#define HAS_SOLENOID_6 (PIN_EXISTS(SOL6)) |
|
|
|
|
|
|
|
#define HAS_E7_ENABLE (PIN_EXISTS(E7_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E7))) |
|
|
|
#define HAS_E7_DIR (PIN_EXISTS(E7_DIR)) |
|
|
|
#define HAS_E7_STEP (PIN_EXISTS(E7_STEP)) |
|
|
|
#define HAS_E7_MICROSTEPS (PIN_EXISTS(E7_MS1)) |
|
|
|
#define HAS_SOLENOID_7 (PIN_EXISTS(SOL7)) |
|
|
|
#if PIN_EXISTS(E0_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E0)) |
|
|
|
#define HAS_E0_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E0_DIR) |
|
|
|
#define HAS_E0_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E0_STEP) |
|
|
|
#define HAS_E0_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E0_MS1) |
|
|
|
#define HAS_E0_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL0) |
|
|
|
#define HAS_SOLENOID_0 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E1_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E1)) |
|
|
|
#define HAS_E1_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E1_DIR) |
|
|
|
#define HAS_E1_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E1_STEP) |
|
|
|
#define HAS_E1_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E1_MS1) |
|
|
|
#define HAS_E1_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL1) |
|
|
|
#define HAS_SOLENOID_1 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E2_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E2)) |
|
|
|
#define HAS_E2_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E2_DIR) |
|
|
|
#define HAS_E2_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E2_STEP) |
|
|
|
#define HAS_E2_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E2_MS1) |
|
|
|
#define HAS_E2_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL2) |
|
|
|
#define HAS_SOLENOID_2 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E3_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E3)) |
|
|
|
#define HAS_E3_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E3_DIR) |
|
|
|
#define HAS_E3_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E3_STEP) |
|
|
|
#define HAS_E3_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E3_MS1) |
|
|
|
#define HAS_E3_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL3) |
|
|
|
#define HAS_SOLENOID_3 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E4_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E4)) |
|
|
|
#define HAS_E4_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E4_DIR) |
|
|
|
#define HAS_E4_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E4_STEP) |
|
|
|
#define HAS_E4_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E4_MS1) |
|
|
|
#define HAS_E4_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL4) |
|
|
|
#define HAS_SOLENOID_4 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E5_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E5)) |
|
|
|
#define HAS_E5_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E5_DIR) |
|
|
|
#define HAS_E5_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E5_STEP) |
|
|
|
#define HAS_E5_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E5_MS1) |
|
|
|
#define HAS_E5_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL5) |
|
|
|
#define HAS_SOLENOID_5 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E6_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E6)) |
|
|
|
#define HAS_E6_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E6_DIR) |
|
|
|
#define HAS_E6_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E6_STEP) |
|
|
|
#define HAS_E6_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E6_MS1) |
|
|
|
#define HAS_E6_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL6) |
|
|
|
#define HAS_SOLENOID_6 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(E7_ENABLE) || (ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E7)) |
|
|
|
#define HAS_E7_ENABLE 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E7_DIR) |
|
|
|
#define HAS_E7_DIR 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E7_STEP) |
|
|
|
#define HAS_E7_STEP 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(E7_MS1) |
|
|
|
#define HAS_E7_MICROSTEPS 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SOL7) |
|
|
|
#define HAS_SOLENOID_7 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// Trinamic Stepper Drivers
|
|
|
|
#if HAS_TRINAMIC_CONFIG |
|
|
@ -1405,62 +1549,146 @@ |
|
|
|
#define IS_Z4_ENDSTOP(A,M) (ENABLED(Z_MULTI_ENDSTOPS) && NUM_Z_STEPPER_DRIVERS >= 4 && Z4_USE_ENDSTOP == _##A##M##_) |
|
|
|
|
|
|
|
#define _HAS_STOP(A,M) (PIN_EXISTS(A##_##M) && !IS_PROBE_PIN(A,M) && !IS_X2_ENDSTOP(A,M) && !IS_Y2_ENDSTOP(A,M) && !IS_Z2_ENDSTOP(A,M) && !IS_Z3_ENDSTOP(A,M) && !IS_Z4_ENDSTOP(A,M)) |
|
|
|
#define HAS_X_MIN _HAS_STOP(X,MIN) |
|
|
|
#define HAS_X_MAX _HAS_STOP(X,MAX) |
|
|
|
#define HAS_Y_MIN _HAS_STOP(Y,MIN) |
|
|
|
#define HAS_Y_MAX _HAS_STOP(Y,MAX) |
|
|
|
#define HAS_Z_MIN _HAS_STOP(Z,MIN) |
|
|
|
#define HAS_Z_MAX _HAS_STOP(Z,MAX) |
|
|
|
#define HAS_X2_MIN (PIN_EXISTS(X2_MIN)) |
|
|
|
#define HAS_X2_MAX (PIN_EXISTS(X2_MAX)) |
|
|
|
#define HAS_Y2_MIN (PIN_EXISTS(Y2_MIN)) |
|
|
|
#define HAS_Y2_MAX (PIN_EXISTS(Y2_MAX)) |
|
|
|
#define HAS_Z2_MIN (PIN_EXISTS(Z2_MIN)) |
|
|
|
#define HAS_Z2_MAX (PIN_EXISTS(Z2_MAX)) |
|
|
|
#define HAS_Z3_MIN (PIN_EXISTS(Z3_MIN)) |
|
|
|
#define HAS_Z3_MAX (PIN_EXISTS(Z3_MAX)) |
|
|
|
#define HAS_Z4_MIN (PIN_EXISTS(Z4_MIN)) |
|
|
|
#define HAS_Z4_MAX (PIN_EXISTS(Z4_MAX)) |
|
|
|
#define HAS_Z_MIN_PROBE_PIN (HAS_CUSTOM_PROBE_PIN && PIN_EXISTS(Z_MIN_PROBE)) |
|
|
|
#if _HAS_STOP(X,MIN) |
|
|
|
#define HAS_X_MIN 1 |
|
|
|
#endif |
|
|
|
#if _HAS_STOP(X,MAX) |
|
|
|
#define HAS_X_MAX 1 |
|
|
|
#endif |
|
|
|
#if _HAS_STOP(Y,MIN) |
|
|
|
#define HAS_Y_MIN 1 |
|
|
|
#endif |
|
|
|
#if _HAS_STOP(Y,MAX) |
|
|
|
#define HAS_Y_MAX 1 |
|
|
|
#endif |
|
|
|
#if _HAS_STOP(Z,MIN) |
|
|
|
#define HAS_Z_MIN 1 |
|
|
|
#endif |
|
|
|
#if _HAS_STOP(Z,MAX) |
|
|
|
#define HAS_Z_MAX 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X2_MIN) |
|
|
|
#define HAS_X2_MIN 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(X2_MAX) |
|
|
|
#define HAS_X2_MAX 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y2_MIN) |
|
|
|
#define HAS_Y2_MIN 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Y2_MAX) |
|
|
|
#define HAS_Y2_MAX 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z2_MIN) |
|
|
|
#define HAS_Z2_MIN 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z2_MAX) |
|
|
|
#define HAS_Z2_MAX 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z3_MIN) |
|
|
|
#define HAS_Z3_MIN 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z3_MAX) |
|
|
|
#define HAS_Z3_MAX 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z4_MIN) |
|
|
|
#define HAS_Z4_MIN 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(Z4_MAX) |
|
|
|
#define HAS_Z4_MAX 1 |
|
|
|
#endif |
|
|
|
#if HAS_CUSTOM_PROBE_PIN && PIN_EXISTS(Z_MIN_PROBE) |
|
|
|
#define HAS_Z_MIN_PROBE_PIN 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
//
|
|
|
|
// ADC Temp Sensors (Thermistor or Thermocouple with amplifier ADC interface)
|
|
|
|
//
|
|
|
|
#define HAS_ADC_TEST(P) (PIN_EXISTS(TEMP_##P) && TEMP_SENSOR_##P != 0 && DISABLED(HEATER_##P##_USES_MAX6675)) |
|
|
|
#define HAS_TEMP_ADC_0 HAS_ADC_TEST(0) |
|
|
|
#define HAS_TEMP_ADC_1 HAS_ADC_TEST(1) |
|
|
|
#define HAS_TEMP_ADC_2 HAS_ADC_TEST(2) |
|
|
|
#define HAS_TEMP_ADC_3 HAS_ADC_TEST(3) |
|
|
|
#define HAS_TEMP_ADC_4 HAS_ADC_TEST(4) |
|
|
|
#define HAS_TEMP_ADC_5 HAS_ADC_TEST(5) |
|
|
|
#define HAS_TEMP_ADC_6 HAS_ADC_TEST(6) |
|
|
|
#define HAS_TEMP_ADC_7 HAS_ADC_TEST(7) |
|
|
|
#define HAS_TEMP_ADC_BED HAS_ADC_TEST(BED) |
|
|
|
#define HAS_TEMP_ADC_PROBE HAS_ADC_TEST(PROBE) |
|
|
|
#define HAS_TEMP_ADC_CHAMBER HAS_ADC_TEST(CHAMBER) |
|
|
|
|
|
|
|
#define HAS_TEMP_HOTEND ((HAS_TEMP_ADC_0 || ENABLED(HEATER_0_USES_MAX6675)) && HOTENDS) |
|
|
|
#if HAS_ADC_TEST(0) |
|
|
|
#define HAS_TEMP_ADC_0 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(1) |
|
|
|
#define HAS_TEMP_ADC_1 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(2) |
|
|
|
#define HAS_TEMP_ADC_2 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(3) |
|
|
|
#define HAS_TEMP_ADC_3 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(4) |
|
|
|
#define HAS_TEMP_ADC_4 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(5) |
|
|
|
#define HAS_TEMP_ADC_5 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(6) |
|
|
|
#define HAS_TEMP_ADC_6 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(7) |
|
|
|
#define HAS_TEMP_ADC_7 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(BED) |
|
|
|
#define HAS_TEMP_ADC_BED 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(PROBE) |
|
|
|
#define HAS_TEMP_ADC_PROBE 1 |
|
|
|
#endif |
|
|
|
#if HAS_ADC_TEST(CHAMBER) |
|
|
|
#define HAS_TEMP_ADC_CHAMBER 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HOTENDS && (HAS_TEMP_ADC_0 || ENABLED(HEATER_0_USES_MAX6675)) |
|
|
|
#define HAS_TEMP_HOTEND 1 |
|
|
|
#endif |
|
|
|
#define HAS_TEMP_BED HAS_TEMP_ADC_BED |
|
|
|
#define HAS_TEMP_PROBE HAS_TEMP_ADC_PROBE |
|
|
|
#define HAS_TEMP_CHAMBER HAS_TEMP_ADC_CHAMBER |
|
|
|
|
|
|
|
#if ENABLED(JOYSTICK) |
|
|
|
#define HAS_JOY_ADC_X PIN_EXISTS(JOY_X) |
|
|
|
#define HAS_JOY_ADC_Y PIN_EXISTS(JOY_Y) |
|
|
|
#define HAS_JOY_ADC_Z PIN_EXISTS(JOY_Z) |
|
|
|
#define HAS_JOY_ADC_EN PIN_EXISTS(JOY_EN) |
|
|
|
#if PIN_EXISTS(JOY_X) |
|
|
|
#define HAS_JOY_ADC_X 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(JOY_Y) |
|
|
|
#define HAS_JOY_ADC_Y 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(JOY_Z) |
|
|
|
#define HAS_JOY_ADC_Z 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(JOY_EN) |
|
|
|
#define HAS_JOY_ADC_EN 1 |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
// Heaters
|
|
|
|
#define HAS_HEATER_0 (PIN_EXISTS(HEATER_0)) |
|
|
|
#define HAS_HEATER_1 (PIN_EXISTS(HEATER_1)) |
|
|
|
#define HAS_HEATER_2 (PIN_EXISTS(HEATER_2)) |
|
|
|
#define HAS_HEATER_3 (PIN_EXISTS(HEATER_3)) |
|
|
|
#define HAS_HEATER_4 (PIN_EXISTS(HEATER_4)) |
|
|
|
#define HAS_HEATER_5 (PIN_EXISTS(HEATER_5)) |
|
|
|
#define HAS_HEATER_6 (PIN_EXISTS(HEATER_6)) |
|
|
|
#define HAS_HEATER_7 (PIN_EXISTS(HEATER_7)) |
|
|
|
#define HAS_HEATER_BED (PIN_EXISTS(HEATER_BED)) |
|
|
|
#if PIN_EXISTS(HEATER_0) |
|
|
|
#define HAS_HEATER_0 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_1) |
|
|
|
#define HAS_HEATER_1 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_2) |
|
|
|
#define HAS_HEATER_2 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_3) |
|
|
|
#define HAS_HEATER_3 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_4) |
|
|
|
#define HAS_HEATER_4 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_5) |
|
|
|
#define HAS_HEATER_5 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_6) |
|
|
|
#define HAS_HEATER_6 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_7) |
|
|
|
#define HAS_HEATER_7 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(HEATER_BED) |
|
|
|
#define HAS_HEATER_BED 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// Shorthand for common combinations
|
|
|
|
#if HAS_TEMP_BED && HAS_HEATER_BED |
|
|
@ -1507,15 +1735,33 @@ |
|
|
|
#endif |
|
|
|
|
|
|
|
// Auto fans
|
|
|
|
#define HAS_AUTO_FAN_0 (HOTENDS > 0 && PIN_EXISTS(E0_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_1 (HOTENDS > 1 && PIN_EXISTS(E1_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_2 (HOTENDS > 2 && PIN_EXISTS(E2_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_4 (HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_5 (HOTENDS > 5 && PIN_EXISTS(E5_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_6 (HOTENDS > 6 && PIN_EXISTS(E6_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_FAN_7 (HOTENDS > 7 && PIN_EXISTS(E7_AUTO_FAN)) |
|
|
|
#define HAS_AUTO_CHAMBER_FAN (HAS_TEMP_CHAMBER && PIN_EXISTS(CHAMBER_AUTO_FAN)) |
|
|
|
#if HAS_HOTEND && PIN_EXISTS(E0_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_0 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 1 && PIN_EXISTS(E1_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_1 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 2 && PIN_EXISTS(E2_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_2 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_3 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_4 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 5 && PIN_EXISTS(E5_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_5 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 6 && PIN_EXISTS(E6_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_6 1 |
|
|
|
#endif |
|
|
|
#if HOTENDS > 7 && PIN_EXISTS(E7_AUTO_FAN) |
|
|
|
#define HAS_AUTO_FAN_7 1 |
|
|
|
#endif |
|
|
|
#if HAS_TEMP_CHAMBER && PIN_EXISTS(CHAMBER_AUTO_FAN) |
|
|
|
#define HAS_AUTO_CHAMBER_FAN 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3 || HAS_AUTO_FAN_4 || HAS_AUTO_FAN_5 || HAS_AUTO_FAN_6 || HAS_AUTO_FAN_7 || HAS_AUTO_CHAMBER_FAN) |
|
|
|
#define _FANOVERLAP(A,B) (A##_AUTO_FAN_PIN == E##B##_AUTO_FAN_PIN) |
|
|
@ -1535,24 +1781,52 @@ |
|
|
|
// Other fans
|
|
|
|
#define HAS_FAN0 (PIN_EXISTS(FAN)) |
|
|
|
#define _HAS_FAN(P) (PIN_EXISTS(FAN##P) && CONTROLLER_FAN_PIN != FAN##P##_PIN && E0_AUTO_FAN_PIN != FAN##P##_PIN && E1_AUTO_FAN_PIN != FAN##P##_PIN && E2_AUTO_FAN_PIN != FAN##P##_PIN && E3_AUTO_FAN_PIN != FAN##P##_PIN && E4_AUTO_FAN_PIN != FAN##P##_PIN && E5_AUTO_FAN_PIN != FAN##P##_PIN && E6_AUTO_FAN_PIN != FAN##P##_PIN && E7_AUTO_FAN_PIN != FAN##P##_PIN) |
|
|
|
#define HAS_FAN1 _HAS_FAN(1) |
|
|
|
#define HAS_FAN2 _HAS_FAN(2) |
|
|
|
#define HAS_FAN3 _HAS_FAN(3) |
|
|
|
#define HAS_FAN4 _HAS_FAN(4) |
|
|
|
#define HAS_FAN5 _HAS_FAN(5) |
|
|
|
#define HAS_FAN6 _HAS_FAN(6) |
|
|
|
#define HAS_FAN7 _HAS_FAN(7) |
|
|
|
#define HAS_CONTROLLER_FAN (PIN_EXISTS(CONTROLLER_FAN)) |
|
|
|
#if _HAS_FAN(1) |
|
|
|
#define HAS_FAN1 1 |
|
|
|
#endif |
|
|
|
#if _HAS_FAN(2) |
|
|
|
#define HAS_FAN2 1 |
|
|
|
#endif |
|
|
|
#if _HAS_FAN(3) |
|
|
|
#define HAS_FAN3 1 |
|
|
|
#endif |
|
|
|
#if _HAS_FAN(4) |
|
|
|
#define HAS_FAN4 1 |
|
|
|
#endif |
|
|
|
#if _HAS_FAN(5) |
|
|
|
#define HAS_FAN5 1 |
|
|
|
#endif |
|
|
|
#if _HAS_FAN(6) |
|
|
|
#define HAS_FAN6 1 |
|
|
|
#endif |
|
|
|
#if _HAS_FAN(7) |
|
|
|
#define HAS_FAN7 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(CONTROLLER_FAN) |
|
|
|
#define HAS_CONTROLLER_FAN 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// Servos
|
|
|
|
#define HAS_SERVO_0 (PIN_EXISTS(SERVO0) && NUM_SERVOS > 0) |
|
|
|
#define HAS_SERVO_1 (PIN_EXISTS(SERVO1) && NUM_SERVOS > 1) |
|
|
|
#define HAS_SERVO_2 (PIN_EXISTS(SERVO2) && NUM_SERVOS > 2) |
|
|
|
#define HAS_SERVO_3 (PIN_EXISTS(SERVO3) && NUM_SERVOS > 3) |
|
|
|
#define HAS_SERVOS (NUM_SERVOS > 0) |
|
|
|
#if PIN_EXISTS(SERVO0) && NUM_SERVOS > 0 |
|
|
|
#define HAS_SERVO_0 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SERVO1) && NUM_SERVOS > 1 |
|
|
|
#define HAS_SERVO_1 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SERVO2) && NUM_SERVOS > 2 |
|
|
|
#define HAS_SERVO_2 1 |
|
|
|
#endif |
|
|
|
#if PIN_EXISTS(SERVO3) && NUM_SERVOS > 3 |
|
|
|
#define HAS_SERVO_3 1 |
|
|
|
#endif |
|
|
|
#if NUM_SERVOS > 0 |
|
|
|
#define HAS_SERVOS 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// Sensors
|
|
|
|
#define HAS_FILAMENT_WIDTH_SENSOR (PIN_EXISTS(FILWIDTH)) |
|
|
|
#if PIN_EXISTS(FILWIDTH) |
|
|
|
#define HAS_FILAMENT_WIDTH_SENSOR 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// User Interface
|
|
|
|
#if PIN_EXISTS(HOME) |
|
|
@ -1638,14 +1912,30 @@ |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#define HAS_MICROSTEP1 defined(MICROSTEP1) |
|
|
|
#define HAS_MICROSTEP2 defined(MICROSTEP2) |
|
|
|
#define HAS_MICROSTEP4 defined(MICROSTEP4) |
|
|
|
#define HAS_MICROSTEP8 defined(MICROSTEP8) |
|
|
|
#define HAS_MICROSTEP16 defined(MICROSTEP16) |
|
|
|
#define HAS_MICROSTEP32 defined(MICROSTEP32) |
|
|
|
#define HAS_MICROSTEP64 defined(MICROSTEP64) |
|
|
|
#define HAS_MICROSTEP128 defined(MICROSTEP128) |
|
|
|
#ifdef MICROSTEP1 |
|
|
|
#define HAS_MICROSTEP1 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP2 |
|
|
|
#define HAS_MICROSTEP2 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP4 |
|
|
|
#define HAS_MICROSTEP4 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP8 |
|
|
|
#define HAS_MICROSTEP8 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP16 |
|
|
|
#define HAS_MICROSTEP16 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP32 |
|
|
|
#define HAS_MICROSTEP32 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP64 |
|
|
|
#define HAS_MICROSTEP64 1 |
|
|
|
#endif |
|
|
|
#ifdef MICROSTEP128 |
|
|
|
#define HAS_MICROSTEP128 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // HAS_MICROSTEPS
|
|
|
|
|
|
|
@ -1896,8 +2186,12 @@ |
|
|
|
#undef NO_FAN_SLOWING_IN_PID_TUNING |
|
|
|
#endif |
|
|
|
|
|
|
|
#define QUIET_PROBING (HAS_BED_PROBE && (EITHER(PROBING_HEATERS_OFF, PROBING_FANS_OFF) || DELAY_BEFORE_PROBING > 0)) |
|
|
|
#define HEATER_IDLE_HANDLER EITHER(ADVANCED_PAUSE_FEATURE, PROBING_HEATERS_OFF) |
|
|
|
#if HAS_BED_PROBE && (EITHER(PROBING_HEATERS_OFF, PROBING_FANS_OFF) || DELAY_BEFORE_PROBING > 0) |
|
|
|
#define QUIET_PROBING 1 |
|
|
|
#endif |
|
|
|
#if EITHER(ADVANCED_PAUSE_FEATURE, PROBING_HEATERS_OFF) |
|
|
|
#define HEATER_IDLE_HANDLER 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(ADVANCED_PAUSE_FEATURE) && !defined(FILAMENT_CHANGE_SLOW_LOAD_LENGTH) |
|
|
|
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 |
|
|
|