Remove invariant code from Configurations
- Add `Conditionals.h` with calculated configuration values - Add `SanityCheck.h` with checks for configuration errors - Remove equivalent code from all configurations - Move error checks from some sources to `SanityCheck.h` also - Fix initialization of count_direction in stepper.cpp
This commit is contained in:
		| @@ -347,15 +347,6 @@ your extruder heater takes 2 minutes to hit the target on heating. | ||||
|   // #define ENDSTOPPULLUP_ZMIN | ||||
| #endif | ||||
|  | ||||
| #ifdef ENDSTOPPULLUPS | ||||
|   #define ENDSTOPPULLUP_XMAX | ||||
|   #define ENDSTOPPULLUP_YMAX | ||||
|   #define ENDSTOPPULLUP_ZMAX | ||||
|   #define ENDSTOPPULLUP_XMIN | ||||
|   #define ENDSTOPPULLUP_YMIN | ||||
|   #define ENDSTOPPULLUP_ZMIN | ||||
| #endif | ||||
|  | ||||
| // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. | ||||
| const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. | ||||
| const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. | ||||
| @@ -406,10 +397,15 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of | ||||
| #define Z_MAX_POS MANUAL_Z_HOME_POS | ||||
| #define Z_MIN_POS 0 | ||||
|  | ||||
| #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) | ||||
| #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) | ||||
| #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) | ||||
|  | ||||
| //=========================================================================== | ||||
| //============================= Filament Runout Sensor ====================== | ||||
| //=========================================================================== | ||||
| //#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament | ||||
|                                  // In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made. | ||||
|                                  // It is assumed that when logic high = filament available | ||||
|                                  //                    when logic  low = filament ran out | ||||
| //const bool FIL_RUNOUT_INVERTING = true;  // Should be uncommented and true or false should assigned | ||||
| //#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined. | ||||
|  | ||||
| //=========================================================================== | ||||
| //============================= Bed Auto Leveling =========================== | ||||
| @@ -632,112 +628,17 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of | ||||
| // in ultralcd.cpp@lcd_delta_calibrate_menu() | ||||
| // #define DELTA_CALIBRATION_MENU | ||||
|  | ||||
| //automatic expansion | ||||
| #if defined (MAKRPANEL) | ||||
|  #define DOGLCD | ||||
|  #define SDSUPPORT | ||||
|  #define ULTIPANEL | ||||
|  #define NEWPANEL | ||||
|  #define DEFAULT_LCD_CONTRAST 17 | ||||
| #endif | ||||
|  | ||||
| #if defined(miniVIKI) || defined(VIKI2) | ||||
|  #define ULTRA_LCD  //general LCD support, also 16x2 | ||||
|  #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) | ||||
|  #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. | ||||
|   | ||||
|   #ifdef miniVIKI | ||||
|    #define DEFAULT_LCD_CONTRAST 95 | ||||
|   #else | ||||
|    #define DEFAULT_LCD_CONTRAST 40 | ||||
|   #endif | ||||
|    | ||||
|  #define ENCODER_PULSES_PER_STEP 4 | ||||
|  #define ENCODER_STEPS_PER_MENU_ITEM 1 | ||||
| #endif | ||||
|  | ||||
| #if defined (PANEL_ONE) | ||||
|  #define SDSUPPORT | ||||
|  #define ULTIMAKERCONTROLLER | ||||
| #endif | ||||
|  | ||||
| #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) | ||||
|  #define DOGLCD | ||||
|  #define U8GLIB_ST7920 | ||||
|  #define REPRAP_DISCOUNT_SMART_CONTROLLER | ||||
| #endif | ||||
|  | ||||
| #if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL) | ||||
|  #define ULTIPANEL | ||||
|  #define NEWPANEL | ||||
| #endif | ||||
|  | ||||
| #if defined(REPRAPWORLD_KEYPAD) | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
| #endif | ||||
| #if defined(RA_CONTROL_PANEL) | ||||
|  #define ULTIPANEL | ||||
|  #define NEWPANEL | ||||
|  #define LCD_I2C_TYPE_PCA8574 | ||||
|  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander | ||||
| #endif | ||||
|  | ||||
| //I2C PANELS | ||||
| /** | ||||
|  * I2C PANELS | ||||
|  */ | ||||
|  | ||||
| //#define LCD_I2C_SAINSMART_YWROBOT | ||||
| #ifdef LCD_I2C_SAINSMART_YWROBOT | ||||
|   // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home ) | ||||
|   // Make sure it is placed in the Arduino libraries directory. | ||||
|   #define LCD_I2C_TYPE_PCF8575 | ||||
|   #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
| #endif | ||||
|  | ||||
| // PANELOLU2 LCD with status LEDs, separate encoder and click inputs | ||||
| //#define LCD_I2C_PANELOLU2 | ||||
| #ifdef LCD_I2C_PANELOLU2 | ||||
|   // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) | ||||
|   // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. | ||||
|   // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) | ||||
|   // Note: The PANELOLU2 encoder click input can either be directly connected to a pin | ||||
|   //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). | ||||
|   #define LCD_I2C_TYPE_MCP23017 | ||||
|   #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander | ||||
|   #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
|  | ||||
|   #ifndef ENCODER_PULSES_PER_STEP | ||||
| 	#define ENCODER_PULSES_PER_STEP 4 | ||||
|   #endif | ||||
|  | ||||
|   #ifndef ENCODER_STEPS_PER_MENU_ITEM | ||||
| 	#define ENCODER_STEPS_PER_MENU_ITEM 1 | ||||
|   #endif | ||||
|  | ||||
|  | ||||
|   #ifdef LCD_USE_I2C_BUZZER | ||||
| 	#define LCD_FEEDBACK_FREQUENCY_HZ 1000 | ||||
| 	#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 | ||||
|   #endif | ||||
|  | ||||
| #endif | ||||
|  | ||||
| // Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs | ||||
| //#define LCD_I2C_VIKI | ||||
| #ifdef LCD_I2C_VIKI | ||||
|   // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) | ||||
|   // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. | ||||
|   // Note: The pause/stop/resume LCD button pin should be connected to the Arduino | ||||
|   //       BTN_ENC pin (or set BTN_ENC to -1 if not used) | ||||
|   #define LCD_I2C_TYPE_MCP23017 | ||||
|   #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander | ||||
|   #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later) | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
| #endif | ||||
|  | ||||
| // Shift register panels | ||||
| // --------------------- | ||||
| @@ -745,51 +646,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of | ||||
| // https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection  | ||||
|  | ||||
| //#define SAV_3DLCD | ||||
| #ifdef SAV_3DLCD | ||||
|    #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister | ||||
|    #define NEWPANEL | ||||
|    #define ULTIPANEL | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifdef ULTIPANEL | ||||
| //  #define NEWPANEL  //enable this if you have a click-encoder panel | ||||
|   #define SDSUPPORT | ||||
|   #define ULTRA_LCD | ||||
|   #ifdef DOGLCD // Change number of lines to match the DOG graphic display | ||||
|     #define LCD_WIDTH 22 | ||||
|     #define LCD_HEIGHT 5 | ||||
|   #else | ||||
|     #define LCD_WIDTH 20 | ||||
|     #define LCD_HEIGHT 4 | ||||
|   #endif | ||||
| #else //no panel but just LCD | ||||
|   #ifdef ULTRA_LCD | ||||
|   #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display | ||||
|     #define LCD_WIDTH 22 | ||||
|     #define LCD_HEIGHT 5 | ||||
|   #else | ||||
|     #define LCD_WIDTH 16 | ||||
|     #define LCD_HEIGHT 2 | ||||
|   #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| // default LCD contrast for dogm-like LCD displays | ||||
| #ifdef DOGLCD | ||||
| # ifndef DEFAULT_LCD_CONTRAST | ||||
| #  define DEFAULT_LCD_CONTRAST 32 | ||||
| # endif | ||||
| #endif | ||||
|  | ||||
| // Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino | ||||
| //#define FAST_PWM_FAN | ||||
|  | ||||
| // Temperature status LEDs that display the hotend and bet temperature. | ||||
| // If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. | ||||
| // Otherwise the RED led is on. There is 1C hysteresis. | ||||
| //#define TEMP_STAT_LEDS | ||||
|  | ||||
| // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency | ||||
| // which is not ass annoying as with the hardware PWM. On the other hand, if this frequency | ||||
| // is too low, you should also increment SOFT_PWM_SCALE. | ||||
| @@ -801,6 +661,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of | ||||
| // at zero value, there are 128 effective control positions. | ||||
| #define SOFT_PWM_SCALE 0 | ||||
|  | ||||
| // Temperature status LEDs that display the hotend and bet temperature. | ||||
| // If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. | ||||
| // Otherwise the RED led is on. There is 1C hysteresis. | ||||
| //#define TEMP_STAT_LEDS | ||||
|  | ||||
| // M240  Triggers a camera by emulating a Canon RC-1 Remote | ||||
| // Data from: http://www.doc-diy.net/photo/rc-1_hacked/ | ||||
| // #define PHOTOGRAPH_PIN     23 | ||||
| @@ -870,6 +735,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of | ||||
|  | ||||
|  | ||||
| #include "Configuration_adv.h" | ||||
| #include "Conditionals.h" | ||||
| #include "SanityCheck.h" | ||||
| #include "thermistortables.h" | ||||
|  | ||||
| #endif //__CONFIGURATION_H | ||||
| #endif //CONFIGURATION_H | ||||
|   | ||||
| @@ -89,54 +89,6 @@ | ||||
|  | ||||
| #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing | ||||
|  | ||||
|  | ||||
| //// AUTOSET LOCATIONS OF LIMIT SWITCHES | ||||
| //// Added by ZetaPhoenix 09-15-2012 | ||||
| #ifdef MANUAL_HOME_POSITIONS  // Use manual limit switch locations | ||||
|   #define X_HOME_POS MANUAL_X_HOME_POS | ||||
|   #define Y_HOME_POS MANUAL_Y_HOME_POS | ||||
|   #define Z_HOME_POS MANUAL_Z_HOME_POS | ||||
| #else //Set min/max homing switch positions based upon homing direction and min/max travel limits | ||||
|   //X axis | ||||
|   #if X_HOME_DIR == -1 | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define X_HOME_POS X_MAX_LENGTH * -0.5 | ||||
|     #else | ||||
|       #define X_HOME_POS X_MIN_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #else     | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define X_HOME_POS X_MAX_LENGTH * 0.5 | ||||
|     #else | ||||
|       #define X_HOME_POS X_MAX_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #endif //X_HOME_DIR == -1 | ||||
|    | ||||
|   //Y axis | ||||
|   #if Y_HOME_DIR == -1 | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define Y_HOME_POS Y_MAX_LENGTH * -0.5 | ||||
|     #else | ||||
|       #define Y_HOME_POS Y_MIN_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #else     | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define Y_HOME_POS Y_MAX_LENGTH * 0.5 | ||||
|     #else | ||||
|       #define Y_HOME_POS Y_MAX_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #endif //Y_HOME_DIR == -1 | ||||
|    | ||||
|   // Z axis | ||||
|   #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used | ||||
|     #define Z_HOME_POS Z_MIN_POS | ||||
|   #else     | ||||
|     #define Z_HOME_POS Z_MAX_POS | ||||
|   #endif //Z_HOME_DIR == -1 | ||||
| #endif //End auto min/max positions | ||||
| //END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP | ||||
|  | ||||
|  | ||||
| //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. | ||||
|  | ||||
| // A single Z stepper driver is usually used to drive 2 stepper motors. | ||||
| @@ -146,26 +98,12 @@ | ||||
| // On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. | ||||
| //#define Z_DUAL_STEPPER_DRIVERS | ||||
|  | ||||
| #ifdef Z_DUAL_STEPPER_DRIVERS | ||||
|   #undef EXTRUDERS | ||||
|   #define EXTRUDERS 1 | ||||
| #endif | ||||
|  | ||||
| // Same again but for Y Axis. | ||||
| //#define Y_DUAL_STEPPER_DRIVERS | ||||
|  | ||||
| // Define if the two Y drives need to rotate in opposite directions | ||||
| #define INVERT_Y2_VS_Y_DIR true | ||||
|  | ||||
| #ifdef Y_DUAL_STEPPER_DRIVERS | ||||
|   #undef EXTRUDERS | ||||
|   #define EXTRUDERS 1 | ||||
| #endif | ||||
|  | ||||
| #if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS) | ||||
|   #error "You cannot have dual drivers for both Y and Z" | ||||
| #endif | ||||
|  | ||||
| // Enable this for dual x-carriage printers.  | ||||
| // A dual x-carriage design has the advantage that the inactive extruder can be parked which | ||||
| // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage | ||||
| @@ -236,7 +174,7 @@ | ||||
|  | ||||
| // Feedrates for manual moves along X, Y, Z, E from panel | ||||
| #ifdef ULTIPANEL | ||||
| #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min) | ||||
|   #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min) | ||||
| #endif | ||||
|  | ||||
| // minimum time in microseconds that a movement needs to take if the buffer is emptied. | ||||
| @@ -256,13 +194,6 @@ | ||||
| // if unwanted behavior is observed on a user's machine when running at very slow speeds. | ||||
| #define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) | ||||
|  | ||||
| // MS1 MS2 Stepper Driver Microstepping mode table | ||||
| #define MICROSTEP1 LOW,LOW | ||||
| #define MICROSTEP2 HIGH,LOW | ||||
| #define MICROSTEP4 LOW,HIGH | ||||
| #define MICROSTEP8 HIGH,HIGH | ||||
| #define MICROSTEP16 HIGH,HIGH | ||||
|  | ||||
| // Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. | ||||
| #define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] | ||||
|  | ||||
| @@ -331,16 +262,6 @@ | ||||
|   #define BABYSTEP_XY  //not only z, but also XY in the menu. more clutter, more functions | ||||
|   #define BABYSTEP_INVERT_Z false  //true for inverse movements in Z | ||||
|   #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements | ||||
|    | ||||
|   #ifdef COREXY | ||||
|     #error BABYSTEPPING not implemented for COREXY yet. | ||||
|   #endif | ||||
|  | ||||
|   #ifdef DELTA | ||||
|     #ifdef BABYSTEP_XY | ||||
|       #error BABYSTEPPING only implemented for Z axis on deltabots. | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| // extruder advance constant (s2/mm3) | ||||
| @@ -354,12 +275,8 @@ | ||||
|  | ||||
| #ifdef ADVANCE | ||||
|   #define EXTRUDER_ADVANCE_K .0 | ||||
|  | ||||
|   #define D_FILAMENT 2.85 | ||||
|   #define STEPS_MM_E 836 | ||||
|   #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) | ||||
|   #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) | ||||
|  | ||||
| #endif // ADVANCE | ||||
|  | ||||
| // Arc interpretation settings: | ||||
| @@ -374,26 +291,6 @@ const unsigned int dropsegments=5; //everything with less than this number of st | ||||
| // be commented out otherwise | ||||
| #define SDCARDDETECTINVERTED  | ||||
|  | ||||
| #ifdef ULTIPANEL | ||||
|  #undef SDCARDDETECTINVERTED | ||||
| #endif | ||||
|  | ||||
| // Power Signal Control Definitions | ||||
| // By default use ATX definition | ||||
| #ifndef POWER_SUPPLY | ||||
|   #define POWER_SUPPLY 1 | ||||
| #endif | ||||
| // 1 = ATX | ||||
| #if (POWER_SUPPLY == 1)  | ||||
|   #define PS_ON_AWAKE  LOW | ||||
|   #define PS_ON_ASLEEP HIGH | ||||
| #endif | ||||
| // 2 = X-Box 360 203W | ||||
| #if (POWER_SUPPLY == 2)  | ||||
|   #define PS_ON_AWAKE  HIGH | ||||
|   #define PS_ON_ASLEEP LOW | ||||
| #endif | ||||
|  | ||||
| // Control heater 0 and heater 1 in parallel. | ||||
| //#define HEATERS_PARALLEL | ||||
|  | ||||
| @@ -445,104 +342,4 @@ const unsigned int dropsegments=5; //everything with less than this number of st | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| #ifdef FILAMENTCHANGEENABLE | ||||
|   #ifdef EXTRUDER_RUNOUT_PREVENT | ||||
|     #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE | ||||
|   #endif  | ||||
| #endif | ||||
|   | ||||
| //=========================================================================== | ||||
| //=============================  Define Defines  ============================ | ||||
| //=========================================================================== | ||||
|  | ||||
| #if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA) | ||||
|  | ||||
|   #if not defined(AUTO_BED_LEVELING_GRID) | ||||
|     #error "Only Grid Bed Auto Leveling is supported on Deltas." | ||||
|   #endif | ||||
|    | ||||
|   #if defined(Z_PROBE_SLED) | ||||
|     #error "You cannot use Z_PROBE_SLED together with DELTA." | ||||
|   #endif | ||||
|  | ||||
|   #if defined(Z_PROBE_REPEATABILITY_TEST) | ||||
|     #error "Z-probe repeatability test is not supported on Deltas yet." | ||||
|   #endif | ||||
|  | ||||
| #endif   | ||||
|  | ||||
| #if defined(Z_PROBE_ALLEN_KEY) | ||||
|   #if !defined(AUTO_BED_LEVELING_GRID) || !defined(DELTA) | ||||
|     #error "Invalid use of Z_PROBE_ALLEN_KEY." | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| #if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT | ||||
|   #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" | ||||
| #endif | ||||
|  | ||||
| #if EXTRUDERS > 1 && defined HEATERS_PARALLEL | ||||
|   #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" | ||||
| #endif | ||||
|  | ||||
| #if TEMP_SENSOR_0 > 0 | ||||
|   #define THERMISTORHEATER_0 TEMP_SENSOR_0 | ||||
|   #define HEATER_0_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_1 > 0 | ||||
|   #define THERMISTORHEATER_1 TEMP_SENSOR_1 | ||||
|   #define HEATER_1_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_2 > 0 | ||||
|   #define THERMISTORHEATER_2 TEMP_SENSOR_2 | ||||
|   #define HEATER_2_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_3 > 0 | ||||
|   #define THERMISTORHEATER_3 TEMP_SENSOR_3 | ||||
|   #define HEATER_3_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_BED > 0 | ||||
|   #define THERMISTORBED TEMP_SENSOR_BED | ||||
|   #define BED_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_0 == -1 | ||||
|   #define HEATER_0_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_1 == -1 | ||||
|   #define HEATER_1_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_2 == -1 | ||||
|   #define HEATER_2_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_3 == -1 | ||||
|   #define HEATER_3_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_BED == -1 | ||||
|   #define BED_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_0 == -2 | ||||
|   #define HEATER_0_USES_MAX6675 | ||||
| #endif | ||||
| #if TEMP_SENSOR_0 == 0 | ||||
|   #undef HEATER_0_MINTEMP | ||||
|   #undef HEATER_0_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_1 == 0 | ||||
|   #undef HEATER_1_MINTEMP | ||||
|   #undef HEATER_1_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_2 == 0 | ||||
|   #undef HEATER_2_MINTEMP | ||||
|   #undef HEATER_2_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_3 == 0 | ||||
|   #undef HEATER_3_MINTEMP | ||||
|   #undef HEATER_3_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_BED == 0 | ||||
|   #undef BED_MINTEMP | ||||
|   #undef BED_MAXTEMP | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #endif //__CONFIGURATION_ADV_H | ||||
| #endif //CONFIGURATION_ADV_H | ||||
|   | ||||
| @@ -348,15 +348,6 @@ your extruder heater takes 2 minutes to hit the target on heating. | ||||
|   // #define ENDSTOPPULLUP_ZMIN | ||||
| #endif | ||||
|  | ||||
| #ifdef ENDSTOPPULLUPS | ||||
|   #define ENDSTOPPULLUP_XMAX | ||||
|   #define ENDSTOPPULLUP_YMAX | ||||
|   #define ENDSTOPPULLUP_ZMAX | ||||
|   #define ENDSTOPPULLUP_XMIN | ||||
|   #define ENDSTOPPULLUP_YMIN | ||||
|   #define ENDSTOPPULLUP_ZMIN | ||||
| #endif | ||||
|  | ||||
| // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. | ||||
| const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. | ||||
| const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. | ||||
| @@ -407,10 +398,15 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o | ||||
| #define Z_MAX_POS MANUAL_Z_HOME_POS | ||||
| #define Z_MIN_POS 0 | ||||
|  | ||||
| #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) | ||||
| #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) | ||||
| #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) | ||||
|  | ||||
| //=========================================================================== | ||||
| //============================= Filament Runout Sensor ====================== | ||||
| //=========================================================================== | ||||
| //#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament | ||||
|                                  // In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made. | ||||
|                                  // It is assumed that when logic high = filament available | ||||
|                                  //                    when logic  low = filament ran out | ||||
| //const bool FIL_RUNOUT_INVERTING = true;  // Should be uncommented and true or false should assigned | ||||
| //#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined. | ||||
|  | ||||
| //=========================================================================== | ||||
| //============================= Bed Auto Leveling =========================== | ||||
| @@ -634,112 +630,17 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o | ||||
| // in ultralcd.cpp@lcd_delta_calibrate_menu() | ||||
| // #define DELTA_CALIBRATION_MENU | ||||
|  | ||||
| //automatic expansion | ||||
| #if defined (MAKRPANEL) | ||||
|  #define DOGLCD | ||||
|  #define SDSUPPORT | ||||
|  #define ULTIPANEL | ||||
|  #define NEWPANEL | ||||
|  #define DEFAULT_LCD_CONTRAST 17 | ||||
| #endif | ||||
|  | ||||
| #if defined(miniVIKI) || defined(VIKI2) | ||||
|  #define ULTRA_LCD  //general LCD support, also 16x2 | ||||
|  #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) | ||||
|  #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. | ||||
|   | ||||
|   #ifdef miniVIKI | ||||
|    #define DEFAULT_LCD_CONTRAST 95 | ||||
|   #else | ||||
|    #define DEFAULT_LCD_CONTRAST 40 | ||||
|   #endif | ||||
|    | ||||
|  #define ENCODER_PULSES_PER_STEP 4 | ||||
|  #define ENCODER_STEPS_PER_MENU_ITEM 1 | ||||
| #endif | ||||
|  | ||||
| #if defined (PANEL_ONE) | ||||
|  #define SDSUPPORT | ||||
|  #define ULTIMAKERCONTROLLER | ||||
| #endif | ||||
|  | ||||
| #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) | ||||
|  #define DOGLCD | ||||
|  #define U8GLIB_ST7920 | ||||
|  #define REPRAP_DISCOUNT_SMART_CONTROLLER | ||||
| #endif | ||||
|  | ||||
| #if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL) | ||||
|  #define ULTIPANEL | ||||
|  #define NEWPANEL | ||||
| #endif | ||||
|  | ||||
| #if defined(REPRAPWORLD_KEYPAD) | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
| #endif | ||||
| #if defined(RA_CONTROL_PANEL) | ||||
|  #define ULTIPANEL | ||||
|  #define NEWPANEL | ||||
|  #define LCD_I2C_TYPE_PCA8574 | ||||
|  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander | ||||
| #endif | ||||
|  | ||||
| //I2C PANELS | ||||
| /** | ||||
|  * I2C Panels | ||||
|  */ | ||||
|  | ||||
| //#define LCD_I2C_SAINSMART_YWROBOT | ||||
| #ifdef LCD_I2C_SAINSMART_YWROBOT | ||||
|   // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home ) | ||||
|   // Make sure it is placed in the Arduino libraries directory. | ||||
|   #define LCD_I2C_TYPE_PCF8575 | ||||
|   #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
| #endif | ||||
|  | ||||
| // PANELOLU2 LCD with status LEDs, separate encoder and click inputs | ||||
| //#define LCD_I2C_PANELOLU2 | ||||
| #ifdef LCD_I2C_PANELOLU2 | ||||
|   // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) | ||||
|   // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. | ||||
|   // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) | ||||
|   // Note: The PANELOLU2 encoder click input can either be directly connected to a pin | ||||
|   //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). | ||||
|   #define LCD_I2C_TYPE_MCP23017 | ||||
|   #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander | ||||
|   #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
|  | ||||
|   #ifndef ENCODER_PULSES_PER_STEP | ||||
| 	#define ENCODER_PULSES_PER_STEP 4 | ||||
|   #endif | ||||
|  | ||||
|   #ifndef ENCODER_STEPS_PER_MENU_ITEM | ||||
| 	#define ENCODER_STEPS_PER_MENU_ITEM 1 | ||||
|   #endif | ||||
|  | ||||
|  | ||||
|   #ifdef LCD_USE_I2C_BUZZER | ||||
| 	#define LCD_FEEDBACK_FREQUENCY_HZ 1000 | ||||
| 	#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 | ||||
|   #endif | ||||
|  | ||||
| #endif | ||||
|  | ||||
| // Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs | ||||
| //#define LCD_I2C_VIKI | ||||
| #ifdef LCD_I2C_VIKI | ||||
|   // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) | ||||
|   // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. | ||||
|   // Note: The pause/stop/resume LCD button pin should be connected to the Arduino | ||||
|   //       BTN_ENC pin (or set BTN_ENC to -1 if not used) | ||||
|   #define LCD_I2C_TYPE_MCP23017 | ||||
|   #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander | ||||
|   #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later) | ||||
|   #define NEWPANEL | ||||
|   #define ULTIPANEL | ||||
| #endif | ||||
|  | ||||
| // Shift register panels | ||||
| // --------------------- | ||||
| @@ -747,51 +648,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o | ||||
| // https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection  | ||||
|  | ||||
| //#define SAV_3DLCD | ||||
| #ifdef SAV_3DLCD | ||||
|    #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister | ||||
|    #define NEWPANEL | ||||
|    #define ULTIPANEL | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifdef ULTIPANEL | ||||
| //  #define NEWPANEL  //enable this if you have a click-encoder panel | ||||
|   #define SDSUPPORT | ||||
|   #define ULTRA_LCD | ||||
|   #ifdef DOGLCD // Change number of lines to match the DOG graphic display | ||||
|     #define LCD_WIDTH 22 | ||||
|     #define LCD_HEIGHT 5 | ||||
|   #else | ||||
|     #define LCD_WIDTH 20 | ||||
|     #define LCD_HEIGHT 4 | ||||
|   #endif | ||||
| #else //no panel but just LCD | ||||
|   #ifdef ULTRA_LCD | ||||
|   #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display | ||||
|     #define LCD_WIDTH 22 | ||||
|     #define LCD_HEIGHT 5 | ||||
|   #else | ||||
|     #define LCD_WIDTH 16 | ||||
|     #define LCD_HEIGHT 2 | ||||
|   #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| // default LCD contrast for dogm-like LCD displays | ||||
| #ifdef DOGLCD | ||||
| # ifndef DEFAULT_LCD_CONTRAST | ||||
| #  define DEFAULT_LCD_CONTRAST 32 | ||||
| # endif | ||||
| #endif | ||||
|  | ||||
| // Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino | ||||
| //#define FAST_PWM_FAN | ||||
|  | ||||
| // Temperature status LEDs that display the hotend and bet temperature. | ||||
| // If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. | ||||
| // Otherwise the RED led is on. There is 1C hysteresis. | ||||
| //#define TEMP_STAT_LEDS | ||||
|  | ||||
| // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency | ||||
| // which is not ass annoying as with the hardware PWM. On the other hand, if this frequency | ||||
| // is too low, you should also increment SOFT_PWM_SCALE. | ||||
| @@ -803,6 +663,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o | ||||
| // at zero value, there are 128 effective control positions. | ||||
| #define SOFT_PWM_SCALE 0 | ||||
|  | ||||
| // Temperature status LEDs that display the hotend and bet temperature. | ||||
| // If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. | ||||
| // Otherwise the RED led is on. There is 1C hysteresis. | ||||
| //#define TEMP_STAT_LEDS | ||||
|  | ||||
| // M240  Triggers a camera by emulating a Canon RC-1 Remote | ||||
| // Data from: http://www.doc-diy.net/photo/rc-1_hacked/ | ||||
| // #define PHOTOGRAPH_PIN     23 | ||||
| @@ -872,6 +737,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o | ||||
|  | ||||
|  | ||||
| #include "Configuration_adv.h" | ||||
| #include "Conditionals.h" | ||||
| #include "SanityCheck.h" | ||||
| #include "thermistortables.h" | ||||
|  | ||||
| #endif //__CONFIGURATION_H | ||||
| #endif //CONFIGURATION_H | ||||
|   | ||||
| @@ -89,54 +89,6 @@ | ||||
|  | ||||
| #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing | ||||
|  | ||||
|  | ||||
| //// AUTOSET LOCATIONS OF LIMIT SWITCHES | ||||
| //// Added by ZetaPhoenix 09-15-2012 | ||||
| #ifdef MANUAL_HOME_POSITIONS  // Use manual limit switch locations | ||||
|   #define X_HOME_POS MANUAL_X_HOME_POS | ||||
|   #define Y_HOME_POS MANUAL_Y_HOME_POS | ||||
|   #define Z_HOME_POS MANUAL_Z_HOME_POS | ||||
| #else //Set min/max homing switch positions based upon homing direction and min/max travel limits | ||||
|   //X axis | ||||
|   #if X_HOME_DIR == -1 | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define X_HOME_POS X_MAX_LENGTH * -0.5 | ||||
|     #else | ||||
|       #define X_HOME_POS X_MIN_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #else     | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define X_HOME_POS X_MAX_LENGTH * 0.5 | ||||
|     #else | ||||
|       #define X_HOME_POS X_MAX_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #endif //X_HOME_DIR == -1 | ||||
|    | ||||
|   //Y axis | ||||
|   #if Y_HOME_DIR == -1 | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define Y_HOME_POS Y_MAX_LENGTH * -0.5 | ||||
|     #else | ||||
|       #define Y_HOME_POS Y_MIN_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #else     | ||||
|     #ifdef BED_CENTER_AT_0_0 | ||||
|       #define Y_HOME_POS Y_MAX_LENGTH * 0.5 | ||||
|     #else | ||||
|       #define Y_HOME_POS Y_MAX_POS | ||||
|     #endif //BED_CENTER_AT_0_0 | ||||
|   #endif //Y_HOME_DIR == -1 | ||||
|    | ||||
|   // Z axis | ||||
|   #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used | ||||
|     #define Z_HOME_POS Z_MIN_POS | ||||
|   #else     | ||||
|     #define Z_HOME_POS Z_MAX_POS | ||||
|   #endif //Z_HOME_DIR == -1 | ||||
| #endif //End auto min/max positions | ||||
| //END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP | ||||
|  | ||||
|  | ||||
| //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. | ||||
|  | ||||
| // A single Z stepper driver is usually used to drive 2 stepper motors. | ||||
| @@ -146,26 +98,12 @@ | ||||
| // On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. | ||||
| //#define Z_DUAL_STEPPER_DRIVERS | ||||
|  | ||||
| #ifdef Z_DUAL_STEPPER_DRIVERS | ||||
|   #undef EXTRUDERS | ||||
|   #define EXTRUDERS 1 | ||||
| #endif | ||||
|  | ||||
| // Same again but for Y Axis. | ||||
| //#define Y_DUAL_STEPPER_DRIVERS | ||||
|  | ||||
| // Define if the two Y drives need to rotate in opposite directions | ||||
| #define INVERT_Y2_VS_Y_DIR true | ||||
|  | ||||
| #ifdef Y_DUAL_STEPPER_DRIVERS | ||||
|   #undef EXTRUDERS | ||||
|   #define EXTRUDERS 1 | ||||
| #endif | ||||
|  | ||||
| #if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS) | ||||
|   #error "You cannot have dual drivers for both Y and Z" | ||||
| #endif | ||||
|  | ||||
| // Enable this for dual x-carriage printers.  | ||||
| // A dual x-carriage design has the advantage that the inactive extruder can be parked which | ||||
| // prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage | ||||
| @@ -236,7 +174,7 @@ | ||||
|  | ||||
| // Feedrates for manual moves along X, Y, Z, E from panel | ||||
| #ifdef ULTIPANEL | ||||
| #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min) | ||||
|   #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min) | ||||
| #endif | ||||
|  | ||||
| // minimum time in microseconds that a movement needs to take if the buffer is emptied. | ||||
| @@ -255,13 +193,6 @@ | ||||
| // if unwanted behavior is observed on a user's machine when running at very slow speeds. | ||||
| #define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) | ||||
|  | ||||
| // MS1 MS2 Stepper Driver Microstepping mode table | ||||
| #define MICROSTEP1 LOW,LOW | ||||
| #define MICROSTEP2 HIGH,LOW | ||||
| #define MICROSTEP4 LOW,HIGH | ||||
| #define MICROSTEP8 HIGH,HIGH | ||||
| #define MICROSTEP16 HIGH,HIGH | ||||
|  | ||||
| // Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. | ||||
| #define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] | ||||
|  | ||||
| @@ -330,16 +261,6 @@ | ||||
|   #define BABYSTEP_XY  //not only z, but also XY in the menu. more clutter, more functions | ||||
|   #define BABYSTEP_INVERT_Z false  //true for inverse movements in Z | ||||
|   #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements | ||||
|    | ||||
|   #ifdef COREXY | ||||
|     #error BABYSTEPPING not implemented for COREXY yet. | ||||
|   #endif | ||||
|  | ||||
|   #ifdef DELTA | ||||
|     #ifdef BABYSTEP_XY | ||||
|       #error BABYSTEPPING only implemented for Z axis on deltabots. | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| // extruder advance constant (s2/mm3) | ||||
| @@ -353,12 +274,8 @@ | ||||
|  | ||||
| #ifdef ADVANCE | ||||
|   #define EXTRUDER_ADVANCE_K .0 | ||||
|  | ||||
|   #define D_FILAMENT 2.85 | ||||
|   #define STEPS_MM_E 836 | ||||
|   #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) | ||||
|   #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) | ||||
|  | ||||
| #endif // ADVANCE | ||||
|  | ||||
| // Arc interpretation settings: | ||||
| @@ -373,26 +290,6 @@ const unsigned int dropsegments=5; //everything with less than this number of st | ||||
| // be commented out otherwise | ||||
| #define SDCARDDETECTINVERTED  | ||||
|  | ||||
| #ifdef ULTIPANEL | ||||
|  #undef SDCARDDETECTINVERTED | ||||
| #endif | ||||
|  | ||||
| // Power Signal Control Definitions | ||||
| // By default use ATX definition | ||||
| #ifndef POWER_SUPPLY | ||||
|   #define POWER_SUPPLY 1 | ||||
| #endif | ||||
| // 1 = ATX | ||||
| #if (POWER_SUPPLY == 1)  | ||||
|   #define PS_ON_AWAKE  LOW | ||||
|   #define PS_ON_ASLEEP HIGH | ||||
| #endif | ||||
| // 2 = X-Box 360 203W | ||||
| #if (POWER_SUPPLY == 2)  | ||||
|   #define PS_ON_AWAKE  HIGH | ||||
|   #define PS_ON_ASLEEP LOW | ||||
| #endif | ||||
|  | ||||
| // Control heater 0 and heater 1 in parallel. | ||||
| //#define HEATERS_PARALLEL | ||||
|  | ||||
| @@ -444,104 +341,4 @@ const unsigned int dropsegments=5; //everything with less than this number of st | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| #ifdef FILAMENTCHANGEENABLE | ||||
|   #ifdef EXTRUDER_RUNOUT_PREVENT | ||||
|     #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE | ||||
|   #endif  | ||||
| #endif | ||||
|   | ||||
| //=========================================================================== | ||||
| //=============================  Define Defines  ============================ | ||||
| //=========================================================================== | ||||
|  | ||||
| #if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA) | ||||
|  | ||||
|   #if not defined(AUTO_BED_LEVELING_GRID) | ||||
|     #error "Only Grid Bed Auto Leveling is supported on Deltas." | ||||
|   #endif | ||||
|    | ||||
|   #if defined(Z_PROBE_SLED) | ||||
|     #error "You cannot use Z_PROBE_SLED together with DELTA." | ||||
|   #endif | ||||
|  | ||||
|   #if defined(Z_PROBE_REPEATABILITY_TEST) | ||||
|     #error "Z-probe repeatability test is not supported on Deltas yet." | ||||
|   #endif | ||||
|  | ||||
| #endif   | ||||
|  | ||||
| #if defined(Z_PROBE_ALLEN_KEY) | ||||
|   #if !defined(AUTO_BED_LEVELING_GRID) || !defined(DELTA) | ||||
|     #error "Invalid use of Z_PROBE_ALLEN_KEY." | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| #if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT | ||||
|   #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" | ||||
| #endif | ||||
|  | ||||
| #if EXTRUDERS > 1 && defined HEATERS_PARALLEL | ||||
|   #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" | ||||
| #endif | ||||
|  | ||||
| #if TEMP_SENSOR_0 > 0 | ||||
|   #define THERMISTORHEATER_0 TEMP_SENSOR_0 | ||||
|   #define HEATER_0_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_1 > 0 | ||||
|   #define THERMISTORHEATER_1 TEMP_SENSOR_1 | ||||
|   #define HEATER_1_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_2 > 0 | ||||
|   #define THERMISTORHEATER_2 TEMP_SENSOR_2 | ||||
|   #define HEATER_2_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_3 > 0 | ||||
|   #define THERMISTORHEATER_3 TEMP_SENSOR_3 | ||||
|   #define HEATER_3_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_BED > 0 | ||||
|   #define THERMISTORBED TEMP_SENSOR_BED | ||||
|   #define BED_USES_THERMISTOR | ||||
| #endif | ||||
| #if TEMP_SENSOR_0 == -1 | ||||
|   #define HEATER_0_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_1 == -1 | ||||
|   #define HEATER_1_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_2 == -1 | ||||
|   #define HEATER_2_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_3 == -1 | ||||
|   #define HEATER_3_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_BED == -1 | ||||
|   #define BED_USES_AD595 | ||||
| #endif | ||||
| #if TEMP_SENSOR_0 == -2 | ||||
|   #define HEATER_0_USES_MAX6675 | ||||
| #endif | ||||
| #if TEMP_SENSOR_0 == 0 | ||||
|   #undef HEATER_0_MINTEMP | ||||
|   #undef HEATER_0_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_1 == 0 | ||||
|   #undef HEATER_1_MINTEMP | ||||
|   #undef HEATER_1_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_2 == 0 | ||||
|   #undef HEATER_2_MINTEMP | ||||
|   #undef HEATER_2_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_3 == 0 | ||||
|   #undef HEATER_3_MINTEMP | ||||
|   #undef HEATER_3_MAXTEMP | ||||
| #endif | ||||
| #if TEMP_SENSOR_BED == 0 | ||||
|   #undef BED_MINTEMP | ||||
|   #undef BED_MAXTEMP | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #endif //__CONFIGURATION_ADV_H | ||||
| #endif //CONFIGURATION_ADV_H | ||||
|   | ||||
		Reference in New Issue
	
	Block a user