Merge upstream changes from Marlin 2.1.2
This commit is contained in:
@@ -137,6 +137,7 @@
|
||||
#define DOGLCD
|
||||
#define IS_U8GLIB_ST7920 1
|
||||
#define IS_ULTIPANEL 1
|
||||
#define ENCODER_PULSES_PER_STEP 2
|
||||
|
||||
#elif ENABLED(MKS_12864OLED)
|
||||
|
||||
@@ -373,6 +374,7 @@
|
||||
|
||||
#define LCD_I2C_TYPE_PCF8575 // I2C Character-based 12864 display
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define IS_ULTIPANEL 1
|
||||
|
||||
#if ENABLED(LCD_SAINSMART_I2C_2004)
|
||||
#define LCD_WIDTH 20
|
||||
@@ -528,10 +530,6 @@
|
||||
#define HAS_MANUAL_MOVE_MENU 1
|
||||
#endif
|
||||
|
||||
#if ANY(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL, IS_DWIN_MARLINUI, DWIN_CREALITY_LCD_JYERSUI)
|
||||
#define CAN_SHOW_REMAINING_TIME 1
|
||||
#endif
|
||||
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
#ifndef LCD_PIXEL_WIDTH
|
||||
#define LCD_PIXEL_WIDTH 128
|
||||
@@ -993,7 +991,7 @@
|
||||
* with shared motion and temperature settings.
|
||||
*
|
||||
* DISTINCT_E is the number of distinguished extruders. By default this
|
||||
* well be 1 which indicates all extruders share the same settings.
|
||||
* will be 1 which indicates all extruders share the same settings.
|
||||
*
|
||||
* E_INDEX_N(E) should be used to get the E index of any item that might be
|
||||
* distinguished.
|
||||
@@ -1023,8 +1021,11 @@
|
||||
#endif
|
||||
|
||||
// Helper macros for extruder and hotend arrays
|
||||
#define EXTRUDER_LOOP() for (int8_t e = 0; e < EXTRUDERS; e++)
|
||||
#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
|
||||
#define _EXTRUDER_LOOP(E) for (int8_t E = 0; E < EXTRUDERS; E++)
|
||||
#define EXTRUDER_LOOP() _EXTRUDER_LOOP(e)
|
||||
#define _HOTEND_LOOP(H) for (int8_t H = 0; H < HOTENDS; H++)
|
||||
#define HOTEND_LOOP() _HOTEND_LOOP(e)
|
||||
|
||||
#define ARRAY_BY_EXTRUDERS(V...) ARRAY_N(EXTRUDERS, V)
|
||||
#define ARRAY_BY_EXTRUDERS1(v1) ARRAY_N_1(EXTRUDERS, v1)
|
||||
#define ARRAY_BY_HOTENDS(V...) ARRAY_N(HOTENDS, V)
|
||||
@@ -1068,20 +1069,6 @@
|
||||
#ifndef Z_PROBE_SERVO_NR
|
||||
#define Z_PROBE_SERVO_NR 0
|
||||
#endif
|
||||
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
|
||||
#error "BLTOUCH requires DEACTIVATE_SERVOS_AFTER_MOVE to be to disabled. Please update your Configuration.h file."
|
||||
#endif
|
||||
|
||||
// Always disable probe pin inverting for BLTouch
|
||||
#if Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#error "BLTOUCH requires Z_MIN_PROBE_ENDSTOP_INVERTING set to false. Please update your Configuration.h file."
|
||||
#endif
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#if Z_MIN_ENDSTOP_INVERTING
|
||||
#error "BLTOUCH requires Z_MIN_ENDSTOP_INVERTING set to false. Please update your Configuration.h file."
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -1207,45 +1194,61 @@
|
||||
#elif X_HOME_DIR < 0
|
||||
#define X_HOME_TO_MIN 1
|
||||
#endif
|
||||
#if Y_HOME_DIR > 0
|
||||
#define Y_HOME_TO_MAX 1
|
||||
#elif Y_HOME_DIR < 0
|
||||
#define Y_HOME_TO_MIN 1
|
||||
#if HAS_Y_AXIS
|
||||
#if Y_HOME_DIR > 0
|
||||
#define Y_HOME_TO_MAX 1
|
||||
#elif Y_HOME_DIR < 0
|
||||
#define Y_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if Z_HOME_DIR > 0
|
||||
#define Z_HOME_TO_MAX 1
|
||||
#elif Z_HOME_DIR < 0
|
||||
#define Z_HOME_TO_MIN 1
|
||||
#if HAS_Z_AXIS
|
||||
#if Z_HOME_DIR > 0
|
||||
#define Z_HOME_TO_MAX 1
|
||||
#elif Z_HOME_DIR < 0
|
||||
#define Z_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if I_HOME_DIR > 0
|
||||
#define I_HOME_TO_MAX 1
|
||||
#elif I_HOME_DIR < 0
|
||||
#define I_HOME_TO_MIN 1
|
||||
#if HAS_I_AXIS
|
||||
#if I_HOME_DIR > 0
|
||||
#define I_HOME_TO_MAX 1
|
||||
#elif I_HOME_DIR < 0
|
||||
#define I_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if J_HOME_DIR > 0
|
||||
#define J_HOME_TO_MAX 1
|
||||
#elif J_HOME_DIR < 0
|
||||
#define J_HOME_TO_MIN 1
|
||||
#if HAS_J_AXIS
|
||||
#if J_HOME_DIR > 0
|
||||
#define J_HOME_TO_MAX 1
|
||||
#elif J_HOME_DIR < 0
|
||||
#define J_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if K_HOME_DIR > 0
|
||||
#define K_HOME_TO_MAX 1
|
||||
#elif K_HOME_DIR < 0
|
||||
#define K_HOME_TO_MIN 1
|
||||
#if HAS_K_AXIS
|
||||
#if K_HOME_DIR > 0
|
||||
#define K_HOME_TO_MAX 1
|
||||
#elif K_HOME_DIR < 0
|
||||
#define K_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if U_HOME_DIR > 0
|
||||
#define U_HOME_TO_MAX 1
|
||||
#elif U_HOME_DIR < 0
|
||||
#define U_HOME_TO_MIN 1
|
||||
#if HAS_U_AXIS
|
||||
#if U_HOME_DIR > 0
|
||||
#define U_HOME_TO_MAX 1
|
||||
#elif U_HOME_DIR < 0
|
||||
#define U_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if V_HOME_DIR > 0
|
||||
#define V_HOME_TO_MAX 1
|
||||
#elif V_HOME_DIR < 0
|
||||
#define V_HOME_TO_MIN 1
|
||||
#if HAS_V_AXIS
|
||||
#if V_HOME_DIR > 0
|
||||
#define V_HOME_TO_MAX 1
|
||||
#elif V_HOME_DIR < 0
|
||||
#define V_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
#if W_HOME_DIR > 0
|
||||
#define W_HOME_TO_MAX 1
|
||||
#elif W_HOME_DIR < 0
|
||||
#define W_HOME_TO_MIN 1
|
||||
#if HAS_W_AXIS
|
||||
#if W_HOME_DIR > 0
|
||||
#define W_HOME_TO_MAX 1
|
||||
#elif W_HOME_DIR < 0
|
||||
#define W_HOME_TO_MIN 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -1499,7 +1502,7 @@
|
||||
#endif
|
||||
#elif ENABLED(TFT_GENERIC)
|
||||
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
|
||||
#if NONE(TFT_RES_320x240, TFT_RES_480x272, TFT_RES_480x320)
|
||||
#if NONE(TFT_RES_320x240, TFT_RES_480x272, TFT_RES_480x320, TFT_RES_1024x600)
|
||||
#define TFT_RES_320x240
|
||||
#endif
|
||||
#if NONE(TFT_INTERFACE_FSMC, TFT_INTERFACE_SPI)
|
||||
@@ -1577,6 +1580,8 @@
|
||||
#elif TFT_HEIGHT == 600
|
||||
#if ENABLED(TFT_INTERFACE_LTDC)
|
||||
#define TFT_1024x600_LTDC
|
||||
#else
|
||||
#define TFT_1024x600_SIM // "Simulation" - for testing purposes only
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
@@ -1587,7 +1592,7 @@
|
||||
#define HAS_UI_480x320 1
|
||||
#elif EITHER(TFT_480x272, TFT_480x272_SPI)
|
||||
#define HAS_UI_480x272 1
|
||||
#elif defined(TFT_1024x600_LTDC)
|
||||
#elif EITHER(TFT_1024x600_LTDC, TFT_1024x600_SIM)
|
||||
#define HAS_UI_1024x600 1
|
||||
#endif
|
||||
#if ANY(HAS_UI_320x240, HAS_UI_480x320, HAS_UI_480x272)
|
||||
@@ -1598,7 +1603,7 @@
|
||||
|
||||
// This emulated DOGM has 'touch/xpt2046', not 'tft/xpt2046'
|
||||
#if ENABLED(TOUCH_SCREEN)
|
||||
#if TOUCH_IDLE_SLEEP
|
||||
#if TOUCH_IDLE_SLEEP_MINS
|
||||
#define HAS_TOUCH_SLEEP 1
|
||||
#endif
|
||||
#if NONE(TFT_TOUCH_DEVICE_GT911, TFT_TOUCH_DEVICE_XPT2046)
|
||||
|
@@ -161,9 +161,10 @@
|
||||
#define HID_E6 6
|
||||
#define HID_E7 7
|
||||
|
||||
#define _SENSOR_IS(I,N) || (TEMP_SENSOR_##N == I)
|
||||
#define _SENSOR_IS(I,N) || (TEMP_SENSOR(N) == I)
|
||||
#define _E_SENSOR_IS(I,N) _SENSOR_IS(N,I)
|
||||
#define ANY_THERMISTOR_IS(N) (0 REPEAT2(HOTENDS, _E_SENSOR_IS, N) \
|
||||
#define ANY_E_SENSOR_IS(N) (0 REPEAT2(HOTENDS, _E_SENSOR_IS, N))
|
||||
#define ANY_THERMISTOR_IS(N) ( ANY_E_SENSOR_IS(N) \
|
||||
_SENSOR_IS(N,BED) _SENSOR_IS(N,PROBE) _SENSOR_IS(N,CHAMBER) \
|
||||
_SENSOR_IS(N,COOLER) _SENSOR_IS(N,BOARD) _SENSOR_IS(N,REDUNDANT) )
|
||||
|
||||
@@ -261,26 +262,72 @@
|
||||
#undef HEATER_1_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_IS_MAX_TC(2)
|
||||
#if TEMP_SENSOR_2 == -5
|
||||
#define TEMP_SENSOR_2_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMAX 1024
|
||||
#ifndef MAX31865_SENSOR_WIRES_2
|
||||
#define MAX31865_SENSOR_WIRES_2 2
|
||||
#endif
|
||||
#ifndef MAX31865_WIRE_OHMS_2
|
||||
#define MAX31865_WIRE_OHMS_2 0.0f
|
||||
#endif
|
||||
#elif TEMP_SENSOR_2 == -3
|
||||
#define TEMP_SENSOR_2_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_2 == -2
|
||||
#define TEMP_SENSOR_2_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_2 != TEMP_SENSOR_0
|
||||
#if TEMP_SENSOR_2 == -5
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_2 then TEMP_SENSOR_0 must match."
|
||||
#elif TEMP_SENSOR_2 == -3
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_2 then TEMP_SENSOR_0 must match."
|
||||
#elif TEMP_SENSOR_2 == -2
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_2 then TEMP_SENSOR_0 must match."
|
||||
#endif
|
||||
#endif
|
||||
#elif TEMP_SENSOR_2 == -4
|
||||
#define TEMP_SENSOR_2_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_2 == -1
|
||||
#define TEMP_SENSOR_2_IS_AD595 1
|
||||
#elif TEMP_SENSOR_2 > 0
|
||||
#define TEMP_SENSOR_2_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_2 == 1000
|
||||
#define TEMP_SENSOR_2_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
|
||||
#define TEMP_SENSOR_2_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_2_MINTEMP
|
||||
#undef HEATER_2_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_IS_MAX_TC(REDUNDANT)
|
||||
#if TEMP_SENSOR_REDUNDANT == -5
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1) && !REDUNDANT_TEMP_MATCH(SOURCE, E2)
|
||||
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 (0/1/2)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
|
||||
#elif TEMP_SENSOR_REDUNDANT == -3
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1) && !REDUNDANT_TEMP_MATCH(SOURCE, E2)
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 (0/1/2)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_REDUNDANT == -2
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1) && !REDUNDANT_TEMP_MATCH(SOURCE, E2)
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 (0/1/2)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX6675 1
|
||||
@@ -301,15 +348,21 @@
|
||||
#ifndef MAX31865_SENSOR_WIRES_1
|
||||
#define MAX31865_SENSOR_WIRES_1 2
|
||||
#endif
|
||||
#elif REDUNDANT_TEMP_MATCH(SOURCE, E2)
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
|
||||
#define TEMP_SENSOR_2_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
|
||||
#ifndef MAX31865_SENSOR_WIRES_2
|
||||
#define MAX31865_SENSOR_WIRES_2 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (TEMP_SENSOR_IS_MAX_TC(0) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_IS_MAX_TC(1) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1)
|
||||
#if (TEMP_SENSOR_IS_MAX_TC(0) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_IS_MAX_TC(1) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1) || (TEMP_SENSOR_IS_MAX_TC(2) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_2)
|
||||
#if TEMP_SENSOR_REDUNDANT == -5
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#elif TEMP_SENSOR_REDUNDANT == -3
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#elif TEMP_SENSOR_REDUNDANT == -2
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#endif
|
||||
#endif
|
||||
#elif TEMP_SENSOR_REDUNDANT == -4
|
||||
@@ -325,39 +378,19 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_IS_MAX_TC(0) || TEMP_SENSOR_IS_MAX_TC(1) || TEMP_SENSOR_IS_MAX_TC(REDUNDANT)
|
||||
#if TEMP_SENSOR_IS_MAX_TC(0) || TEMP_SENSOR_IS_MAX_TC(1) || TEMP_SENSOR_IS_MAX_TC(2) || TEMP_SENSOR_IS_MAX_TC(REDUNDANT)
|
||||
#define HAS_MAX_TC 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
|
||||
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_2_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
|
||||
#define HAS_MAX6675 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
|
||||
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_2_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
|
||||
#define HAS_MAX31855 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
|
||||
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_2_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
|
||||
#define HAS_MAX31865 1
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_2 == -4
|
||||
#define TEMP_SENSOR_2_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_2 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_2."
|
||||
#elif TEMP_SENSOR_2 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_2."
|
||||
#elif TEMP_SENSOR_2 == -1
|
||||
#define TEMP_SENSOR_2_IS_AD595 1
|
||||
#elif TEMP_SENSOR_2 > 0
|
||||
#define TEMP_SENSOR_2_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_2 == 1000
|
||||
#define TEMP_SENSOR_2_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
|
||||
#define TEMP_SENSOR_2_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_2_MINTEMP
|
||||
#undef HEATER_2_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_3 == -4
|
||||
#define TEMP_SENSOR_3_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_3 == -3
|
||||
@@ -598,10 +631,16 @@
|
||||
#undef MENU_ADDAUTOSTART
|
||||
#endif
|
||||
|
||||
#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
|
||||
#if EITHER(SDSUPPORT, SET_PROGRESS_MANUALLY)
|
||||
#define HAS_PRINT_PROGRESS 1
|
||||
#endif
|
||||
|
||||
#if DISABLED(SET_PROGRESS_MANUALLY)
|
||||
#undef SET_REMAINING_TIME
|
||||
#undef SET_INTERACTION_TIME
|
||||
#undef M73_REPORT
|
||||
#endif
|
||||
|
||||
#if ANY(HAS_MARLINUI_MENU, ULTIPANEL_FEEDMULTIPLY, SOFT_RESET_ON_KILL)
|
||||
#define HAS_ENCODER_ACTION 1
|
||||
#endif
|
||||
@@ -647,10 +686,10 @@
|
||||
#if ALL(HAS_RESUME_CONTINUE, PRINTER_EVENT_LEDS, SDSUPPORT)
|
||||
#define HAS_LEDS_OFF_FLAG 1
|
||||
#endif
|
||||
#ifdef DISPLAY_SLEEP_MINUTES
|
||||
#if DISPLAY_SLEEP_MINUTES || TOUCH_IDLE_SLEEP_MINS
|
||||
#define HAS_DISPLAY_SLEEP 1
|
||||
#endif
|
||||
#if HAS_DISPLAY_SLEEP || LCD_BACKLIGHT_TIMEOUT
|
||||
#if HAS_DISPLAY_SLEEP || LCD_BACKLIGHT_TIMEOUT_MINS
|
||||
#define HAS_GCODE_M255 1
|
||||
#endif
|
||||
|
||||
@@ -955,8 +994,8 @@
|
||||
#undef CALIBRATION_MEASURE_IMIN
|
||||
#undef CALIBRATION_MEASURE_IMAX
|
||||
#if NUM_AXES < 3
|
||||
#undef Z_IDLE_HEIGHT
|
||||
#undef STEALTHCHOP_Z
|
||||
#undef Z_IDLE_HEIGHT
|
||||
#undef Z_PROBE_SLED
|
||||
#undef Z_SAFE_HOMING
|
||||
#undef HOME_Z_FIRST
|
||||
@@ -966,6 +1005,7 @@
|
||||
#undef CNC_WORKSPACE_PLANES
|
||||
#if NUM_AXES < 2
|
||||
#undef STEALTHCHOP_Y
|
||||
#undef QUICK_HOME
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
@@ -1003,7 +1043,7 @@
|
||||
#endif
|
||||
|
||||
// Flag whether hex_print.cpp is used
|
||||
#if ANY(AUTO_BED_LEVELING_UBL, M100_FREE_MEMORY_WATCHER, DEBUG_GCODE_PARSER, TMC_DEBUG, MARLIN_DEV_MODE, DEBUG_CARDREADER)
|
||||
#if ANY(AUTO_BED_LEVELING_UBL, M100_FREE_MEMORY_WATCHER, DEBUG_GCODE_PARSER, TMC_DEBUG, MARLIN_DEV_MODE, DEBUG_CARDREADER, M20_TIMESTAMP_SUPPORT)
|
||||
#define NEED_HEX_PRINT 1
|
||||
#endif
|
||||
|
||||
@@ -1038,7 +1078,7 @@
|
||||
*/
|
||||
#ifndef LCD_SERIAL_PORT
|
||||
#if HAS_DWIN_E3V2 || IS_DWIN_MARLINUI || HAS_DGUS_LCD
|
||||
#if MB(BTT_SKR_MINI_E3_V1_0, BTT_SKR_MINI_E3_V1_2, BTT_SKR_MINI_E3_V2_0, BTT_SKR_MINI_E3_V3_0, BTT_SKR_E3_TURBO)
|
||||
#if MB(BTT_SKR_MINI_E3_V1_0, BTT_SKR_MINI_E3_V1_2, BTT_SKR_MINI_E3_V2_0, BTT_SKR_MINI_E3_V3_0, BTT_SKR_E3_TURBO, BTT_OCTOPUS_V1_1)
|
||||
#define LCD_SERIAL_PORT 1
|
||||
#elif MB(CREALITY_V24S1_301, CREALITY_V24S1_301F4, CREALITY_V423, MKS_ROBIN)
|
||||
#define LCD_SERIAL_PORT 2 // Creality Ender3S1, MKS Robin
|
||||
@@ -1067,3 +1107,24 @@
|
||||
#if ANY(DISABLE_INACTIVE_X, DISABLE_INACTIVE_Y, DISABLE_INACTIVE_Z, DISABLE_INACTIVE_I, DISABLE_INACTIVE_J, DISABLE_INACTIVE_K, DISABLE_INACTIVE_U, DISABLE_INACTIVE_V, DISABLE_INACTIVE_W, DISABLE_INACTIVE_E)
|
||||
#define HAS_DISABLE_INACTIVE_AXIS 1
|
||||
#endif
|
||||
|
||||
// Fan Kickstart
|
||||
#if FAN_KICKSTART_TIME && !defined(FAN_KICKSTART_POWER)
|
||||
#define FAN_KICKSTART_POWER 180
|
||||
#endif
|
||||
|
||||
#if FAN_MIN_PWM == 0 && FAN_MAX_PWM == 255
|
||||
#define CALC_FAN_SPEED(f) (f ?: FAN_OFF_PWM)
|
||||
#else
|
||||
#define CALC_FAN_SPEED(f) (f ? map(f, 1, 255, FAN_MIN_PWM, FAN_MAX_PWM) : FAN_OFF_PWM)
|
||||
#endif
|
||||
|
||||
// Input shaping
|
||||
#if !HAS_Y_AXIS
|
||||
#undef INPUT_SHAPING_Y
|
||||
#undef SHAPING_FREQ_Y
|
||||
#undef SHAPING_BUFFER_Y
|
||||
#endif
|
||||
#if EITHER(INPUT_SHAPING_X, INPUT_SHAPING_Y)
|
||||
#define HAS_SHAPING 1
|
||||
#endif
|
||||
|
@@ -155,7 +155,7 @@
|
||||
#define W_BED_SIZE W_MAX_LENGTH
|
||||
#endif
|
||||
|
||||
// Require 0,0 bed center for Delta and SCARA
|
||||
// Require 0,0 bed center for Delta, SCARA, and Polargraph
|
||||
#if IS_KINEMATIC
|
||||
#define BED_CENTER_AT_0_0
|
||||
#endif
|
||||
@@ -275,10 +275,12 @@
|
||||
*/
|
||||
#if IS_SCARA
|
||||
#undef SLOWDOWN
|
||||
#if DISABLED(AXEL_TPARA)
|
||||
#if ENABLED(AXEL_TPARA)
|
||||
#define SCARA_PRINTABLE_RADIUS (TPARA_LINKAGE_1 + TPARA_LINKAGE_2)
|
||||
#else
|
||||
#define QUICK_HOME
|
||||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -723,19 +725,19 @@
|
||||
#define TEMP_0_SCK_PIN MAX31855_SCK_PIN
|
||||
#endif
|
||||
|
||||
#elif TEMP_SENSOR_1_IS_MAX31865
|
||||
#if !PIN_EXISTS(TEMP_1_MISO) // DO
|
||||
#elif TEMP_SENSOR_0_IS_MAX31865
|
||||
#if !PIN_EXISTS(TEMP_0_MISO) // DO
|
||||
#if PIN_EXISTS(MAX31865_MISO)
|
||||
#define TEMP_1_MISO_PIN MAX31865_MISO_PIN
|
||||
#define TEMP_0_MISO_PIN MAX31865_MISO_PIN
|
||||
#elif PIN_EXISTS(MAX31865_DO)
|
||||
#define TEMP_1_MISO_PIN MAX31865_DO_PIN
|
||||
#define TEMP_0_MISO_PIN MAX31865_DO_PIN
|
||||
#endif
|
||||
#endif
|
||||
#if !PIN_EXISTS(TEMP_1_SCK) && PIN_EXISTS(MAX31865_SCK)
|
||||
#define TEMP_1_SCK_PIN MAX31865_SCK_PIN
|
||||
#if !PIN_EXISTS(TEMP_0_SCK) && PIN_EXISTS(MAX31865_SCK)
|
||||
#define TEMP_0_SCK_PIN MAX31865_SCK_PIN
|
||||
#endif
|
||||
#if !PIN_EXISTS(TEMP_1_MOSI) && PIN_EXISTS(MAX31865_MOSI) // MOSI for '65 only
|
||||
#define TEMP_1_MOSI_PIN MAX31865_MOSI_PIN
|
||||
#if !PIN_EXISTS(TEMP_0_MOSI) && PIN_EXISTS(MAX31865_MOSI) // MOSI for '65 only
|
||||
#define TEMP_0_MOSI_PIN MAX31865_MOSI_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -819,6 +821,75 @@
|
||||
|
||||
#endif // TEMP_SENSOR_IS_MAX_TC(1)
|
||||
|
||||
#if TEMP_SENSOR_IS_MAX_TC(2) || (TEMP_SENSOR_IS_MAX_TC(REDUNDANT) && REDUNDANT_TEMP_MATCH(SOURCE, E2))
|
||||
|
||||
#if !PIN_EXISTS(TEMP_2_CS) // SS3, CS3
|
||||
#if PIN_EXISTS(MAX6675_SS3)
|
||||
#define TEMP_2_CS_PIN MAX6675_SS3_PIN
|
||||
#elif PIN_EXISTS(MAX6675_CS)
|
||||
#define TEMP_2_CS_PIN MAX6675_CS3_PIN
|
||||
#elif PIN_EXISTS(MAX31855_SS3)
|
||||
#define TEMP_2_CS_PIN MAX31855_SS3_PIN
|
||||
#elif PIN_EXISTS(MAX31855_CS3)
|
||||
#define TEMP_2_CS_PIN MAX31855_CS3_PIN
|
||||
#elif PIN_EXISTS(MAX31865_SS3)
|
||||
#define TEMP_2_CS_PIN MAX31865_SS3_PIN
|
||||
#elif PIN_EXISTS(MAX31865_CS3)
|
||||
#define TEMP_2_CS_PIN MAX31865_CS3_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_2_IS_MAX6675
|
||||
#if !PIN_EXISTS(TEMP_2_MISO) // DO
|
||||
#if PIN_EXISTS(MAX6675_MISO)
|
||||
#define TEMP_2_MISO_PIN MAX6675_MISO_PIN
|
||||
#elif PIN_EXISTS(MAX6675_DO)
|
||||
#define TEMP_2_MISO_PIN MAX6675_DO_PIN
|
||||
#endif
|
||||
#endif
|
||||
#if !PIN_EXISTS(TEMP_2_SCK) && PIN_EXISTS(MAX6675_SCK)
|
||||
#define TEMP_2_SCK_PIN MAX6675_SCK_PIN
|
||||
#endif
|
||||
|
||||
#elif TEMP_SENSOR_2_IS_MAX31855
|
||||
#if !PIN_EXISTS(TEMP_2_MISO) // DO
|
||||
#if PIN_EXISTS(MAX31855_MISO)
|
||||
#define TEMP_2_MISO_PIN MAX31855_MISO_PIN
|
||||
#elif PIN_EXISTS(MAX31855_DO)
|
||||
#define TEMP_2_MISO_PIN MAX31855_DO_PIN
|
||||
#endif
|
||||
#endif
|
||||
#if !PIN_EXISTS(TEMP_2_SCK) && PIN_EXISTS(MAX31855_SCK)
|
||||
#define TEMP_2_SCK_PIN MAX31855_SCK_PIN
|
||||
#endif
|
||||
|
||||
#elif TEMP_SENSOR_2_IS_MAX31865
|
||||
#if !PIN_EXISTS(TEMP_2_MISO) // DO
|
||||
#if PIN_EXISTS(MAX31865_MISO)
|
||||
#define TEMP_2_MISO_PIN MAX31865_MISO_PIN
|
||||
#elif PIN_EXISTS(MAX31865_DO)
|
||||
#define TEMP_2_MISO_PIN MAX31865_DO_PIN
|
||||
#endif
|
||||
#endif
|
||||
#if !PIN_EXISTS(TEMP_2_SCK) && PIN_EXISTS(MAX31865_SCK)
|
||||
#define TEMP_2_SCK_PIN MAX31865_SCK_PIN
|
||||
#endif
|
||||
#if !PIN_EXISTS(TEMP_2_MOSI) && PIN_EXISTS(MAX31865_MOSI) // MOSI for '65 only
|
||||
#define TEMP_2_MOSI_PIN MAX31865_MOSI_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Software SPI - enable if MISO/SCK are defined.
|
||||
#if PIN_EXISTS(TEMP_2_MISO) && PIN_EXISTS(TEMP_2_SCK) && DISABLED(TEMP_SENSOR_2_FORCE_HW_SPI)
|
||||
#if TEMP_SENSOR_2_IS_MAX31865 && !PIN_EXISTS(TEMP_2_MOSI)
|
||||
#error "TEMP_SENSOR_2 MAX31865 requires TEMP_2_MOSI_PIN defined for Software SPI. To use Hardware SPI instead, undefine MISO/SCK or enable TEMP_SENSOR_2_FORCE_HW_SPI."
|
||||
#else
|
||||
#define TEMP_SENSOR_2_HAS_SPI_PINS 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // TEMP_SENSOR_IS_MAX_TC(2)
|
||||
|
||||
//
|
||||
// User-defined thermocouple libraries
|
||||
//
|
||||
@@ -857,56 +928,14 @@
|
||||
#define X2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif X2_USE_ENDSTOP == _ZMAX_
|
||||
#define X2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define X2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(X2_MAX_PIN) && !defined(X2_STOP_PIN)
|
||||
#if X2_USE_ENDSTOP == _XMIN_
|
||||
#define X2_MAX_PIN X_MIN_PIN
|
||||
#elif X2_USE_ENDSTOP == _XMAX_
|
||||
#define X2_MAX_PIN X_MAX_PIN
|
||||
#elif X2_USE_ENDSTOP == _XSTOP_
|
||||
#define X2_MAX_PIN X_STOP_PIN
|
||||
#elif X2_USE_ENDSTOP == _YMIN_
|
||||
#define X2_MAX_PIN Y_MIN_PIN
|
||||
#elif X2_USE_ENDSTOP == _YMAX_
|
||||
#define X2_MAX_PIN Y_MAX_PIN
|
||||
#elif X2_USE_ENDSTOP == _YSTOP_
|
||||
#define X2_MAX_PIN Y_STOP_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZMIN_
|
||||
#define X2_MAX_PIN Z_MIN_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZMAX_
|
||||
#define X2_MAX_PIN Z_MAX_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZSTOP_
|
||||
#define X2_MAX_PIN Z_STOP_PIN
|
||||
#elif X2_USE_ENDSTOP == _XDIAG_
|
||||
#define X2_MAX_PIN X_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _YDIAG_
|
||||
#define X2_MAX_PIN Y_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZDIAG_
|
||||
#define X2_MAX_PIN Z_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E0DIAG_
|
||||
#define X2_MAX_PIN E0_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E1DIAG_
|
||||
#define X2_MAX_PIN E1_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E2DIAG_
|
||||
#define X2_MAX_PIN E2_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E3DIAG_
|
||||
#define X2_MAX_PIN E3_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E4DIAG_
|
||||
#define X2_MAX_PIN E4_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E5DIAG_
|
||||
#define X2_MAX_PIN E5_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E6DIAG_
|
||||
#define X2_MAX_PIN E6_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E7DIAG_
|
||||
#define X2_MAX_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(X2_MAX)
|
||||
#undef X2_MAX_PIN
|
||||
#if PIN_EXISTS(X2_STOP)
|
||||
#define X2_MAX_PIN X2_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef X2_MIN_ENDSTOP_INVERTING
|
||||
#define X2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#else
|
||||
#ifndef X2_MIN_ENDSTOP_INVERTING
|
||||
#if X2_USE_ENDSTOP == _XMIN_
|
||||
@@ -921,56 +950,20 @@
|
||||
#define X2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif X2_USE_ENDSTOP == _ZMAX_
|
||||
#define X2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define X2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(X2_MIN_PIN) && !defined(X2_STOP_PIN)
|
||||
#if X2_USE_ENDSTOP == _XMIN_
|
||||
#define X2_MIN_PIN X_MIN_PIN
|
||||
#elif X2_USE_ENDSTOP == _XMAX_
|
||||
#define X2_MIN_PIN X_MAX_PIN
|
||||
#elif X2_USE_ENDSTOP == _XSTOP_
|
||||
#define X2_MIN_PIN X_STOP_PIN
|
||||
#elif X2_USE_ENDSTOP == _YMIN_
|
||||
#define X2_MIN_PIN Y_MIN_PIN
|
||||
#elif X2_USE_ENDSTOP == _YMAX_
|
||||
#define X2_MIN_PIN Y_MAX_PIN
|
||||
#elif X2_USE_ENDSTOP == _YSTOP_
|
||||
#define X2_MIN_PIN Y_STOP_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZMIN_
|
||||
#define X2_MIN_PIN Z_MIN_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZMAX_
|
||||
#define X2_MIN_PIN Z_MAX_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZSTOP_
|
||||
#define X2_MIN_PIN Z_STOP_PIN
|
||||
#elif X2_USE_ENDSTOP == _XDIAG_
|
||||
#define X2_MIN_PIN X_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _YDIAG_
|
||||
#define X2_MIN_PIN Y_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _ZDIAG_
|
||||
#define X2_MIN_PIN Z_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E0DIAG_
|
||||
#define X2_MIN_PIN E0_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E1DIAG_
|
||||
#define X2_MIN_PIN E1_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E2DIAG_
|
||||
#define X2_MIN_PIN E2_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E3DIAG_
|
||||
#define X2_MIN_PIN E3_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E4DIAG_
|
||||
#define X2_MIN_PIN E4_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E5DIAG_
|
||||
#define X2_MIN_PIN E5_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E6DIAG_
|
||||
#define X2_MIN_PIN E6_DIAG_PIN
|
||||
#elif X2_USE_ENDSTOP == _E7DIAG_
|
||||
#define X2_MIN_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(X2_MIN)
|
||||
#undef X2_MIN_PIN
|
||||
#if PIN_EXISTS(X2_STOP)
|
||||
#define X2_MIN_PIN X2_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef X2_MAX_ENDSTOP_INVERTING
|
||||
#define X2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef X2_MAX_ENDSTOP_INVERTING
|
||||
#define X2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#ifndef X2_MIN_ENDSTOP_INVERTING
|
||||
#define X2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -992,56 +985,14 @@
|
||||
#define Y2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Y2_USE_ENDSTOP == _ZMAX_
|
||||
#define Y2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Y2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(Y2_MAX_PIN) && !defined(Y2_STOP_PIN)
|
||||
#if Y2_USE_ENDSTOP == _XMIN_
|
||||
#define Y2_MAX_PIN X_MIN_PIN
|
||||
#elif Y2_USE_ENDSTOP == _XMAX_
|
||||
#define Y2_MAX_PIN X_MAX_PIN
|
||||
#elif Y2_USE_ENDSTOP == _XSTOP_
|
||||
#define Y2_MAX_PIN X_STOP_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YMIN_
|
||||
#define Y2_MAX_PIN Y_MIN_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YMAX_
|
||||
#define Y2_MAX_PIN Y_MAX_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YSTOP_
|
||||
#define Y2_MAX_PIN Y_STOP_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZMIN_
|
||||
#define Y2_MAX_PIN Z_MIN_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZMAX_
|
||||
#define Y2_MAX_PIN Z_MAX_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZSTOP_
|
||||
#define Y2_MAX_PIN Z_STOP_PIN
|
||||
#elif Y2_USE_ENDSTOP == _XDIAG_
|
||||
#define Y2_MAX_PIN X_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YDIAG_
|
||||
#define Y2_MAX_PIN Y_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZDIAG_
|
||||
#define Y2_MAX_PIN Z_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E0DIAG_
|
||||
#define Y2_MAX_PIN E0_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E1DIAG_
|
||||
#define Y2_MAX_PIN E1_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E2DIAG_
|
||||
#define Y2_MAX_PIN E2_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E3DIAG_
|
||||
#define Y2_MAX_PIN E3_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E4DIAG_
|
||||
#define Y2_MAX_PIN E4_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E5DIAG_
|
||||
#define Y2_MAX_PIN E5_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E6DIAG_
|
||||
#define Y2_MAX_PIN E6_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E7DIAG_
|
||||
#define Y2_MAX_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Y2_MAX)
|
||||
#undef Y2_MAX_PIN
|
||||
#if PIN_EXISTS(Y2_STOP)
|
||||
#define Y2_MAX_PIN Y2_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Y2_MIN_ENDSTOP_INVERTING
|
||||
#define Y2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#else
|
||||
#ifndef Y2_MIN_ENDSTOP_INVERTING
|
||||
#if Y2_USE_ENDSTOP == _XMIN_
|
||||
@@ -1056,56 +1007,20 @@
|
||||
#define Y2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Y2_USE_ENDSTOP == _ZMAX_
|
||||
#define Y2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Y2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(Y2_MIN_PIN) && !defined(Y2_STOP_PIN)
|
||||
#if Y2_USE_ENDSTOP == _XMIN_
|
||||
#define Y2_MIN_PIN X_MIN_PIN
|
||||
#elif Y2_USE_ENDSTOP == _XMAX_
|
||||
#define Y2_MIN_PIN X_MAX_PIN
|
||||
#elif Y2_USE_ENDSTOP == _XSTOP_
|
||||
#define Y2_MIN_PIN X_STOP_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YMIN_
|
||||
#define Y2_MIN_PIN Y_MIN_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YMAX_
|
||||
#define Y2_MIN_PIN Y_MAX_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YSTOP_
|
||||
#define Y2_MIN_PIN Y_STOP_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZMIN_
|
||||
#define Y2_MIN_PIN Z_MIN_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZMAX_
|
||||
#define Y2_MIN_PIN Z_MAX_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZSTOP_
|
||||
#define Y2_MIN_PIN Z_STOP_PIN
|
||||
#elif Y2_USE_ENDSTOP == _XDIAG_
|
||||
#define Y2_MIN_PIN X_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _YDIAG_
|
||||
#define Y2_MIN_PIN Y_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _ZDIAG_
|
||||
#define Y2_MIN_PIN Z_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E0DIAG_
|
||||
#define Y2_MIN_PIN E0_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E1DIAG_
|
||||
#define Y2_MIN_PIN E1_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E2DIAG_
|
||||
#define Y2_MIN_PIN E2_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E3DIAG_
|
||||
#define Y2_MIN_PIN E3_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E4DIAG_
|
||||
#define Y2_MIN_PIN E4_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E5DIAG_
|
||||
#define Y2_MIN_PIN E5_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E6DIAG_
|
||||
#define Y2_MIN_PIN E6_DIAG_PIN
|
||||
#elif Y2_USE_ENDSTOP == _E7DIAG_
|
||||
#define Y2_MIN_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Y2_MIN)
|
||||
#undef Y2_MIN_PIN
|
||||
#if PIN_EXISTS(Y2_STOP)
|
||||
#define Y2_MIN_PIN Y2_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Y2_MAX_ENDSTOP_INVERTING
|
||||
#define Y2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Y2_MAX_ENDSTOP_INVERTING
|
||||
#define Y2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#ifndef Y2_MIN_ENDSTOP_INVERTING
|
||||
#define Y2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1128,56 +1043,14 @@
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Z2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(Z2_MAX_PIN) && !defined(Z2_STOP_PIN)
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define Z2_MAX_PIN X_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define Z2_MAX_PIN X_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XSTOP_
|
||||
#define Z2_MAX_PIN X_STOP_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define Z2_MAX_PIN Y_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define Z2_MAX_PIN Y_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YSTOP_
|
||||
#define Z2_MAX_PIN Y_STOP_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define Z2_MAX_PIN Z_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MAX_PIN Z_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZSTOP_
|
||||
#define Z2_MAX_PIN Z_STOP_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XDIAG_
|
||||
#define Z2_MAX_PIN X_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YDIAG_
|
||||
#define Z2_MAX_PIN Y_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZDIAG_
|
||||
#define Z2_MAX_PIN Z_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E0DIAG_
|
||||
#define Z2_MAX_PIN E0_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E1DIAG_
|
||||
#define Z2_MAX_PIN E1_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E2DIAG_
|
||||
#define Z2_MAX_PIN E2_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E3DIAG_
|
||||
#define Z2_MAX_PIN E3_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E4DIAG_
|
||||
#define Z2_MAX_PIN E4_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E5DIAG_
|
||||
#define Z2_MAX_PIN E5_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E6DIAG_
|
||||
#define Z2_MAX_PIN E6_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E7DIAG_
|
||||
#define Z2_MAX_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Z2_MAX)
|
||||
#undef Z2_MAX_PIN
|
||||
#if PIN_EXISTS(Z2_STOP)
|
||||
#define Z2_MAX_PIN Z2_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z2_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#else
|
||||
#ifndef Z2_MIN_ENDSTOP_INVERTING
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
@@ -1192,56 +1065,20 @@
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Z2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z2_MIN_PIN
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define Z2_MIN_PIN X_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define Z2_MIN_PIN X_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XSTOP_
|
||||
#define Z2_MIN_PIN X_STOP_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define Z2_MIN_PIN Y_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define Z2_MIN_PIN Y_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YSTOP_
|
||||
#define Z2_MIN_PIN Y_STOP_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define Z2_MIN_PIN Z_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MIN_PIN Z_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZSTOP_
|
||||
#define Z2_MIN_PIN Z_STOP_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XDIAG_
|
||||
#define Z2_MIN_PIN X_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YDIAG_
|
||||
#define Z2_MIN_PIN Y_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZDIAG_
|
||||
#define Z2_MIN_PIN Z_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E0DIAG_
|
||||
#define Z2_MIN_PIN E0_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E1DIAG_
|
||||
#define Z2_MIN_PIN E1_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E2DIAG_
|
||||
#define Z2_MIN_PIN E2_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E3DIAG_
|
||||
#define Z2_MIN_PIN E3_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E4DIAG_
|
||||
#define Z2_MIN_PIN E4_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E5DIAG_
|
||||
#define Z2_MIN_PIN E5_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E6DIAG_
|
||||
#define Z2_MIN_PIN E6_DIAG_PIN
|
||||
#elif Z2_USE_ENDSTOP == _E7DIAG_
|
||||
#define Z2_MIN_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Z2_MIN)
|
||||
#undef Z2_MIN_PIN
|
||||
#if PIN_EXISTS(Z2_STOP)
|
||||
#define Z2_MIN_PIN Z2_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z2_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z2_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#ifndef Z2_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
|
||||
#if NUM_Z_STEPPERS >= 3
|
||||
@@ -1259,56 +1096,14 @@
|
||||
#define Z3_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Z3_USE_ENDSTOP == _ZMAX_
|
||||
#define Z3_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Z3_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z3_MAX_PIN
|
||||
#if Z3_USE_ENDSTOP == _XMIN_
|
||||
#define Z3_MAX_PIN X_MIN_PIN
|
||||
#elif Z3_USE_ENDSTOP == _XMAX_
|
||||
#define Z3_MAX_PIN X_MAX_PIN
|
||||
#elif Z3_USE_ENDSTOP == _XSTOP_
|
||||
#define Z3_MAX_PIN X_STOP_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YMIN_
|
||||
#define Z3_MAX_PIN Y_MIN_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YMAX_
|
||||
#define Z3_MAX_PIN Y_MAX_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YSTOP_
|
||||
#define Z3_MAX_PIN Y_STOP_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZMIN_
|
||||
#define Z3_MAX_PIN Z_MIN_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZMAX_
|
||||
#define Z3_MAX_PIN Z_MAX_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZSTOP_
|
||||
#define Z3_MAX_PIN Z_STOP_PIN
|
||||
#elif Z3_USE_ENDSTOP == _XDIAG_
|
||||
#define Z3_MAX_PIN X_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YDIAG_
|
||||
#define Z3_MAX_PIN Y_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZDIAG_
|
||||
#define Z3_MAX_PIN Z_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E0DIAG_
|
||||
#define Z3_MAX_PIN E0_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E1DIAG_
|
||||
#define Z3_MAX_PIN E1_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E2DIAG_
|
||||
#define Z3_MAX_PIN E2_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E3DIAG_
|
||||
#define Z3_MAX_PIN E3_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E4DIAG_
|
||||
#define Z3_MAX_PIN E4_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E5DIAG_
|
||||
#define Z3_MAX_PIN E5_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E6DIAG_
|
||||
#define Z3_MAX_PIN E6_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E7DIAG_
|
||||
#define Z3_MAX_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Z3_MAX)
|
||||
#undef Z3_MAX_PIN
|
||||
#if PIN_EXISTS(Z3_STOP)
|
||||
#define Z3_MAX_PIN Z3_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z3_MIN_ENDSTOP_INVERTING
|
||||
#define Z3_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#else
|
||||
#ifndef Z3_MIN_ENDSTOP_INVERTING
|
||||
#if Z3_USE_ENDSTOP == _XMIN_
|
||||
@@ -1323,56 +1118,20 @@
|
||||
#define Z3_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Z3_USE_ENDSTOP == _ZMAX_
|
||||
#define Z3_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Z3_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z3_MIN_PIN
|
||||
#if Z3_USE_ENDSTOP == _XMIN_
|
||||
#define Z3_MIN_PIN X_MIN_PIN
|
||||
#elif Z3_USE_ENDSTOP == _XMAX_
|
||||
#define Z3_MIN_PIN X_MAX_PIN
|
||||
#elif Z3_USE_ENDSTOP == _XSTOP_
|
||||
#define Z3_MIN_PIN X_STOP_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YMIN_
|
||||
#define Z3_MIN_PIN Y_MIN_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YMAX_
|
||||
#define Z3_MIN_PIN Y_MAX_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YSTOP_
|
||||
#define Z3_MIN_PIN Y_STOP_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZMIN_
|
||||
#define Z3_MIN_PIN Z_MIN_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZMAX_
|
||||
#define Z3_MIN_PIN Z_MAX_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZSTOP_
|
||||
#define Z3_MIN_PIN Z_STOP_PIN
|
||||
#elif Z3_USE_ENDSTOP == _XDIAG_
|
||||
#define Z3_MIN_PIN X_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _YDIAG_
|
||||
#define Z3_MIN_PIN Y_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _ZDIAG_
|
||||
#define Z3_MIN_PIN Z_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E0DIAG_
|
||||
#define Z3_MIN_PIN E0_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E1DIAG_
|
||||
#define Z3_MIN_PIN E1_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E2DIAG_
|
||||
#define Z3_MIN_PIN E2_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E3DIAG_
|
||||
#define Z3_MIN_PIN E3_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E4DIAG_
|
||||
#define Z3_MIN_PIN E4_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E5DIAG_
|
||||
#define Z3_MIN_PIN E5_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E6DIAG_
|
||||
#define Z3_MIN_PIN E6_DIAG_PIN
|
||||
#elif Z3_USE_ENDSTOP == _E7DIAG_
|
||||
#define Z3_MIN_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Z3_MIN)
|
||||
#undef Z3_MIN_PIN
|
||||
#if PIN_EXISTS(Z3_STOP)
|
||||
#define Z3_MIN_PIN Z3_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z3_MAX_ENDSTOP_INVERTING
|
||||
#define Z3_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z3_MAX_ENDSTOP_INVERTING
|
||||
#define Z3_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#ifndef Z3_MIN_ENDSTOP_INVERTING
|
||||
#define Z3_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1391,56 +1150,14 @@
|
||||
#define Z4_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Z4_USE_ENDSTOP == _ZMAX_
|
||||
#define Z4_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Z4_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z4_MAX_PIN
|
||||
#if Z4_USE_ENDSTOP == _XMIN_
|
||||
#define Z4_MAX_PIN X_MIN_PIN
|
||||
#elif Z4_USE_ENDSTOP == _XMAX_
|
||||
#define Z4_MAX_PIN X_MAX_PIN
|
||||
#elif Z4_USE_ENDSTOP == _XSTOP_
|
||||
#define Z4_MAX_PIN X_STOP_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YMIN_
|
||||
#define Z4_MAX_PIN Y_MIN_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YMAX_
|
||||
#define Z4_MAX_PIN Y_MAX_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YSTOP_
|
||||
#define Z4_MAX_PIN Y_STOP_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZMIN_
|
||||
#define Z4_MAX_PIN Z_MIN_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZMAX_
|
||||
#define Z4_MAX_PIN Z_MAX_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZSTOP_
|
||||
#define Z4_MAX_PIN Z_STOP_PIN
|
||||
#elif Z4_USE_ENDSTOP == _XDIAG_
|
||||
#define Z4_MAX_PIN X_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YDIAG_
|
||||
#define Z4_MAX_PIN Y_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZDIAG_
|
||||
#define Z4_MAX_PIN Z_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E0DIAG_
|
||||
#define Z4_MAX_PIN E0_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E1DIAG_
|
||||
#define Z4_MAX_PIN E1_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E2DIAG_
|
||||
#define Z4_MAX_PIN E2_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E3DIAG_
|
||||
#define Z4_MAX_PIN E3_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E4DIAG_
|
||||
#define Z4_MAX_PIN E4_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E5DIAG_
|
||||
#define Z4_MAX_PIN E5_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E6DIAG_
|
||||
#define Z4_MAX_PIN E6_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E7DIAG_
|
||||
#define Z4_MAX_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Z4_MAX)
|
||||
#undef Z4_MAX_PIN
|
||||
#if PIN_EXISTS(Z4_STOP)
|
||||
#define Z4_MAX_PIN Z4_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z4_MIN_ENDSTOP_INVERTING
|
||||
#define Z4_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#else
|
||||
#ifndef Z4_MIN_ENDSTOP_INVERTING
|
||||
#if Z4_USE_ENDSTOP == _XMIN_
|
||||
@@ -1455,56 +1172,20 @@
|
||||
#define Z4_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#elif Z4_USE_ENDSTOP == _ZMAX_
|
||||
#define Z4_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#else
|
||||
#define Z4_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z4_MIN_PIN
|
||||
#if Z4_USE_ENDSTOP == _XMIN_
|
||||
#define Z4_MIN_PIN X_MIN_PIN
|
||||
#elif Z4_USE_ENDSTOP == _XMAX_
|
||||
#define Z4_MIN_PIN X_MAX_PIN
|
||||
#elif Z4_USE_ENDSTOP == _XSTOP_
|
||||
#define Z4_MIN_PIN X_STOP_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YMIN_
|
||||
#define Z4_MIN_PIN Y_MIN_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YMAX_
|
||||
#define Z4_MIN_PIN Y_MAX_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YSTOP_
|
||||
#define Z4_MIN_PIN Y_STOP_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZMIN_
|
||||
#define Z4_MIN_PIN Z_MIN_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZMAX_
|
||||
#define Z4_MIN_PIN Z_MAX_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZSTOP_
|
||||
#define Z4_MIN_PIN Z_STOP_PIN
|
||||
#elif Z4_USE_ENDSTOP == _XDIAG_
|
||||
#define Z4_MIN_PIN X_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _YDIAG_
|
||||
#define Z4_MIN_PIN Y_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _ZDIAG_
|
||||
#define Z4_MIN_PIN Z_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E0DIAG_
|
||||
#define Z4_MIN_PIN E0_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E1DIAG_
|
||||
#define Z4_MIN_PIN E1_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E2DIAG_
|
||||
#define Z4_MIN_PIN E2_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E3DIAG_
|
||||
#define Z4_MIN_PIN E3_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E4DIAG_
|
||||
#define Z4_MIN_PIN E4_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E5DIAG_
|
||||
#define Z4_MIN_PIN E5_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E6DIAG_
|
||||
#define Z4_MIN_PIN E6_DIAG_PIN
|
||||
#elif Z4_USE_ENDSTOP == _E7DIAG_
|
||||
#define Z4_MIN_PIN E7_DIAG_PIN
|
||||
#if !PIN_EXISTS(Z4_MIN)
|
||||
#undef Z4_MIN_PIN
|
||||
#if PIN_EXISTS(Z4_STOP)
|
||||
#define Z4_MIN_PIN Z4_STOP_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z4_MAX_ENDSTOP_INVERTING
|
||||
#define Z4_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z4_MAX_ENDSTOP_INVERTING
|
||||
#define Z4_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#ifndef Z4_MIN_ENDSTOP_INVERTING
|
||||
#define Z4_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -2446,15 +2127,15 @@
|
||||
//
|
||||
|
||||
// Flag the indexed hardware serial ports in use
|
||||
#define CONF_SERIAL_IS(N) ( (defined(SERIAL_PORT) && SERIAL_PORT == N) \
|
||||
|| (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == N) \
|
||||
|| (defined(SERIAL_PORT_3) && SERIAL_PORT_3 == N) \
|
||||
|| (defined(MMU2_SERIAL_PORT) && MMU2_SERIAL_PORT == N) \
|
||||
|| (defined(LCD_SERIAL_PORT) && LCD_SERIAL_PORT == N) )
|
||||
#define SERIAL_IN_USE(N) ( (defined(SERIAL_PORT) && N == SERIAL_PORT) \
|
||||
|| (defined(SERIAL_PORT_2) && N == SERIAL_PORT_2) \
|
||||
|| (defined(SERIAL_PORT_3) && N == SERIAL_PORT_3) \
|
||||
|| (defined(MMU2_SERIAL_PORT) && N == MMU2_SERIAL_PORT) \
|
||||
|| (defined(LCD_SERIAL_PORT) && N == LCD_SERIAL_PORT) )
|
||||
|
||||
// Flag the named hardware serial ports in use
|
||||
#define TMC_UART_IS(A,N) (defined(A##_HARDWARE_SERIAL) && (CAT(HW_,A##_HARDWARE_SERIAL) == HW_Serial##N || CAT(HW_,A##_HARDWARE_SERIAL) == HW_MSerial##N))
|
||||
#define ANY_SERIAL_IS(N) ( CONF_SERIAL_IS(N) \
|
||||
#define ANY_SERIAL_IS(N) ( SERIAL_IN_USE(N) \
|
||||
|| TMC_UART_IS(X, N) || TMC_UART_IS(Y , N) || TMC_UART_IS(Z , N) \
|
||||
|| TMC_UART_IS(I, N) || TMC_UART_IS(J , N) || TMC_UART_IS(K , N) \
|
||||
|| TMC_UART_IS(U, N) || TMC_UART_IS(V , N) || TMC_UART_IS(W , N) \
|
||||
@@ -2481,7 +2162,7 @@
|
||||
#define HW_MSerial9 518
|
||||
#define HW_MSerial10 519
|
||||
|
||||
#if CONF_SERIAL_IS(-1)
|
||||
#if SERIAL_IN_USE(-1)
|
||||
#define USING_HW_SERIALUSB 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(0)
|
||||
@@ -2543,6 +2224,21 @@
|
||||
#undef TMC_UART_IS
|
||||
#undef ANY_SERIAL_IS
|
||||
|
||||
// Clean up unused ESP_WIFI pins
|
||||
#ifdef ESP_WIFI_MODULE_COM
|
||||
#if !SERIAL_IN_USE(ESP_WIFI_MODULE_COM)
|
||||
#undef ESP_WIFI_MODULE_COM
|
||||
#undef ESP_WIFI_MODULE_BAUDRATE
|
||||
#undef ESP_WIFI_MODULE_RESET_PIN
|
||||
#undef ESP_WIFI_MODULE_ENABLE_PIN
|
||||
#undef ESP_WIFI_MODULE_TXD_PIN
|
||||
#undef ESP_WIFI_MODULE_RXD_PIN
|
||||
#undef ESP_WIFI_MODULE_GPIO0_PIN
|
||||
#undef ESP_WIFI_MODULE_GPIO2_PIN
|
||||
#undef ESP_WIFI_MODULE_GPIO4_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Endstops and bed probe
|
||||
//
|
||||
@@ -2656,7 +2352,7 @@
|
||||
//
|
||||
// ADC Temp Sensors (Thermistor or Thermocouple with amplifier ADC interface)
|
||||
//
|
||||
#define HAS_ADC_TEST(P) (PIN_EXISTS(TEMP_##P) && TEMP_SENSOR_##P != 0 && !TEMP_SENSOR_IS_MAX_TC(P) && !TEMP_SENSOR_##P##_IS_DUMMY)
|
||||
#define HAS_ADC_TEST(P) (TEMP_SENSOR(P) && PIN_EXISTS(TEMP_##P) && !TEMP_SENSOR_IS_MAX_TC(P) && !TEMP_SENSOR_##P##_IS_DUMMY)
|
||||
#if HOTENDS > 0 && HAS_ADC_TEST(0)
|
||||
#define HAS_TEMP_ADC_0 1
|
||||
#endif
|
||||
@@ -3124,73 +2820,6 @@
|
||||
#define HAS_MICROSTEPS 1
|
||||
#endif
|
||||
|
||||
#if HAS_MICROSTEPS
|
||||
|
||||
// MS1 MS2 MS3 Stepper Driver Microstepping mode table
|
||||
#ifndef MICROSTEP1
|
||||
#define MICROSTEP1 LOW,LOW,LOW
|
||||
#endif
|
||||
#if ENABLED(HEROIC_STEPPER_DRIVERS)
|
||||
#ifndef MICROSTEP128
|
||||
#define MICROSTEP128 LOW,HIGH,LOW
|
||||
#endif
|
||||
#else
|
||||
#ifndef MICROSTEP2
|
||||
#define MICROSTEP2 HIGH,LOW,LOW
|
||||
#endif
|
||||
#ifndef MICROSTEP4
|
||||
#define MICROSTEP4 LOW,HIGH,LOW
|
||||
#endif
|
||||
#endif
|
||||
#ifndef MICROSTEP8
|
||||
#define MICROSTEP8 HIGH,HIGH,LOW
|
||||
#endif
|
||||
#ifdef __SAM3X8E__
|
||||
#if MB(ALLIGATOR)
|
||||
#ifndef MICROSTEP16
|
||||
#define MICROSTEP16 LOW,LOW,LOW
|
||||
#endif
|
||||
#ifndef MICROSTEP32
|
||||
#define MICROSTEP32 HIGH,HIGH,LOW
|
||||
#endif
|
||||
#else
|
||||
#ifndef MICROSTEP16
|
||||
#define MICROSTEP16 HIGH,HIGH,LOW
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#ifndef MICROSTEP16
|
||||
#define MICROSTEP16 HIGH,HIGH,LOW
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#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
|
||||
|
||||
/**
|
||||
* Heater signal inversion defaults
|
||||
*/
|
||||
@@ -3306,7 +2935,15 @@
|
||||
#endif
|
||||
|
||||
#if HAS_TEMPERATURE && ANY(HAS_MARLINUI_MENU, HAS_DWIN_E3V2, HAS_DGUS_LCD_CLASSIC)
|
||||
#ifdef PREHEAT_6_LABEL
|
||||
#ifdef PREHEAT_10_LABEL
|
||||
#define PREHEAT_COUNT 10
|
||||
#elif defined(PREHEAT_9_LABEL)
|
||||
#define PREHEAT_COUNT 9
|
||||
#elif defined(PREHEAT_8_LABEL)
|
||||
#define PREHEAT_COUNT 8
|
||||
#elif defined(PREHEAT_7_LABEL)
|
||||
#define PREHEAT_COUNT 7
|
||||
#elif defined(PREHEAT_6_LABEL)
|
||||
#define PREHEAT_COUNT 6
|
||||
#elif defined(PREHEAT_5_LABEL)
|
||||
#define PREHEAT_COUNT 5
|
||||
@@ -3664,13 +3301,13 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_MARLINUI_MENU
|
||||
#if EITHER(HAS_MARLINUI_MENU, TOUCH_UI_FTDI_EVE)
|
||||
// LCD timeout to status screen default is 15s
|
||||
#ifndef LCD_TIMEOUT_TO_STATUS
|
||||
#define LCD_TIMEOUT_TO_STATUS 15000
|
||||
#endif
|
||||
#if LCD_TIMEOUT_TO_STATUS
|
||||
#define SCREENS_CAN_TIME_OUT 1
|
||||
#define HAS_SCREEN_TIMEOUT 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@@ -416,17 +416,17 @@
|
||||
#elif defined(CHDK)
|
||||
#error "CHDK is now CHDK_PIN."
|
||||
#elif ANY_PIN( \
|
||||
MAX6675_SS, MAX6675_SS2, MAX6675_CS, MAX6675_CS2, \
|
||||
MAX31855_SS, MAX31855_SS2, MAX31855_CS, MAX31855_CS2, \
|
||||
MAX31865_SS, MAX31865_SS2, MAX31865_CS, MAX31865_CS2)
|
||||
#warning "MAX*_SS_PIN, MAX*_SS2_PIN, MAX*_CS_PIN, and MAX*_CS2_PIN are deprecated and will be removed in a future version. Please use TEMP_0_CS_PIN/TEMP_1_CS_PIN instead."
|
||||
MAX6675_SS, MAX6675_SS2, MAX6675_SS3, MAX6675_CS, MAX6675_CS2, MAX6675_CS3,\
|
||||
MAX31855_SS, MAX31855_SS2, MAX31855_SS3, MAX31855_CS, MAX31855_CS2, MAX31855_CS3, \
|
||||
MAX31865_SS, MAX31865_SS2, MAX31865_SS3, MAX31865_CS, MAX31865_CS2, MAX31865_CS3)
|
||||
#warning "MAX*_SS_PIN, MAX*_SS2_PIN, MAX*_SS3_PIN, MAX*_CS_PIN, MAX*_CS2_PIN, and MAX*_CS3_PIN, are deprecated and will be removed in a future version. Please use TEMP_0_CS_PIN/TEMP_1_CS_PIN/TEMP_2_CS_PIN instead."
|
||||
#elif ANY_PIN(MAX6675_SCK, MAX31855_SCK, MAX31865_SCK)
|
||||
#warning "MAX*_SCK_PIN is deprecated and will be removed in a future version. Please use TEMP_0_SCK_PIN/TEMP_1_SCK_PIN instead."
|
||||
#warning "MAX*_SCK_PIN is deprecated and will be removed in a future version. Please use TEMP_0_SCK_PIN/TEMP_1_SCK_PIN/TEMP_2_SCK_PIN instead."
|
||||
#elif ANY_PIN(MAX6675_MISO, MAX6675_DO, MAX31855_MISO, MAX31855_DO, MAX31865_MISO, MAX31865_DO)
|
||||
#warning "MAX*_MISO_PIN and MAX*_DO_PIN are deprecated and will be removed in a future version. Please use TEMP_0_MISO_PIN/TEMP_1_MISO_PIN instead."
|
||||
#warning "MAX*_MISO_PIN and MAX*_DO_PIN are deprecated and will be removed in a future version. Please use TEMP_0_MISO_PIN/TEMP_1_MISO_PIN/TEMP_2_MISO_PIN instead."
|
||||
#elif PIN_EXISTS(MAX31865_MOSI)
|
||||
#warning "MAX31865_MOSI_PIN is deprecated and will be removed in a future version. Please use TEMP_0_MOSI_PIN/TEMP_1_MOSI_PIN instead."
|
||||
#elif ANY_PIN(THERMO_CS1_PIN, THERMO_CS2_PIN, THERMO_DO_PIN, THERMO_SCK_PIN)
|
||||
#warning "MAX31865_MOSI_PIN is deprecated and will be removed in a future version. Please use TEMP_0_MOSI_PIN/TEMP_1_MOSI_PIN/TEMP_2_MOSI_PIN instead."
|
||||
#elif ANY_PIN(THERMO_CS1_PIN, THERMO_CS2_PIN, THERMO_CS3_PIN, THERMO_DO_PIN, THERMO_SCK_PIN)
|
||||
#error "THERMO_*_PIN is now TEMP_n_CS_PIN, TEMP_n_SCK_PIN, TEMP_n_MOSI_PIN, TEMP_n_MISO_PIN."
|
||||
#elif defined(MAX31865_SENSOR_OHMS)
|
||||
#error "MAX31865_SENSOR_OHMS is now MAX31865_SENSOR_OHMS_0."
|
||||
@@ -587,7 +587,7 @@
|
||||
#elif defined(MKS_LCD12864)
|
||||
#error "MKS_LCD12864 is now MKS_LCD12864A or MKS_LCD12864B."
|
||||
#elif defined(DOGM_SD_PERCENT)
|
||||
#error "DOGM_SD_PERCENT is now SHOW_SD_PERCENT."
|
||||
#error "DOGM_SD_PERCENT is now SHOW_PROGRESS_PERCENT."
|
||||
#elif defined(NEOPIXEL_BKGD_LED_INDEX)
|
||||
#error "NEOPIXEL_BKGD_LED_INDEX is now NEOPIXEL_BKGD_INDEX_FIRST."
|
||||
#elif defined(TEMP_SENSOR_1_AS_REDUNDANT)
|
||||
@@ -642,6 +642,20 @@
|
||||
#error "LEVEL_CORNERS_* settings have been renamed BED_TRAMMING_*."
|
||||
#elif defined(LEVEL_CENTER_TOO)
|
||||
#error "LEVEL_CENTER_TOO is now BED_TRAMMING_INCLUDE_CENTER."
|
||||
#elif defined(TOUCH_IDLE_SLEEP)
|
||||
#error "TOUCH_IDLE_SLEEP (seconds) is now TOUCH_IDLE_SLEEP_MINS (minutes)."
|
||||
#elif defined(LCD_BACKLIGHT_TIMEOUT)
|
||||
#error "LCD_BACKLIGHT_TIMEOUT (seconds) is now LCD_BACKLIGHT_TIMEOUT_MINS (minutes)."
|
||||
#elif defined(LCD_SET_PROGRESS_MANUALLY)
|
||||
#error "LCD_SET_PROGRESS_MANUALLY is now SET_PROGRESS_MANUALLY."
|
||||
#elif defined(USE_M73_REMAINING_TIME)
|
||||
#error "USE_M73_REMAINING_TIME is now SET_REMAINING_TIME."
|
||||
#elif defined(SHOW_SD_PERCENT)
|
||||
#error "SHOW_SD_PERCENT is now SHOW_PROGRESS_PERCENT."
|
||||
#elif defined(EXTRA_LIN_ADVANCE_K)
|
||||
#error "EXTRA_LIN_ADVANCE_K is now ADVANCE_K_EXTRA."
|
||||
#elif defined(POLAR_SEGMENTS_PER_SECOND) || defined(DELTA_SEGMENTS_PER_SECOND) || defined(SCARA_SEGMENTS_PER_SECOND) || defined(TPARA_SEGMENTS_PER_SECOND)
|
||||
#error "(POLAR|DELTA|SCARA|TPARA)_SEGMENTS_PER_SECOND is now DEFAULT_SEGMENTS_PER_SECOND."
|
||||
#endif
|
||||
|
||||
// L64xx stepper drivers have been removed
|
||||
@@ -667,6 +681,17 @@
|
||||
constexpr float arm[] = AXIS_RELATIVE_MODES;
|
||||
static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _LOGICAL_AXES_STR "elements.");
|
||||
|
||||
// Consolidate TMC26X, validate migration (#24373)
|
||||
#define _ISMAX_1(A) defined(A##_MAX_CURRENT)
|
||||
#define _ISSNS_1(A) defined(A##_SENSE_RESISTOR)
|
||||
#if DO(ISMAX,||,ALL_AXIS_NAMES)
|
||||
#error "*_MAX_CURRENT is now set with *_CURRENT."
|
||||
#elif DO(ISSNS,||,ALL_AXIS_NAMES)
|
||||
#error "*_SENSE_RESISTOR (in Milli-Ohms) is now set with *_RSENSE (in Ohms), so you must divide values by 1000."
|
||||
#endif
|
||||
#undef _ISMAX_1
|
||||
#undef _ISSNS_1
|
||||
|
||||
/**
|
||||
* Probe temp compensation requirements
|
||||
*/
|
||||
@@ -817,7 +842,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
/**
|
||||
* Granular software endstops (Marlin >= 1.1.7)
|
||||
*/
|
||||
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) && DISABLED(MIN_SOFTWARE_ENDSTOP_Z)
|
||||
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) && NONE(MIN_SOFTWARE_ENDSTOP_Z, POLARGRAPH)
|
||||
#if IS_KINEMATIC
|
||||
#error "MIN_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MIN_SOFTWARE_ENDSTOP_Z."
|
||||
#elif NONE(MIN_SOFTWARE_ENDSTOP_X, MIN_SOFTWARE_ENDSTOP_Y)
|
||||
@@ -825,7 +850,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(MAX_SOFTWARE_ENDSTOPS) && DISABLED(MAX_SOFTWARE_ENDSTOP_Z)
|
||||
#if ENABLED(MAX_SOFTWARE_ENDSTOPS) && NONE(MAX_SOFTWARE_ENDSTOP_Z, POLARGRAPH)
|
||||
#if IS_KINEMATIC
|
||||
#error "MAX_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MAX_SOFTWARE_ENDSTOP_Z."
|
||||
#elif NONE(MAX_SOFTWARE_ENDSTOP_X, MAX_SOFTWARE_ENDSTOP_Y)
|
||||
@@ -890,8 +915,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Progress Bar
|
||||
*/
|
||||
#if ENABLED(LCD_PROGRESS_BAR)
|
||||
#if NONE(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
|
||||
#error "LCD_PROGRESS_BAR requires SDSUPPORT or LCD_SET_PROGRESS_MANUALLY."
|
||||
#if NONE(SDSUPPORT, SET_PROGRESS_MANUALLY)
|
||||
#error "LCD_PROGRESS_BAR requires SDSUPPORT or SET_PROGRESS_MANUALLY."
|
||||
#elif NONE(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
|
||||
#error "LCD_PROGRESS_BAR only applies to HD44780 character LCD and TFTGLCD_PANEL_(SPI|I2C)."
|
||||
#elif HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI
|
||||
@@ -901,12 +926,14 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#elif PROGRESS_MSG_EXPIRE < 0
|
||||
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
|
||||
#endif
|
||||
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI, HAS_DWIN_E3V2, IS_DWIN_MARLINUI)
|
||||
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, DWIN_CREALITY_LCD, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI, DWIN_MARLINUI_*, OR EXTENSIBLE_UI."
|
||||
#endif
|
||||
|
||||
#if ENABLED(USE_M73_REMAINING_TIME) && DISABLED(LCD_SET_PROGRESS_MANUALLY)
|
||||
#error "USE_M73_REMAINING_TIME requires LCD_SET_PROGRESS_MANUALLY"
|
||||
#if ENABLED(SET_PROGRESS_MANUALLY) && NONE(SET_PROGRESS_PERCENT, SET_REMAINING_TIME, SET_INTERACTION_TIME)
|
||||
#error "SET_PROGRESS_MANUALLY requires at least one of SET_PROGRESS_PERCENT, SET_REMAINING_TIME, SET_INTERACTION_TIME to be enabled."
|
||||
#endif
|
||||
|
||||
#if HAS_LCDPRINT && LCD_HEIGHT < 4 && ANY(SHOW_PROGRESS_PERCENT, SHOW_ELAPSED_TIME, SHOW_REMAINING_TIME, SHOW_INTERACTION_TIME)
|
||||
#error "Displays with fewer than 4 rows of text can't show progress values."
|
||||
#endif
|
||||
|
||||
#if !HAS_MARLINUI_MENU && ENABLED(SD_REPRINT_LAST_SELECTED_FILE)
|
||||
@@ -1324,10 +1351,15 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Linear Advance 1.5 - Check K value range
|
||||
*/
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
static_assert(
|
||||
WITHIN(LIN_ADVANCE_K, 0, 10),
|
||||
"LIN_ADVANCE_K must be a value from 0 to 10 (Changed in LIN_ADVANCE v1.5, Marlin 1.1.9)."
|
||||
);
|
||||
#if DISTINCT_E > 1
|
||||
constexpr float lak[] = ADVANCE_K;
|
||||
static_assert(COUNT(lak) <= DISTINCT_E, "The ADVANCE_K array has too many elements (i.e., more than " STRINGIFY(DISTINCT_E) ").");
|
||||
#define _LIN_ASSERT(N) static_assert(N >= COUNT(lak) || WITHIN(lak[N], 0, 10), "ADVANCE_K values must be from 0 to 10 (Changed in LIN_ADVANCE v1.5, Marlin 1.1.9).");
|
||||
REPEAT(DISTINCT_E, _LIN_ASSERT)
|
||||
#undef _LIN_ASSERT
|
||||
#else
|
||||
static_assert(WITHIN(ADVANCE_K, 0, 10), "ADVANCE_K must be from 0 to 10 (Changed in LIN_ADVANCE v1.5, Marlin 1.1.9).");
|
||||
#endif
|
||||
#if ENABLED(S_CURVE_ACCELERATION) && DISABLED(EXPERIMENTAL_SCURVE)
|
||||
#error "LIN_ADVANCE and S_CURVE_ACCELERATION may not play well together! Enable EXPERIMENTAL_SCURVE to continue."
|
||||
#elif ENABLED(DIRECT_STEPPING)
|
||||
@@ -1494,6 +1526,11 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED."
|
||||
#endif
|
||||
|
||||
// Fan Kickstart
|
||||
#if FAN_KICKSTART_TIME && defined(FAN_KICKSTART_POWER) && !WITHIN(FAN_KICKSTART_POWER, 64, 255)
|
||||
#error "FAN_KICKSTART_POWER must be an integer from 64 to 255."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Synchronous M106/M107 checks
|
||||
*/
|
||||
@@ -1620,8 +1657,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Delta requirements
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
#if NONE(USE_XMAX_PLUG, USE_YMAX_PLUG, USE_ZMAX_PLUG)
|
||||
#error "You probably want to use Max Endstops for DELTA!"
|
||||
#if ANY(X_HOME_TO_MIN, Y_HOME_TO_MIN, Z_HOME_TO_MIN)
|
||||
#error "DELTA kinematics require homing "XYZ" axes to MAX. Set [XYZ]_HOME_DIR to 1."
|
||||
#elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_SEGMENTED
|
||||
#error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
|
||||
#elif ENABLED(DELTA_AUTO_CALIBRATION) && !(HAS_BED_PROBE || HAS_MARLINUI_MENU)
|
||||
@@ -1740,7 +1777,29 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if BLTOUCH_DELAY < 200
|
||||
#error "BLTOUCH_DELAY less than 200 is unsafe and is not supported."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
|
||||
#error "BLTOUCH requires DEACTIVATE_SERVOS_AFTER_MOVE to be to disabled. Please update your Configuration.h file."
|
||||
#endif
|
||||
|
||||
#if HAS_INVERTED_PROBE
|
||||
#if !Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#error "BLTOUCH requires Z_MIN_PROBE_ENDSTOP_INVERTING set to true."
|
||||
#endif
|
||||
#elif Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#error "BLTOUCH requires Z_MIN_PROBE_ENDSTOP_INVERTING set to false."
|
||||
#endif
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#if HAS_INVERTED_PROBE
|
||||
#if !Z_MIN_ENDSTOP_INVERTING
|
||||
#error "BLTOUCH requires Z_MIN_ENDSTOP_INVERTING set to true."
|
||||
#endif
|
||||
#elif Z_MIN_ENDSTOP_INVERTING
|
||||
#error "BLTOUCH requires Z_MIN_ENDSTOP_INVERTING set to false."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // BLTOUCH
|
||||
|
||||
#if ENABLED(RACK_AND_PINION_PROBE) && !(defined(Z_PROBE_DEPLOY_X) && defined(Z_PROBE_RETRACT_X))
|
||||
#error "RACK_AND_PINION_PROBE requires Z_PROBE_DEPLOY_X and Z_PROBE_RETRACT_X."
|
||||
@@ -1758,14 +1817,28 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "TOUCH_MI_PROBE requires Z_AFTER_PROBING to be disabled."
|
||||
#elif Z_HOMING_HEIGHT < 10
|
||||
#error "TOUCH_MI_PROBE requires Z_HOMING_HEIGHT >= 10."
|
||||
#elif Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#error "TOUCH_MI_PROBE requires Z_MIN_PROBE_ENDSTOP_INVERTING to be set to false."
|
||||
#elif DISABLED(BABYSTEP_ZPROBE_OFFSET)
|
||||
#error "TOUCH_MI_PROBE requires BABYSTEPPING with BABYSTEP_ZPROBE_OFFSET."
|
||||
#elif !HAS_RESUME_CONTINUE
|
||||
#error "TOUCH_MI_PROBE currently requires an LCD controller or EMERGENCY_PARSER."
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_INVERTED_PROBE
|
||||
#if !Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#error "TOUCH_MI_PROBE requires Z_MIN_PROBE_ENDSTOP_INVERTING set to true."
|
||||
#endif
|
||||
#elif Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#error "TOUCH_MI_PROBE requires Z_MIN_PROBE_ENDSTOP_INVERTING set to false."
|
||||
#endif
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#if HAS_INVERTED_PROBE
|
||||
#if !Z_MIN_ENDSTOP_INVERTING
|
||||
#error "TOUCH_MI_PROBE requires Z_MIN_ENDSTOP_INVERTING set to true."
|
||||
#endif
|
||||
#elif Z_MIN_ENDSTOP_INVERTING
|
||||
#error "TOUCH_MI_PROBE requires Z_MIN_ENDSTOP_INVERTING set to false."
|
||||
#endif
|
||||
#endif
|
||||
#endif // TOUCH_MI_PROBE
|
||||
|
||||
/**
|
||||
* Mag mounted probe requirements
|
||||
@@ -2040,6 +2113,12 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
);
|
||||
#endif
|
||||
|
||||
#define COUNT_SENSORLESS COUNT_ENABLED(Z_SENSORLESS, Z2_SENSORLESS, Z3_SENSORLESS, Z4_SENSORLESS)
|
||||
#if COUNT_SENSORLESS && COUNT_SENSORLESS != NUM_Z_STEPPERS
|
||||
#error "All Z steppers must have *_STALL_SENSITIVITY defined to use Z sensorless homing."
|
||||
#endif
|
||||
#undef COUNT_SENSORLESS
|
||||
|
||||
#ifdef SENSORLESS_BACKOFF_MM
|
||||
constexpr float sbm[] = SENSORLESS_BACKOFF_MM;
|
||||
static_assert(COUNT(sbm) == NUM_AXES, "SENSORLESS_BACKOFF_MM must have " _NUM_AXES_STR "elements (and no others).");
|
||||
@@ -2193,14 +2272,22 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if ENABLED(USE_CONTROLLER_FAN)
|
||||
#if !HAS_CONTROLLER_FAN
|
||||
#error "USE_CONTROLLER_FAN requires a CONTROLLER_FAN_PIN. Define in Configuration_adv.h."
|
||||
#elif E0_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#elif PIN_EXISTS(E0_AUTO_FAN) && E0_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E0_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif E1_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#elif PIN_EXISTS(E1_AUTO_FAN) && E1_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E1_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif E2_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#elif PIN_EXISTS(E2_AUTO_FAN) && E2_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E2_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif E3_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#elif PIN_EXISTS(E3_AUTO_FAN) && E3_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E3_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif PIN_EXISTS(E4_AUTO_FAN) && E4_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E4_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif PIN_EXISTS(E5_AUTO_FAN) && E5_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E5_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif PIN_EXISTS(E6_AUTO_FAN) && E6_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E6_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#elif PIN_EXISTS(E7_AUTO_FAN) && E7_AUTO_FAN_PIN == CONTROLLER_FAN_PIN
|
||||
#error "You cannot set E7_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -2254,6 +2341,37 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "TEMP_SENSOR_REDUNDANT 1000 requires REDUNDANT_PULLUP_RESISTOR_OHMS, REDUNDANT_RESISTANCE_25C_OHMS and REDUNDANT_BETA in Configuration_adv.h."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Required thermistor 66 (Dyze Design / Trianglelab T-D500) settings
|
||||
* https://docs.dyzedesign.com/hotends.html#_500-%C2%B0c-thermistor
|
||||
*/
|
||||
#if ANY_E_SENSOR_IS(66)
|
||||
#define _BAD_MINTEMP(N) (TEMP_SENSOR(N) == 66 && HEATER_##N##_MINTEMP <= 20)
|
||||
#if _BAD_MINTEMP(0)
|
||||
#error "Thermistor 66 requires HEATER_0_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(1)
|
||||
#error "Thermistor 66 requires HEATER_1_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(2)
|
||||
#error "Thermistor 66 requires HEATER_2_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(3)
|
||||
#error "Thermistor 66 requires HEATER_3_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(4)
|
||||
#error "Thermistor 66 requires HEATER_4_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(5)
|
||||
#error "Thermistor 66 requires HEATER_5_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(6)
|
||||
#error "Thermistor 66 requires HEATER_6_MINTEMP > 20."
|
||||
#elif _BAD_MINTEMP(7)
|
||||
#error "Thermistor 66 requires HEATER_7_MINTEMP > 20."
|
||||
#endif
|
||||
#if MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED < 5
|
||||
#error "Thermistor 66 requires MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED ≥ 5."
|
||||
#elif MILLISECONDS_PREHEAT_TIME < 15000
|
||||
#error "Thermistor 66 requires MILLISECONDS_PREHEAT_TIME ≥ 15000, but 30000 or higher is recommended."
|
||||
#endif
|
||||
#undef _BAD_MINTEMP
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Required MAX31865 settings
|
||||
*/
|
||||
@@ -2271,12 +2389,19 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "MAX31865_SENSOR_OHMS_1 and MAX31865_CALIBRATION_OHMS_1 must be set if TEMP_SENSOR_1/TEMP_SENSOR_REDUNDANT is MAX31865."
|
||||
#endif
|
||||
#endif
|
||||
#if TEMP_SENSOR_2_IS_MAX31865 || (TEMP_SENSOR_REDUNDANT_IS_MAX31865 && REDUNDANT_TEMP_MATCH(SOURCE, E2))
|
||||
#if !defined(MAX31865_SENSOR_WIRES_2) || !WITHIN(MAX31865_SENSOR_WIRES_2, 2, 4)
|
||||
#error "MAX31865_SENSOR_WIRES_2 must be defined as an integer between 2 and 4."
|
||||
#elif !defined(MAX31865_SENSOR_OHMS_2) || !defined(MAX31865_CALIBRATION_OHMS_2)
|
||||
#error "MAX31865_SENSOR_OHMS_2 and MAX31865_CALIBRATION_OHMS_2 must be set if TEMP_SENSOR_2/TEMP_SENSOR_REDUNDANT is MAX31865."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Redundant temperature sensor config
|
||||
*/
|
||||
#if HAS_TEMP_REDUNDANT
|
||||
#if !defined(TEMP_SENSOR_REDUNDANT_SOURCE)
|
||||
#ifndef TEMP_SENSOR_REDUNDANT_SOURCE
|
||||
#error "TEMP_SENSOR_REDUNDANT requires TEMP_SENSOR_REDUNDANT_SOURCE."
|
||||
#elif !defined(TEMP_SENSOR_REDUNDANT_TARGET)
|
||||
#error "TEMP_SENSOR_REDUNDANT requires TEMP_SENSOR_REDUNDANT_TARGET."
|
||||
@@ -2577,7 +2702,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#define _PLUG_UNUSED_TEST(A,P) (DISABLED(USE_##P##MIN_PLUG, USE_##P##MAX_PLUG) \
|
||||
&& !(ENABLED(A##_DUAL_ENDSTOPS) && WITHIN(A##2_USE_ENDSTOP, _##P##MAX_, _##P##MIN_)) \
|
||||
&& !(ENABLED(A##_MULTI_ENDSTOPS) && WITHIN(A##2_USE_ENDSTOP, _##P##MAX_, _##P##MIN_)) )
|
||||
#define _AXIS_PLUG_UNUSED_TEST(A) (1 NUM_AXIS_GANG(&& _PLUG_UNUSED_TEST(A,X), && _PLUG_UNUSED_TEST(A,Y), && _PLUG_UNUSED_TEST(A,Z), \
|
||||
#define _AXIS_PLUG_UNUSED_TEST(A) (HAS_##A##_A NUM_AXIS_GANG(&& _PLUG_UNUSED_TEST(A,X), && _PLUG_UNUSED_TEST(A,Y), && _PLUG_UNUSED_TEST(A,Z), \
|
||||
&& _PLUG_UNUSED_TEST(A,I), && _PLUG_UNUSED_TEST(A,J), && _PLUG_UNUSED_TEST(A,K), \
|
||||
&& _PLUG_UNUSED_TEST(A,U), && _PLUG_UNUSED_TEST(A,V), && _PLUG_UNUSED_TEST(A,W) ) )
|
||||
|
||||
@@ -2592,22 +2717,22 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if _AXIS_PLUG_UNUSED_TEST(Z)
|
||||
#error "You must enable USE_ZMIN_PLUG or USE_ZMAX_PLUG."
|
||||
#endif
|
||||
#if HAS_I_AXIS && _AXIS_PLUG_UNUSED_TEST(I)
|
||||
#if _AXIS_PLUG_UNUSED_TEST(I)
|
||||
#error "You must enable USE_IMIN_PLUG or USE_IMAX_PLUG."
|
||||
#endif
|
||||
#if HAS_J_AXIS && _AXIS_PLUG_UNUSED_TEST(J)
|
||||
#if _AXIS_PLUG_UNUSED_TEST(J)
|
||||
#error "You must enable USE_JMIN_PLUG or USE_JMAX_PLUG."
|
||||
#endif
|
||||
#if HAS_K_AXIS && _AXIS_PLUG_UNUSED_TEST(K)
|
||||
#if _AXIS_PLUG_UNUSED_TEST(K)
|
||||
#error "You must enable USE_KMIN_PLUG or USE_KMAX_PLUG."
|
||||
#endif
|
||||
#if HAS_U_AXIS && _AXIS_PLUG_UNUSED_TEST(U)
|
||||
#if _AXIS_PLUG_UNUSED_TEST(U)
|
||||
#error "You must enable USE_UMIN_PLUG or USE_UMAX_PLUG."
|
||||
#endif
|
||||
#if HAS_V_AXIS && _AXIS_PLUG_UNUSED_TEST(V)
|
||||
#if _AXIS_PLUG_UNUSED_TEST(V)
|
||||
#error "You must enable USE_VMIN_PLUG or USE_VMAX_PLUG."
|
||||
#endif
|
||||
#if HAS_W_AXIS && _AXIS_PLUG_UNUSED_TEST(W)
|
||||
#if _AXIS_PLUG_UNUSED_TEST(W)
|
||||
#error "You must enable USE_WMIN_PLUG or USE_WMAX_PLUG."
|
||||
#endif
|
||||
|
||||
@@ -2621,29 +2746,29 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "Enable USE_YMIN_PLUG when homing Y to MIN."
|
||||
#elif Y_HOME_TO_MAX && DISABLED(USE_YMAX_PLUG)
|
||||
#error "Enable USE_YMAX_PLUG when homing Y to MAX."
|
||||
#elif HAS_I_AXIS && I_HOME_TO_MIN && DISABLED(USE_IMIN_PLUG)
|
||||
#elif I_HOME_TO_MIN && DISABLED(USE_IMIN_PLUG)
|
||||
#error "Enable USE_IMIN_PLUG when homing I to MIN."
|
||||
#elif HAS_I_AXIS && I_HOME_TO_MAX && DISABLED(USE_IMAX_PLUG)
|
||||
#elif I_HOME_TO_MAX && DISABLED(USE_IMAX_PLUG)
|
||||
#error "Enable USE_IMAX_PLUG when homing I to MAX."
|
||||
#elif HAS_J_AXIS && J_HOME_TO_MIN && DISABLED(USE_JMIN_PLUG)
|
||||
#elif J_HOME_TO_MIN && DISABLED(USE_JMIN_PLUG)
|
||||
#error "Enable USE_JMIN_PLUG when homing J to MIN."
|
||||
#elif HAS_J_AXIS && J_HOME_TO_MAX && DISABLED(USE_JMAX_PLUG)
|
||||
#elif J_HOME_TO_MAX && DISABLED(USE_JMAX_PLUG)
|
||||
#error "Enable USE_JMAX_PLUG when homing J to MAX."
|
||||
#elif HAS_K_AXIS && K_HOME_TO_MIN && DISABLED(USE_KMIN_PLUG)
|
||||
#elif K_HOME_TO_MIN && DISABLED(USE_KMIN_PLUG)
|
||||
#error "Enable USE_KMIN_PLUG when homing K to MIN."
|
||||
#elif HAS_K_AXIS && K_HOME_TO_MAX && DISABLED(USE_KMAX_PLUG)
|
||||
#elif K_HOME_TO_MAX && DISABLED(USE_KMAX_PLUG)
|
||||
#error "Enable USE_KMAX_PLUG when homing K to MAX."
|
||||
#elif HAS_U_AXIS && U_HOME_TO_MIN && DISABLED(USE_UMIN_PLUG)
|
||||
#elif U_HOME_TO_MIN && DISABLED(USE_UMIN_PLUG)
|
||||
#error "Enable USE_UMIN_PLUG when homing U to MIN."
|
||||
#elif HAS_U_AXIS && U_HOME_TO_MAX && DISABLED(USE_UMAX_PLUG)
|
||||
#elif U_HOME_TO_MAX && DISABLED(USE_UMAX_PLUG)
|
||||
#error "Enable USE_UMAX_PLUG when homing U to MAX."
|
||||
#elif HAS_V_AXIS && V_HOME_TO_MIN && DISABLED(USE_VMIN_PLUG)
|
||||
#elif V_HOME_TO_MIN && DISABLED(USE_VMIN_PLUG)
|
||||
#error "Enable USE_VMIN_PLUG when homing V to MIN."
|
||||
#elif HAS_V_AXIS && V_HOME_TO_MAX && DISABLED(USE_VMAX_PLUG)
|
||||
#elif V_HOME_TO_MAX && DISABLED(USE_VMAX_PLUG)
|
||||
#error "Enable USE_VMAX_PLUG when homing V to MAX."
|
||||
#elif HAS_W_AXIS && W_HOME_TO_MIN && DISABLED(USE_WMIN_PLUG)
|
||||
#elif W_HOME_TO_MIN && DISABLED(USE_WMIN_PLUG)
|
||||
#error "Enable USE_WMIN_PLUG when homing W to MIN."
|
||||
#elif HAS_W_AXIS && W_HOME_TO_MAX && DISABLED(USE_WMAX_PLUG)
|
||||
#elif W_HOME_TO_MAX && DISABLED(USE_WMAX_PLUG)
|
||||
#error "Enable USE_WMAX_PLUG when homing W to MAX."
|
||||
#endif
|
||||
#endif
|
||||
@@ -2984,7 +3109,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#endif
|
||||
|
||||
#if ENABLED(ANYCUBIC_LCD_CHIRON)
|
||||
#if !defined(BEEPER_PIN)
|
||||
#ifndef BEEPER_PIN
|
||||
#error "ANYCUBIC_LCD_CHIRON requires BEEPER_PIN"
|
||||
#elif DISABLED(SDSUPPORT)
|
||||
#error "ANYCUBIC_LCD_CHIRON requires SDSUPPORT"
|
||||
@@ -3030,11 +3155,11 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if LCD_BACKLIGHT_TIMEOUT
|
||||
#if LCD_BACKLIGHT_TIMEOUT_MINS
|
||||
#if !HAS_ENCODER_ACTION
|
||||
#error "LCD_BACKLIGHT_TIMEOUT requires an LCD with encoder or keypad."
|
||||
#error "LCD_BACKLIGHT_TIMEOUT_MINS requires an LCD with encoder or keypad."
|
||||
#elif !PIN_EXISTS(LCD_BACKLIGHT)
|
||||
#error "LCD_BACKLIGHT_TIMEOUT requires LCD_BACKLIGHT_PIN."
|
||||
#error "LCD_BACKLIGHT_TIMEOUT_MINS requires LCD_BACKLIGHT_PIN."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -3042,7 +3167,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Display Sleep is not supported by these common displays
|
||||
*/
|
||||
#if HAS_DISPLAY_SLEEP
|
||||
#if ANY(IS_U8GLIB_LM6059_AF, IS_U8GLIB_ST7565_64128, REPRAPWORLD_GRAPHICAL_LCD, FYSETC_MINI, ENDER2_STOCKDISPLAY, MINIPANEL)
|
||||
#if ANY(IS_U8GLIB_LM6059_AF, IS_U8GLIB_ST7565_64128, REPRAPWORLD_GRAPHICAL_LCD, FYSETC_MINI_12864, CR10_STOCKDISPLAY, MINIPANEL)
|
||||
#error "DISPLAY_SLEEP_MINUTES is not supported by your display."
|
||||
#elif !WITHIN(DISPLAY_SLEEP_MINUTES, 0, 255)
|
||||
#error "DISPLAY_SLEEP_MINUTES must be between 0 and 255."
|
||||
@@ -3501,8 +3626,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#error "SENSORLESS_HOMING on DELTA currently requires STEALTHCHOP_XY and STEALTHCHOP_Z."
|
||||
#elif ENDSTOP_NOISE_THRESHOLD
|
||||
#error "SENSORLESS_HOMING is incompatible with ENDSTOP_NOISE_THRESHOLD."
|
||||
#elif !(X_SENSORLESS || Y_SENSORLESS || Z_SENSORLESS)
|
||||
#error "SENSORLESS_HOMING requires a TMC stepper driver with StallGuard on X, Y, or Z axes."
|
||||
#elif !(X_SENSORLESS || Y_SENSORLESS || Z_SENSORLESS || I_SENSORLESS || J_SENSORLESS || K_SENSORLESS || U_SENSORLESS || V_SENSORLESS || W_SENSORLESS)
|
||||
#error "SENSORLESS_HOMING requires a TMC stepper driver with StallGuard on X, Y, Z, I, J, K, U, V, or W axes."
|
||||
#endif
|
||||
|
||||
#undef X_ENDSTOP_INVERTING
|
||||
@@ -3708,6 +3833,10 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
||||
#error "LED_CONTROL_MENU requires an LCD controller that implements the menu."
|
||||
#endif
|
||||
|
||||
#if ENABLED(CUSTOM_MENU_MAIN) && NONE(HAS_MARLINUI_MENU, TOUCH_UI_FTDI_EVE, TFT_LVGL_UI)
|
||||
#error "CUSTOM_MENU_MAIN requires an LCD controller that implements the menu."
|
||||
#endif
|
||||
|
||||
#if ENABLED(CASE_LIGHT_USE_NEOPIXEL) && DISABLED(NEOPIXEL_LED)
|
||||
#error "CASE_LIGHT_USE_NEOPIXEL requires NEOPIXEL_LED."
|
||||
#endif
|
||||
@@ -3989,10 +4118,6 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
||||
#error "COOLANT_FLOOD requires COOLANT_FLOOD_PIN to be defined."
|
||||
#endif
|
||||
|
||||
#if NONE(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, IS_DWIN_MARLINUI) && ENABLED(PRINT_PROGRESS_SHOW_DECIMALS)
|
||||
#error "PRINT_PROGRESS_SHOW_DECIMALS currently requires a Graphical LCD."
|
||||
#endif
|
||||
|
||||
#if HAS_ADC_BUTTONS && defined(ADC_BUTTON_DEBOUNCE_DELAY) && ADC_BUTTON_DEBOUNCE_DELAY < 16
|
||||
#error "ADC_BUTTON_DEBOUNCE_DELAY must be greater than 16."
|
||||
#endif
|
||||
@@ -4173,11 +4298,6 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Misc. Cleanup
|
||||
#undef _TEST_PWM
|
||||
#undef _NUM_AXES_STR
|
||||
#undef _LOGICAL_AXES_STR
|
||||
|
||||
// JTAG support in the HAL
|
||||
#if ENABLED(DISABLE_DEBUG) && !defined(JTAGSWD_DISABLE)
|
||||
#error "DISABLE_DEBUG is not supported for the selected MCU/Board."
|
||||
@@ -4189,3 +4309,36 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
||||
#if ENABLED(XFER_BUILD) && !BOTH(BINARY_FILE_TRANSFER, CUSTOM_FIRMWARE_UPLOAD)
|
||||
#error "BINARY_FILE_TRANSFER and CUSTOM_FIRMWARE_UPLOAD are required for custom upload."
|
||||
#endif
|
||||
|
||||
// Check requirements for Input Shaping
|
||||
#if HAS_SHAPING && defined(__AVR__)
|
||||
#ifdef SHAPING_MIN_FREQ
|
||||
static_assert((SHAPING_MIN_FREQ) > 0, "SHAPING_MIN_FREQ must be > 0.");
|
||||
#else
|
||||
TERN_(INPUT_SHAPING_X, static_assert((SHAPING_FREQ_X) > 0, "SHAPING_FREQ_X must be > 0 or SHAPING_MIN_FREQ must be set."));
|
||||
TERN_(INPUT_SHAPING_Y, static_assert((SHAPING_FREQ_Y) > 0, "SHAPING_FREQ_Y must be > 0 or SHAPING_MIN_FREQ must be set."));
|
||||
#endif
|
||||
#if ENABLED(INPUT_SHAPING_X)
|
||||
#if F_CPU > 16000000
|
||||
static_assert((SHAPING_FREQ_X) == 0 || (SHAPING_FREQ_X) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_X is below the minimum (20) for AVR 20MHz.");
|
||||
#else
|
||||
static_assert((SHAPING_FREQ_X) == 0 || (SHAPING_FREQ_X) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_X is below the minimum (16) for AVR 16MHz.");
|
||||
#endif
|
||||
#endif
|
||||
#if ENABLED(INPUT_SHAPING_Y)
|
||||
#if F_CPU > 16000000
|
||||
static_assert((SHAPING_FREQ_Y) == 0 || (SHAPING_FREQ_Y) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_Y is below the minimum (20) for AVR 20MHz.");
|
||||
#else
|
||||
static_assert((SHAPING_FREQ_Y) == 0 || (SHAPING_FREQ_Y) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_Y is below the minimum (16) for AVR 16MHz.");
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if BOTH(HAS_SHAPING, DIRECT_STEPPING)
|
||||
#error "INPUT_SHAPING_[XY] cannot currently be used with DIRECT_STEPPING."
|
||||
#endif
|
||||
|
||||
// Misc. Cleanup
|
||||
#undef _TEST_PWM
|
||||
#undef _NUM_AXES_STR
|
||||
#undef _LOGICAL_AXES_STR
|
||||
|
@@ -25,7 +25,7 @@
|
||||
* Release version. Leave the Marlin version or apply a custom scheme.
|
||||
*/
|
||||
#ifndef SHORT_BUILD_VERSION
|
||||
#define SHORT_BUILD_VERSION "2.1.1"
|
||||
#define SHORT_BUILD_VERSION "2.1.2"
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -54,7 +54,7 @@
|
||||
* to alert users to major changes.
|
||||
*/
|
||||
|
||||
#define MARLIN_HEX_VERSION 02010100
|
||||
#define MARLIN_HEX_VERSION 02010200
|
||||
#ifndef REQUIRED_CONFIGURATION_H_VERSION
|
||||
#define REQUIRED_CONFIGURATION_H_VERSION MARLIN_HEX_VERSION
|
||||
#endif
|
||||
|
@@ -35,6 +35,10 @@
|
||||
#warning "WARNING! Disable MARLIN_DEV_MODE for the final build!"
|
||||
#endif
|
||||
|
||||
#if ENABLED(LA_DEBUG)
|
||||
#warning "WARNING! Disable LA_DEBUG for the final build!"
|
||||
#endif
|
||||
|
||||
#if NUM_AXES_WARNING
|
||||
#warning "Note: NUM_AXES is now based on the *_DRIVER_TYPE settings so you can remove NUM_AXES from Configuration.h."
|
||||
#endif
|
||||
@@ -707,9 +711,8 @@
|
||||
#warning "Don't forget to update your TFT settings in Configuration.h."
|
||||
#endif
|
||||
|
||||
// Ender 3 Pro (but, apparently all Creality 4.2.2 boards)
|
||||
#if ENABLED(EMIT_CREALITY_422_WARNING) || MB(CREALITY_V4)
|
||||
#warning "Creality 4.2.2 boards come with a variety of stepper drivers. Check the board label and set the correct *_DRIVER_TYPE! (C=HR4988, E=A4988, A=TMC2208, B=TMC2209, H=TMC2225)."
|
||||
#if ENABLED(EMIT_CREALITY_422_WARNING) && DISABLED(NO_CREALITY_422_DRIVER_WARNING)
|
||||
#warning "Creality 4.2.2 boards come with a variety of stepper drivers. Check the board label and set the correct *_DRIVER_TYPE! (C=HR4988, E=A4988, A=TMC2208, B=TMC2209, H=TMC2225). (Define NO_CREALITY_422_DRIVER_WARNING to suppress this warning.)"
|
||||
#endif
|
||||
|
||||
#if PRINTCOUNTER_SYNC
|
||||
|
Reference in New Issue
Block a user