Commit bd2c245c authored by Simone Primarosa's avatar Simone Primarosa

Update 4.2.x

parent 305e2c45
//============================================================================
//==================== Change PIN width Configurator Tool ====================
//============================================================================
#ifndef CONFIGURATION_PINS_H
#define CONFIGURATION_PINS_H
//=========================== BASIC ==============================
//X axis pins
#define X_STEP_PIN ORIG_X_STEP_PIN
......@@ -59,10 +60,73 @@
//FAN pin
#define FAN_PIN ORIG_FAN_PIN
//=========================== START YOUR CHANGE ==============================
// Example for change X_MIN_PIN
// #undef X_MIN_PIN
// #define X_MIN_PIN newpin
//============================================================================
//=========================== FEATURE ==============================
#if ENABLED(MKR4)
#if (EXTRUDERS == 2) && (DRIVER_EXTRUDERS == 1) // Use this for one driver and two extruder
#define E0E1_CHOICE_PIN 5
#elif (EXTRUDERS == 3) && (DRIVER_EXTRUDERS == 1) // Use this for one driver and 3 extruder
#define E0E1_CHOICE_PIN 5
#define E0E2_CHOICE_PIN 6
#elif (EXTRUDERS == 4) && (DRIVER_EXTRUDERS == 1) // Use this for one driver and 4 extruder
#define E0E1_CHOICE_PIN 4
#define E0E2_CHOICE_PIN 5
#define E0E3_CHOICE_PIN 6
#elif (EXTRUDERS == 3) && (DRIVER_EXTRUDERS == 2) // Use this for two driver and 3 extruder
#define E0E2_CHOICE_PIN 5
#elif (EXTRUDERS == 4) && (DRIVER_EXTRUDERS == 2) // Use this for two driver and 4 extruder
#define E0E2_CHOICE_PIN 5
#define E1E3_CHOICE_PIN 6
#endif //EXTRUDERS
#endif //MKR4
#if ENABLED(NPR2)
#define E_MIN_PIN -1
#endif
#if ENABLED(LASERBEAM)
#define LASER_PWR_PIN 41
#define LASER_TTL_PIN 42
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FILRUNOUT_PIN -1
#endif
#if ENABLED(FILAMENT_SENSOR)
#define FILWIDTH_PIN -1 // ANALOG NUMBERING
#endif
#if ENABLED(POWER_CONSUMPTION)
#define POWER_CONSUMPTION_PIN -1 // ANALOG NUMBERING
#endif
#if ENABLED(PHOTOGRAPH)
#define PHOTOGRAPH_PIN -1
#endif
#if ENABLED(CHDK)
#define CHDK_PIN -1
#endif
#if ENABLED(CONTROLLERFAN)
#define CONTROLLERFAN_PIN -1
#endif
#if ENABLED(EXTRUDER_AUTO_FAN)
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#endif
#if ENABLED(X2_IS_TMC)
#define X2_ENABLE_PIN -1
#define X2_STEP_PIN -1
#define X2_DIR_PIN -1
#endif
//============================================================================
#endif
\ No newline at end of file
......@@ -38,22 +38,18 @@
// Uncomment to use Morgan scara mode
#define SCARA_SEGMENTS_PER_SECOND 200 // If movement is choppy try lowering this value
// Length of inner support arm
#define Linkage_1 150 //mm Preprocessor cannot handle decimal point...
#define LINKAGE_1 150 //mm Preprocessor cannot handle decimal point...
// Length of outer support arm Measure arm lengths precisely and enter
#define Linkage_2 150 //mm
#define LINKAGE_2 150 //mm
// SCARA tower offset (position of Tower relative to bed zero position)
// This needs to be reasonably accurate as it defines the printbed position in the SCARA space.
#define SCARA_offset_x 100 //mm
#define SCARA_offset_y -56 //mm
#define SCARA_OFFSET_X 100 //mm
#define SCARA_OFFSET_Y -56 //mm
#define SCARA_RAD2DEG 57.2957795 // to convert RAD to degrees
#define THETA_HOMING_OFFSET 0 //calculatated from Calibration Guide and command M360 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073
#define PSI_HOMING_OFFSET 0 // calculatated from Calibration Guide and command M364 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073
//some helper variables to make kinematics faster
#define L1_2 sq(Linkage_1) // do not change
#define L2_2 sq(Linkage_2) // do not change
/*****************************************************************************************/
......
......@@ -7498,18 +7498,18 @@ void plan_arc(
//ECHO_SMV(DB, "f_delta x=", f_scara[X_AXIS]);
//ECHO_MV(" y=", f_scara[Y_AXIS]);
x_sin = sin(f_scara[X_AXIS]/SCARA_RAD2DEG) * Linkage_1;
x_cos = cos(f_scara[X_AXIS]/SCARA_RAD2DEG) * Linkage_1;
y_sin = sin(f_scara[Y_AXIS]/SCARA_RAD2DEG) * Linkage_2;
y_cos = cos(f_scara[Y_AXIS]/SCARA_RAD2DEG) * Linkage_2;
x_sin = sin(f_scara[X_AXIS]/SCARA_RAD2DEG) * LINKAGE_1;
x_cos = cos(f_scara[X_AXIS]/SCARA_RAD2DEG) * LINKAGE_1;
y_sin = sin(f_scara[Y_AXIS]/SCARA_RAD2DEG) * LINKAGE_2;
y_cos = cos(f_scara[Y_AXIS]/SCARA_RAD2DEG) * LINKAGE_2;
//ECHO_MV(" x_sin=", x_sin);
//ECHO_MV(" x_cos=", x_cos);
//ECHO_MV(" y_sin=", y_sin);
//ECHO_MV(" y_cos=", y_cos);
delta[X_AXIS] = x_cos + y_cos + SCARA_offset_x; //theta
delta[Y_AXIS] = x_sin + y_sin + SCARA_offset_y; //theta+phi
delta[X_AXIS] = x_cos + y_cos + SCARA_OFFSET_X; //theta
delta[Y_AXIS] = x_sin + y_sin + SCARA_OFFSET_Y; //theta+phi
//ECHO_MV(" delta[X_AXIS]=", delta[X_AXIS]);
//ECHO_EMV(" delta[Y_AXIS]=", delta[Y_AXIS]);
......@@ -7523,19 +7523,19 @@ void plan_arc(
float SCARA_pos[2];
static float SCARA_C2, SCARA_S2, SCARA_K1, SCARA_K2, SCARA_theta, SCARA_psi;
SCARA_pos[X_AXIS] = cartesian[X_AXIS] * axis_scaling[X_AXIS] - SCARA_offset_x; //Translate SCARA to standard X Y
SCARA_pos[Y_AXIS] = cartesian[Y_AXIS] * axis_scaling[Y_AXIS] - SCARA_offset_y; // With scaling factor.
SCARA_pos[X_AXIS] = cartesian[X_AXIS] * axis_scaling[X_AXIS] - SCARA_OFFSET_X; //Translate SCARA to standard X Y
SCARA_pos[Y_AXIS] = cartesian[Y_AXIS] * axis_scaling[Y_AXIS] - SCARA_OFFSET_Y; // With scaling factor.
#if (Linkage_1 == Linkage_2)
SCARA_C2 = ( ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) ) / (2 * (float)L1_2) ) - 1;
#if (LINKAGE_1 == LINKAGE_2)
SCARA_C2 = ( ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) ) / (2 * (float)sq(LINKAGE_1)) ) - 1;
#else
SCARA_C2 = ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) - (float)L1_2 - (float)L2_2 ) / 45000;
SCARA_C2 = ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) - (float)sq(LINKAGE_1) - (float)sq(LINKAGE_2) ) / 45000;
#endif
SCARA_S2 = sqrt( 1 - sq(SCARA_C2) );
SCARA_K1 = Linkage_1 + Linkage_2 * SCARA_C2;
SCARA_K2 = Linkage_2 * SCARA_S2;
SCARA_K1 = LINKAGE_1 + LINKAGE_2 * SCARA_C2;
SCARA_K2 = LINKAGE_2 * SCARA_S2;
SCARA_theta = ( atan2(SCARA_pos[X_AXIS],SCARA_pos[Y_AXIS])-atan2(SCARA_K1, SCARA_K2) ) * -1;
SCARA_psi = atan2(SCARA_S2,SCARA_C2);
......
......@@ -623,7 +623,7 @@
#define HAS_E0E4 (PIN_EXISTS(E0E4_CHOICE))
#define HAS_E1E3 (PIN_EXISTS(E1E3_CHOICE))
#define HAS_BTN_BACK (PIN_EXISTS(BTN_BACK))
#define HAS_POWER_SWITCH (POWER_SUPPLY > 0 && PIN_EXISTS(PS_ON))
#define HAS_DIGIPOTSS (DIGIPOTSS_PIN >= 0)
......
......@@ -10,7 +10,7 @@
* Dual Stepper Drivers
*/
#if ENABLED(Z_DUAL_STEPPER_DRIVERS) && ENABLED(Y_DUAL_STEPPER_DRIVERS)
#error You cannot have dual stepper drivers for both Y and Z.
#error CONFLICT ERROR: CONFLICT ERROR: You cannot have dual stepper drivers for both Y and Z.
#endif
/**
......@@ -18,16 +18,16 @@
*/
#if ENABLED(LCD_PROGRESS_BAR)
#if DISABLED(SDSUPPORT)
#error LCD_PROGRESS_BAR requires SDSUPPORT.
#error CONFLICT ERROR: LCD_PROGRESS_BAR requires SDSUPPORT.
#endif
#if ENABLED(DOGLCD)
#error LCD_PROGRESS_BAR does not apply to graphical displays.
#error CONFLICT ERROR: LCD_PROGRESS_BAR does not apply to graphical displays.
#endif
#if ENABLED(FILAMENT_LCD_DISPLAY)
#error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
#error CONFLICT ERROR: LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible.
#endif
#if ENABLED(POWER_CONSUMPTION_LCD_DISPLAY)
#error LCD_PROGRESS_BAR and POWER_CONSUMPTION_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
#error CONFLICT ERROR: LCD_PROGRESS_BAR and POWER_CONSUMPTION_LCD_DISPLAY are not fully compatible.
#endif
#endif
......@@ -36,42 +36,35 @@
*/
#if ENABLED(BABYSTEPPING)
#if MECH(COREXY) && ENABLED(BABYSTEP_XY)
#error BABYSTEPPING only implemented for Z axis on CoreXY.
#error CONFLICT ERROR: BABYSTEPPING only implemented for Z axis on CoreXY.
#endif
#if MECH(SCARA)
#error BABYSTEPPING is not implemented for SCARA yet.
#error CONFLICT ERROR: BABYSTEPPING is not implemented for SCARA yet.
#endif
#if MECH(DELTA) && ENABLED(BABYSTEP_XY)
#error BABYSTEPPING only implemented for Z axis on deltabots.
#error CONFLICT ERROR: BABYSTEPPING only implemented for Z axis on deltabots.
#endif
#endif
/**
* Filament Change with Extruder Runout Prevention
*/
#if ENABLED(FILAMENTCHANGEENABLE) && ENABLED(EXTRUDER_RUNOUT_PREVENT)
#error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE.
#endif
/**
* Extruder Runout Prevention
*/
#if ENABLED(EXTRUDER_RUNOUT_PREVENT) && EXTRUDER_RUNOUT_MINTEMP < EXTRUDE_MINTEMP
#error EXTRUDER_RUNOUT_MINTEMP have to be greater than EXTRUDE_MINTEMP
#error CONFLICT ERROR: EXTRUDER_RUNOUT_MINTEMP have to be greater than EXTRUDE_MINTEMP
#endif
/**
* Idle oozing prevent with Extruder Runout Prevention
*/
#if ENABLED(EXTRUDER_RUNOUT_PREVENT) && ENABLED(IDLE_OOZING_PREVENT)
#error EXTRUDER_RUNOUT_PREVENT and IDLE_OOZING_PREVENT are incopatible. Please comment one of them.
#error CONFLICT ERROR: EXTRUDER_RUNOUT_PREVENT and IDLE_OOZING_PREVENT are incopatible. Please comment one of them.
#endif
/**
* Idle oozing prevent
*/
#if ENABLED(IDLE_OOZING_PREVENT) && IDLE_OOZING_MINTEMP < EXTRUDE_MINTEMP
#error IDLE_OOZING_MINTEMP have to be greater than EXTRUDE_MINTEMP
#error CONFLICT ERROR: IDLE_OOZING_MINTEMP have to be greater than EXTRUDE_MINTEMP
#endif
/**
......@@ -80,11 +73,11 @@
#if EXTRUDERS > 1
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
#error EXTRUDERS must be 1 with TEMP_SENSOR_1_AS_REDUNDANT.
#error CONFLICT ERROR: EXTRUDERS must be 1 with TEMP_SENSOR_1_AS_REDUNDANT.
#endif
#if ENABLED(HEATERS_PARALLEL)
#error EXTRUDERS must be 1 with HEATERS_PARALLEL.
#error CONFLICT ERROR: EXTRUDERS must be 1 with HEATERS_PARALLEL.
#endif
#endif // EXTRUDERS > 1
......@@ -93,16 +86,16 @@
* Limited number of servos
*/
#if NUM_SERVOS > 4
#error The maximum number of SERVOS in Marlin is 4.
#error CONFLICT ERROR: The maximum number of SERVOS in Marlin is 4.
#endif
#if ENABLED(NUM_SERVOS) && NUM_SERVOS > 0
#if X_ENDSTOP_SERVO_NR >= 0 || Y_ENDSTOP_SERVO_NR >= 0 || Z_ENDSTOP_SERVO_NR >= 0
#if X_ENDSTOP_SERVO_NR >= NUM_SERVOS
#error X_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
#error CONFLICT ERROR: X_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
#elif Y_ENDSTOP_SERVO_NR >= NUM_SERVOS
#error Y_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
#error CONFLICT ERROR: Y_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
#elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
#error Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
#error CONFLICT ERROR: Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
#endif
#endif
#endif
......@@ -111,14 +104,14 @@
* Servo deactivation depends on servo endstops
*/
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && HASNT(SERVO_ENDSTOPS)
#error At least one of the ?_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE.
#error CONFLICT ERROR: At least one of the ?_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE.
#endif
/**
* Required LCD language
*/
#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC)
#error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
#error CONFLICT ERROR: You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
#endif
/**
......@@ -132,9 +125,9 @@
#if Z_MIN_PIN == -1
#if Z_PROBE_PIN == -1 || DISABLED(Z_PROBE_ENDSTOP) // It's possible for someone to set a pin for the Z Probe, but not enable it.
#if ENABLED(Z_PROBE_REPEATABILITY_TEST)
#error You must have a Z_MIN or Z_PROBE endstop to enable Z_PROBE_REPEATABILITY_TEST.
#error CONFLICT ERROR: You must have a Z_MIN or Z_PROBE endstop to enable Z_PROBE_REPEATABILITY_TEST.
#else
#error AUTO_BED_LEVELING_FEATURE requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_PROBE_PIN must point to a valid hardware pin.
#error CONFLICT ERROR: AUTO_BED_LEVELING_FEATURE requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_PROBE_PIN must point to a valid hardware pin.
#endif
#endif
#endif
......@@ -144,24 +137,24 @@
*/
#if ENABLED(Z_PROBE_ENDSTOP)
#if DISABLED(Z_PROBE_PIN)
#error You must have a Z_PROBE_PIN defined in pins2tool.h file if you enable Z_PROBE_ENDSTOP.
#error CONFLICT ERROR: You must have a Z_PROBE_PIN defined in pins2tool.h file if you enable Z_PROBE_ENDSTOP.
#erro sistema pins2tool.h
#endif
#if Z_PROBE_PIN == -1
#error You must set Z_PROBE_PIN to a valid pin if you enable Z_PROBE_ENDSTOP.
#error CONFLICT ERROR: You must set Z_PROBE_PIN to a valid pin if you enable Z_PROBE_ENDSTOP.
#endif
// Forcing Servo definitions can break some hall effect sensor setups. Leaving these here for further comment.
// #if DISABLED(NUM_SERVOS)
// #error You must have NUM_SERVOS defined and there must be at least 1 configured to use Z_PROBE_ENDSTOP.
// #error CONFLICT ERROR: You must have NUM_SERVOS defined and there must be at least 1 configured to use Z_PROBE_ENDSTOP.
// #endif
// #if ENABLED(NUM_SERVOS) && NUM_SERVOS < 1
// #error You must have at least 1 servo defined for NUM_SERVOS to use Z_PROBE_ENDSTOP.
// #error CONFLICT ERROR: You must have at least 1 servo defined for NUM_SERVOS to use Z_PROBE_ENDSTOP.
// #endif
// #if Z_ENDSTOP_SERVO_NR < 0
// #error You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_PROBE_ENDSTOP.
// #error CONFLICT ERROR: You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_PROBE_ENDSTOP.
// #endif
// #if DISABLED(ERVO_ENDSTOP_ANGLES)
// #error You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_PROBE_ENDSTOP.
// #error CONFLICT ERROR: You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_PROBE_ENDSTOP.
// #endif
#endif
/**
......@@ -170,36 +163,36 @@
#if ENABLED(AUTO_BED_LEVELING_GRID)
// Be sure points are in the right order
#if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
#error LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION.
#error CONFLICT ERROR: LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION.
#elif FRONT_PROBE_BED_POSITION > BACK_PROBE_BED_POSITION
#error BACK_PROBE_BED_POSITION must be less than FRONT_PROBE_BED_POSITION.
#error CONFLICT ERROR: BACK_PROBE_BED_POSITION must be less than FRONT_PROBE_BED_POSITION.
#endif
// Make sure probing points are reachable
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
#error "The given LEFT_PROBE_BED_POSITION can't be reached by the probe."
#error CONFLICT ERROR: "The given LEFT_PROBE_BED_POSITION can't be reached by the probe."
#elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
#error "The given RIGHT_PROBE_BED_POSITION can't be reached by the probe."
#error CONFLICT ERROR: "The given RIGHT_PROBE_BED_POSITION can't be reached by the probe."
#elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
#error "The given FRONT_PROBE_BED_POSITION can't be reached by the probe."
#error CONFLICT ERROR: "The given FRONT_PROBE_BED_POSITION can't be reached by the probe."
#elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
#error "The given BACK_PROBE_BED_POSITION can't be reached by the probe."
#error CONFLICT ERROR: "The given BACK_PROBE_BED_POSITION can't be reached by the probe."
#endif
#else // !AUTO_BED_LEVELING_GRID
// Check the triangulation points
#if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_1_X can't be reached by the probe."
#error CONFLICT ERROR: "The given ABL_PROBE_PT_1_X can't be reached by the probe."
#elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_2_X can't be reached by the probe."
#error CONFLICT ERROR: "The given ABL_PROBE_PT_2_X can't be reached by the probe."
#elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_3_X can't be reached by the probe."
#error CONFLICT ERROR: "The given ABL_PROBE_PT_3_X can't be reached by the probe."
#elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_1_Y can't be reached by the probe."
#error CONFLICT ERROR: "The given ABL_PROBE_PT_1_Y can't be reached by the probe."
#elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_2_Y can't be reached by the probe."
#error CONFLICT ERROR: "The given ABL_PROBE_PT_2_Y can't be reached by the probe."
#elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_3_Y can't be reached by the probe."
#error CONFLICT ERROR: "The given ABL_PROBE_PT_3_Y can't be reached by the probe."
#endif
#endif // !AUTO_BED_LEVELING_GRID
......@@ -210,7 +203,7 @@
* ULTIPANEL encoder
*/
#if ENABLED(ULTIPANEL) && DISABLED(NEWPANEL) && DISABLED(SR_LCD_2W_NL) && DISABLED(SHIFT_CLK)
#error ULTIPANEL requires some kind of encoder.
#error CONFLICT ERROR: ULTIPANEL requires some kind of encoder.
#endif
/**
......@@ -218,10 +211,10 @@
*/
#if MECH(DELTA) && ENABLED(Z_PROBE_ENDSTOP)
#if DISABLED(Z_PROBE_PIN)
#error You must have a Z_PROBE_PIN defined in your pins2tool.h file if you enable Z_PROBE_ENDSTOP
#error CONFLICT ERROR: You must have a Z_PROBE_PIN defined in your pins2tool.h file if you enable Z_PROBE_ENDSTOP
#endif
#if Z_PROBE_PIN == -1
#error You must set Z_PROBE_PIN to a valid pin if you enable Z_PROBE_ENDSTOP
#error CONFLICT ERROR: You must set Z_PROBE_PIN to a valid pin if you enable Z_PROBE_ENDSTOP
#endif
#endif
......@@ -233,10 +226,10 @@
|| HASNT(X2_ENABLE) || HASNT(X2_STEP) || HASNT(X2_DIR) \
|| DISABLED(X2_HOME_POS) || DISABLED(X2_MIN_POS) || DISABLED(X2_MAX_POS) \
|| HASNT(X_MAX)
#error Missing or invalid definitions for DUAL_X_CARRIAGE mode.
#error CONFLICT ERROR: Missing or invalid definitions for DUAL_X_CARRIAGE mode.
#endif
#if X_HOME_DIR != -1 || X2_HOME_DIR != 1
#error Please use canonical x-carriage assignment.
#error CONFLICT ERROR: Please use canonical x-carriage assignment.
#endif
#endif // DUAL_X_CARRIAGE
......@@ -245,18 +238,18 @@
*/
#if HAS(AUTO_FAN) && HAS(FAN)
#if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN
#error You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN.
#error CONFLICT ERROR: You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN.
#elif EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN
#error You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN.
#error CONFLICT ERROR: You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN.
#elif EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN
#error You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN.
#error CONFLICT ERROR: You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN.
#elif EXTRUDER_3_AUTO_FAN_PIN == FAN_PIN
#error You cannot set EXTRUDER_3_AUTO_FAN_PIN equal to FAN_PIN.
#error CONFLICT ERROR: You cannot set EXTRUDER_3_AUTO_FAN_PIN equal to FAN_PIN.
#endif
#endif
#if HAS(FAN) && CONTROLLERFAN_PIN == FAN_PIN
#error You cannot set CONTROLLERFAN_PIN equal to FAN_PIN.
#error CONFLICT ERROR: You cannot set CONTROLLERFAN_PIN equal to FAN_PIN.
#endif
/**
......@@ -264,67 +257,67 @@
*/
#if HOTENDS > 3
#if HASNT(HEATER_3)
#error HEATER_3_PIN not defined for this board
#error CONFLICT ERROR: HEATER_3_PIN not defined for this board
#endif
#elif HOTENDS > 2
#if HASNT(HEATER_2)
#error HEATER_2_PIN not defined for this board
#error CONFLICT ERROR: HEATER_2_PIN not defined for this board
#endif
#elif HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
#if HASNT(HEATER_1)
#error HEATER_1_PIN not defined for this board
#error CONFLICT ERROR: HEATER_1_PIN not defined for this board
#endif
#elif HOTENDS > 0
#if HASNT(HEATER_0)
#error HEATER_0_PIN not defined for this board
#error CONFLICT ERROR: HEATER_0_PIN not defined for this board
#endif
#endif
#if DISABLED(SDSUPPORT) && ENABLED(SD_SETTINGS)
#error You have to enable SDSUPPORT to use SD_SETTINGS
#error CONFLICT ERROR: You have to enable SDSUPPORT to use SD_SETTINGS
#endif
/**
* Warnings for old configurations
*/
#if ENABLED(X_HOME_RETRACT_MM)
#error [XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM.
#error CONFLICT ERROR: [XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM.
#endif
#if WATCH_TEMP_PERIOD > 500
#error WATCH_TEMP_PERIOD now uses seconds instead of milliseconds.
#error CONFLICT ERROR: WATCH_TEMP_PERIOD now uses seconds instead of milliseconds.
#endif
#if DISABLED(THERMAL_PROTECTION_HOTENDS) && (ENABLED(WATCH_TEMP_PERIOD) || ENABLED(THERMAL_PROTECTION_PERIOD))
#error Thermal Runaway Protection for hotends must now be enabled with THERMAL_PROTECTION_HOTENDS.
#error CONFLICT ERROR: Thermal Runaway Protection for hotends must now be enabled with THERMAL_PROTECTION_HOTENDS.
#endif
#if DISABLED(THERMAL_PROTECTION_BED) && ENABLED(THERMAL_PROTECTION_BED_PERIOD)
#error Thermal Runaway Protection for the bed must now be enabled with THERMAL_PROTECTION_BED.
#error CONFLICT ERROR: Thermal Runaway Protection for the bed must now be enabled with THERMAL_PROTECTION_BED.
#endif
#if ENABLED(PROBE_SERVO_DEACTIVATION_DELAY)
#error PROBE_SERVO_DEACTIVATION_DELAY has been replaced with DEACTIVATE_SERVOS_AFTER_MOVE and SERVO_DEACTIVATION_DELAY.
#error CONFLICT ERROR: PROBE_SERVO_DEACTIVATION_DELAY has been replaced with DEACTIVATE_SERVOS_AFTER_MOVE and SERVO_DEACTIVATION_DELAY.
#endif
#if MECH(COREXZ) && ENABLED(Z_LATE_ENABLE)
#error "Z_LATE_ENABLE can't be used with COREXZ."
#error CONFLICT ERROR: "Z_LATE_ENABLE can't be used with COREXZ."
#endif
#if ENABLED(BEEPER)
#error BEEPER has been replaced with BEEPER_PIN. Please update your pins definitions.
#error CONFLICT ERROR: BEEPER has been replaced with BEEPER_PIN. Please update your pins definitions.
#endif
#if ENABLED(SDCARDDETECT)
#error SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions.
#error CONFLICT ERROR: SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions.
#endif
#if ENABLED(SDCARDDETECTINVERTED)
#error SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration.
#error CONFLICT ERROR: SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration.
#endif
#if ENABLED(POWER_CONSUMPTION) && !PIN_EXISTS(POWER_CONSUMPTION)
#error You have to set a valid POWER_CONSUMPTION_PIN in pins.h in order to use this feature.
#error CONFLICT ERROR: You have to set a valid POWER_CONSUMPTION_PIN in pins.h in order to use this feature.
#endif
#endif //SANITYCHECK_H
......@@ -257,6 +257,8 @@
#include "thermistortables.h"
#include "conditionals.h"
#include "sanitycheck.h"
#include "pins.h"
#include "dependencies.h"
#include "conflicts.h"
/***********************************************************************/
#endif //__CONFIGURATION_H
#ifndef CONDITIONALS_H
#define CONDITIONALS_H
#ifndef DEPENDENCY_H
#define DEPENDENCY_H
/*
* This configuration file contains defines that depend on configuration but are not editable.
*
* - Serial comunication type
* - Board type
* - Mechanism type
* - Thermistor type
* - Temperature limits
* - Extruders number
* - UI Language
*
* This file check if some essential options aren't been defined.
* This file is usefult to see dependency between features while developing.
*/
// Serial comunication
#if DISABLED(SERIAL_PORT)
#if !defined(SERIAL_PORT)
#error DEPENDENCY ERROR: Missing setting SERIAL_PORT
#endif
#if DISABLED(BAUDRATE)
#if !defined(BAUDRATE)
#error DEPENDENCY ERROR: Missing setting BAUDRATE
#endif
#if DISABLED(MACHINE_UUID)
#if !defined(MACHINE_UUID)
#error DEPENDENCY ERROR: Missing setting MACHINE_UUID
#endif
//board
#if DISABLED(MOTHERBOARD)
#if !defined(MOTHERBOARD)
#error DEPENDENCY ERROR: Missing setting MOTHERBOARD
#endif
//Mechanism
#if DISABLED(MEACHANISM)
#if !defined(MEACHANISM)
#error DEPENDENCY ERROR: Missing setting MECHANISM
#endif
//Power supply
#if DISABLED(POWER_SUPPLY)
#if !defined(POWER_SUPPLY)
#error DEPENDENCY ERROR: Missing setting POWER_SUPPLY
#endif
//Thermistor
#if DISABLED(TEMP_SENSOR_0)
#if !defined(TEMP_SENSOR_0)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_0
#endif
#if DISABLED(TEMP_SENSOR_1)
#if !defined(TEMP_SENSOR_1)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_1
#endif
#if DISABLED(TEMP_SENSOR_2)
#if !defined(TEMP_SENSOR_2)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_2
#endif
#if DISABLED(TEMP_SENSOR_3)
#if !defined(TEMP_SENSOR_3)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_3
#endif
#if DISABLED(TEMP_SENSOR_BED)
#if !defined(TEMP_SENSOR_BED)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_BED
#endif
#if (THERMISTORHEATER_0 == 998) || (THERMISTORHEATER_1 == 998) || (THERMISTORHEATER_2 == 998) || (THERMISTORHEATER_3 == 998) || (THERMISTORBED == 998) //User defined table
#if DISABLED(DUMMY_THERMISTOR_998_VALUE)
#if !defined(DUMMY_THERMISTOR_998_VALUE)
#error DEPENDENCY ERROR: Missing setting DUMMY_THERMISTOR_998_VALUE
#endif
#endif
......@@ -66,905 +58,1219 @@
/**
* Temperature defines
*/
#if ENABLED(TEMP_RESIDENCY_TIME)
#if DISABLED(TEMP_HYSTERESIS)
#if defined(TEMP_RESIDENCY_TIME)
#if !defined(TEMP_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting TEMP_HYSTERESIS
#endif
#if DISABLED(TEMP_WINDOW)
#if !defined(TEMP_WINDOW)
#error DEPENDENCY ERROR: Missing setting TEMP_WINDOW
#endif
#endif
#if TEMP_SENSOR_0 != 0
#if DISABLED(HEATER_0_MAXTEMP)
#if !defined(HEATER_0_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_0_MAXTEMP
#endif
#if DISABLED(HEATER_0_MINTEMP)
#if !defined(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_0_MINTEMP
#endif
#endif
#if TEMP_SENSOR_1 != 0
#if DISABLED(HEATER_1_MAXTEMP)
#if !defined(HEATER_1_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_1_MAXTEMP
#endif
#if DISABLED(HEATER_0_MINTEMP)
#if !defined(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_1_MINTEMP
#endif
#endif
#if TEMP_SENSOR_2 != 0
#if DISABLED(HEATER_2_MAXTEMP)
#if !defined(HEATER_2_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_2_MAXTEMP
#endif
#if DISABLED(HEATER_0_MINTEMP)
#if !defined(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_2_MINTEMP
#endif
#endif
#if TEMP_SENSOR_3 != 0
#if DISABLED(HEATER_3_MAXTEMP)
#if !defined(HEATER_3_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_3_MAXTEMP
#endif
#if DISABLED(HEATER_0_MINTEMP)
#if !defined(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_3_MINTEMP
#endif
#endif
#if TEMP_SENSOR_BED != 0
#if DISABLED(BED_MAXTEMP)
#if !defined(BED_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting BED_MAXTEMP
#endif
#if DISABLED(HEATER_0_MINTEMP)
#if !defined(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting BED_MINTEMP
#endif
#endif
#if DISABLED(PLA_PREHEAT_HOTEND_TEMP)
#if !defined(PLA_PREHEAT_HOTEND_TEMP)
#error DEPENDENCY ERROR: Missing setting PLA_PREHEAT_HOTEND_TEMP
#endif
#if DISABLED(PLA_PREHEAT_HPB_TEMP)
#if !defined(PLA_PREHEAT_HPB_TEMP)
#error DEPENDENCY ERROR: Missing setting PLA_PREHEAT_HPB_TEMP
#endif
#if DISABLED(PLA_PREHEAT_FAN_SPEED)
#if !defined(PLA_PREHEAT_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting PLA_PREHEAT_FAN_SPEED
#endif
#if DISABLED(ABS_PREHEAT_HOTEND_TEMP)
#if !defined(ABS_PREHEAT_HOTEND_TEMP)
#error DEPENDENCY ERROR: Missing setting ABS_PREHEAT_HOTEND_TEMP
#endif
#if DISABLED(ABS_PREHEAT_HPB_TEMP)
#if !defined(ABS_PREHEAT_HPB_TEMP)
#error DEPENDENCY ERROR: Missing setting ABS_PREHEAT_HPB_TEMP
#endif
#if DISABLED(ABS_PREHEAT_FAN_SPEED)
#if !defined(ABS_PREHEAT_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting ABS_PREHEAT_FAN_SPEED
#endif
#if DISABLED(GUM_PREHEAT_HOTEND_TEMP)
#if !defined(GUM_PREHEAT_HOTEND_TEMP)
#error DEPENDENCY ERROR: Missing setting GUM_PREHEAT_HOTEND_TEMP
#endif
#if DISABLED(GUM_PREHEAT_HPB_TEMP)
#if !defined(GUM_PREHEAT_HPB_TEMP)
#error DEPENDENCY ERROR: Missing setting GUM_PREHEAT_HPB_TEMP
#endif
#if DISABLED(GUM_PREHEAT_FAN_SPEED)
#if !defined(GUM_PREHEAT_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting GUM_PREHEAT_FAN_SPEED
#endif
//extruders
#if DISABLED(EXTRUDERS)
#if !defined(EXTRUDERS)
#error DEPENDENCY ERROR: Missing setting EXTRUDERS
#endif
#if DISABLED(DRIVER_EXTRUDERS)
#if !defined(DRIVER_EXTRUDERS)
#error DEPENDENCY ERROR: Missing setting DRIVER_EXTRUDERS
#endif
//Language
#if DISABLED(LANGUAGE_CHOICE)
#if !defined(LANGUAGE_CHOICE)
#error DEPENDENCY ERROR: Missing setting LANGUAGE_CHOICE
#endif
///FEATURE
//Temperature
#if DISABLED(PID_MAX)
#if !defined(PID_MAX)
#error DEPENDENCY ERROR: Missing setting PID_MAX
#endif
#if DISABLED(MAX_BED_POWER)
#if !defined(MAX_BED_POWER)
#error DEPENDENCY ERROR: Missing setting MAX_BED_POWER
#endif
#if ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED)
#if DISABLED(MAX_OVERSHOOT_PID_AUTOTUNE)
#if defined(PIDTEMP) || defined(PIDTEMPBED)
#if !defined(MAX_OVERSHOOT_PID_AUTOTUNE)
#error DEPENDENCY ERROR: Missing setting MAX_OVERSHOOT_PID_AUTOTUNE
#endif
#endif
#if ENABLED(PIDTEMP)
#if DISABLED(PID_OPENLOOP)
#if defined(PIDTEMP)
#if !defined(PID_OPENLOOP)
#error DEPENDENCY ERROR: Missing setting PID_FUNCTIONAL_RANGE
#endif
#if DISABLED(PID_INTEGRAL_DRIVE_MAX)
#if !defined(PID_INTEGRAL_DRIVE_MAX)
#error DEPENDENCY ERROR: Missing setting PID_INTEGRAL_DRIVE_MAX
#endif
#if DISABLED(DEFAULT_Kp)
#if !defined(DEFAULT_Kp)
#error DEPENDENCY ERROR: Missing setting DEFAULT_Kp
#endif
#if DISABLED(DEFAULT_Ki)
#if !defined(DEFAULT_Ki)
#error DEPENDENCY ERROR: Missing setting DEFAULT_Ki
#endif
#if DISABLED(DEFAULT_Kd)
#if !defined(DEFAULT_Kd)
#error DEPENDENCY ERROR: Missing setting DEFAULT_Kd
#endif
#endif
#if ENABLED(PIDTEMPBED)
#if DISABLED(PID_BED_INTEGRAL_DRIVE_MAX)
#if defined(PIDTEMPBED)
#if !defined(PID_BED_INTEGRAL_DRIVE_MAX)
#error DEPENDENCY ERROR: Missing setting PID_BED_INTEGRAL_DRIVE_MAX
#endif
#if DISABLED(DEFAULT_bedKp)
#if !defined(DEFAULT_bedKp)
#error DEPENDENCY ERROR: Missing setting DEFAULT_bedKp
#endif
#if DISABLED(DEFAULT_bedKi)
#if !defined(DEFAULT_bedKi)
#error DEPENDENCY ERROR: Missing setting DEFAULT_bedKi
#endif
#if DISABLED(DEFAULT_bedKd)
#if !defined(DEFAULT_bedKd)
#error DEPENDENCY ERROR: Missing setting DEFAULT_bedKd
#endif
#endif
#if ENABLED(BED_LIMIT_SWITCHING)
#if DISABLED(BED_HYSTERESIS)
#if defined(BED_LIMIT_SWITCHING)
#if !defined(BED_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting BED_HYSTERESIS
#endif
#if DISABLED(BED_CHECK_INTERVAL)
#if !defined(BED_CHECK_INTERVAL)
#error DEPENDENCY ERROR: Missing setting BED_CHECK_INTERVAL
#endif
#endif
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#if DISABLED(THERMAL_PROTECTION_PERIOD)
#if defined(THERMAL_PROTECTION_HOTENDS)
#if !defined(THERMAL_PROTECTION_PERIOD)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_PERIOD
#endif
#if DISABLED(THERMAL_PROTECTION_HYSTERESIS)
#if !defined(THERMAL_PROTECTION_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_HYSTERESIS
#endif
#if DISABLED(WATCH_TEMP_PERIOD)
#if !defined(WATCH_TEMP_PERIOD)
#error DEPENDENCY ERROR: Missing setting WATCH_TEMP_PERIOD
#endif
#if DISABLED(WATCH_TEMP_INCREASE)
#if !defined(WATCH_TEMP_INCREASE)
#error DEPENDENCY ERROR: Missing setting WATCH_TEMP_INCREASE
#endif
#endif
#if ENABLED(THERMAL_PROTECTION_BED)
#if DISABLED(THERMAL_PROTECTION_BED_PERIOD)
#if defined(THERMAL_PROTECTION_BED)
#if !defined(THERMAL_PROTECTION_BED_PERIOD)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_BED_PERIOD
#endif
#if DISABLED(THERMAL_PROTECTION_BED_HYSTERESIS)
#if !defined(THERMAL_PROTECTION_BED_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_BED_HYSTERESIS
#endif
#endif
//fan
#if DISABLED(SOFT_PWM_SCALE)
#if !defined(SOFT_PWM_SCALE)
#error DEPENDENCY ERROR: Missing setting SOFT_PWM_SCALE
#endif
#if ENABLED(CONTROLLERFAN)
#if DISABLED(CONTROLLERFAN_SECS)
#if defined(CONTROLLERFAN)
#if !defined(CONTROLLERFAN_SECS)
#error DEPENDENCY ERROR: Missing setting CONTROLLERFAN_SECS
#endif
#if DISABLED(CONTROLLERFAN_SPEED)
#if !defined(CONTROLLERFAN_SPEED)
#error DEPENDENCY ERROR: Missing setting CONTROLLERFAN_SPEED
#endif
#if DISABLED(CONTROLLERFAN_MIN_SPEED)
#if !defined(CONTROLLERFAN_MIN_SPEED)
#error DEPENDENCY ERROR: Missing setting CONTROLLERFAN_MIN_SPEED
#endif
#endif
#if ENABLED(EXTRUDER_AUTO_FAN)
#if DISABLED(EXTRUDER_AUTO_FAN_TEMPERATURE)
#if defined(EXTRUDER_AUTO_FAN)
#if !defined(EXTRUDER_AUTO_FAN_TEMPERATURE)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_AUTO_FAN_TEMPERATURE
#endif
#if DISABLED(EXTRUDER_AUTO_FAN_SPEED)
#if !defined(EXTRUDER_AUTO_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_AUTO_FAN_SPEED
#endif
#if DISABLED(EXTRUDER_AUTO_FAN_MIN_SPEED)
#if !defined(EXTRUDER_AUTO_FAN_MIN_SPEED)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_AUTO_FAN_MIN_SPEED
#endif
#endif
//extruder
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
#if DISABLED(EXTRUDE_MINTEMP)
#if defined(PREVENT_DANGEROUS_EXTRUDE)
#if !defined(EXTRUDE_MINTEMP)
#error DEPENDENCY ERROR: Missing setting EXTRUDE_MINTEMP
#endif
#if ENABLED(PREVENT_LENGTHY_EXTRUDE)
#if DISABLED(EXTRUDE_MAXLENGTH)
#if defined(PREVENT_LENGTHY_EXTRUDE)
#if !defined(EXTRUDE_MAXLENGTH)
#error DEPENDENCY ERROR: Missing setting EXTRUDE_MAXLENGTH
#endif
#endif
#endif
#if ENABLED(NPR2)
#if DISABLED(COLOR_STEP)
#if defined(NPR2)
#if !defined(COLOR_STEP)
#error DEPENDENCY ERROR: Missing setting COLOR_STEP
#endif
#if DISABLED(COLOR_SLOWRATE)
#if !defined(COLOR_SLOWRATE)
#error DEPENDENCY ERROR: Missing setting COLOR_SLOWRATE
#endif
#if DISABLED(COLOR_HOMERATE)
#if !defined(COLOR_HOMERATE)
#error DEPENDENCY ERROR: Missing setting COLOR_HOMERATE
#endif
#if DISABLED(MOTOR_ANGLE)
#if !defined(MOTOR_ANGLE)
#error DEPENDENCY ERROR: Missing setting MOTOR_ANGLE
#endif
#if DISABLED(DRIVER_MICROSTEP)
#if !defined(DRIVER_MICROSTEP)
#error DEPENDENCY ERROR: Missing setting DRIVER_MICROSTEP
#endif
#if DISABLED(CARTER_MOLTIPLICATOR)
#if !defined(CARTER_MOLTIPLICATOR)
#error DEPENDENCY ERROR: Missing setting CARTER_MOLTIPLICATOR
#endif
#endif
#if ENABLED(IDLE_OOZING_PREVENT)
#if DISABLED(IDLE_OOZING_MINTEMP)
#if defined(IDLE_OOZING_PREVENT)
#if !defined(IDLE_OOZING_MINTEMP)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_MINTEMP
#endif
#if DISABLED(IDLE_OOZING_FEEDRATE)
#if !defined(IDLE_OOZING_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_FEEDRATE
#endif
#if DISABLED(IDLE_OOZING_SECONDS)
#if !defined(IDLE_OOZING_SECONDS)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_SECONDS
#endif
#if DISABLED(IDLE_OOZING_LENGTH)
#if !defined(IDLE_OOZING_LENGTH)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_LENGTH
#endif
#if DISABLED(IDLE_OOZING_RECOVER_LENGTH)
#if !defined(IDLE_OOZING_RECOVER_LENGTH)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_RECOVER_LENGTH
#endif
#if DISABLED(IDLE_OOZING_RECOVER_FEEDRATE)
#if !defined(IDLE_OOZING_RECOVER_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_RECOVER_FEEDRATE
#endif
#endif
#if ENABLED(EXTRUDER_RUNOUT_PREVENT)
#if DISABLED(EXTRUDER_RUNOUT_MINTEMP)
#if defined(EXTRUDER_RUNOUT_PREVENT)
#if !defined(EXTRUDER_RUNOUT_MINTEMP)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_MINTEMP
#endif
#if DISABLED(EXTRUDER_RUNOUT_SECONDS)
#if !defined(EXTRUDER_RUNOUT_SECONDS)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_SECONDS
#endif
#if DISABLED(EXTRUDER_RUNOUT_ESTEPS)
#if !defined(EXTRUDER_RUNOUT_ESTEPS)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_ESTEPS
#endif
#if DISABLED(EXTRUDER_RUNOUT_SPEED)
#if !defined(EXTRUDER_RUNOUT_SPEED)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_SPEED
#endif
#if DISABLED(EXTRUDER_RUNOUT_EXTRUDE)
#if !defined(EXTRUDER_RUNOUT_EXTRUDE)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_EXTRUDE
#endif
#endif
#if ENABLED(EASY_LOAD)
#if DISABLED(BOWDEN_LENGTH)
#if defined(EASY_LOAD)
#if !defined(BOWDEN_LENGTH)
#error DEPENDENCY ERROR: Missing setting BOWDEN_LENGTH
#endif
#if DISABLED(LCD_PURGE_LENGTH)
#if !defined(LCD_PURGE_LENGTH)
#error DEPENDENCY ERROR: Missing setting LCD_PURGE_LENGTH
#endif
#if DISABLED(LCD_RETRACT_LENGTH)
#if !defined(LCD_RETRACT_LENGTH)
#error DEPENDENCY ERROR: Missing setting LCD_RETRACT_LENGTH
#endif
#if DISABLED(LCD_PURGE_FEEDRATE)
#if !defined(LCD_PURGE_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_PURGE_FEEDRATE
#endif
#if DISABLED(LCD_RETRACT_FEEDRATE)
#if !defined(LCD_RETRACT_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_RETRACT_FEEDRATE
#endif
#if DISABLED(LCD_LOAD_FEEDRATE)
#if !defined(LCD_LOAD_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_LOAD_FEEDRATE
#endif
#if DISABLED(LCD_UNLOAD_FEEDRATE)
#if !defined(LCD_UNLOAD_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_UNLOAD_FEEDRATE
#endif
#endif
#if ENABLED(ADVANCE)
#if DISABLED(EXTRUDER_ADVANCE_K)
#if defined(ADVANCE)
#if !defined(EXTRUDER_ADVANCE_K)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_ADVANCE_K
#endif
#if DISABLED(D_FILAMENT)
#if !defined(D_FILAMENT)
#error DEPENDENCY ERROR: Missing setting D_FILAMENT
#endif
#if DISABLED(STEPS_MM_E)
#if !defined(STEPS_MM_E)
#error DEPENDENCY ERROR: Missing setting STEPS_MM_E
#endif
#endif
#if ENABLED(FILAMENTCHANGEENABLE)
#if DISABLED(FILAMENTCHANGE_XPOS)
#if defined(FILAMENTCHANGEENABLE)
#if !defined(FILAMENTCHANGE_XPOS)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_XPOS
#endif
#if DISABLED(FILAMENTCHANGE_YPOS)
#if !defined(FILAMENTCHANGE_YPOS)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_YPOS
#endif
#if DISABLED(FILAMENTCHANGE_ZADD)
#if !defined(FILAMENTCHANGE_ZADD)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_ZADD
#endif
#if DISABLED(FILAMENTCHANGE_FIRSTRETRACT)
#if !defined(FILAMENTCHANGE_FIRSTRETRACT)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_FIRSTRETRACT
#endif
#if DISABLED(FILAMENTCHANGE_FINALRETRACT)
#if !defined(FILAMENTCHANGE_FINALRETRACT)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_FINALRETRACT
#endif
#if DISABLED(FILAMENTCHANGE_PRINTEROFF)
#if !defined(FILAMENTCHANGE_PRINTEROFF)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_PRINTEROFF
#endif
#endif
//Motion
#if DISABLED(SOFTWARE_MIN_ENDSTOPS)
#if !defined(SOFTWARE_MIN_ENDSTOPS)
#error DEPENDENCY ERROR: Missing setting SOFTWARE_MIN_ENDSTOPS
#endif
#if DISABLED(SOFTWARE_MAX_ENDSTOPS)
#if !defined(SOFTWARE_MAX_ENDSTOPS)
#error DEPENDENCY ERROR: Missing setting SOFTWARE_MAX_ENDSTOPS
#endif
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#if ENABLED(AUTO_BED_LEVELING_GRID)
#if DISABLED(MIN_PROBE_EDGE)
#if defined(AUTO_BED_LEVELING_FEATURE)
#if defined(AUTO_BED_LEVELING_GRID)
#if !defined(MIN_PROBE_EDGE)
#error DEPENDENCY ERROR: Missing setting MIN_PROBE_EDGE
#endif
#if DISABLED(AUTO_BED_LEVELING_GRID_POINTS)
#if !defined(AUTO_BED_LEVELING_GRID_POINTS)
#error DEPENDENCY ERROR: Missing setting AUTO_BED_LEVELING_GRID_POINTS
#endif
#else
#if DISABLED(ABL_PROBE_PT_1_X)
#if !defined(ABL_PROBE_PT_1_X)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_1_X
#endif
#if DISABLED(ABL_PROBE_PT_1_Y)
#if !defined(ABL_PROBE_PT_1_Y)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_1_Y
#endif
#if DISABLED(ABL_PROBE_PT_2_X)
#if !defined(ABL_PROBE_PT_2_X)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_2_X
#endif
#if DISABLED(ABL_PROBE_PT_2_Y)
#if !defined(ABL_PROBE_PT_2_Y)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_2_Y
#endif
#if DISABLED(ABL_PROBE_PT_3_X)
#if !defined(ABL_PROBE_PT_3_X)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_3_X
#endif
#if DISABLED(ABL_PROBE_PT_3_Y)
#if !defined(ABL_PROBE_PT_3_Y)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_3_Y
#endif
#endif
#if DISABLED(X_PROBE_OFFSET_FROM_EXTRUDER)
#if !defined(X_PROBE_OFFSET_FROM_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting X_PROBE_OFFSET_FROM_EXTRUDER
#endif
#if DISABLED(Y_PROBE_OFFSET_FROM_EXTRUDER)
#if !defined(Y_PROBE_OFFSET_FROM_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting Y_PROBE_OFFSET_FROM_EXTRUDER
#endif
#if DISABLED(Z_PROBE_OFFSET_FROM_EXTRUDER)
#if !defined(Z_PROBE_OFFSET_FROM_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_OFFSET_FROM_EXTRUDER
#endif
#if DISABLED(Z_RAISE_BEFORE_HOMING)
#if !defined(Z_RAISE_BEFORE_HOMING)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BEFORE_HOMING
#endif
#if DISABLED(Z_RAISE_BEFORE_PROBING)
#if !defined(Z_RAISE_BEFORE_PROBING)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BEFORE_PROBING
#endif
#if DISABLED(Z_RAISE_BETWEEN_PROBINGS)
#if !defined(Z_RAISE_BETWEEN_PROBINGS)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BETWEEN_PROBINGS
#endif
#if DISABLED(Z_RAISE_AFTER_PROBING)
#if !defined(Z_RAISE_AFTER_PROBING)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_AFTER_PROBING
#endif
#if ENABLED(Z_PROBE_SLED)
#if DISABLED(SLED_DOCKING_OFFSET)
#if defined(Z_PROBE_SLED)
#if !defined(SLED_DOCKING_OFFSET)
#error DEPENDENCY ERROR: Missing setting SLED_DOCKING_OFFSET
#endif
#endif
#if ENABLED(Z_SAFE_HOMING)
#if DISABLED(Z_SAFE_HOMING_X_POINT)
#if defined(Z_SAFE_HOMING)
#if !defined(Z_SAFE_HOMING_X_POINT)
#error DEPENDENCY ERROR: Missing setting Z_SAFE_HOMING_X_POINT
#endif
#if DISABLED(Z_SAFE_HOMING_Y_POINT)
#if !defined(Z_SAFE_HOMING_Y_POINT)
#error DEPENDENCY ERROR: Missing setting Z_SAFE_HOMING_Y_POINT
#endif
#endif
#endif
#if DISABLED(NUM_SERVOS)
#if !defined(NUM_SERVOS)
#error DEPENDENCY ERROR: Missing setting NUM_SERVOS 0
#endif
#if NUM_SERVOS > 0
#if DISABLED(X_ENDSTOP_SERVO_NR)
#if !defined(X_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting X_ENDSTOP_SERVO_NR
#endif
#if DISABLED(Y_ENDSTOP_SERVO_NR)
#if !defined(Y_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting Y_ENDSTOP_SERVO_NR
#endif
#if DISABLED(Z_ENDSTOP_SERVO_NR)
#if !defined(Z_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting Z_ENDSTOP_SERVO_NR
#endif
#if DISABLED(X_ENDSTOP_SERVO_ANGLES)
#if !defined(X_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting X_ENDSTOP_SERVO_ANGLES
#endif
#if DISABLED(Y_ENDSTOP_SERVO_ANGLES)
#if !defined(Y_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting Y_ENDSTOP_SERVO_ANGLES
#endif
#if DISABLED(Z_ENDSTOP_SERVO_ANGLES)
#if !defined(Z_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting Z_ENDSTOP_SERVO_ANGLES
#endif
#if DISABLED(SERVO_DEACTIVATION_DELAY)
#if !defined(SERVO_DEACTIVATION_DELAY)
#error DEPENDENCY ERROR: Missing setting SERVO_DEACTIVATION_DELAY
#endif
#endif
#if ENABLED(BABYSTEPPING)
#if DISABLED(BABYSTEP_INVERT_Z)
#if defined(BABYSTEPPING)
#if !defined(BABYSTEP_INVERT_Z)
#error DEPENDENCY ERROR: Missing setting BABYSTEP_INVERT_Z
#endif
#if DISABLED(BABYSTEP_Z_MULTIPLICATOR)
#if !defined(BABYSTEP_Z_MULTIPLICATOR)
#error DEPENDENCY ERROR: Missing setting BABYSTEP_Z_MULTIPLICATOR
#endif
#endif
#if ENABLED(FWRETRACT)
#if DISABLED(MIN_RETRACT)
#if defined(FWRETRACT)
#if !defined(MIN_RETRACT)
#error DEPENDENCY ERROR: Missing setting MIN_RETRACT
#endif
#if DISABLED(RETRACT_LENGTH)
#if !defined(RETRACT_LENGTH)
#error DEPENDENCY ERROR: Missing setting RETRACT_LENGTH
#endif
#if DISABLED(RETRACT_LENGTH_SWAP)
#if !defined(RETRACT_LENGTH_SWAP)
#error DEPENDENCY ERROR: Missing setting RETRACT_LENGTH_SWAP
#endif
#if DISABLED(RETRACT_FEEDRATE)
#if !defined(RETRACT_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting RETRACT_FEEDRATE
#endif
#if DISABLED(RETRACT_ZLIFT)
#if !defined(RETRACT_ZLIFT)
#error DEPENDENCY ERROR: Missing setting RETRACT_ZLIFT
#endif
#if DISABLED(RETRACT_RECOVER_LENGTH)
#if !defined(RETRACT_RECOVER_LENGTH)
#error DEPENDENCY ERROR: Missing setting RETRACT_RECOVER_LENGTH
#endif
#if DISABLED(RETRACT_RECOVER_LENGTH_SWAP)
#if !defined(RETRACT_RECOVER_LENGTH_SWAP)
#error DEPENDENCY ERROR: Missing setting RETRACT_RECOVER_LENGTH_SWAP
#endif
#if DISABLED(RETRACT_RECOVER_FEEDRATE)
#if !defined(RETRACT_RECOVER_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting RETRACT_RECOVER_FEEDRATE
#endif
#endif
#if ENABLED(DUAL_X_CARRIAGE)
#if DISABLED(X2_MIN_POS)
#if defined(DUAL_X_CARRIAGE)
#if !defined(X2_MIN_POS)
#error DEPENDENCY ERROR: Missing setting X2_MIN_POS
#endif
#if DISABLED(X2_MAX_POS)
#if !defined(X2_MAX_POS)
#error DEPENDENCY ERROR: Missing setting X2_MAX_POS
#endif
#if DISABLED(X2_HOME_DIR)
#if !defined(X2_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting X2_HOME_DIR
#endif
#if DISABLED(X2_HOME_POS)
#if !defined(X2_HOME_POS)
#error DEPENDENCY ERROR: Missing setting X2_HOME_POS
#endif
#if DISABLED(DEFAULT_DUAL_X_CARRIAGE_MODE)
#if !defined(DEFAULT_DUAL_X_CARRIAGE_MODE)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DUAL_X_CARRIAGE_MODE
#endif
#if DISABLED(TOOLCHANGE_PARK_ZLIFT)
#if !defined(TOOLCHANGE_PARK_ZLIFT)
#error DEPENDENCY ERROR: Missing setting TOOLCHANGE_PARK_ZLIFT
#endif
#if DISABLED(TOOLCHANGE_UNPARK_ZLIFT)
#if !defined(TOOLCHANGE_UNPARK_ZLIFT)
#error DEPENDENCY ERROR: Missing setting TOOLCHANGE_UNPARK_ZLIFT
#endif
#if DISABLED(DEFAULT_DUPLICATION_X_OFFSET)
#if !defined(DEFAULT_DUPLICATION_X_OFFSET)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DUPLICATION_X_OFFSET
#endif
#endif
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
#if DISABLED(INVERT_Y2_VS_Y_DIR)
#if defined(Y_DUAL_STEPPER_DRIVERS)
#if !defined(INVERT_Y2_VS_Y_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_Y2_VS_Y_DIR
#endif
#endif
//sensors
#if ENABLED(FILAMENT_SENSOR)
#if DISABLED(FILAMENT_SENSOR_EXTRUDER_NUM)
#if defined(FILAMENT_SENSOR)
#if !defined(FILAMENT_SENSOR_EXTRUDER_NUM)
#error DEPENDENCY ERROR: Missing setting FILAMENT_SENSOR_EXTRUDER_NUM
#endif
#if DISABLED(MEASUREMENT_DELAY_CM)
#if !defined(MEASUREMENT_DELAY_CM)
#error DEPENDENCY ERROR: Missing setting MEASUREMENT_DELAY_CM
#endif
#if DISABLED(DEFAULT_NOMINAL_FILAMENT_DIA)
#if !defined(DEFAULT_NOMINAL_FILAMENT_DIA)
#error DEPENDENCY ERROR: Missing setting DEFAULT_NOMINAL_FILAMENT_DIA
#endif
#if DISABLED(MEASURED_UPPER_LIMIT)
#if !defined(MEASURED_UPPER_LIMIT)
#error DEPENDENCY ERROR: Missing setting MEASURED_UPPER_LIMIT
#endif
#if DISABLED(MEASURED_LOWER_LIMIT)
#if !defined(MEASURED_LOWER_LIMIT)
#error DEPENDENCY ERROR: Missing setting MEASURED_LOWER_LIMIT
#endif
#if DISABLED(MAX_MEASUREMENT_DELAY)
#if !defined(MAX_MEASUREMENT_DELAY)
#error DEPENDENCY ERROR: Missing setting MAX_MEASUREMENT_DELAY
#endif
#if DISABLED(DEFAULT_MEASURED_FILAMENT_DIA)
#if !defined(DEFAULT_MEASURED_FILAMENT_DIA)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MEASURED_FILAMENT_DIA
#endif
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#if DISABLED(FILRUNOUT_PIN_INVERTING)
#if defined(FILAMENT_RUNOUT_SENSOR)
#if !defined(FILRUNOUT_PIN_INVERTING)
#error DEPENDENCY ERROR: Missing setting FILRUNOUT_PIN_INVERTING
#endif
#if DISABLED(ENDSTOPPULLUP_FIL_RUNOUT)
#if !defined(ENDSTOPPULLUP_FIL_RUNOUT)
#error DEPENDENCY ERROR: Missing setting ENDSTOPPULLUP_FIL_RUNOUT
#endif
#if DISABLED(FILAMENT_RUNOUT_SCRIPT)
#if !defined(FILAMENT_RUNOUT_SCRIPT)
#error DEPENDENCY ERROR: Missing setting FILAMENT_RUNOUT_SCRIPT
#endif
#endif
#if ENABLED(POWER_CONSUMPTION)
#if DISABLED(POWER_VOLTAGE)
#if defined(POWER_CONSUMPTION)
#if !defined(POWER_VOLTAGE)
#error DEPENDENCY ERROR: Missing setting POWER_VOLTAGE
#endif
#if DISABLED(POWER_SENSITIVITY)
#if !defined(POWER_SENSITIVITY)
#error DEPENDENCY ERROR: Missing setting POWER_SENSITIVITY
#endif
#if DISABLED(POWER_OFFSET)
#if !defined(POWER_OFFSET)
#error DEPENDENCY ERROR: Missing setting POWER_OFFSET
#endif
#if DISABLED(POWER_ZERO)
#if !defined(POWER_ZERO)
#error DEPENDENCY ERROR: Missing setting POWER_ZERO
#endif
#if DISABLED(POWER_ERROR)
#if !defined(POWER_ERROR)
#error DEPENDENCY ERROR: Missing setting POWER_ERROR
#endif
#if DISABLED(POWER_EFFICIENCY)
#if !defined(POWER_EFFICIENCY)
#error DEPENDENCY ERROR: Missing setting POWER_EFFICIENCY
#endif
#endif
//addon
#if ENABLED(SDSUPPORT)
#if DISABLED(SD_FINISHED_STEPPERRELEASE)
#if defined(SDSUPPORT)
#if !defined(SD_FINISHED_STEPPERRELEASE)
#error DEPENDENCY ERROR: Missing setting SD_FINISHED_STEPPERRELEASE
#endif
#if DISABLED(SD_FINISHED_RELEASECOMMAND)
#if !defined(SD_FINISHED_RELEASECOMMAND)
#error DEPENDENCY ERROR: Missing setting SD_FINISHED_RELEASECOMMAND
#endif
#if ENABLED(SD_SETTINGS)
#if DISABLED(SD_CFG_SECONDS)
#if defined(SD_SETTINGS)
#if !defined(SD_CFG_SECONDS)
#error DEPENDENCY ERROR: Missing setting SD_CFG_SECONDS
#endif
#if DISABLED(CFG_SD_FILE)
#if !defined(CFG_SD_FILE)
#error DEPENDENCY ERROR: Missing setting CFG_SD_FILE
#endif
#if DISABLED(CFG_SD_MAX_KEY_LEN)
#if !defined(CFG_SD_MAX_KEY_LEN)
#error DEPENDENCY ERROR: Missing setting CFG_SD_MAX_KEY_LEN
#endif
#if DISABLED(CFG_SD_MAX_VALUE_LEN)
#if !defined(CFG_SD_MAX_VALUE_LEN)
#error DEPENDENCY ERROR: Missing setting CFG_SD_MAX_VALUE_LEN
#endif
#endif
#endif
#if DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC)
#if !defined(DISPLAY_CHARSET_HD44780_JAPAN) && !defined(DISPLAY_CHARSET_HD44780_WESTERN) && !defined(DISPLAY_CHARSET_HD44780_CYRILLIC)
#error DEPENDENCY ERROR: Missing setting DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC
#endif
#if ENABLED(SHOW_BOOTSCREEN)
#if DISABLED(STRING_SPLASH_LINE1)
#if defined(SHOW_BOOTSCREEN)
#if !defined(STRING_SPLASH_LINE1)
#error DEPENDENCY ERROR: Missing setting STRING_SPLASH_LINE1
#endif
#if DISABLED(SPLASH_SCREEN_DURATION)
#if !defined(SPLASH_SCREEN_DURATION)
#error DEPENDENCY ERROR: Missing setting SPLASH_SCREEN_DURATION
#endif
#endif
#if ENABLED(ENCODER_RATE_MULTIPLIER)
#if DISABLED(ENCODER_10X_STEPS_PER_SEC)
#if ENABLED(ULTIPANEL)
#if defined(ENCODER_RATE_MULTIPLIER)
#if !defined(ENCODER_10X_STEPS_PER_SEC)
#error DEPENDENCY ERROR: Missing setting ENCODER_10X_STEPS_PER_SEC
#endif
#if DISABLED(ENCODER_100X_STEPS_PER_SEC)
#if !defined(ENCODER_100X_STEPS_PER_SEC)
#error DEPENDENCY ERROR: Missing setting ENCODER_100X_STEPS_PER_SEC
#endif
#endif
#endif
#if MB(ALLIGATOR)
#if DISABLED(UI_VOLTAGE_LEVEL)
#if !defined(UI_VOLTAGE_LEVEL)
#error DEPENDENCY ERROR: Missing setting UI_VOLTAGE_LEVEL
#endif
#endif
#if ENABLED(REPRAPWORLD_KEYPAD)
#if DISABLED(REPRAPWORLD_KEYPAD_MOVE_STEP)
#if defined(REPRAPWORLD_KEYPAD)
#if !defined(REPRAPWORLD_KEYPAD_MOVE_STEP)
#error DEPENDENCY ERROR: Missing setting REPRAPWORLD_KEYPAD_MOVE_STEP
#endif
#endif
#if ENABLED(LCD_PROGRESS_BAR)
#if DISABLED(PROGRESS_BAR_BAR_TIME)
#if ENABLED(ULTIPANEL)
#if defined(LCD_PROGRESS_BAR)
#if !defined(PROGRESS_BAR_BAR_TIME)
#error DEPENDENCY ERROR: Missing setting PROGRESS_BAR_BAR_TIME
#endif
#if DISABLED(PROGRESS_BAR_MSG_TIME)
#if !defined(PROGRESS_BAR_MSG_TIME)
#error DEPENDENCY ERROR: Missing setting PROGRESS_BAR_MSG_TIME
#endif
#if DISABLED(PROGRESS_MSG_EXPIRE)
#if !defined(PROGRESS_MSG_EXPIRE)
#error DEPENDENCY ERROR: Missing setting PROGRESS_MSG_EXPIRE
#endif
#endif
#endif
#if ENABLED(CHDK)
#if DISABLED(CHDK_DELAY)
#if defined(CHDK)
#if !defined(CHDK_DELAY)
#error DEPENDENCY ERROR: Missing setting CHDK_DELAY
#endif
#endif
//adv motion
#if ENABLED(DIGIPOT_I2C)
#if DISABLED(DIGIPOT_I2C_NUM_CHANNELS)
#if defined(DIGIPOT_I2C)
#if !defined(DIGIPOT_I2C_NUM_CHANNELS)
#error DEPENDENCY ERROR: Missing setting DIGIPOT_I2C_NUM_CHANNELS
#endif
#if DISABLED(DIGIPOT_I2C_MOTOR_CURRENTS)
#if !defined(DIGIPOT_I2C_MOTOR_CURRENTS)
#error DEPENDENCY ERROR: Missing setting DIGIPOT_I2C_MOTOR_CURRENTS
#endif
#endif
#if ENABLED(HAVE_TMCDRIVER)
#if ENABLED(X_IS_TMC)
#if DISABLED(X_MAX_CURRENT)
#if defined(HAVE_TMCDRIVER)
#if defined(X_IS_TMC)
#if !defined(X_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting X_MAX_CURRENT
#endif
#if DISABLED(X_SENSE_RESISTOR)
#if !defined(X_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting X_SENSE_RESISTOR
#endif
#if DISABLED(X_MICROSTEPS)
#if !defined(X_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X_MICROSTEPS
#endif
#endif
#if ENABLED(X2_IS_TMC)
#if DISABLED(X2_MAX_CURRENT)
#if defined(X2_IS_TMC)
#if !defined(X2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting X2_MAX_CURRENT
#endif
#if DISABLED(X2_SENSE_RESISTOR)
#if !defined(X2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting X2_SENSE_RESISTOR
#endif
#if DISABLED(X2_MICROSTEPS)
#if !defined(X2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X2_MICROSTEPS
#endif
#endif
#if ENABLED(Y_IS_TMC)
#if DISABLED(Y_MAX_CURRENT)
#if defined(Y_IS_TMC)
#if !defined(Y_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Y_MAX_CURRENT
#endif
#if DISABLED(Y_SENSE_RESISTOR)
#if !defined(Y_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Y_SENSE_RESISTOR
#endif
#if DISABLED(Y_MICROSTEPS)
#if !defined(Y_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y_MICROSTEPS
#endif
#endif
#if ENABLED(Y2_IS_TMC)
#if DISABLED(Y2_MAX_CURRENT)
#if defined(Y2_IS_TMC)
#if !defined(Y2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Y2_MAX_CURRENT
#endif
#if DISABLED(Y2_SENSE_RESISTOR)
#if !defined(Y2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Y2_SENSE_RESISTOR
#endif
#if DISABLED(Y2_MICROSTEPS)
#if !defined(Y2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y2_MICROSTEPS
#endif
#endif
#if ENABLED(Z_IS_TMC)
#if DISABLED(Z_MAX_CURRENT)
#if defined(Z_IS_TMC)
#if !defined(Z_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Z_MAX_CURRENT
#endif
#if DISABLED(Z_SENSE_RESISTOR)
#if !defined(Z_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Z_SENSE_RESISTOR
#endif
#if DISABLED(Z_MICROSTEPS)
#if !defined(Z_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z_MICROSTEPS
#endif
#endif
#if ENABLED(Z2_IS_TMC)
#if DISABLED(Z2_MAX_CURRENT)
#if defined(Z2_IS_TMC)
#if !defined(Z2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Z2_MAX_CURRENT
#endif
#if DISABLED(Z2_SENSE_RESISTOR)
#if !defined(Z2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Z2_SENSE_RESISTOR
#endif
#if DISABLED(Z2_MICROSTEPS)
#if !defined(Z2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z2_MICROSTEPS
#endif
#endif
#if ENABLED(E0_IS_TMC)
#if DISABLED(E0_MAX_CURRENT)
#if defined(E0_IS_TMC)
#if !defined(E0_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E0_MAX_CURRENT
#endif
#if DISABLED(E0_SENSE_RESISTOR)
#if !defined(E0_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E0_SENSE_RESISTOR
#endif
#if DISABLED(E0_MICROSTEPS)
#if !defined(E0_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E0_MICROSTEPS
#endif
#endif
#if ENABLED(E1_IS_TMC)
#if DISABLED(E1_MAX_CURRENT)
#if defined(E1_IS_TMC)
#if !defined(E1_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E1_MAX_CURRENT
#endif
#if DISABLED(E1_SENSE_RESISTOR)
#if !defined(E1_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E1_SENSE_RESISTOR
#endif
#if DISABLED(E1_MICROSTEPS)
#if !defined(E1_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E1_MICROSTEPS
#endif
#endif
#if ENABLED(E2_IS_TMC)
#if DISABLED(E2_MAX_CURRENT)
#if defined(E2_IS_TMC)
#if !defined(E2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E2_MAX_CURRENT
#endif
#if DISABLED(E2_SENSE_RESISTOR)
#if !defined(E2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E2_SENSE_RESISTOR
#endif
#if DISABLED(E2_MICROSTEPS)
#if !defined(E2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E2_MICROSTEPS
#endif
#endif
#if ENABLED(E3_IS_TMC)
#if DISABLED(E3_MAX_CURRENT)
#if defined(E3_IS_TMC)
#if !defined(E3_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E3_MAX_CURRENT
#endif
#if DISABLED(E3_SENSE_RESISTOR)
#if !defined(E3_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E3_SENSE_RESISTOR
#endif
#if DISABLED(E3_MICROSTEPS)
#if !defined(E3_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E3_MICROSTEPS
#endif
#endif
#endif
#if ENABLED(HAVE_L6470DRIVER)
#if ENABLED(X_IS_L6470)
#if DISABLED(X_MICROSTEPS)
#if defined(HAVE_L6470DRIVER)
#if defined(X_IS_L6470)
#if !defined(X_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X_MICROSTEPS
#endif
#if DISABLED(X_K_VAL)
#if !defined(X_K_VAL)
#error DEPENDENCY ERROR: Missing setting X_K_VAL
#endif
#if DISABLED(X_OVERCURRENT)
#if !defined(X_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting X_OVERCURRENT
#endif
#if DISABLED(X_STALLCURRENT)
#if !defined(X_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting X_STALLCURRENT
#endif
#endif
#if ENABLED(X2_IS_L6470)
#if DISABLED(X2_MICROSTEPS)
#if defined(X2_IS_L6470)
#if !defined(X2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X2_MICROSTEPS
#endif
#if DISABLED(X2_K_VAL)
#if !defined(X2_K_VAL)
#error DEPENDENCY ERROR: Missing setting X2_K_VAL
#endif
#if DISABLED(X2_OVERCURRENT)
#if !defined(X2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting X2_OVERCURRENT
#endif
#if DISABLED(X2_STALLCURRENT)
#if !defined(X2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting X2_STALLCURRENT
#endif
#endif
#if ENABLED(Y_IS_L6470)
#if DISABLED(Y_MICROSTEPS)
#if defined(Y_IS_L6470)
#if !defined(Y_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y_MICROSTEPS
#endif
#if DISABLED(Y_K_VAL)
#if !defined(Y_K_VAL)
#error DEPENDENCY ERROR: Missing setting Y_K_VAL
#endif
#if DISABLED(Y_OVERCURRENT)
#if !defined(Y_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Y_OVERCURRENT
#endif
#if DISABLED(Y_STALLCURRENT)
#if !defined(Y_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Y_STALLCURRENT
#endif
#endif
#if ENABLED(Y2_IS_L6470)
#if DISABLED(Y2_MICROSTEPS)
#if defined(Y2_IS_L6470)
#if !defined(Y2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y2_MICROSTEPS
#endif
#if DISABLED(Y2_K_VAL)
#if !defined(Y2_K_VAL)
#error DEPENDENCY ERROR: Missing setting Y2_K_VAL
#endif
#if DISABLED(Y2_OVERCURRENT)
#if !defined(Y2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Y2_OVERCURRENT
#endif
#if DISABLED(Y2_STALLCURRENT)
#if !defined(Y2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Y2_STALLCURRENT
#endif
#endif
#if ENABLED(Z_IS_L6470)
#if DISABLED(Z_MICROSTEPS)
#if defined(Z_IS_L6470)
#if !defined(Z_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z_MICROSTEPS
#endif
#if DISABLED(Z_K_VAL)
#if !defined(Z_K_VAL)
#error DEPENDENCY ERROR: Missing setting Z_K_VAL
#endif
#if DISABLED(Z_OVERCURRENT)
#if !defined(Z_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Z_OVERCURRENT
#endif
#if DISABLED(Z_STALLCURRENT)
#if !defined(Z_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Z_STALLCURRENT
#endif
#endif
#if ENABLED(Z2_IS_L6470)
#if DISABLED(Z2_MICROSTEPS)
#if defined(Z2_IS_L6470)
#if !defined(Z2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z2_MICROSTEPS
#endif
#if DISABLED(Z2_K_VAL)
#if !defined(Z2_K_VAL)
#error DEPENDENCY ERROR: Missing setting Z2_K_VAL
#endif
#if DISABLED(Z2_OVERCURRENT)
#if !defined(Z2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Z2_OVERCURRENT
#endif
#if DISABLED(Z2_STALLCURRENT)
#if !defined(Z2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Z2_STALLCURRENT
#endif
#endif
#if ENABLED(E0_IS_L6470)
#if DISABLED(E0_MICROSTEPS)
#if defined(E0_IS_L6470)
#if !defined(E0_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E0_MICROSTEPS
#endif
#if DISABLED(E0_K_VAL)
#if !defined(E0_K_VAL)
#error DEPENDENCY ERROR: Missing setting E0_K_VAL
#endif
#if DISABLED(E0_OVERCURRENT)
#if !defined(E0_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E0_OVERCURRENT
#endif
#if DISABLED(E0_STALLCURRENT)
#if !defined(E0_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E0_STALLCURRENT
#endif
#endif
#if ENABLED(E1_IS_L6470)
#if DISABLED(E1_MICROSTEPS)
#if defined(E1_IS_L6470)
#if !defined(E1_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E1_MICROSTEPS
#endif
#if DISABLED(E1_K_VAL)
#if !defined(E1_K_VAL)
#error DEPENDENCY ERROR: Missing setting E1_K_VAL
#endif
#if DISABLED(E1_OVERCURRENT)
#if !defined(E1_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E1_OVERCURRENT
#endif
#if DISABLED(E1_STALLCURRENT)
#if !defined(E1_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E1_STALLCURRENT
#endif
#endif
#if ENABLED(E2_IS_L6470)
#if DISABLED(E2_MICROSTEPS)
#if defined(E2_IS_L6470)
#if !defined(E2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E2_MICROSTEPS
#endif
#if DISABLED(E2_K_VAL)
#if !defined(E2_K_VAL)
#error DEPENDENCY ERROR: Missing setting E2_K_VAL
#endif
#if DISABLED(E2_OVERCURRENT)
#if !defined(E2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E2_OVERCURRENT
#endif
#if DISABLED(E2_STALLCURRENT)
#if !defined(E2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E2_STALLCURRENT
#endif
#endif
#if ENABLED(E3_IS_L6470)
#if DISABLED(E3_MICROSTEPS)
#if defined(E3_IS_L6470)
#if !defined(E3_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E3_MICROSTEPS
#endif
#if DISABLED(E3_K_VAL)
#if !defined(E3_K_VAL)
#error DEPENDENCY ERROR: Missing setting E3_K_VAL
#endif
#if DISABLED(E3_OVERCURRENT)
#if !defined(E3_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E3_OVERCURRENT
#endif
#if DISABLED(E3_STALLCURRENT)
#if !defined(E3_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E3_STALLCURRENT
#endif
#endif
#endif
//buffer
#if DISABLED(BLOCK_BUFFER_SIZE)
#if !defined(BLOCK_BUFFER_SIZE)
#error DEPENDENCY ERROR: Missing setting BLOCK_BUFFER_SIZE
#endif
#if DISABLED(MAX_CMD_SIZE)
#if !defined(MAX_CMD_SIZE)
#error DEPENDENCY ERROR: Missing setting MAX_CMD_SIZE
#endif
#if DISABLED(BUFSIZE)
#if !defined(BUFSIZE)
#error DEPENDENCY ERROR: Missing setting BUFSIZE
#endif
#if DISABLED(NUM_POSITON_SLOTS)
#if !defined(NUM_POSITON_SLOTS)
#error DEPENDENCY ERROR: Missing setting NUM_POSITON_SLOTS
#endif
#if DISABLED(DROP_SEGMENTS)
#if !defined(DROP_SEGMENTS)
#error DEPENDENCY ERROR: Missing setting DROP_SEGMENTS
#endif
#if DISABLED(DROP_SEGMENTS)
#if !defined(DROP_SEGMENTS)
#error DEPENDENCY ERROR: Missing setting DROP_SEGMENTS
#endif
#if DISABLED(DEFAULT_MINSEGMENTTIME)
#if !defined(DEFAULT_MINSEGMENTTIME)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MINSEGMENTTIME
#endif
#if DISABLED(MM_PER_ARC_SEGMENT)
#if !defined(MM_PER_ARC_SEGMENT)
#error DEPENDENCY ERROR: Missing setting MM_PER_ARC_SEGMENT
#endif
#if DISABLED(N_ARC_CORRECTION)
#if !defined(N_ARC_CORRECTION)
#error DEPENDENCY ERROR: Missing setting N_ARC_CORRECTION
#endif
//Machines
#if !defined(X_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting X_MIN_ENDSTOP_LOGIC
#endif
#if !defined(Y_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Y_MIN_ENDSTOP_LOGIC
#endif
#if !defined(Z_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z_MIN_ENDSTOP_LOGIC
#endif
#if !defined(Z2_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z2_MIN_ENDSTOP_LOGIC
#endif
#if !defined(X_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting X_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Y_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Y_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Z_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Z2_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z2_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Z_PROBE_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_ENDSTOP_LOGIC
#endif
#if !defined(E_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting E_MIN_ENDSTOP_LOGIC
#endif
#if !defined(X_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting X_HOME_DIR
#endif
#if !defined(Y_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting Y_HOME_DIR
#endif
#if !defined(Z_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting Z_HOME_DIR
#endif
#if !defined(E_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting E_HOME_DIR
#endif
#if !defined(X_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting X_ENABLE_ON
#endif
#if !defined(Y_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting Y_ENABLE_ON
#endif
#if !defined(Z_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting Z_ENABLE_ON
#endif
#if !defined(E_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting E_ENABLE_ON
#endif
#if !defined(INVERT_X_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_X_STEP_PIN
#endif
#if !defined(INVERT_Y_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_Y_STEP_PIN
#endif
#if !defined(INVERT_Z_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_Z_STEP_PIN
#endif
#if !defined(INVERT_E_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_E_STEP_PIN
#endif
#if !defined(INVERT_X_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_X_DIR
#endif
#if !defined(INVERT_Y_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_Y_DIR
#endif
#if !defined(INVERT_Z_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_Z_DIR
#endif
#if !defined(INVERT_E0_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E0_DIR
#endif
#if !defined(INVERT_E1_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E1_DIR
#endif
#if !defined(INVERT_E2_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E2_DIR
#endif
#if !defined(INVERT_E3_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E3_DIR
#endif
#if !defined(DISABLE_X)
#error DEPENDENCY ERROR: Missing setting DISABLE_X
#endif
#if !defined(DISABLE_Y)
#error DEPENDENCY ERROR: Missing setting DISABLE_Y
#endif
#if !defined(DISABLE_Z)
#error DEPENDENCY ERROR: Missing setting DISABLE_Z
#endif
#if !defined(DISABLE_E)
#error DEPENDENCY ERROR: Missing setting DISABLE_E
#endif
#if !defined(DISABLE_INACTIVE_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting DISABLE_INACTIVE_EXTRUDER
#endif
#if !defined(X_MAX_POS)
#error DEPENDENCY ERROR: Missing setting X_MAX_POS
#endif
#if !defined(X_MIN_POS)
#error DEPENDENCY ERROR: Missing setting X_MIN_POS
#endif
#if !defined(Y_MAX_POS)
#error DEPENDENCY ERROR: Missing setting Y_MAX_POS
#endif
#if !defined(Y_MIN_POS)
#error DEPENDENCY ERROR: Missing setting Y_MIN_POS
#endif
#if !defined(Z_MAX_POS)
#error DEPENDENCY ERROR: Missing setting Z_MAX_POS
#endif
#if !defined(Z_MIN_POS)
#error DEPENDENCY ERROR: Missing setting Z_MIN_POS
#endif
#if !defined(E_MIN_POS)
#error DEPENDENCY ERROR: Missing setting E_MIN_POS
#endif
#if !defined(AXIS_RELATIVE_MODES)
#error DEPENDENCY ERROR: Missing setting AXIS_RELATIVE_MODES
#endif
#if !defined(DEFAULT_AXIS_STEPS_PER_UNIT)
#error DEPENDENCY ERROR: Missing setting DEFAULT_AXIS_STEPS_PER_UNIT
#endif
#if ENABLED(ULTIPANEL) && !defined(MANUAL_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting MANUAL_FEEDRATE
#endif
#if !defined(DEFAULT_MINTRAVELFEEDRATE)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MINTRAVELFEEDRATE
#endif
#if !defined(MINIMUM_PLANNER_SPEED)
#error DEPENDENCY ERROR: Missing setting MINIMUM_PLANNER_SPEED
#endif
#if !defined(DEFAULT_MAX_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MAX_ACCELERATION
#endif
#if !defined(DEFAULT_RETRACT_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_RETRACT_ACCELERATION
#endif
#if !defined(DEFAULT_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_ACCELERATION
#endif
#if !defined(DEFAULT_TRAVEL_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_TRAVEL_ACCELERATION
#endif
#if !defined(DEFAULT_XYJERK)
#error DEPENDENCY ERROR: Missing setting DEFAULT_XYJERK
#endif
#if !defined(DEFAULT_ZJERK)
#error DEPENDENCY ERROR: Missing setting DEFAULT_ZJERK
#endif
#if !defined(HOMING_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting HOMING_FEEDRATE
#endif
#if !defined(X_HOME_BUMP_MM)
#error DEPENDENCY ERROR: Missing setting X_HOME_BUMP_MM
#endif
#if !defined(Y_HOME_BUMP_MM)
#error DEPENDENCY ERROR: Missing setting Y_HOME_BUMP_MM
#endif
#if !defined(Z_HOME_BUMP_MM)
#error DEPENDENCY ERROR: Missing setting Z_HOME_BUMP_MM
#endif
#if !defined(HOMING_BUMP_DIVISOR)
#error DEPENDENCY ERROR: Missing setting HOMING_BUMP_DIVISOR
#endif
#if !defined(LEFT_PROBE_BED_POSITION)
#error DEPENDENCY ERROR: Missing setting LEFT_PROBE_BED_POSITION
#endif
#if !defined(RIGHT_PROBE_BED_POSITION)
#error DEPENDENCY ERROR: Missing setting RIGHT_PROBE_BED_POSITION
#endif
#if !defined(FRONT_PROBE_BED_POSITION)
#error DEPENDENCY ERROR: Missing setting FRONT_PROBE_BED_POSITION
#endif
#if !MECH(DELTA)
#if !defined(XY_TRAVEL_SPEED)
#error DEPENDENCY ERROR: Missing setting XY_TRAVEL_SPEED
#endif
#endif
#if ENABLED(MANUAL_HOME_POSITIONS)
#if !defined(MANUAL_X_HOME_POS)
#error DEPENDENCY ERROR: Missing setting MANUAL_X_HOME_POS
#endif
#if !defined(MANUAL_Y_HOME_POS)
#error DEPENDENCY ERROR: Missing setting MANUAL_Y_HOME_POS
#endif
#if !defined(MANUAL_Z_HOME_POS)
#error DEPENDENCY ERROR: Missing setting MANUAL_Z_HOME_POS
#endif
#endif
#if MECH(COREXY) || MECH(COREXZ)
#if !defined(COREX_YZ_FACTOR)
#error DEPENDENCY ERROR: Missing setting COREX_YZ_FACTOR
#endif
#endif
#if MECH(SCARA)
#if !defined(LINKAGE_1)
#error DEPENDENCY ERROR: Missing setting LINKAGE_1
#endif
#if !defined(LINKAGE_2)
#error DEPENDENCY ERROR: Missing setting LINKAGE_2
#endif
#if !defined(SCARA_OFFSET_X)
#error DEPENDENCY ERROR: Missing setting SCARA_OFFSET_X
#endif
#if !defined(SCARA_OFFSET_Y)
#error DEPENDENCY ERROR: Missing setting SCARA_OFFSET_Y
#endif
#if !defined(SCARA_RAD2DEG)
#error DEPENDENCY ERROR: Missing setting SCARA_RAD2DEG
#endif
#if !defined(THETA_HOMING_OFFSET)
#error DEPENDENCY ERROR: Missing setting THETA_HOMING_OFFSET
#endif
#if !defined(PSI_HOMING_OFFSET)
#error DEPENDENCY ERROR: Missing setting PSI_HOMING_OFFSET
#endif
#endif
#if MECH(DELTA)
#if !defined(DEFAULT_DELTA_DIAGONAL_ROD)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_DIAGONAL_ROD
#endif
#if !defined(DELTA_SMOOTH_ROD_OFFSET)
#error DEPENDENCY ERROR: Missing setting DELTA_SMOOTH_ROD_OFFSET
#endif
#if !defined(DELTA_CARRIAGE_OFFSET)
#error DEPENDENCY ERROR: Missing setting DELTA_CARRIAGE_OFFSET
#endif
#if !defined(PRINTER_RADIUS)
#error DEPENDENCY ERROR: Missing setting PRINTER_RADIUS
#endif
#if !defined(DEFAULT_DELTA_RADIUS)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_RADIUS
#endif
#if !defined(AUTOCAL_TRAVELRATE)
#error DEPENDENCY ERROR: Missing setting AUTOCAL_TRAVELRATE
#endif
#if !defined(AUTOCAL_PROBERATE)
#error DEPENDENCY ERROR: Missing setting AUTOCAL_PROBERATE
#endif
#if !defined(AUTOCALIBRATION_PRECISION)
#error DEPENDENCY ERROR: Missing setting AUTOCALIBRATION_PRECISION
#endif
#if !defined(TOWER_A_ENDSTOP_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_ENDSTOP_ADJ
#endif
#if !defined(TOWER_B_ENDSTOP_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_ENDSTOP_ADJ
#endif
#if !defined(TOWER_C_ENDSTOP_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_ENDSTOP_ADJ
#endif
#if !defined(TOWER_A_POSITION_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_POSITION_ADJ
#endif
#if !defined(TOWER_B_POSITION_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_POSITION_ADJ
#endif
#if !defined(TOWER_C_POSITION_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_POSITION_ADJ
#endif
#if !defined(TOWER_A_RADIUS_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_RADIUS_ADJ
#endif
#if !defined(TOWER_B_RADIUS_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_RADIUS_ADJ
#endif
#if !defined(TOWER_C_RADIUS_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_RADIUS_ADJ
#endif
#if !defined(TOWER_A_DIAGROD_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_DIAGROD_ADJ
#endif
#if !defined(TOWER_B_DIAGROD_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_DIAGROD_ADJ
#endif
#if !defined(TOWER_C_DIAGROD_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_DIAGROD_ADJ
#endif
#if !defined(Z_PROBE_OFFSET)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_OFFSET
#endif
#if !defined(Z_PROBE_DEPLOY_START_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_DEPLOY_START_LOCATION
#endif
#if !defined(Z_PROBE_DEPLOY_END_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_DEPLOY_END_LOCATION
#endif
#if !defined(Z_PROBE_RETRACT_START_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_RETRACT_START_LOCATION
#endif
#if !defined(Z_PROBE_RETRACT_END_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_RETRACT_END_LOCATION
#endif
#if !defined(Z_RAISE_BETWEEN_PROBINGS)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BETWEEN_PROBINGS
#endif
#if !defined(AUTO_BED_LEVELING_GRID_POINTS)
#error DEPENDENCY ERROR: Missing setting AUTO_BED_LEVELING_GRID_POINTS
#endif
#endif
#endif
\ No newline at end of file
......@@ -5217,12 +5217,6 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
#endif
/****************************************************************************************/
/****************************************************************************************
************************************* FEATURE *******************************************
****************************************************************************************/
#if HOTENDS == 1
#undef ORIG_HEATER_1_PIN
#undef ORIG_HEATER_2_PIN
......@@ -5252,67 +5246,9 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
#define ORIG_TEMP_3_PIN -1
#endif
#if ENABLED(MKR4)
#if (EXTRUDERS == 2) && (DRIVER_EXTRUDERS == 1) // Use this for one driver and two extruder
#define E0E1_CHOICE_PIN 5
#elif (EXTRUDERS == 3) && (DRIVER_EXTRUDERS == 1) // Use this for one driver and 3 extruder
#define E0E1_CHOICE_PIN 5
#define E0E2_CHOICE_PIN 6
#elif (EXTRUDERS == 4) && (DRIVER_EXTRUDERS == 1) // Use this for one driver and 4 extruder
#define E0E1_CHOICE_PIN 4
#define E0E2_CHOICE_PIN 5
#define E0E3_CHOICE_PIN 6
#elif (EXTRUDERS == 3) && (DRIVER_EXTRUDERS == 2) // Use this for two driver and 3 extruder
#define E0E2_CHOICE_PIN 5
#elif (EXTRUDERS == 4) && (DRIVER_EXTRUDERS == 2) // Use this for two driver and 4 extruder
#define E0E2_CHOICE_PIN 5
#define E1E3_CHOICE_PIN 6
#endif //EXTRUDERS
#endif //MKR4
#if ENABLED(NPR2)
#define E_MIN_PIN -1
#endif
#if ENABLED(LASERBEAM)
#define LASER_PWR_PIN 41
#define LASER_TTL_PIN 42
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FILRUNOUT_PIN -1
#endif
#if ENABLED(FILAMENT_SENSOR)
#define FILWIDTH_PIN -1 // ANALOG NUMBERING
#endif
#if ENABLED(POWER_CONSUMPTION)
#define POWER_CONSUMPTION_PIN -1 // ANALOG NUMBERING
#endif
#if ENABLED(PHOTOGRAPH)
#define PHOTOGRAPH_PIN -1
#endif
#if ENABLED(CHDK)
#define CHDK_PIN -1
#endif
#if ENABLED(CONTROLLERFAN)
#define CONTROLLERFAN_PIN -1
#endif
#if ENABLED(EXTRUDER_AUTO_FAN)
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#endif
/****************************************************************************************/
#include "pins2tool.h"
#include "Configuration_Pins.h"
/****************************************************************************************/
//List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those!
#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, HEATER_0_PIN, analogInputToDigitalPin(TEMP_0_PIN),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment