Add HAS_HOTEND, etc.
This commit is contained in:
@ -466,6 +466,14 @@
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#endif
|
||||
|
||||
#if HOTENDS
|
||||
#define HAS_HOTEND 1
|
||||
#if HOTENDS > 1
|
||||
#define HAS_MULTI_HOTEND 1
|
||||
#define HAS_HOTEND_OFFSET 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Helper macros for extruder and hotend arrays
|
||||
#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
|
||||
#define ARRAY_BY_EXTRUDERS(V...) ARRAY_N(EXTRUDERS, V)
|
||||
@ -481,10 +489,6 @@
|
||||
#define SWITCHING_NOZZLE_TWO_SERVOS 1
|
||||
#endif
|
||||
|
||||
#if HOTENDS > 1
|
||||
#define HAS_HOTEND_OFFSET 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default hotend offsets, if not defined
|
||||
*/
|
||||
|
@ -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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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(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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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))
|
||||
#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
|
||||
|
||||
#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(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)
|
||||
#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
|
||||
|
||||
#define HAS_TEMP_HOTEND ((HAS_TEMP_ADC_0 || ENABLED(HEATER_0_USES_MAX6675)) && HOTENDS)
|
||||
#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
|
||||
|
@ -1591,11 +1591,11 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "MAX6675_SS_PIN (required for TEMP_SENSOR_0) not defined for this board."
|
||||
#elif HOTENDS && !HAS_TEMP_HOTEND
|
||||
#error "TEMP_0_PIN (required for TEMP_SENSOR_0) not defined for this board."
|
||||
#elif (HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)) && !HAS_HEATER_1
|
||||
#elif (HAS_MULTI_HOTEND || ENABLED(HEATERS_PARALLEL)) && !HAS_HEATER_1
|
||||
#error "HEATER_1_PIN not defined for this board."
|
||||
#endif
|
||||
|
||||
#if HOTENDS > 1
|
||||
#if HAS_MULTI_HOTEND
|
||||
#if ENABLED(HEATER_1_USES_MAX6675) && !PIN_EXISTS(MAX6675_SS2)
|
||||
#error "MAX6675_SS2_PIN (required for TEMP_SENSOR_1) not defined for this board."
|
||||
#elif TEMP_SENSOR_1 == 0
|
||||
|
Reference in New Issue
Block a user