Commit 701efac2 authored by Simone Primarosa's avatar Simone Primarosa

Update 4.2.x

parent bd2c245c
......@@ -25,10 +25,6 @@
#include "Configuration_Basic.h"
#include "pins.h"
#ifndef SANITYCHECK_H
#error Your Configuration.h and Configuration_adv.h files are outdated!
#endif
#include "Arduino.h"
typedef unsigned long millis_t;
......
......@@ -303,12 +303,12 @@ bool target_direction;
unsigned long printer_usage_seconds;
#if DISABLED(DELTA)
#if !MECH(DELTA)
int xy_travel_speed = XY_TRAVEL_SPEED;
float zprobe_zoffset = 0;
#endif
#if ENABLED(Z_DUAL_ENDSTOPS) && DISABLED(DELTA)
#if ENABLED(Z_DUAL_ENDSTOPS) && !MECH(DELTA)
float z_endstop_adj = 0;
#endif
......@@ -863,7 +863,7 @@ void get_command() {
if (drain_queued_commands_P()) return; // priority is given to non-serial commands
#if ENABLED(NO_TIMEOUTS)
#if EXIST(NO_TIMEOUTS)
static millis_t last_command_time = 0;
millis_t ms = millis();
......@@ -878,7 +878,7 @@ void get_command() {
//
while (MYSERIAL.available() > 0 && commands_in_queue < BUFSIZE) {
#if ENABLED(NO_TIMEOUTS)
#if EXIST(NO_TIMEOUTS)
last_command_time = ms;
#endif
......@@ -3133,7 +3133,7 @@ inline void gcode_G28() {
current_position[X_AXIS] = destination[X_AXIS];
current_position[Y_AXIS] = destination[Y_AXIS];
#if DISABLED(SCARA)
#if !MECH(SCARA)
current_position[Z_AXIS] = destination[Z_AXIS];
#endif
......@@ -4887,14 +4887,14 @@ inline void gcode_M105() {
#endif
ECHO_M(" " MSG_AT);
#if ENABLED(HOTEND_WATTS)
#if EXIST(HOTEND_WATTS)
ECHO_VM((HOTEND_WATTS * getHeaterPower(target_extruder))/127, "W");
#else
ECHO_V(getHeaterPower(target_extruder));
#endif
ECHO_M(" " MSG_BAT);
#if ENABLED(BED_WATTS)
#if EXIST(BED_WATTS)
ECHO_VM((BED_WATTS * getHeaterPower(-1))/127, "W");
#else
ECHO_V(getHeaterPower(-1));
......@@ -5156,9 +5156,9 @@ inline void gcode_M140() {
if (code_seen('H')) {
v = code_value_short();
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
plaPreheatHotendTemp = constrain(v, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP - 15);
plaPreheatHotendTemp = constrain(v, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP);
#else
plaPreheatHotendTemp = constrain(v, HEATER_0_MINTEMP, HEATER_0_MAXTEMP - 15);
plaPreheatHotendTemp = constrain(v, HEATER_0_MINTEMP, HEATER_0_MAXTEMP);
#endif
}
if (code_seen('F')) {
......@@ -5168,7 +5168,7 @@ inline void gcode_M140() {
#if TEMP_SENSOR_BED != 0
if (code_seen('B')) {
v = code_value_short();
plaPreheatHPBTemp = constrain(v, BED_MINTEMP, BED_MAXTEMP - 15);
plaPreheatHPBTemp = constrain(v, BED_MINTEMP, BED_MAXTEMP);
}
#endif
break;
......@@ -5176,9 +5176,9 @@ inline void gcode_M140() {
if (code_seen('H')) {
v = code_value_short();
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
absPreheatHotendTemp = constrain(v, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP - 15);
absPreheatHotendTemp = constrain(v, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP);
#else
absPreheatHotendTemp = constrain(v, HEATER_0_MINTEMP, HEATER_0_MAXTEMP - 15);
absPreheatHotendTemp = constrain(v, HEATER_0_MINTEMP, HEATER_0_MAXTEMP);
#endif
}
if (code_seen('F')) {
......@@ -5188,7 +5188,7 @@ inline void gcode_M140() {
#if TEMP_SENSOR_BED != 0
if (code_seen('B')) {
v = code_value_short();
absPreheatHPBTemp = constrain(v, BED_MINTEMP, BED_MAXTEMP - 15);
absPreheatHPBTemp = constrain(v, BED_MINTEMP, BED_MAXTEMP);
}
#endif
break;
......@@ -5196,9 +5196,9 @@ inline void gcode_M140() {
if (code_seen('H')) {
v = code_value_short();
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
gumPreheatHotendTemp = constrain(v, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP - 15);
gumPreheatHotendTemp = constrain(v, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP);
#else
gumPreheatHotendTemp = constrain(v, HEATER_0_MINTEMP, HEATER_0_MAXTEMP - 15);
gumPreheatHotendTemp = constrain(v, HEATER_0_MINTEMP, HEATER_0_MAXTEMP);
#endif
}
if (code_seen('F')) {
......@@ -5208,7 +5208,7 @@ inline void gcode_M140() {
#if TEMP_SENSOR_BED != 0
if (code_seen('B')) {
v = code_value_short();
gumPreheatHPBTemp = constrain(v, BED_MINTEMP, BED_MAXTEMP - 15);
gumPreheatHPBTemp = constrain(v, BED_MINTEMP, BED_MAXTEMP);
}
#endif
break;
......@@ -6062,7 +6062,7 @@ inline void gcode_M503() {
//retract by E
if (code_seen('E')) destination[E_AXIS] += code_value();
#if ENABLED(FILAMENTCHANGE_FIRSTRETRACT)
#if EXIST(FILAMENTCHANGE_FIRSTRETRACT)
else destination[E_AXIS] += FILAMENTCHANGE_FIRSTRETRACT;
#endif
......@@ -6070,7 +6070,7 @@ inline void gcode_M503() {
//lift Z
if (code_seen('Z')) destination[Z_AXIS] += code_value();
#if ENABLED(FILAMENTCHANGE_ZADD)
#if EXIST(FILAMENTCHANGE_ZADD)
else destination[Z_AXIS] += FILAMENTCHANGE_ZADD;
#endif
......@@ -6078,19 +6078,19 @@ inline void gcode_M503() {
//move xy
if (code_seen('X')) destination[X_AXIS] = code_value();
#if ENABLED(FILAMENTCHANGE_XPOS)
#if EXIST(FILAMENTCHANGE_XPOS)
else destination[X_AXIS] = FILAMENTCHANGE_XPOS;
#endif
if (code_seen('Y')) destination[Y_AXIS] = code_value();
#if ENABLED(FILAMENTCHANGE_YPOS)
#if EXIST(FILAMENTCHANGE_YPOS)
else destination[Y_AXIS] = FILAMENTCHANGE_YPOS;
#endif
RUNPLAN
if (code_seen('L')) destination[E_AXIS] += code_value();
#if ENABLED(FILAMENTCHANGE_FINALRETRACT)
#if EXIST(FILAMENTCHANGE_FINALRETRACT)
else destination[E_AXIS] += FILAMENTCHANGE_FINALRETRACT;
#endif
......@@ -6341,13 +6341,13 @@ inline void gcode_M907() {
if (code_seen('B')) digipot_current(4, code_value());
if (code_seen('S')) for (int i=0; i<=4; i++) digipot_current(i, code_value());
#endif
#if ENABLED(MOTOR_CURRENT_PWM_XY_PIN)
#if EXIST(MOTOR_CURRENT_PWM_XY_PIN)
if (code_seen('X')) digipot_current(0, code_value());
#endif
#if ENABLED(MOTOR_CURRENT_PWM_Z_PIN)
#if EXIST(MOTOR_CURRENT_PWM_Z_PIN)
if (code_seen('Z')) digipot_current(1, code_value());
#endif
#if ENABLED(MOTOR_CURRENT_PWM_E_PIN)
#if EXIST(MOTOR_CURRENT_PWM_E_PIN)
if (code_seen('E')) digipot_current(2, code_value());
#endif
#if ENABLED(DIGIPOT_I2C)
......
......@@ -108,11 +108,11 @@
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
#if DISABLED(ENCODER_PULSES_PER_STEP)
#if NOTEXIST(ENCODER_PULSES_PER_STEP)
#define ENCODER_PULSES_PER_STEP 4
#endif
#if DISABLED(ENCODER_STEPS_PER_MENU_ITEM)
#if NOTEXIST(ENCODER_STEPS_PER_MENU_ITEM)
#define ENCODER_STEPS_PER_MENU_ITEM 1
#endif
......@@ -204,7 +204,7 @@
/**
* Default LCD contrast for dogm-like LCD displays
*/
#if ENABLED(DOGLCD) && DISABLED(DEFAULT_LCD_CONTRAST)
#if ENABLED(DOGLCD) && NOTEXIST(DEFAULT_LCD_CONTRAST)
#define DEFAULT_LCD_CONTRAST 32
#endif
......@@ -369,7 +369,7 @@
/**
* Servo Leveling
*/
#define SERVO_LEVELING (ENABLED(SERVO_ENDSTOPS) && ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE))
//#define SERVO_LEVELING (ENABLED(SERVO_ENDSTOPS) && ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE))
/**
* Sled Options
......@@ -427,7 +427,7 @@
* Power Signal Control Definitions
* By default use Normal definition
*/
#if DISABLED(POWER_SUPPLY)
#if NOTEXIST(POWER_SUPPLY)
#define POWER_SUPPLY 0
#endif
#if (POWER_SUPPLY == 1) // 1 = ATX
......@@ -556,7 +556,7 @@
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3)
#define HAS_FAN (PIN_EXISTS(FAN))
#define HAS_CONTROLLERFAN (ENABLED(CONTROLLERFAN) && PIN_EXISTS(CONTROLLERFAN))
#define HAS_SERVOS (ENABLED(NUM_SERVOS) && NUM_SERVOS > 0)
#define HAS_SERVOS (ENABLED(ENABLE_SERVOS) && NUM_SERVOS > 0)
#define HAS_SERVO_0 (PIN_EXISTS(SERVO0))
#define HAS_SERVO_1 (PIN_EXISTS(SERVO1))
#define HAS_SERVO_2 (PIN_EXISTS(SERVO2))
......
......@@ -2,7 +2,7 @@
#define CONFIGURATION_H
#include "macros.h"
#include "Default_Version.h"
#include "default_version.h"
/*
* This configuration file contains basic settings.
......@@ -250,13 +250,14 @@
#include "Configuration_Delta.h"
#elif MECH(SCARA)
#include "Configuration_Scara.h"
#endif
#endif
#include "Configuration_Feature.h"
#include "Configuration_Overall.h"
#include "thermistortables.h"
#include "conditionals.h"
#include "thermistortables.h"
#include "language.h"
#include "pins.h"
#include "dependencies.h"
#include "conflicts.h"
......
......@@ -412,7 +412,7 @@
* when the target temperature is less than IDLE_OOZING_MINTEMP and *
* the actual temperature is greater than IDLE_OOZING_MINTEMP. *
* *
* PS: Always remember to set your extruder target temperature to 0°C *
* PS: Always remember to set your extruder target temperature to 0°C *
* before shoudown the printer if you enable this feature. *
* *
* Uncomment IDLE_OOZING_PREVENT to enable this feature *
......@@ -648,6 +648,7 @@
/***********************************************************************
**************************** R/C Servo ********************************
**********************************************************************/
//#define ENABLE_SERVOS
// Number of servos
// If you select a configuration below, this will receive a default value and does not need to be set manually
// set it manually if you have more servos than extruders and wish to manually control some
......@@ -1131,7 +1132,6 @@
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
// 0 to disable buzzer feedback. Test with M300 S<frequency Hz> P<duration ms>
#define LCD_MAX_TEMP_OFFSET -15
//Display Voltage Logic Selector on Alligator Board
//#define UI_VOLTAGE_LEVEL 0 // 3.3 V
......
......@@ -158,7 +158,7 @@ void Config_StoreSettings() {
EEPROM_WRITE_VAR(i, max_e_jerk);
EEPROM_WRITE_VAR(i, home_offset);
#if DISABLED(DELTA)
#if !MECH(DELTA)
EEPROM_WRITE_VAR(i, zprobe_zoffset);
#endif
......@@ -295,7 +295,7 @@ void Config_RetrieveSettings() {
EEPROM_READ_VAR(i, max_e_jerk);
EEPROM_READ_VAR(i, home_offset);
#if DISABLED(DELTA)
#if !MECH(DELTA)
EEPROM_READ_VAR(i, zprobe_zoffset);
#endif
......
......@@ -88,7 +88,7 @@
#if NUM_SERVOS > 4
#error CONFLICT ERROR: The maximum number of SERVOS in Marlin is 4.
#endif
#if ENABLED(NUM_SERVOS) && NUM_SERVOS > 0
#if 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 CONFLICT ERROR: X_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
......@@ -136,26 +136,26 @@
* Require a Z Probe Pin if Z_PROBE_ENDSTOP is enabled.
*/
#if ENABLED(Z_PROBE_ENDSTOP)
#if DISABLED(Z_PROBE_PIN)
#if NOTEXIST(Z_PROBE_PIN)
#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 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 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 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 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 CONFLICT ERROR: You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_PROBE_ENDSTOP.
// #endif
#if DISABLED(ENABLE_SERVOS)
#error CONFLICT ERROR: You must enable ENABLE_SERVOS and must have NUM_SERVOS defined and there must be at least 1 configured to use Z_PROBE_ENDSTOP.
#endif
#if NUM_SERVOS < 1
#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 CONFLICT ERROR: You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_PROBE_ENDSTOP.
#endif
#if NOTEXIST(SERVO_ENDSTOP_ANGLES)
#error CONFLICT ERROR: You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_PROBE_ENDSTOP.
#endif
#endif
/**
* Check if Probe_Offset * Grid Points is greater than Probing Range
......@@ -210,7 +210,7 @@
* Delta & Z_PROBE_ENDSTOP
*/
#if MECH(DELTA) && ENABLED(Z_PROBE_ENDSTOP)
#if DISABLED(Z_PROBE_PIN)
#if NOTEXIST(Z_PROBE_PIN)
#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
......@@ -224,7 +224,7 @@
#if ENABLED(DUAL_X_CARRIAGE)
#if EXTRUDERS == 1 || MECH(COREXY) \
|| HASNT(X2_ENABLE) || HASNT(X2_STEP) || HASNT(X2_DIR) \
|| DISABLED(X2_HOME_POS) || DISABLED(X2_MIN_POS) || DISABLED(X2_MAX_POS) \
|| NOTEXIST(X2_HOME_POS) || NOTEXIST(X2_MIN_POS) || NOTEXIST(X2_MAX_POS) \
|| HASNT(X_MAX)
#error CONFLICT ERROR: Missing or invalid definitions for DUAL_X_CARRIAGE mode.
#endif
......
......@@ -7,49 +7,49 @@
*/
// Serial comunication
#if !defined(SERIAL_PORT)
#if NOTEXIST(SERIAL_PORT)
#error DEPENDENCY ERROR: Missing setting SERIAL_PORT
#endif
#if !defined(BAUDRATE)
#if NOTEXIST(BAUDRATE)
#error DEPENDENCY ERROR: Missing setting BAUDRATE
#endif
#if !defined(MACHINE_UUID)
#if NOTEXIST(MACHINE_UUID)
#error DEPENDENCY ERROR: Missing setting MACHINE_UUID
#endif
//board
#if !defined(MOTHERBOARD)
#if NOTEXIST(MOTHERBOARD)
#error DEPENDENCY ERROR: Missing setting MOTHERBOARD
#endif
//Mechanism
#if !defined(MEACHANISM)
#if NOTEXIST(MEACHANISM)
#error DEPENDENCY ERROR: Missing setting MECHANISM
#endif
//Power supply
#if !defined(POWER_SUPPLY)
#if NOTEXIST(POWER_SUPPLY)
#error DEPENDENCY ERROR: Missing setting POWER_SUPPLY
#endif
//Thermistor
#if !defined(TEMP_SENSOR_0)
#if NOTEXIST(TEMP_SENSOR_0)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_0
#endif
#if !defined(TEMP_SENSOR_1)
#if NOTEXIST(TEMP_SENSOR_1)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_1
#endif
#if !defined(TEMP_SENSOR_2)
#if NOTEXIST(TEMP_SENSOR_2)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_2
#endif
#if !defined(TEMP_SENSOR_3)
#if NOTEXIST(TEMP_SENSOR_3)
#error DEPENDENCY ERROR: Missing setting TEMP_SENSOR_3
#endif
#if !defined(TEMP_SENSOR_BED)
#if NOTEXIST(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 !defined(DUMMY_THERMISTOR_998_VALUE)
#if NOTEXIST(DUMMY_THERMISTOR_998_VALUE)
#error DEPENDENCY ERROR: Missing setting DUMMY_THERMISTOR_998_VALUE
#endif
#endif
......@@ -59,1216 +59,1217 @@
* Temperature defines
*/
#if defined(TEMP_RESIDENCY_TIME)
#if !defined(TEMP_HYSTERESIS)
#if NOTEXIST(TEMP_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting TEMP_HYSTERESIS
#endif
#if !defined(TEMP_WINDOW)
#if NOTEXIST(TEMP_WINDOW)
#error DEPENDENCY ERROR: Missing setting TEMP_WINDOW
#endif
#endif
#if TEMP_SENSOR_0 != 0
#if !defined(HEATER_0_MAXTEMP)
#if NOTEXIST(HEATER_0_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_0_MAXTEMP
#endif
#if !defined(HEATER_0_MINTEMP)
#if NOTEXIST(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_0_MINTEMP
#endif
#endif
#if TEMP_SENSOR_1 != 0
#if !defined(HEATER_1_MAXTEMP)
#if NOTEXIST(HEATER_1_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_1_MAXTEMP
#endif
#if !defined(HEATER_0_MINTEMP)
#if NOTEXIST(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_1_MINTEMP
#endif
#endif
#if TEMP_SENSOR_2 != 0
#if !defined(HEATER_2_MAXTEMP)
#if NOTEXIST(HEATER_2_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_2_MAXTEMP
#endif
#if !defined(HEATER_0_MINTEMP)
#if NOTEXIST(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_2_MINTEMP
#endif
#endif
#if TEMP_SENSOR_3 != 0
#if !defined(HEATER_3_MAXTEMP)
#if NOTEXIST(HEATER_3_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_3_MAXTEMP
#endif
#if !defined(HEATER_0_MINTEMP)
#if NOTEXIST(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting HEATER_3_MINTEMP
#endif
#endif
#if TEMP_SENSOR_BED != 0
#if !defined(BED_MAXTEMP)
#if NOTEXIST(BED_MAXTEMP)
#error DEPENDENCY ERROR: Missing setting BED_MAXTEMP
#endif
#if !defined(HEATER_0_MINTEMP)
#if NOTEXIST(HEATER_0_MINTEMP)
#error DEPENDENCY ERROR: Missing setting BED_MINTEMP
#endif
#endif
#if !defined(PLA_PREHEAT_HOTEND_TEMP)
#if NOTEXIST(PLA_PREHEAT_HOTEND_TEMP)
#error DEPENDENCY ERROR: Missing setting PLA_PREHEAT_HOTEND_TEMP
#endif
#if !defined(PLA_PREHEAT_HPB_TEMP)
#if NOTEXIST(PLA_PREHEAT_HPB_TEMP)
#error DEPENDENCY ERROR: Missing setting PLA_PREHEAT_HPB_TEMP
#endif
#if !defined(PLA_PREHEAT_FAN_SPEED)
#if NOTEXIST(PLA_PREHEAT_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting PLA_PREHEAT_FAN_SPEED
#endif
#if !defined(ABS_PREHEAT_HOTEND_TEMP)
#if NOTEXIST(ABS_PREHEAT_HOTEND_TEMP)
#error DEPENDENCY ERROR: Missing setting ABS_PREHEAT_HOTEND_TEMP
#endif
#if !defined(ABS_PREHEAT_HPB_TEMP)
#if NOTEXIST(ABS_PREHEAT_HPB_TEMP)
#error DEPENDENCY ERROR: Missing setting ABS_PREHEAT_HPB_TEMP
#endif
#if !defined(ABS_PREHEAT_FAN_SPEED)
#if NOTEXIST(ABS_PREHEAT_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting ABS_PREHEAT_FAN_SPEED
#endif
#if !defined(GUM_PREHEAT_HOTEND_TEMP)
#if NOTEXIST(GUM_PREHEAT_HOTEND_TEMP)
#error DEPENDENCY ERROR: Missing setting GUM_PREHEAT_HOTEND_TEMP
#endif
#if !defined(GUM_PREHEAT_HPB_TEMP)
#if NOTEXIST(GUM_PREHEAT_HPB_TEMP)
#error DEPENDENCY ERROR: Missing setting GUM_PREHEAT_HPB_TEMP
#endif
#if !defined(GUM_PREHEAT_FAN_SPEED)
#if NOTEXIST(GUM_PREHEAT_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting GUM_PREHEAT_FAN_SPEED
#endif
//extruders
#if !defined(EXTRUDERS)
#if NOTEXIST(EXTRUDERS)
#error DEPENDENCY ERROR: Missing setting EXTRUDERS
#endif
#if !defined(DRIVER_EXTRUDERS)
#if NOTEXIST(DRIVER_EXTRUDERS)
#error DEPENDENCY ERROR: Missing setting DRIVER_EXTRUDERS
#endif
//Language
#if !defined(LANGUAGE_CHOICE)
#if NOTEXIST(LANGUAGE_CHOICE)
#error DEPENDENCY ERROR: Missing setting LANGUAGE_CHOICE
#endif
///FEATURE
//Temperature
#if !defined(PID_MAX)
#if NOTEXIST(PID_MAX)
#error DEPENDENCY ERROR: Missing setting PID_MAX
#endif
#if !defined(MAX_BED_POWER)
#if NOTEXIST(MAX_BED_POWER)
#error DEPENDENCY ERROR: Missing setting MAX_BED_POWER
#endif
#if defined(PIDTEMP) || defined(PIDTEMPBED)
#if !defined(MAX_OVERSHOOT_PID_AUTOTUNE)
#if NOTEXIST(MAX_OVERSHOOT_PID_AUTOTUNE)
#error DEPENDENCY ERROR: Missing setting MAX_OVERSHOOT_PID_AUTOTUNE
#endif
#endif
#if defined(PIDTEMP)
#if !defined(PID_OPENLOOP)
#if NOTEXIST(PID_OPENLOOP)
#error DEPENDENCY ERROR: Missing setting PID_FUNCTIONAL_RANGE
#endif
#if !defined(PID_INTEGRAL_DRIVE_MAX)
#if NOTEXIST(PID_INTEGRAL_DRIVE_MAX)
#error DEPENDENCY ERROR: Missing setting PID_INTEGRAL_DRIVE_MAX
#endif
#if !defined(DEFAULT_Kp)
#if NOTEXIST(DEFAULT_Kp)
#error DEPENDENCY ERROR: Missing setting DEFAULT_Kp
#endif
#if !defined(DEFAULT_Ki)
#if NOTEXIST(DEFAULT_Ki)
#error DEPENDENCY ERROR: Missing setting DEFAULT_Ki
#endif
#if !defined(DEFAULT_Kd)
#if NOTEXIST(DEFAULT_Kd)
#error DEPENDENCY ERROR: Missing setting DEFAULT_Kd
#endif
#endif
#if defined(PIDTEMPBED)
#if !defined(PID_BED_INTEGRAL_DRIVE_MAX)
#if NOTEXIST(PID_BED_INTEGRAL_DRIVE_MAX)
#error DEPENDENCY ERROR: Missing setting PID_BED_INTEGRAL_DRIVE_MAX
#endif
#if !defined(DEFAULT_bedKp)
#if NOTEXIST(DEFAULT_bedKp)
#error DEPENDENCY ERROR: Missing setting DEFAULT_bedKp
#endif
#if !defined(DEFAULT_bedKi)
#if NOTEXIST(DEFAULT_bedKi)
#error DEPENDENCY ERROR: Missing setting DEFAULT_bedKi
#endif
#if !defined(DEFAULT_bedKd)
#if NOTEXIST(DEFAULT_bedKd)
#error DEPENDENCY ERROR: Missing setting DEFAULT_bedKd
#endif
#endif
#if defined(BED_LIMIT_SWITCHING)
#if !defined(BED_HYSTERESIS)
#if NOTEXIST(BED_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting BED_HYSTERESIS
#endif
#if !defined(BED_CHECK_INTERVAL)
#if NOTEXIST(BED_CHECK_INTERVAL)
#error DEPENDENCY ERROR: Missing setting BED_CHECK_INTERVAL
#endif
#endif
#if defined(THERMAL_PROTECTION_HOTENDS)
#if !defined(THERMAL_PROTECTION_PERIOD)
#if NOTEXIST(THERMAL_PROTECTION_PERIOD)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_PERIOD
#endif
#if !defined(THERMAL_PROTECTION_HYSTERESIS)
#if NOTEXIST(THERMAL_PROTECTION_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_HYSTERESIS
#endif
#if !defined(WATCH_TEMP_PERIOD)
#if NOTEXIST(WATCH_TEMP_PERIOD)
#error DEPENDENCY ERROR: Missing setting WATCH_TEMP_PERIOD
#endif
#if !defined(WATCH_TEMP_INCREASE)
#if NOTEXIST(WATCH_TEMP_INCREASE)
#error DEPENDENCY ERROR: Missing setting WATCH_TEMP_INCREASE
#endif
#endif
#if defined(THERMAL_PROTECTION_BED)
#if !defined(THERMAL_PROTECTION_BED_PERIOD)
#if NOTEXIST(THERMAL_PROTECTION_BED_PERIOD)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_BED_PERIOD
#endif
#if !defined(THERMAL_PROTECTION_BED_HYSTERESIS)
#if NOTEXIST(THERMAL_PROTECTION_BED_HYSTERESIS)
#error DEPENDENCY ERROR: Missing setting THERMAL_PROTECTION_BED_HYSTERESIS
#endif
#endif
//fan
#if !defined(SOFT_PWM_SCALE)
#if NOTEXIST(SOFT_PWM_SCALE)
#error DEPENDENCY ERROR: Missing setting SOFT_PWM_SCALE
#endif
#if defined(CONTROLLERFAN)
#if !defined(CONTROLLERFAN_SECS)
#if NOTEXIST(CONTROLLERFAN_SECS)
#error DEPENDENCY ERROR: Missing setting CONTROLLERFAN_SECS
#endif
#if !defined(CONTROLLERFAN_SPEED)
#if NOTEXIST(CONTROLLERFAN_SPEED)
#error DEPENDENCY ERROR: Missing setting CONTROLLERFAN_SPEED
#endif
#if !defined(CONTROLLERFAN_MIN_SPEED)
#if NOTEXIST(CONTROLLERFAN_MIN_SPEED)
#error DEPENDENCY ERROR: Missing setting CONTROLLERFAN_MIN_SPEED
#endif
#endif
#if defined(EXTRUDER_AUTO_FAN)
#if !defined(EXTRUDER_AUTO_FAN_TEMPERATURE)
#if NOTEXIST(EXTRUDER_AUTO_FAN_TEMPERATURE)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_AUTO_FAN_TEMPERATURE
#endif
#if !defined(EXTRUDER_AUTO_FAN_SPEED)
#if NOTEXIST(EXTRUDER_AUTO_FAN_SPEED)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_AUTO_FAN_SPEED
#endif
#if !defined(EXTRUDER_AUTO_FAN_MIN_SPEED)
#if NOTEXIST(EXTRUDER_AUTO_FAN_MIN_SPEED)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_AUTO_FAN_MIN_SPEED
#endif
#endif
//extruder
#if defined(PREVENT_DANGEROUS_EXTRUDE)
#if !defined(EXTRUDE_MINTEMP)
#if NOTEXIST(EXTRUDE_MINTEMP)
#error DEPENDENCY ERROR: Missing setting EXTRUDE_MINTEMP
#endif
#if defined(PREVENT_LENGTHY_EXTRUDE)
#if !defined(EXTRUDE_MAXLENGTH)
#if NOTEXIST(EXTRUDE_MAXLENGTH)
#error DEPENDENCY ERROR: Missing setting EXTRUDE_MAXLENGTH
#endif
#endif
#endif
#if defined(NPR2)
#if !defined(COLOR_STEP)
#if NOTEXIST(COLOR_STEP)
#error DEPENDENCY ERROR: Missing setting COLOR_STEP
#endif
#if !defined(COLOR_SLOWRATE)
#if NOTEXIST(COLOR_SLOWRATE)
#error DEPENDENCY ERROR: Missing setting COLOR_SLOWRATE
#endif
#if !defined(COLOR_HOMERATE)
#if NOTEXIST(COLOR_HOMERATE)
#error DEPENDENCY ERROR: Missing setting COLOR_HOMERATE
#endif
#if !defined(MOTOR_ANGLE)
#if NOTEXIST(MOTOR_ANGLE)
#error DEPENDENCY ERROR: Missing setting MOTOR_ANGLE
#endif
#if !defined(DRIVER_MICROSTEP)
#if NOTEXIST(DRIVER_MICROSTEP)
#error DEPENDENCY ERROR: Missing setting DRIVER_MICROSTEP
#endif
#if !defined(CARTER_MOLTIPLICATOR)
#if NOTEXIST(CARTER_MOLTIPLICATOR)
#error DEPENDENCY ERROR: Missing setting CARTER_MOLTIPLICATOR
#endif
#endif
#if defined(IDLE_OOZING_PREVENT)
#if !defined(IDLE_OOZING_MINTEMP)
#if NOTEXIST(IDLE_OOZING_MINTEMP)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_MINTEMP
#endif
#if !defined(IDLE_OOZING_FEEDRATE)
#if NOTEXIST(IDLE_OOZING_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_FEEDRATE
#endif
#if !defined(IDLE_OOZING_SECONDS)
#if NOTEXIST(IDLE_OOZING_SECONDS)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_SECONDS
#endif
#if !defined(IDLE_OOZING_LENGTH)
#if NOTEXIST(IDLE_OOZING_LENGTH)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_LENGTH
#endif
#if !defined(IDLE_OOZING_RECOVER_LENGTH)
#if NOTEXIST(IDLE_OOZING_RECOVER_LENGTH)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_RECOVER_LENGTH
#endif
#if !defined(IDLE_OOZING_RECOVER_FEEDRATE)
#if NOTEXIST(IDLE_OOZING_RECOVER_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting IDLE_OOZING_RECOVER_FEEDRATE
#endif
#endif
#if defined(EXTRUDER_RUNOUT_PREVENT)
#if !defined(EXTRUDER_RUNOUT_MINTEMP)
#if NOTEXIST(EXTRUDER_RUNOUT_MINTEMP)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_MINTEMP
#endif
#if !defined(EXTRUDER_RUNOUT_SECONDS)
#if NOTEXIST(EXTRUDER_RUNOUT_SECONDS)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_SECONDS
#endif
#if !defined(EXTRUDER_RUNOUT_ESTEPS)
#if NOTEXIST(EXTRUDER_RUNOUT_ESTEPS)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_ESTEPS
#endif
#if !defined(EXTRUDER_RUNOUT_SPEED)
#if NOTEXIST(EXTRUDER_RUNOUT_SPEED)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_SPEED
#endif
#if !defined(EXTRUDER_RUNOUT_EXTRUDE)
#if NOTEXIST(EXTRUDER_RUNOUT_EXTRUDE)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_RUNOUT_EXTRUDE
#endif
#endif
#if defined(EASY_LOAD)
#if !defined(BOWDEN_LENGTH)
#if NOTEXIST(BOWDEN_LENGTH)
#error DEPENDENCY ERROR: Missing setting BOWDEN_LENGTH
#endif
#if !defined(LCD_PURGE_LENGTH)
#if NOTEXIST(LCD_PURGE_LENGTH)
#error DEPENDENCY ERROR: Missing setting LCD_PURGE_LENGTH
#endif
#if !defined(LCD_RETRACT_LENGTH)
#if NOTEXIST(LCD_RETRACT_LENGTH)
#error DEPENDENCY ERROR: Missing setting LCD_RETRACT_LENGTH
#endif
#if !defined(LCD_PURGE_FEEDRATE)
#if NOTEXIST(LCD_PURGE_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_PURGE_FEEDRATE
#endif
#if !defined(LCD_RETRACT_FEEDRATE)
#if NOTEXIST(LCD_RETRACT_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_RETRACT_FEEDRATE
#endif
#if !defined(LCD_LOAD_FEEDRATE)
#if NOTEXIST(LCD_LOAD_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_LOAD_FEEDRATE
#endif
#if !defined(LCD_UNLOAD_FEEDRATE)
#if NOTEXIST(LCD_UNLOAD_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting LCD_UNLOAD_FEEDRATE
#endif
#endif
#if defined(ADVANCE)
#if !defined(EXTRUDER_ADVANCE_K)
#if NOTEXIST(EXTRUDER_ADVANCE_K)
#error DEPENDENCY ERROR: Missing setting EXTRUDER_ADVANCE_K
#endif
#if !defined(D_FILAMENT)
#if NOTEXIST(D_FILAMENT)
#error DEPENDENCY ERROR: Missing setting D_FILAMENT
#endif
#if !defined(STEPS_MM_E)
#if NOTEXIST(STEPS_MM_E)
#error DEPENDENCY ERROR: Missing setting STEPS_MM_E
#endif
#endif
#if defined(FILAMENTCHANGEENABLE)
#if !defined(FILAMENTCHANGE_XPOS)
#if NOTEXIST(FILAMENTCHANGE_XPOS)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_XPOS
#endif
#if !defined(FILAMENTCHANGE_YPOS)
#if NOTEXIST(FILAMENTCHANGE_YPOS)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_YPOS
#endif
#if !defined(FILAMENTCHANGE_ZADD)
#if NOTEXIST(FILAMENTCHANGE_ZADD)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_ZADD
#endif
#if !defined(FILAMENTCHANGE_FIRSTRETRACT)
#if NOTEXIST(FILAMENTCHANGE_FIRSTRETRACT)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_FIRSTRETRACT
#endif
#if !defined(FILAMENTCHANGE_FINALRETRACT)
#if NOTEXIST(FILAMENTCHANGE_FINALRETRACT)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_FINALRETRACT
#endif
#if !defined(FILAMENTCHANGE_PRINTEROFF)
#if NOTEXIST(FILAMENTCHANGE_PRINTEROFF)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_PRINTEROFF
#endif
#endif
//Motion
#if !defined(SOFTWARE_MIN_ENDSTOPS)
#if NOTEXIST(SOFTWARE_MIN_ENDSTOPS)
#error DEPENDENCY ERROR: Missing setting SOFTWARE_MIN_ENDSTOPS
#endif
#if !defined(SOFTWARE_MAX_ENDSTOPS)
#if NOTEXIST(SOFTWARE_MAX_ENDSTOPS)
#error DEPENDENCY ERROR: Missing setting SOFTWARE_MAX_ENDSTOPS
#endif
#if defined(AUTO_BED_LEVELING_FEATURE)
#if defined(AUTO_BED_LEVELING_GRID)
#if !defined(MIN_PROBE_EDGE)
#if NOTEXIST(MIN_PROBE_EDGE)
#error DEPENDENCY ERROR: Missing setting MIN_PROBE_EDGE
#endif
#if !defined(AUTO_BED_LEVELING_GRID_POINTS)
#if NOTEXIST(AUTO_BED_LEVELING_GRID_POINTS)
#error DEPENDENCY ERROR: Missing setting AUTO_BED_LEVELING_GRID_POINTS
#endif
#else
#if !defined(ABL_PROBE_PT_1_X)
#if NOTEXIST(ABL_PROBE_PT_1_X)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_1_X
#endif
#if !defined(ABL_PROBE_PT_1_Y)
#if NOTEXIST(ABL_PROBE_PT_1_Y)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_1_Y
#endif
#if !defined(ABL_PROBE_PT_2_X)
#if NOTEXIST(ABL_PROBE_PT_2_X)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_2_X
#endif
#if !defined(ABL_PROBE_PT_2_Y)
#if NOTEXIST(ABL_PROBE_PT_2_Y)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_2_Y
#endif
#if !defined(ABL_PROBE_PT_3_X)
#if NOTEXIST(ABL_PROBE_PT_3_X)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_3_X
#endif
#if !defined(ABL_PROBE_PT_3_Y)
#if NOTEXIST(ABL_PROBE_PT_3_Y)
#error DEPENDENCY ERROR: Missing setting ABL_PROBE_PT_3_Y
#endif
#endif
#if !defined(X_PROBE_OFFSET_FROM_EXTRUDER)
#if NOTEXIST(X_PROBE_OFFSET_FROM_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting X_PROBE_OFFSET_FROM_EXTRUDER
#endif
#if !defined(Y_PROBE_OFFSET_FROM_EXTRUDER)
#if NOTEXIST(Y_PROBE_OFFSET_FROM_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting Y_PROBE_OFFSET_FROM_EXTRUDER
#endif
#if !defined(Z_PROBE_OFFSET_FROM_EXTRUDER)
#if NOTEXIST(Z_PROBE_OFFSET_FROM_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_OFFSET_FROM_EXTRUDER
#endif
#if !defined(Z_RAISE_BEFORE_HOMING)
#if NOTEXIST(Z_RAISE_BEFORE_HOMING)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BEFORE_HOMING
#endif
#if !defined(Z_RAISE_BEFORE_PROBING)
#if NOTEXIST(Z_RAISE_BEFORE_PROBING)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BEFORE_PROBING
#endif
#if !defined(Z_RAISE_BETWEEN_PROBINGS)
#if NOTEXIST(Z_RAISE_BETWEEN_PROBINGS)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BETWEEN_PROBINGS
#endif
#if !defined(Z_RAISE_AFTER_PROBING)
#if NOTEXIST(Z_RAISE_AFTER_PROBING)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_AFTER_PROBING
#endif
#if defined(Z_PROBE_SLED)
#if !defined(SLED_DOCKING_OFFSET)
#if NOTEXIST(SLED_DOCKING_OFFSET)
#error DEPENDENCY ERROR: Missing setting SLED_DOCKING_OFFSET
#endif
#endif
#if defined(Z_SAFE_HOMING)
#if !defined(Z_SAFE_HOMING_X_POINT)
#if NOTEXIST(Z_SAFE_HOMING_X_POINT)
#error DEPENDENCY ERROR: Missing setting Z_SAFE_HOMING_X_POINT
#endif
#if !defined(Z_SAFE_HOMING_Y_POINT)
#if NOTEXIST(Z_SAFE_HOMING_Y_POINT)
#error DEPENDENCY ERROR: Missing setting Z_SAFE_HOMING_Y_POINT
#endif
#endif
#endif
#if !defined(NUM_SERVOS)
#error DEPENDENCY ERROR: Missing setting NUM_SERVOS 0
#endif
#if NUM_SERVOS > 0
#if !defined(X_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting X_ENDSTOP_SERVO_NR
#endif
#if !defined(Y_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting Y_ENDSTOP_SERVO_NR
#endif
#if !defined(Z_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting Z_ENDSTOP_SERVO_NR
#endif
#if !defined(X_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting X_ENDSTOP_SERVO_ANGLES
#endif
#if !defined(Y_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting Y_ENDSTOP_SERVO_ANGLES
#endif
#if !defined(Z_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting Z_ENDSTOP_SERVO_ANGLES
#if ENABLED(ENABLE_SERVOS)
#if NOTEXIST(NUM_SERVOS)
#error DEPENDENCY ERROR: Missing setting NUM_SERVOS 0
#endif
#if !defined(SERVO_DEACTIVATION_DELAY)
#error DEPENDENCY ERROR: Missing setting SERVO_DEACTIVATION_DELAY
#if NUM_SERVOS > 0
#if NOTEXIST(X_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting X_ENDSTOP_SERVO_NR
#endif
#if NOTEXIST(Y_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting Y_ENDSTOP_SERVO_NR
#endif
#if NOTEXIST(Z_ENDSTOP_SERVO_NR)
#error DEPENDENCY ERROR: Missing setting Z_ENDSTOP_SERVO_NR
#endif
#if NOTEXIST(X_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting X_ENDSTOP_SERVO_ANGLES
#endif
#if NOTEXIST(Y_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting Y_ENDSTOP_SERVO_ANGLES
#endif
#if NOTEXIST(Z_ENDSTOP_SERVO_ANGLES)
#error DEPENDENCY ERROR: Missing setting Z_ENDSTOP_SERVO_ANGLES
#endif
#if NOTEXIST(SERVO_DEACTIVATION_DELAY)
#error DEPENDENCY ERROR: Missing setting SERVO_DEACTIVATION_DELAY
#endif
#endif
#endif
#if defined(BABYSTEPPING)
#if !defined(BABYSTEP_INVERT_Z)
#if NOTEXIST(BABYSTEP_INVERT_Z)
#error DEPENDENCY ERROR: Missing setting BABYSTEP_INVERT_Z
#endif
#if !defined(BABYSTEP_Z_MULTIPLICATOR)
#if NOTEXIST(BABYSTEP_Z_MULTIPLICATOR)
#error DEPENDENCY ERROR: Missing setting BABYSTEP_Z_MULTIPLICATOR
#endif
#endif
#if defined(FWRETRACT)
#if !defined(MIN_RETRACT)
#if NOTEXIST(MIN_RETRACT)
#error DEPENDENCY ERROR: Missing setting MIN_RETRACT
#endif
#if !defined(RETRACT_LENGTH)
#if NOTEXIST(RETRACT_LENGTH)
#error DEPENDENCY ERROR: Missing setting RETRACT_LENGTH
#endif
#if !defined(RETRACT_LENGTH_SWAP)
#if NOTEXIST(RETRACT_LENGTH_SWAP)
#error DEPENDENCY ERROR: Missing setting RETRACT_LENGTH_SWAP
#endif
#if !defined(RETRACT_FEEDRATE)
#if NOTEXIST(RETRACT_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting RETRACT_FEEDRATE
#endif
#if !defined(RETRACT_ZLIFT)
#if NOTEXIST(RETRACT_ZLIFT)
#error DEPENDENCY ERROR: Missing setting RETRACT_ZLIFT
#endif
#if !defined(RETRACT_RECOVER_LENGTH)
#if NOTEXIST(RETRACT_RECOVER_LENGTH)
#error DEPENDENCY ERROR: Missing setting RETRACT_RECOVER_LENGTH
#endif
#if !defined(RETRACT_RECOVER_LENGTH_SWAP)
#if NOTEXIST(RETRACT_RECOVER_LENGTH_SWAP)
#error DEPENDENCY ERROR: Missing setting RETRACT_RECOVER_LENGTH_SWAP
#endif
#if !defined(RETRACT_RECOVER_FEEDRATE)
#if NOTEXIST(RETRACT_RECOVER_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting RETRACT_RECOVER_FEEDRATE
#endif
#endif
#if defined(DUAL_X_CARRIAGE)
#if !defined(X2_MIN_POS)
#if NOTEXIST(X2_MIN_POS)
#error DEPENDENCY ERROR: Missing setting X2_MIN_POS
#endif
#if !defined(X2_MAX_POS)
#if NOTEXIST(X2_MAX_POS)
#error DEPENDENCY ERROR: Missing setting X2_MAX_POS
#endif
#if !defined(X2_HOME_DIR)
#if NOTEXIST(X2_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting X2_HOME_DIR
#endif
#if !defined(X2_HOME_POS)
#if NOTEXIST(X2_HOME_POS)
#error DEPENDENCY ERROR: Missing setting X2_HOME_POS
#endif
#if !defined(DEFAULT_DUAL_X_CARRIAGE_MODE)
#if NOTEXIST(DEFAULT_DUAL_X_CARRIAGE_MODE)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DUAL_X_CARRIAGE_MODE
#endif
#if !defined(TOOLCHANGE_PARK_ZLIFT)
#if NOTEXIST(TOOLCHANGE_PARK_ZLIFT)
#error DEPENDENCY ERROR: Missing setting TOOLCHANGE_PARK_ZLIFT
#endif
#if !defined(TOOLCHANGE_UNPARK_ZLIFT)
#if NOTEXIST(TOOLCHANGE_UNPARK_ZLIFT)
#error DEPENDENCY ERROR: Missing setting TOOLCHANGE_UNPARK_ZLIFT
#endif
#if !defined(DEFAULT_DUPLICATION_X_OFFSET)
#if NOTEXIST(DEFAULT_DUPLICATION_X_OFFSET)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DUPLICATION_X_OFFSET
#endif
#endif
#if defined(Y_DUAL_STEPPER_DRIVERS)
#if !defined(INVERT_Y2_VS_Y_DIR)
#if NOTEXIST(INVERT_Y2_VS_Y_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_Y2_VS_Y_DIR
#endif
#endif
//sensors
#if defined(FILAMENT_SENSOR)
#if !defined(FILAMENT_SENSOR_EXTRUDER_NUM)
#if NOTEXIST(FILAMENT_SENSOR_EXTRUDER_NUM)
#error DEPENDENCY ERROR: Missing setting FILAMENT_SENSOR_EXTRUDER_NUM
#endif
#if !defined(MEASUREMENT_DELAY_CM)
#if NOTEXIST(MEASUREMENT_DELAY_CM)
#error DEPENDENCY ERROR: Missing setting MEASUREMENT_DELAY_CM
#endif
#if !defined(DEFAULT_NOMINAL_FILAMENT_DIA)
#if NOTEXIST(DEFAULT_NOMINAL_FILAMENT_DIA)
#error DEPENDENCY ERROR: Missing setting DEFAULT_NOMINAL_FILAMENT_DIA
#endif
#if !defined(MEASURED_UPPER_LIMIT)
#if NOTEXIST(MEASURED_UPPER_LIMIT)
#error DEPENDENCY ERROR: Missing setting MEASURED_UPPER_LIMIT
#endif
#if !defined(MEASURED_LOWER_LIMIT)
#if NOTEXIST(MEASURED_LOWER_LIMIT)
#error DEPENDENCY ERROR: Missing setting MEASURED_LOWER_LIMIT
#endif
#if !defined(MAX_MEASUREMENT_DELAY)
#if NOTEXIST(MAX_MEASUREMENT_DELAY)
#error DEPENDENCY ERROR: Missing setting MAX_MEASUREMENT_DELAY
#endif
#if !defined(DEFAULT_MEASURED_FILAMENT_DIA)
#if NOTEXIST(DEFAULT_MEASURED_FILAMENT_DIA)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MEASURED_FILAMENT_DIA
#endif
#endif
#if defined(FILAMENT_RUNOUT_SENSOR)
#if !defined(FILRUNOUT_PIN_INVERTING)
#if NOTEXIST(FILRUNOUT_PIN_INVERTING)
#error DEPENDENCY ERROR: Missing setting FILRUNOUT_PIN_INVERTING
#endif
#if !defined(ENDSTOPPULLUP_FIL_RUNOUT)
#if NOTEXIST(ENDSTOPPULLUP_FIL_RUNOUT)
#error DEPENDENCY ERROR: Missing setting ENDSTOPPULLUP_FIL_RUNOUT
#endif
#if !defined(FILAMENT_RUNOUT_SCRIPT)
#if NOTEXIST(FILAMENT_RUNOUT_SCRIPT)
#error DEPENDENCY ERROR: Missing setting FILAMENT_RUNOUT_SCRIPT
#endif
#endif
#if defined(POWER_CONSUMPTION)
#if !defined(POWER_VOLTAGE)
#if NOTEXIST(POWER_VOLTAGE)
#error DEPENDENCY ERROR: Missing setting POWER_VOLTAGE
#endif
#if !defined(POWER_SENSITIVITY)
#if NOTEXIST(POWER_SENSITIVITY)
#error DEPENDENCY ERROR: Missing setting POWER_SENSITIVITY
#endif
#if !defined(POWER_OFFSET)
#if NOTEXIST(POWER_OFFSET)
#error DEPENDENCY ERROR: Missing setting POWER_OFFSET
#endif
#if !defined(POWER_ZERO)
#if NOTEXIST(POWER_ZERO)
#error DEPENDENCY ERROR: Missing setting POWER_ZERO
#endif
#if !defined(POWER_ERROR)
#if NOTEXIST(POWER_ERROR)
#error DEPENDENCY ERROR: Missing setting POWER_ERROR
#endif
#if !defined(POWER_EFFICIENCY)
#if NOTEXIST(POWER_EFFICIENCY)
#error DEPENDENCY ERROR: Missing setting POWER_EFFICIENCY
#endif
#endif
//addon
#if defined(SDSUPPORT)
#if !defined(SD_FINISHED_STEPPERRELEASE)
#if NOTEXIST(SD_FINISHED_STEPPERRELEASE)
#error DEPENDENCY ERROR: Missing setting SD_FINISHED_STEPPERRELEASE
#endif
#if !defined(SD_FINISHED_RELEASECOMMAND)
#if NOTEXIST(SD_FINISHED_RELEASECOMMAND)
#error DEPENDENCY ERROR: Missing setting SD_FINISHED_RELEASECOMMAND
#endif
#if defined(SD_SETTINGS)
#if !defined(SD_CFG_SECONDS)
#if NOTEXIST(SD_CFG_SECONDS)
#error DEPENDENCY ERROR: Missing setting SD_CFG_SECONDS
#endif
#if !defined(CFG_SD_FILE)
#if NOTEXIST(CFG_SD_FILE)
#error DEPENDENCY ERROR: Missing setting CFG_SD_FILE
#endif
#if !defined(CFG_SD_MAX_KEY_LEN)
#if NOTEXIST(CFG_SD_MAX_KEY_LEN)
#error DEPENDENCY ERROR: Missing setting CFG_SD_MAX_KEY_LEN
#endif
#if !defined(CFG_SD_MAX_VALUE_LEN)
#if NOTEXIST(CFG_SD_MAX_VALUE_LEN)
#error DEPENDENCY ERROR: Missing setting CFG_SD_MAX_VALUE_LEN
#endif
#endif
#endif
#if !defined(DISPLAY_CHARSET_HD44780_JAPAN) && !defined(DISPLAY_CHARSET_HD44780_WESTERN) && !defined(DISPLAY_CHARSET_HD44780_CYRILLIC)
#if NOTEXIST(DISPLAY_CHARSET_HD44780_JAPAN) && NOTEXIST(DISPLAY_CHARSET_HD44780_WESTERN) && NOTEXIST(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 defined(SHOW_BOOTSCREEN)
#if !defined(STRING_SPLASH_LINE1)
#if NOTEXIST(STRING_SPLASH_LINE1)
#error DEPENDENCY ERROR: Missing setting STRING_SPLASH_LINE1
#endif
#if !defined(SPLASH_SCREEN_DURATION)
#if NOTEXIST(SPLASH_SCREEN_DURATION)
#error DEPENDENCY ERROR: Missing setting SPLASH_SCREEN_DURATION
#endif
#endif
#if ENABLED(ULTIPANEL)
#if defined(ENCODER_RATE_MULTIPLIER)
#if !defined(ENCODER_10X_STEPS_PER_SEC)
#if NOTEXIST(ENCODER_10X_STEPS_PER_SEC)
#error DEPENDENCY ERROR: Missing setting ENCODER_10X_STEPS_PER_SEC
#endif
#if !defined(ENCODER_100X_STEPS_PER_SEC)
#if NOTEXIST(ENCODER_100X_STEPS_PER_SEC)
#error DEPENDENCY ERROR: Missing setting ENCODER_100X_STEPS_PER_SEC
#endif
#endif
#endif
#if MB(ALLIGATOR)
#if !defined(UI_VOLTAGE_LEVEL)
#if NOTEXIST(UI_VOLTAGE_LEVEL)
#error DEPENDENCY ERROR: Missing setting UI_VOLTAGE_LEVEL
#endif
#endif
#if defined(REPRAPWORLD_KEYPAD)
#if !defined(REPRAPWORLD_KEYPAD_MOVE_STEP)
#if NOTEXIST(REPRAPWORLD_KEYPAD_MOVE_STEP)
#error DEPENDENCY ERROR: Missing setting REPRAPWORLD_KEYPAD_MOVE_STEP
#endif
#endif
#if ENABLED(ULTIPANEL)
#if defined(LCD_PROGRESS_BAR)
#if !defined(PROGRESS_BAR_BAR_TIME)
#if NOTEXIST(PROGRESS_BAR_BAR_TIME)
#error DEPENDENCY ERROR: Missing setting PROGRESS_BAR_BAR_TIME
#endif
#if !defined(PROGRESS_BAR_MSG_TIME)
#if NOTEXIST(PROGRESS_BAR_MSG_TIME)
#error DEPENDENCY ERROR: Missing setting PROGRESS_BAR_MSG_TIME
#endif
#if !defined(PROGRESS_MSG_EXPIRE)
#if NOTEXIST(PROGRESS_MSG_EXPIRE)
#error DEPENDENCY ERROR: Missing setting PROGRESS_MSG_EXPIRE
#endif
#endif
#endif
#if defined(CHDK)
#if !defined(CHDK_DELAY)
#if NOTEXIST(CHDK_DELAY)
#error DEPENDENCY ERROR: Missing setting CHDK_DELAY
#endif
#endif
//adv motion
#if defined(DIGIPOT_I2C)
#if !defined(DIGIPOT_I2C_NUM_CHANNELS)
#if NOTEXIST(DIGIPOT_I2C_NUM_CHANNELS)
#error DEPENDENCY ERROR: Missing setting DIGIPOT_I2C_NUM_CHANNELS
#endif
#if !defined(DIGIPOT_I2C_MOTOR_CURRENTS)
#if NOTEXIST(DIGIPOT_I2C_MOTOR_CURRENTS)
#error DEPENDENCY ERROR: Missing setting DIGIPOT_I2C_MOTOR_CURRENTS
#endif
#endif
#if defined(HAVE_TMCDRIVER)
#if defined(X_IS_TMC)
#if !defined(X_MAX_CURRENT)
#if NOTEXIST(X_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting X_MAX_CURRENT
#endif
#if !defined(X_SENSE_RESISTOR)
#if NOTEXIST(X_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting X_SENSE_RESISTOR
#endif
#if !defined(X_MICROSTEPS)
#if NOTEXIST(X_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X_MICROSTEPS
#endif
#endif
#if defined(X2_IS_TMC)
#if !defined(X2_MAX_CURRENT)
#if NOTEXIST(X2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting X2_MAX_CURRENT
#endif
#if !defined(X2_SENSE_RESISTOR)
#if NOTEXIST(X2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting X2_SENSE_RESISTOR
#endif
#if !defined(X2_MICROSTEPS)
#if NOTEXIST(X2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X2_MICROSTEPS
#endif
#endif
#if defined(Y_IS_TMC)
#if !defined(Y_MAX_CURRENT)
#if NOTEXIST(Y_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Y_MAX_CURRENT
#endif
#if !defined(Y_SENSE_RESISTOR)
#if NOTEXIST(Y_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Y_SENSE_RESISTOR
#endif
#if !defined(Y_MICROSTEPS)
#if NOTEXIST(Y_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y_MICROSTEPS
#endif
#endif
#if defined(Y2_IS_TMC)
#if !defined(Y2_MAX_CURRENT)
#if NOTEXIST(Y2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Y2_MAX_CURRENT
#endif
#if !defined(Y2_SENSE_RESISTOR)
#if NOTEXIST(Y2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Y2_SENSE_RESISTOR
#endif
#if !defined(Y2_MICROSTEPS)
#if NOTEXIST(Y2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y2_MICROSTEPS
#endif
#endif
#if defined(Z_IS_TMC)
#if !defined(Z_MAX_CURRENT)
#if NOTEXIST(Z_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Z_MAX_CURRENT
#endif
#if !defined(Z_SENSE_RESISTOR)
#if NOTEXIST(Z_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Z_SENSE_RESISTOR
#endif
#if !defined(Z_MICROSTEPS)
#if NOTEXIST(Z_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z_MICROSTEPS
#endif
#endif
#if defined(Z2_IS_TMC)
#if !defined(Z2_MAX_CURRENT)
#if NOTEXIST(Z2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting Z2_MAX_CURRENT
#endif
#if !defined(Z2_SENSE_RESISTOR)
#if NOTEXIST(Z2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting Z2_SENSE_RESISTOR
#endif
#if !defined(Z2_MICROSTEPS)
#if NOTEXIST(Z2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z2_MICROSTEPS
#endif
#endif
#if defined(E0_IS_TMC)
#if !defined(E0_MAX_CURRENT)
#if NOTEXIST(E0_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E0_MAX_CURRENT
#endif
#if !defined(E0_SENSE_RESISTOR)
#if NOTEXIST(E0_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E0_SENSE_RESISTOR
#endif
#if !defined(E0_MICROSTEPS)
#if NOTEXIST(E0_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E0_MICROSTEPS
#endif
#endif
#if defined(E1_IS_TMC)
#if !defined(E1_MAX_CURRENT)
#if NOTEXIST(E1_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E1_MAX_CURRENT
#endif
#if !defined(E1_SENSE_RESISTOR)
#if NOTEXIST(E1_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E1_SENSE_RESISTOR
#endif
#if !defined(E1_MICROSTEPS)
#if NOTEXIST(E1_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E1_MICROSTEPS
#endif
#endif
#if defined(E2_IS_TMC)
#if !defined(E2_MAX_CURRENT)
#if NOTEXIST(E2_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E2_MAX_CURRENT
#endif
#if !defined(E2_SENSE_RESISTOR)
#if NOTEXIST(E2_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E2_SENSE_RESISTOR
#endif
#if !defined(E2_MICROSTEPS)
#if NOTEXIST(E2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E2_MICROSTEPS
#endif
#endif
#if defined(E3_IS_TMC)
#if !defined(E3_MAX_CURRENT)
#if NOTEXIST(E3_MAX_CURRENT)
#error DEPENDENCY ERROR: Missing setting E3_MAX_CURRENT
#endif
#if !defined(E3_SENSE_RESISTOR)
#if NOTEXIST(E3_SENSE_RESISTOR)
#error DEPENDENCY ERROR: Missing setting E3_SENSE_RESISTOR
#endif
#if !defined(E3_MICROSTEPS)
#if NOTEXIST(E3_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E3_MICROSTEPS
#endif
#endif
#endif
#if defined(HAVE_L6470DRIVER)
#if defined(X_IS_L6470)
#if !defined(X_MICROSTEPS)
#if NOTEXIST(X_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X_MICROSTEPS
#endif
#if !defined(X_K_VAL)
#if NOTEXIST(X_K_VAL)
#error DEPENDENCY ERROR: Missing setting X_K_VAL
#endif
#if !defined(X_OVERCURRENT)
#if NOTEXIST(X_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting X_OVERCURRENT
#endif
#if !defined(X_STALLCURRENT)
#if NOTEXIST(X_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting X_STALLCURRENT
#endif
#endif
#if defined(X2_IS_L6470)
#if !defined(X2_MICROSTEPS)
#if NOTEXIST(X2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting X2_MICROSTEPS
#endif
#if !defined(X2_K_VAL)
#if NOTEXIST(X2_K_VAL)
#error DEPENDENCY ERROR: Missing setting X2_K_VAL
#endif
#if !defined(X2_OVERCURRENT)
#if NOTEXIST(X2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting X2_OVERCURRENT
#endif
#if !defined(X2_STALLCURRENT)
#if NOTEXIST(X2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting X2_STALLCURRENT
#endif
#endif
#if defined(Y_IS_L6470)
#if !defined(Y_MICROSTEPS)
#if NOTEXIST(Y_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y_MICROSTEPS
#endif
#if !defined(Y_K_VAL)
#if NOTEXIST(Y_K_VAL)
#error DEPENDENCY ERROR: Missing setting Y_K_VAL
#endif
#if !defined(Y_OVERCURRENT)
#if NOTEXIST(Y_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Y_OVERCURRENT
#endif
#if !defined(Y_STALLCURRENT)
#if NOTEXIST(Y_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Y_STALLCURRENT
#endif
#endif
#if defined(Y2_IS_L6470)
#if !defined(Y2_MICROSTEPS)
#if NOTEXIST(Y2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Y2_MICROSTEPS
#endif
#if !defined(Y2_K_VAL)
#if NOTEXIST(Y2_K_VAL)
#error DEPENDENCY ERROR: Missing setting Y2_K_VAL
#endif
#if !defined(Y2_OVERCURRENT)
#if NOTEXIST(Y2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Y2_OVERCURRENT
#endif
#if !defined(Y2_STALLCURRENT)
#if NOTEXIST(Y2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Y2_STALLCURRENT
#endif
#endif
#if defined(Z_IS_L6470)
#if !defined(Z_MICROSTEPS)
#if NOTEXIST(Z_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z_MICROSTEPS
#endif
#if !defined(Z_K_VAL)
#if NOTEXIST(Z_K_VAL)
#error DEPENDENCY ERROR: Missing setting Z_K_VAL
#endif
#if !defined(Z_OVERCURRENT)
#if NOTEXIST(Z_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Z_OVERCURRENT
#endif
#if !defined(Z_STALLCURRENT)
#if NOTEXIST(Z_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Z_STALLCURRENT
#endif
#endif
#if defined(Z2_IS_L6470)
#if !defined(Z2_MICROSTEPS)
#if NOTEXIST(Z2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting Z2_MICROSTEPS
#endif
#if !defined(Z2_K_VAL)
#if NOTEXIST(Z2_K_VAL)
#error DEPENDENCY ERROR: Missing setting Z2_K_VAL
#endif
#if !defined(Z2_OVERCURRENT)
#if NOTEXIST(Z2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting Z2_OVERCURRENT
#endif
#if !defined(Z2_STALLCURRENT)
#if NOTEXIST(Z2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting Z2_STALLCURRENT
#endif
#endif
#if defined(E0_IS_L6470)
#if !defined(E0_MICROSTEPS)
#if NOTEXIST(E0_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E0_MICROSTEPS
#endif
#if !defined(E0_K_VAL)
#if NOTEXIST(E0_K_VAL)
#error DEPENDENCY ERROR: Missing setting E0_K_VAL
#endif
#if !defined(E0_OVERCURRENT)
#if NOTEXIST(E0_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E0_OVERCURRENT
#endif
#if !defined(E0_STALLCURRENT)
#if NOTEXIST(E0_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E0_STALLCURRENT
#endif
#endif
#if defined(E1_IS_L6470)
#if !defined(E1_MICROSTEPS)
#if NOTEXIST(E1_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E1_MICROSTEPS
#endif
#if !defined(E1_K_VAL)
#if NOTEXIST(E1_K_VAL)
#error DEPENDENCY ERROR: Missing setting E1_K_VAL
#endif
#if !defined(E1_OVERCURRENT)
#if NOTEXIST(E1_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E1_OVERCURRENT
#endif
#if !defined(E1_STALLCURRENT)
#if NOTEXIST(E1_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E1_STALLCURRENT
#endif
#endif
#if defined(E2_IS_L6470)
#if !defined(E2_MICROSTEPS)
#if NOTEXIST(E2_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E2_MICROSTEPS
#endif
#if !defined(E2_K_VAL)
#if NOTEXIST(E2_K_VAL)
#error DEPENDENCY ERROR: Missing setting E2_K_VAL
#endif
#if !defined(E2_OVERCURRENT)
#if NOTEXIST(E2_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E2_OVERCURRENT
#endif
#if !defined(E2_STALLCURRENT)
#if NOTEXIST(E2_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E2_STALLCURRENT
#endif
#endif
#if defined(E3_IS_L6470)
#if !defined(E3_MICROSTEPS)
#if NOTEXIST(E3_MICROSTEPS)
#error DEPENDENCY ERROR: Missing setting E3_MICROSTEPS
#endif
#if !defined(E3_K_VAL)
#if NOTEXIST(E3_K_VAL)
#error DEPENDENCY ERROR: Missing setting E3_K_VAL
#endif
#if !defined(E3_OVERCURRENT)
#if NOTEXIST(E3_OVERCURRENT)
#error DEPENDENCY ERROR: Missing setting E3_OVERCURRENT
#endif
#if !defined(E3_STALLCURRENT)
#if NOTEXIST(E3_STALLCURRENT)
#error DEPENDENCY ERROR: Missing setting E3_STALLCURRENT
#endif
#endif
#endif
//buffer
#if !defined(BLOCK_BUFFER_SIZE)
#if NOTEXIST(BLOCK_BUFFER_SIZE)
#error DEPENDENCY ERROR: Missing setting BLOCK_BUFFER_SIZE
#endif
#if !defined(MAX_CMD_SIZE)
#if NOTEXIST(MAX_CMD_SIZE)
#error DEPENDENCY ERROR: Missing setting MAX_CMD_SIZE
#endif
#if !defined(BUFSIZE)
#if NOTEXIST(BUFSIZE)
#error DEPENDENCY ERROR: Missing setting BUFSIZE
#endif
#if !defined(NUM_POSITON_SLOTS)
#if NOTEXIST(NUM_POSITON_SLOTS)
#error DEPENDENCY ERROR: Missing setting NUM_POSITON_SLOTS
#endif
#if !defined(DROP_SEGMENTS)
#if NOTEXIST(DROP_SEGMENTS)
#error DEPENDENCY ERROR: Missing setting DROP_SEGMENTS
#endif
#if !defined(DROP_SEGMENTS)
#if NOTEXIST(DROP_SEGMENTS)
#error DEPENDENCY ERROR: Missing setting DROP_SEGMENTS
#endif
#if !defined(DEFAULT_MINSEGMENTTIME)
#if NOTEXIST(DEFAULT_MINSEGMENTTIME)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MINSEGMENTTIME
#endif
#if !defined(MM_PER_ARC_SEGMENT)
#if NOTEXIST(MM_PER_ARC_SEGMENT)
#error DEPENDENCY ERROR: Missing setting MM_PER_ARC_SEGMENT
#endif
#if !defined(N_ARC_CORRECTION)
#if NOTEXIST(N_ARC_CORRECTION)
#error DEPENDENCY ERROR: Missing setting N_ARC_CORRECTION
#endif
//Machines
#if !defined(X_MIN_ENDSTOP_LOGIC)
#if NOTEXIST(X_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting X_MIN_ENDSTOP_LOGIC
#endif
#if !defined(Y_MIN_ENDSTOP_LOGIC)
#if NOTEXIST(Y_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Y_MIN_ENDSTOP_LOGIC
#endif
#if !defined(Z_MIN_ENDSTOP_LOGIC)
#if NOTEXIST(Z_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z_MIN_ENDSTOP_LOGIC
#endif
#if !defined(Z2_MIN_ENDSTOP_LOGIC)
#if NOTEXIST(Z2_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z2_MIN_ENDSTOP_LOGIC
#endif
#if !defined(X_MAX_ENDSTOP_LOGIC)
#if NOTEXIST(X_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting X_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Y_MAX_ENDSTOP_LOGIC)
#if NOTEXIST(Y_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Y_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Z_MAX_ENDSTOP_LOGIC)
#if NOTEXIST(Z_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Z2_MAX_ENDSTOP_LOGIC)
#if NOTEXIST(Z2_MAX_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z2_MAX_ENDSTOP_LOGIC
#endif
#if !defined(Z_PROBE_ENDSTOP_LOGIC)
#if NOTEXIST(Z_PROBE_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_ENDSTOP_LOGIC
#endif
#if !defined(E_MIN_ENDSTOP_LOGIC)
#if NOTEXIST(E_MIN_ENDSTOP_LOGIC)
#error DEPENDENCY ERROR: Missing setting E_MIN_ENDSTOP_LOGIC
#endif
#if !defined(X_HOME_DIR)
#if NOTEXIST(X_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting X_HOME_DIR
#endif
#if !defined(Y_HOME_DIR)
#if NOTEXIST(Y_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting Y_HOME_DIR
#endif
#if !defined(Z_HOME_DIR)
#if NOTEXIST(Z_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting Z_HOME_DIR
#endif
#if !defined(E_HOME_DIR)
#if NOTEXIST(E_HOME_DIR)
#error DEPENDENCY ERROR: Missing setting E_HOME_DIR
#endif
#if !defined(X_ENABLE_ON)
#if NOTEXIST(X_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting X_ENABLE_ON
#endif
#if !defined(Y_ENABLE_ON)
#if NOTEXIST(Y_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting Y_ENABLE_ON
#endif
#if !defined(Z_ENABLE_ON)
#if NOTEXIST(Z_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting Z_ENABLE_ON
#endif
#if !defined(E_ENABLE_ON)
#if NOTEXIST(E_ENABLE_ON)
#error DEPENDENCY ERROR: Missing setting E_ENABLE_ON
#endif
#if !defined(INVERT_X_STEP_PIN)
#if NOTEXIST(INVERT_X_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_X_STEP_PIN
#endif
#if !defined(INVERT_Y_STEP_PIN)
#if NOTEXIST(INVERT_Y_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_Y_STEP_PIN
#endif
#if !defined(INVERT_Z_STEP_PIN)
#if NOTEXIST(INVERT_Z_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_Z_STEP_PIN
#endif
#if !defined(INVERT_E_STEP_PIN)
#if NOTEXIST(INVERT_E_STEP_PIN)
#error DEPENDENCY ERROR: Missing setting INVERT_E_STEP_PIN
#endif
#if !defined(INVERT_X_DIR)
#if NOTEXIST(INVERT_X_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_X_DIR
#endif
#if !defined(INVERT_Y_DIR)
#if NOTEXIST(INVERT_Y_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_Y_DIR
#endif
#if !defined(INVERT_Z_DIR)
#if NOTEXIST(INVERT_Z_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_Z_DIR
#endif
#if !defined(INVERT_E0_DIR)
#if NOTEXIST(INVERT_E0_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E0_DIR
#endif
#if !defined(INVERT_E1_DIR)
#if NOTEXIST(INVERT_E1_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E1_DIR
#endif
#if !defined(INVERT_E2_DIR)
#if NOTEXIST(INVERT_E2_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E2_DIR
#endif
#if !defined(INVERT_E3_DIR)
#if NOTEXIST(INVERT_E3_DIR)
#error DEPENDENCY ERROR: Missing setting INVERT_E3_DIR
#endif
#if !defined(DISABLE_X)
#if NOTEXIST(DISABLE_X)
#error DEPENDENCY ERROR: Missing setting DISABLE_X
#endif
#if !defined(DISABLE_Y)
#if NOTEXIST(DISABLE_Y)
#error DEPENDENCY ERROR: Missing setting DISABLE_Y
#endif
#if !defined(DISABLE_Z)
#if NOTEXIST(DISABLE_Z)
#error DEPENDENCY ERROR: Missing setting DISABLE_Z
#endif
#if !defined(DISABLE_E)
#if NOTEXIST(DISABLE_E)
#error DEPENDENCY ERROR: Missing setting DISABLE_E
#endif
#if !defined(DISABLE_INACTIVE_EXTRUDER)
#if NOTEXIST(DISABLE_INACTIVE_EXTRUDER)
#error DEPENDENCY ERROR: Missing setting DISABLE_INACTIVE_EXTRUDER
#endif
#if !defined(X_MAX_POS)
#if NOTEXIST(X_MAX_POS)
#error DEPENDENCY ERROR: Missing setting X_MAX_POS
#endif
#if !defined(X_MIN_POS)
#if NOTEXIST(X_MIN_POS)
#error DEPENDENCY ERROR: Missing setting X_MIN_POS
#endif
#if !defined(Y_MAX_POS)
#if NOTEXIST(Y_MAX_POS)
#error DEPENDENCY ERROR: Missing setting Y_MAX_POS
#endif
#if !defined(Y_MIN_POS)
#if NOTEXIST(Y_MIN_POS)
#error DEPENDENCY ERROR: Missing setting Y_MIN_POS
#endif
#if !defined(Z_MAX_POS)
#if NOTEXIST(Z_MAX_POS)
#error DEPENDENCY ERROR: Missing setting Z_MAX_POS
#endif
#if !defined(Z_MIN_POS)
#if NOTEXIST(Z_MIN_POS)
#error DEPENDENCY ERROR: Missing setting Z_MIN_POS
#endif
#if !defined(E_MIN_POS)
#if NOTEXIST(E_MIN_POS)
#error DEPENDENCY ERROR: Missing setting E_MIN_POS
#endif
#if !defined(AXIS_RELATIVE_MODES)
#if NOTEXIST(AXIS_RELATIVE_MODES)
#error DEPENDENCY ERROR: Missing setting AXIS_RELATIVE_MODES
#endif
#if !defined(DEFAULT_AXIS_STEPS_PER_UNIT)
#if NOTEXIST(DEFAULT_AXIS_STEPS_PER_UNIT)
#error DEPENDENCY ERROR: Missing setting DEFAULT_AXIS_STEPS_PER_UNIT
#endif
#if ENABLED(ULTIPANEL) && !defined(MANUAL_FEEDRATE)
#if ENABLED(ULTIPANEL) && NOTEXIST(MANUAL_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting MANUAL_FEEDRATE
#endif
#if !defined(DEFAULT_MINTRAVELFEEDRATE)
#if NOTEXIST(DEFAULT_MINTRAVELFEEDRATE)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MINTRAVELFEEDRATE
#endif
#if !defined(MINIMUM_PLANNER_SPEED)
#if NOTEXIST(MINIMUM_PLANNER_SPEED)
#error DEPENDENCY ERROR: Missing setting MINIMUM_PLANNER_SPEED
#endif
#if !defined(DEFAULT_MAX_ACCELERATION)
#if NOTEXIST(DEFAULT_MAX_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_MAX_ACCELERATION
#endif
#if !defined(DEFAULT_RETRACT_ACCELERATION)
#if NOTEXIST(DEFAULT_RETRACT_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_RETRACT_ACCELERATION
#endif
#if !defined(DEFAULT_ACCELERATION)
#if NOTEXIST(DEFAULT_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_ACCELERATION
#endif
#if !defined(DEFAULT_TRAVEL_ACCELERATION)
#if NOTEXIST(DEFAULT_TRAVEL_ACCELERATION)
#error DEPENDENCY ERROR: Missing setting DEFAULT_TRAVEL_ACCELERATION
#endif
#if !defined(DEFAULT_XYJERK)
#if NOTEXIST(DEFAULT_XYJERK)
#error DEPENDENCY ERROR: Missing setting DEFAULT_XYJERK
#endif
#if !defined(DEFAULT_ZJERK)
#if NOTEXIST(DEFAULT_ZJERK)
#error DEPENDENCY ERROR: Missing setting DEFAULT_ZJERK
#endif
#if !defined(HOMING_FEEDRATE)
#if NOTEXIST(HOMING_FEEDRATE)
#error DEPENDENCY ERROR: Missing setting HOMING_FEEDRATE
#endif
#if !defined(X_HOME_BUMP_MM)
#if NOTEXIST(X_HOME_BUMP_MM)
#error DEPENDENCY ERROR: Missing setting X_HOME_BUMP_MM
#endif
#if !defined(Y_HOME_BUMP_MM)
#if NOTEXIST(Y_HOME_BUMP_MM)
#error DEPENDENCY ERROR: Missing setting Y_HOME_BUMP_MM
#endif
#if !defined(Z_HOME_BUMP_MM)
#if NOTEXIST(Z_HOME_BUMP_MM)
#error DEPENDENCY ERROR: Missing setting Z_HOME_BUMP_MM
#endif
#if !defined(HOMING_BUMP_DIVISOR)
#if NOTEXIST(HOMING_BUMP_DIVISOR)
#error DEPENDENCY ERROR: Missing setting HOMING_BUMP_DIVISOR
#endif
#if !defined(LEFT_PROBE_BED_POSITION)
#if NOTEXIST(LEFT_PROBE_BED_POSITION)
#error DEPENDENCY ERROR: Missing setting LEFT_PROBE_BED_POSITION
#endif
#if !defined(RIGHT_PROBE_BED_POSITION)
#if NOTEXIST(RIGHT_PROBE_BED_POSITION)
#error DEPENDENCY ERROR: Missing setting RIGHT_PROBE_BED_POSITION
#endif
#if !defined(FRONT_PROBE_BED_POSITION)
#if NOTEXIST(FRONT_PROBE_BED_POSITION)
#error DEPENDENCY ERROR: Missing setting FRONT_PROBE_BED_POSITION
#endif
#if !MECH(DELTA)
#if !defined(XY_TRAVEL_SPEED)
#if NOTEXIST(XY_TRAVEL_SPEED)
#error DEPENDENCY ERROR: Missing setting XY_TRAVEL_SPEED
#endif
#endif
#if ENABLED(MANUAL_HOME_POSITIONS)
#if !defined(MANUAL_X_HOME_POS)
#if NOTEXIST(MANUAL_X_HOME_POS)
#error DEPENDENCY ERROR: Missing setting MANUAL_X_HOME_POS
#endif
#if !defined(MANUAL_Y_HOME_POS)
#if NOTEXIST(MANUAL_Y_HOME_POS)
#error DEPENDENCY ERROR: Missing setting MANUAL_Y_HOME_POS
#endif
#if !defined(MANUAL_Z_HOME_POS)
#if NOTEXIST(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)
#if NOTEXIST(COREX_YZ_FACTOR)
#error DEPENDENCY ERROR: Missing setting COREX_YZ_FACTOR
#endif
#endif
#if MECH(SCARA)
#if !defined(LINKAGE_1)
#if NOTEXIST(LINKAGE_1)
#error DEPENDENCY ERROR: Missing setting LINKAGE_1
#endif
#if !defined(LINKAGE_2)
#if NOTEXIST(LINKAGE_2)
#error DEPENDENCY ERROR: Missing setting LINKAGE_2
#endif
#if !defined(SCARA_OFFSET_X)
#if NOTEXIST(SCARA_OFFSET_X)
#error DEPENDENCY ERROR: Missing setting SCARA_OFFSET_X
#endif
#if !defined(SCARA_OFFSET_Y)
#if NOTEXIST(SCARA_OFFSET_Y)
#error DEPENDENCY ERROR: Missing setting SCARA_OFFSET_Y
#endif
#if !defined(SCARA_RAD2DEG)
#if NOTEXIST(SCARA_RAD2DEG)
#error DEPENDENCY ERROR: Missing setting SCARA_RAD2DEG
#endif
#if !defined(THETA_HOMING_OFFSET)
#if NOTEXIST(THETA_HOMING_OFFSET)
#error DEPENDENCY ERROR: Missing setting THETA_HOMING_OFFSET
#endif
#if !defined(PSI_HOMING_OFFSET)
#if NOTEXIST(PSI_HOMING_OFFSET)
#error DEPENDENCY ERROR: Missing setting PSI_HOMING_OFFSET
#endif
#endif
#if MECH(DELTA)
#if !defined(DEFAULT_DELTA_DIAGONAL_ROD)
#if NOTEXIST(DEFAULT_DELTA_DIAGONAL_ROD)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_DIAGONAL_ROD
#endif
#if !defined(DELTA_SMOOTH_ROD_OFFSET)
#if NOTEXIST(DELTA_SMOOTH_ROD_OFFSET)
#error DEPENDENCY ERROR: Missing setting DELTA_SMOOTH_ROD_OFFSET
#endif
#if !defined(DELTA_CARRIAGE_OFFSET)
#if NOTEXIST(DELTA_CARRIAGE_OFFSET)
#error DEPENDENCY ERROR: Missing setting DELTA_CARRIAGE_OFFSET
#endif
#if !defined(PRINTER_RADIUS)
#if NOTEXIST(PRINTER_RADIUS)
#error DEPENDENCY ERROR: Missing setting PRINTER_RADIUS
#endif
#if !defined(DEFAULT_DELTA_RADIUS)
#if NOTEXIST(DEFAULT_DELTA_RADIUS)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_RADIUS
#endif
#if !defined(AUTOCAL_TRAVELRATE)
#if NOTEXIST(AUTOCAL_TRAVELRATE)
#error DEPENDENCY ERROR: Missing setting AUTOCAL_TRAVELRATE
#endif
#if !defined(AUTOCAL_PROBERATE)
#if NOTEXIST(AUTOCAL_PROBERATE)
#error DEPENDENCY ERROR: Missing setting AUTOCAL_PROBERATE
#endif
#if !defined(AUTOCALIBRATION_PRECISION)
#if NOTEXIST(AUTOCALIBRATION_PRECISION)
#error DEPENDENCY ERROR: Missing setting AUTOCALIBRATION_PRECISION
#endif
#if !defined(TOWER_A_ENDSTOP_ADJ)
#if NOTEXIST(TOWER_A_ENDSTOP_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_ENDSTOP_ADJ
#endif
#if !defined(TOWER_B_ENDSTOP_ADJ)
#if NOTEXIST(TOWER_B_ENDSTOP_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_ENDSTOP_ADJ
#endif
#if !defined(TOWER_C_ENDSTOP_ADJ)
#if NOTEXIST(TOWER_C_ENDSTOP_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_ENDSTOP_ADJ
#endif
#if !defined(TOWER_A_POSITION_ADJ)
#if NOTEXIST(TOWER_A_POSITION_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_POSITION_ADJ
#endif
#if !defined(TOWER_B_POSITION_ADJ)
#if NOTEXIST(TOWER_B_POSITION_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_POSITION_ADJ
#endif
#if !defined(TOWER_C_POSITION_ADJ)
#if NOTEXIST(TOWER_C_POSITION_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_POSITION_ADJ
#endif
#if !defined(TOWER_A_RADIUS_ADJ)
#if NOTEXIST(TOWER_A_RADIUS_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_RADIUS_ADJ
#endif
#if !defined(TOWER_B_RADIUS_ADJ)
#if NOTEXIST(TOWER_B_RADIUS_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_RADIUS_ADJ
#endif
#if !defined(TOWER_C_RADIUS_ADJ)
#if NOTEXIST(TOWER_C_RADIUS_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_RADIUS_ADJ
#endif
#if !defined(TOWER_A_DIAGROD_ADJ)
#if NOTEXIST(TOWER_A_DIAGROD_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_A_DIAGROD_ADJ
#endif
#if !defined(TOWER_B_DIAGROD_ADJ)
#if NOTEXIST(TOWER_B_DIAGROD_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_B_DIAGROD_ADJ
#endif
#if !defined(TOWER_C_DIAGROD_ADJ)
#if NOTEXIST(TOWER_C_DIAGROD_ADJ)
#error DEPENDENCY ERROR: Missing setting TOWER_C_DIAGROD_ADJ
#endif
#if !defined(Z_PROBE_OFFSET)
#if NOTEXIST(Z_PROBE_OFFSET)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_OFFSET
#endif
#if !defined(Z_PROBE_DEPLOY_START_LOCATION)
#if NOTEXIST(Z_PROBE_DEPLOY_START_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_DEPLOY_START_LOCATION
#endif
#if !defined(Z_PROBE_DEPLOY_END_LOCATION)
#if NOTEXIST(Z_PROBE_DEPLOY_END_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_DEPLOY_END_LOCATION
#endif
#if !defined(Z_PROBE_RETRACT_START_LOCATION)
#if NOTEXIST(Z_PROBE_RETRACT_START_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_RETRACT_START_LOCATION
#endif
#if !defined(Z_PROBE_RETRACT_END_LOCATION)
#if NOTEXIST(Z_PROBE_RETRACT_END_LOCATION)
#error DEPENDENCY ERROR: Missing setting Z_PROBE_RETRACT_END_LOCATION
#endif
#if !defined(Z_RAISE_BETWEEN_PROBINGS)
#if NOTEXIST(Z_RAISE_BETWEEN_PROBINGS)
#error DEPENDENCY ERROR: Missing setting Z_RAISE_BETWEEN_PROBINGS
#endif
#if !defined(AUTO_BED_LEVELING_GRID_POINTS)
#if NOTEXIST(AUTO_BED_LEVELING_GRID_POINTS)
#error DEPENDENCY ERROR: Missing setting AUTO_BED_LEVELING_GRID_POINTS
#endif
#endif
......
......@@ -28,7 +28,7 @@ void FirmwareTest()
ECHO_EM(" ");
ECHO_EM("***** ENDSTOP X *****");
#if ENABLED(X_MIN_PIN) && X_MIN_PIN > -1 && X_HOME_DIR == -1
#if EXIST(X_MIN_PIN) && X_MIN_PIN > -1 && X_HOME_DIR == -1
if (!READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP X: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
......@@ -70,7 +70,7 @@ void FirmwareTest()
ECHO_EV(MSG_FWTEST_ENDSTOP_ERR);
return;
}
#elif ENABLED(X_MAX_PIN) && X_MAX_PIN > -1 && X_HOME_DIR == 1
#elif EXIST(X_MAX_PIN) && X_MAX_PIN > -1 && X_HOME_DIR == 1
if (!READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP X: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
......@@ -126,7 +126,7 @@ void FirmwareTest()
ECHO_EM(" ");
ECHO_EM("***** ENDSTOP Y *****");
#if ENABLED(Y_MIN_PIN) && Y_MIN_PIN > -1 && Y_HOME_DIR == -1
#if EXIST(Y_MIN_PIN) && Y_MIN_PIN > -1 && Y_HOME_DIR == -1
if (!READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING){
ECHO_M("MIN ENDSTOP Y: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
......@@ -168,7 +168,7 @@ void FirmwareTest()
ECHO_EV(MSG_FWTEST_ENDSTOP_ERR);
return;
}
#elif ENABLED(Y_MAX_PIN) && Y_MAX_PIN > -1 && Y_HOME_DIR == 1
#elif EXIST(Y_MAX_PIN) && Y_MAX_PIN > -1 && Y_HOME_DIR == 1
if (!READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING){
ECHO_M("MAX ENDSTOP Y: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
......@@ -224,7 +224,7 @@ void FirmwareTest()
ECHO_EM(" ");
ECHO_EM("***** ENDSTOP Z *****");
#if ENABLED(Z_MIN_PIN) && Z_MIN_PIN > -1 && Z_HOME_DIR == -1
#if EXIST(Z_MIN_PIN) && Z_MIN_PIN > -1 && Z_HOME_DIR == -1
if (!READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING){
ECHO_M("MIN ENDSTOP Z: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
......@@ -266,7 +266,7 @@ void FirmwareTest()
ECHO_EV(MSG_FWTEST_ENDSTOP_ERR);
return;
}
#elif ENABLED(Z_MAX_PIN) && Z_MAX_PIN > -1 && Z_HOME_DIR == 1
#elif EXIST(Z_MAX_PIN) && Z_MAX_PIN > -1 && Z_HOME_DIR == 1
if (!READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING){
ECHO_M("MAX ENDSTOP Z: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
......
#ifndef LANGUAGE_H
#define LANGUAGE_H
#include "Configuration_Basic.h"
// NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES
//
// ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration_Basic.h"
......@@ -25,11 +23,11 @@
// 13 Basque-Euskera
// 14 Portuguese (Brazil)
#if DISABLED(LANGUAGE_CHOICE)
#if NOTEXIST(LANGUAGE_CHOICE)
#define LANGUAGE_CHOICE 7 // Pick your language from the list above
#endif
#include "Default_Version.h"
#include "default_version.h"
#define PROTOCOL_VERSION "1.0"
......@@ -49,20 +47,20 @@
#elif MB(SAV_MKI)
#define MACHINE_NAME "SAV MkI"
#define SOURCE_CODE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config"
#elif DISABLED(MACHINE_NAME)
#elif NOTEXIST(MACHINE_NAME)
#define MACHINE_NAME "3D Printer"
#endif
#if ENABLED(CUSTOM_MACHINE_NAME)
#if EXIST(CUSTOM_MACHINE_NAME)
#undef MACHINE_NAME
#define MACHINE_NAME CUSTOM_MACHINE_NAME
#endif
#if DISABLED(SOURCE_CODE_URL)
#if NOTEXIST(SOURCE_CODE_URL)
#define SOURCE_CODE_URL "https://github.com/MagoKimbra/MarlinKimbra"
#endif
#if DISABLED(BUILD_VERSION)
#if NOTEXIST(BUILD_VERSION)
#define BUILD_VERSION "V4; MarlinKimbra for 4 extruder"
#endif
......
......@@ -24,6 +24,8 @@
#define SWITCH_ENABLED_ 1
#define ENABLED(b) _CAT(SWITCH_ENABLED_, b)
#define DISABLED(b) (!_CAT(SWITCH_ENABLED_, b))
#define EXIST(b) defined(EXIST)
#define NOTEXIST(b) (!defined(EXIST))
#define COUNT(a) (sizeof(a)/sizeof(*a))
......
......@@ -73,8 +73,6 @@
#ifndef PINS_H
#define PINS_H
#include "boards.h"
// Preset optional pins
#define X_MS1_PIN -1
#define X_MS2_PIN -1
......@@ -188,7 +186,7 @@
#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
#endif
#if DISABLED(GEN7_VERSION)
#if NOTEXIST(GEN7_VERSION)
#define GEN7_VERSION 12 // v1.x
#endif
......@@ -263,7 +261,7 @@
#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
#endif
#if DISABLED(GEN7_VERSION)
#if NOTEXIST(GEN7_VERSION)
#define GEN7_VERSION 13 // v1.x
#endif
......@@ -504,7 +502,7 @@
#error Oops! Make sure you have 'Sethi 3D' selected from the 'Tools -> Boards' menu.
#endif
#if DISABLED(GEN7_VERSION)
#if NOTEXIST(GEN7_VERSION)
#define GEN7_VERSION 12 // v1.x
#endif
......@@ -1126,13 +1124,13 @@
#define ORIG_TEMP_BED_PIN 14 // ANALOG NUMBERING
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#define SERVO0_PIN 11
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#define SERVO3_PIN 4
#endif
#endif
#endif
......@@ -1329,13 +1327,13 @@
#define ORIG_TEMP_BED_PIN 14 // ANALOG NUMBERING
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#define SERVO0_PIN 11
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#define SERVO3_PIN 4
#endif
#endif
#endif
......@@ -1532,13 +1530,13 @@
#define ORIG_TEMP_BED_PIN 14 // ANALOG NUMBERING
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#define SERVO0_PIN 11
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#define SERVO3_PIN 4
#endif
#endif
#endif
......@@ -1735,13 +1733,13 @@
#define ORIG_TEMP_BED_PIN -1 // ANALOG NUMBERING
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#define SERVO0_PIN 11
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#define SERVO3_PIN 4
#endif
#endif
#endif
......@@ -2122,19 +2120,16 @@
#if ENABLED(NUM_SERVOS)
#define SERVO0_PIN 5
#if NUM_SERVOS > 0
#define SERVO0_PIN 5
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#endif
#if NUM_SERVOS > 2
#define SERVO2_PIN 39
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN 40
#if NUM_SERVOS > 2
#define SERVO2_PIN 39
#if NUM_SERVOS > 3
#define SERVO3_PIN 40
#endif
#endif
#endif
#endif
......@@ -2260,23 +2255,18 @@
#define ORIG_TEMP_2_PIN 4 // 3 // ANALOG NUMBERING
#define ORIG_TEMP_3_PIN -1 // ANALOG NUMBERING
#define TEMP_4_PIN -1 // ANALOG NUMBERING
#if ENABLED(NUM_SERVOS)
#define SERVO0_PIN 11
#define TEMP_4_PIN -1 // ANALOG NUMBERING
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#endif
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#endif
#endif
#endif
#endif
......@@ -2572,26 +2562,23 @@
#if UI_VOLTAGE_LEVEL != 1
#undef UI_VOLTAGE_LEVEL
#define UI_VOLTAGE_LEVEL 1
#define UI_VOLTAGE_LEVEL 1
#endif
#endif //REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#if ENABLED(NUM_SERVOS)
#define SERVO0_PIN 36
#if NUM_SERVOS > 1
#define SERVO1_PIN 40
#endif
#if NUM_SERVOS > 0
#define SERVO0_PIN 36
#if NUM_SERVOS > 1
#define SERVO1_PIN 40
#if NUM_SERVOS > 2
#define SERVO2_PIN 41
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN -1
#if NUM_SERVOS > 3
#define SERVO3_PIN -1
#endif
#endif
#endif
#endif
#endif //ALLIGATOR
/****************************************************************************************/
......@@ -2669,19 +2656,16 @@
#endif
#if NUM_SERVOS > 0
#define SERVO0_PIN -1
#endif
#if NUM_SERVOS > 1
#define SERVO1_PIN -1
#endif
#if NUM_SERVOS > 2
#define SERVO2_PIN -1
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN -1
#define SERVO0_PIN -1
#if NUM_SERVOS > 1
#define SERVO1_PIN -1
#if NUM_SERVOS > 2
#define SERVO2_PIN -1
#if NUM_SERVOS > 3
#define SERVO3_PIN -1
#endif
#endif
#endif
#endif
#define PS_ON_PIN -1
......@@ -2864,21 +2848,22 @@
#define ORIG_TEMP_BED_PIN 14 // ANALOG NUMBERING
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#endif
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#define SERVO0_PIN 11
#endif
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#endif
#endif
#endif
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#endif
#if ENABLED(TEMP_STAT_LEDS)
#define STAT_LED_RED 6
#define STAT_LED_BLUE 11
......@@ -3069,17 +3054,17 @@
#define ORIG_TEMP_BED_PIN 14 // ANALOG NUMBERING
#if ENABLED(NUM_SERVOS)
#define SERVO0_PIN 47
#if NUM_SERVOS > 1
#define SERVO1_PIN -1
#if NUM_SERVOS > 2
#define SERVO2_PIN -1
#if NUM_SERVOS > 3
#define SERVO3_PIN -1
#endif
#endif
#endif
#if NUM_SERVOS > 0
#define SERVO0_PIN 47
#if NUM_SERVOS > 1
#define SERVO1_PIN -1
#if NUM_SERVOS > 2
#define SERVO2_PIN -1
#if NUM_SERVOS > 3
#define SERVO3_PIN -1
#endif
#endif
#endif
#endif
#if ENABLED(TEMP_STAT_LEDS)
......@@ -3665,13 +3650,13 @@
#define LED_PIN 13
#if NUM_SERVOS > 0
#define SERVO0_PIN 46 //AUX3-6
#define SERVO0_PIN 46 //AUX3-6
#if NUM_SERVOS > 1
#define SERVO1_PIN 47 //AUX3-5
#define SERVO1_PIN 47 //AUX3-5
#if NUM_SERVOS > 2
#define SERVO2_PIN 48 //AUX3-4
#define SERVO2_PIN 48 //AUX3-4
#if NUM_SERVOS > 3
#define SERVO2_PIN 49 //AUX3-3
#define SERVO2_PIN 49 //AUX3-3
#endif
#endif
#endif
......@@ -3983,18 +3968,15 @@
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#endif
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#endif
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#endif
#endif
#endif
#endif
#define BEEPER_PIN 33
......@@ -4109,18 +4091,15 @@
#if NUM_SERVOS > 0
#define SERVO0_PIN 11
#endif
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#endif
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#endif
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#endif
#endif
#endif
#endif
#define BEEPER_PIN 33
......@@ -4525,7 +4504,7 @@
#define KILL_PIN 42 // A2 = 42 - teensy = 40
#define HOME_PIN -1 // A4 = marlin 44 - teensy = 42
#if ENABLED(NUM_SERVOS)
#if NUM_SERVOS > 0
#define SERVO0_PIN 41 // In teensy's pin definition for pinMode (in Servo.cpp)
#endif
......@@ -5112,9 +5091,6 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
********************************* END MOTHERBOARD ***************************************
/****************************************************************************************/
#if DISABLED(KNOWN_BOARD)
#error Unknown MOTHERBOARD value in configuration.h
#endif
#ifndef ORIG_HEATER_1_PIN
#define ORIG_HEATER_1_PIN -1
......
......@@ -673,7 +673,7 @@ ISR(TIMER1_COMPA_vect) {
STEP_START(e,E);
#endif
#if ENABLED(STEPPER_HIGH_LOW_DELAY) && STEPPER_HIGH_LOW_DELAY > 0
#if EXIST(STEPPER_HIGH_LOW_DELAY) && STEPPER_HIGH_LOW_DELAY > 0
delayMicroseconds(STEPPER_HIGH_LOW_DELAY);
#endif
......@@ -1187,7 +1187,7 @@ void quickStop() {
case Z_AXIS: {
#if DISABLED(DELTA)
#if !MECH(DELTA)
BABYSTEP_AXIS(z, Z, BABYSTEP_INVERT_Z);
......
......@@ -154,10 +154,10 @@ static int minttemp_raw[HOTENDS] = ARRAY_BY_HOTENDS( HEATER_0_RAW_LO_TEMP , HEAT
static int maxttemp_raw[HOTENDS] = ARRAY_BY_HOTENDS( HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP);
static int minttemp[HOTENDS] = { 0 };
static int maxttemp[HOTENDS] = ARRAY_BY_HOTENDS1( 16383 );
#if ENABLED(BED_MINTEMP)
#if EXIST(BED_MINTEMP)
static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP;
#endif
#if ENABLED(BED_MAXTEMP)
#if EXIST(BED_MAXTEMP)
static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP;
#endif
......
......@@ -1080,7 +1080,7 @@ const short temptable_1047[][2] PROGMEM = {
#endif
#define _TT_NAME(_N) temptable_ # #_N
#define _TT_NAME(_N) temptable_ ## _N
#define TT_NAME(_N) _TT_NAME(_N)
#if ENABLED(THERMISTORHEATER_0)
......
......@@ -12,7 +12,7 @@ int8_t encoderDiff; // updated from interrupt context and added to encoderPositi
bool encoderRateMultiplierEnabled;
int32_t lastEncoderMovementMillis;
#if DISABLED(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
#if !MECH(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
int pageShowInfo = 0;
void set_pageShowInfo(int value){ pageShowInfo = value; }
#endif
......@@ -84,7 +84,7 @@ static void lcd_status_screen();
#if MECH(DELTA)
static void lcd_delta_calibrate_menu();
#elif DISABLED(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
#elif !MECH(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
static void lcd_level_bed();
static void config_lcd_level_bed();
#endif // DELTA
......@@ -118,17 +118,17 @@ static void lcd_status_screen();
#define ENCODER_FEEDRATE_DEADZONE 10
#if DISABLED(LCD_I2C_VIKI)
#if DISABLED(ENCODER_STEPS_PER_MENU_ITEM)
#if NOTEXIST(ENCODER_STEPS_PER_MENU_ITEM)
#define ENCODER_STEPS_PER_MENU_ITEM 5
#endif
#if DISABLED(ENCODER_PULSES_PER_STEP)
#if NOTEXIST(ENCODER_PULSES_PER_STEP)
#define ENCODER_PULSES_PER_STEP 1
#endif
#else
#if DISABLED(ENCODER_STEPS_PER_MENU_ITEM)
#if NOTEXIST(ENCODER_STEPS_PER_MENU_ITEM)
#define ENCODER_STEPS_PER_MENU_ITEM 2 // VIKI LCD rotary encoder uses a different number of steps per rotation
#endif
#if DISABLED(ENCODER_PULSES_PER_STEP)
#if NOTEXIST(ENCODER_PULSES_PER_STEP)
#define ENCODER_PULSES_PER_STEP 1
#endif
#endif
......@@ -547,19 +547,19 @@ static void lcd_tune_menu() {
MENU_ITEM(back, MSG_MAIN, lcd_main_menu);
MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_multiplier, 10, 999);
#if TEMP_SENSOR_0 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 0", &target_temperature[0], 0, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 0", &target_temperature[0], 0, HEATER_0_MAXTEMP);
#endif
#if TEMP_SENSOR_1 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 1", &target_temperature[1], 0, HEATER_1_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 1", &target_temperature[1], 0, HEATER_1_MAXTEMP);
#endif
#if TEMP_SENSOR_2 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 2", &target_temperature[2], 0, HEATER_2_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 2", &target_temperature[2], 0, HEATER_2_MAXTEMP);
#endif
#if TEMP_SENSOR_3 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 3", &target_temperature[3], 0, HEATER_3_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 3", &target_temperature[3], 0, HEATER_3_MAXTEMP);
#endif
#if TEMP_SENSOR_BED != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP);
#endif
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
MENU_ITEM_EDIT(int3, MSG_FLOW " 0", &extruder_multiplier[0], 10, 999);
......@@ -775,7 +775,7 @@ static void lcd_prepare_motion_menu() {
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS])
MENU_ITEM(gcode, MSG_LEVEL_BED, PSTR("G29"));
#elif DISABLED(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
#elif !MECH(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
MENU_ITEM(submenu, MSG_MBL_SETTING, config_lcd_level_bed);
#endif
......@@ -843,14 +843,14 @@ static void lcd_prepare_temperature_menu() {
// Nozzle, Nozzle 2, Nozzle 3, Nozzle 4
//
#if TEMP_SENSOR_0 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 0", &target_temperature[0], 0, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 0", &target_temperature[0], 0, HEATER_0_MAXTEMP);
#endif
#if HOTENDS > 1 && TEMP_SENSOR_1 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 1", &target_temperature[1], 0, HEATER_1_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 1", &target_temperature[1], 0, HEATER_1_MAXTEMP);
#if HOTENDS > 2 && TEMP_SENSOR_2 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 2", &target_temperature[2], 0, HEATER_2_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 2", &target_temperature[2], 0, HEATER_2_MAXTEMP);
#if HOTENDS > 3 && TEMP_SENSOR_3 != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 3", &target_temperature[3], 0, HEATER_3_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE " 3", &target_temperature[3], 0, HEATER_3_MAXTEMP);
#endif // HOTENDS > 3
#endif // HOTENDS > 2
#endif // HOTENDS > 1
......@@ -859,7 +859,7 @@ static void lcd_prepare_temperature_menu() {
// Bed
//
#if TEMP_SENSOR_BED != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP);
#endif
//
......@@ -1119,8 +1119,8 @@ static void lcd_control_temperature_menu() {
//
#if ENABLED(AUTOTEMP) && (TEMP_SENSOR_0 != 0)
MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &autotemp_enabled);
MENU_ITEM_EDIT(float3, MSG_MIN, &autotemp_min, 0, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(float3, MSG_MAX, &autotemp_max, 0, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(float3, MSG_MIN, &autotemp_min, 0, HEATER_0_MAXTEMP);
MENU_ITEM_EDIT(float3, MSG_MAX, &autotemp_max, 0, HEATER_0_MAXTEMP);
MENU_ITEM_EDIT(float32, MSG_FACTOR, &autotemp_factor, 0.0, 1.0);
#endif
......@@ -1198,10 +1198,10 @@ static void lcd_control_temperature_preheat_pla_settings_menu() {
MENU_ITEM(back, MSG_TEMPERATURE, lcd_control_temperature_menu);
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &plaPreheatFanSpeed, 0, 255);
#if TEMP_SENSOR_0 != 0
MENU_ITEM_EDIT(int3, MSG_NOZZLE, &plaPreheatHotendTemp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(int3, MSG_NOZZLE, &plaPreheatHotendTemp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP);
#endif
#if TEMP_SENSOR_BED != 0
MENU_ITEM_EDIT(int3, MSG_BED, &plaPreheatHPBTemp, BED_MINTEMP, BED_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(int3, MSG_BED, &plaPreheatHPBTemp, BED_MINTEMP, BED_MAXTEMP);
#endif
#if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(function, MSG_STORE_EPROM, Config_StoreSettings);
......@@ -1219,10 +1219,10 @@ static void lcd_control_temperature_preheat_abs_settings_menu() {
MENU_ITEM(back, MSG_TEMPERATURE, lcd_control_temperature_menu);
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &absPreheatFanSpeed, 0, 255);
#if TEMP_SENSOR_0 != 0
MENU_ITEM_EDIT(int3, MSG_NOZZLE, &absPreheatHotendTemp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(int3, MSG_NOZZLE, &absPreheatHotendTemp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP);
#endif
#if TEMP_SENSOR_BED != 0
MENU_ITEM_EDIT(int3, MSG_BED, &absPreheatHPBTemp, BED_MINTEMP, BED_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(int3, MSG_BED, &absPreheatHPBTemp, BED_MINTEMP, BED_MAXTEMP);
#endif
#if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(function, MSG_STORE_EPROM, Config_StoreSettings);
......@@ -1240,10 +1240,10 @@ static void lcd_control_temperature_preheat_gum_settings_menu() {
MENU_ITEM(back, MSG_TEMPERATURE, lcd_control_temperature_menu);
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &gumPreheatFanSpeed, 0, 255);
#if TEMP_SENSOR_0 != 0
MENU_ITEM_EDIT(int3, MSG_NOZZLE, &gumPreheatHotendTemp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(int3, MSG_NOZZLE, &gumPreheatHotendTemp, HEATER_0_MINTEMP, HEATER_0_MAXTEMP);
#endif
#if TEMP_SENSOR_BED != 0
MENU_ITEM_EDIT(int3, MSG_BED, &gumPreheatHPBTemp, BED_MINTEMP, BED_MAXTEMP + LCD_MAX_TEMP_OFFSET);
MENU_ITEM_EDIT(int3, MSG_BED, &gumPreheatHPBTemp, BED_MINTEMP, BED_MAXTEMP);
#endif
#if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(function, MSG_STORE_EPROM, Config_StoreSettings);
......@@ -1837,7 +1837,7 @@ void lcd_update() {
// Return to Status Screen after a timeout
if (currentMenu != lcd_status_screen &&
#if DISABLED(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
#if !MECH(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
currentMenu != lcd_level_bed &&
#endif
millis() > return_to_status_ms
......@@ -2303,7 +2303,7 @@ char *ftostr52(const float &x) {
return conv;
}
#if DISABLED(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
#if !MECH(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
static void lcd_level_bed() {
......
......@@ -29,7 +29,7 @@
void lcd_setcontrast(uint8_t value);
#endif
#if DISABLED(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
#if !MECH(DELTA) && DISABLED(Z_SAFE_HOMING) && Z_HOME_DIR < 0
void set_pageShowInfo(int value);
#endif
......
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