|
|
@ -307,17 +307,8 @@ Here are some standard links for getting your machine calibrated: |
|
|
|
* the firmware will halt as a safety precaution. |
|
|
|
*/ |
|
|
|
|
|
|
|
#define THERMAL_RUNAWAY_PROTECTION_HOTENDS // Enable thermal protection for all extruders
|
|
|
|
#define THERMAL_RUNAWAY_PROTECTION_BED // Enable thermal protection for the heated bed
|
|
|
|
// Parameters for all extruder heaters
|
|
|
|
#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 // in seconds
|
|
|
|
#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
|
|
|
|
|
|
|
|
// To enable for the bed heater, uncomment the two defines below:
|
|
|
|
|
|
|
|
// Parameters for the bed heater
|
|
|
|
#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 // in seconds
|
|
|
|
#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
|
|
|
|
#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
|
|
|
|
#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed
|
|
|
|
|
|
|
|
//===========================================================================
|
|
|
|
//============================= Mechanical Settings =========================
|
|
|
@ -379,18 +370,10 @@ Here are some standard links for getting your machine calibrated: |
|
|
|
// #define ENDSTOPPULLUP_XMIN
|
|
|
|
// #define ENDSTOPPULLUP_YMIN
|
|
|
|
// #define ENDSTOPPULLUP_ZMIN
|
|
|
|
// #define ENDSTOPPULLUP_ZPROBE
|
|
|
|
#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.
|
|
|
|
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
|
|
|
|
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.
|
|
|
|
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
|
|
@ -401,10 +384,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
//#define DISABLE_MAX_ENDSTOPS
|
|
|
|
//#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing
|
|
|
|
|
|
|
|
// Disable max endstops for compatibility with endstop checking routine
|
|
|
|
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS) |
|
|
|
#define DISABLE_MAX_ENDSTOPS |
|
|
|
#endif |
|
|
|
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below.
|
|
|
|
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have
|
|
|
|
// activated Z_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe,
|
|
|
|
// this has no effect.
|
|
|
|
//#define DISABLE_Z_PROBE_ENDSTOP
|
|
|
|
|
|
|
|
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
|
|
|
|
// :{0:'Low',1:'High'}
|
|
|
@ -477,9 +461,23 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
//===========================================================================
|
|
|
|
//=========================== Manual Bed Leveling ===========================
|
|
|
|
//===========================================================================
|
|
|
|
#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) |
|
|
|
|
|
|
|
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
|
|
|
|
// #define MESH_BED_LEVELING // Enable mesh bed leveling
|
|
|
|
|
|
|
|
#ifdef MANUAL_BED_LEVELING |
|
|
|
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
|
|
|
|
#endif // MANUAL_BED_LEVELING
|
|
|
|
|
|
|
|
#ifdef MESH_BED_LEVELING |
|
|
|
#define MESH_MIN_X 10 |
|
|
|
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X) |
|
|
|
#define MESH_MIN_Y 10 |
|
|
|
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) |
|
|
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited
|
|
|
|
#define MESH_NUM_Y_POINTS 3 |
|
|
|
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0
|
|
|
|
#endif // MESH_BED_LEVELING
|
|
|
|
|
|
|
|
//===========================================================================
|
|
|
|
//============================ Bed Auto Leveling ============================
|
|
|
@ -507,10 +505,6 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
// Note: this feature generates 10KB extra code size
|
|
|
|
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
|
|
|
|
|
|
|
|
// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
|
|
|
|
// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
|
|
|
|
// and least squares solution is calculated
|
|
|
|
// Note: this feature occupies 10'206 byte
|
|
|
|
#ifdef AUTO_BED_LEVELING_GRID |
|
|
|
|
|
|
|
// set the rectangle in which to probe
|
|
|
@ -521,16 +515,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS |
|
|
|
|
|
|
|
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this
|
|
|
|
// probe at the points of a lattice grid
|
|
|
|
#define AUTO_BED_LEVELING_GRID_POINTS 7 |
|
|
|
#define AUTO_BED_LEVELING_GRID_X ((RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION) / (AUTO_BED_LEVELING_GRID_POINTS - 1)) |
|
|
|
#define AUTO_BED_LEVELING_GRID_Y ((BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION) / (AUTO_BED_LEVELING_GRID_POINTS - 1)) |
|
|
|
|
|
|
|
// Non-linear bed leveling will be used.
|
|
|
|
// Compensate by interpolating between the nearest four Z probe values for each point.
|
|
|
|
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
|
|
|
// Works best with ACCURATE_BED_LEVELING_POINTS 5 or higher.
|
|
|
|
#define NONLINEAR_BED_LEVELING |
|
|
|
// Set the number of grid points per dimension
|
|
|
|
// You probably don't need more than 3 (squared=9)
|
|
|
|
#define AUTO_BED_LEVELING_GRID_POINTS 7 |
|
|
|
|
|
|
|
#else // !AUTO_BED_LEVELING_GRID
|
|
|
|
|
|
|
@ -710,8 +698,6 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
* MOVEMENT SETTINGS |
|
|
|
*/ |
|
|
|
|
|
|
|
////// #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
|
|
|
|
// set the homing speeds (mm/min)
|
|
|
|
/// delta homing speeds must be the same on xyz
|
|
|
|
#define HOMING_FEEDRATE_X (200*60) |
|
|
|
#define HOMING_FEEDRATE_Y (200*60) |
|
|
@ -735,12 +721,6 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration in mm/s^2 for retracts
|
|
|
|
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
|
|
|
|
|
|
|
|
// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
|
|
|
|
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
|
|
|
|
// For the other hotends it is their distance from the extruder 0 hotend.
|
|
|
|
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
|
|
|
// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
|
|
|
|
|
|
|
// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
|
|
|
|
#define DEFAULT_XYJERK 20.0 // (mm/sec)
|
|
|
|
#define DEFAULT_ZJERK 20.0 // (mm/sec) Must be same as XY for delta
|
|
|
@ -771,6 +751,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
|
|
|
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
|
|
|
//define this to enable EEPROM support
|
|
|
|
//#define EEPROM_SETTINGS
|
|
|
|
|
|
|
|
#ifdef EEPROM_SETTINGS |
|
|
|
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
|
|
|
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
|
|
@ -814,6 +796,9 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
//#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>
|
|
|
|
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
|
|
|
// http://reprap.org/wiki/PanelOne
|
|
|
|
//#define PANEL_ONE
|
|
|
|
|
|
|
|
// The MaKr3d Makr-Panel with graphic controller and SD support
|
|
|
|
// http://reprap.org/wiki/MaKr3d_MaKrPanel
|
|
|
@ -829,6 +814,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
//
|
|
|
|
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
|
|
|
|
//#define ELB_FULL_GRAPHIC_CONTROLLER
|
|
|
|
//#define SDCARDDETECTINVERTED
|
|
|
|
|
|
|
|
// The RepRapDiscount Smart Controller (white PCB)
|
|
|
|
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
|
|
|
@ -854,136 +840,37 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic |
|
|
|
// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
|
|
|
|
//#define RA_CONTROL_PANEL
|
|
|
|
|
|
|
|
//automatic expansion
|
|
|
|
#if defined (MAKRPANEL) |
|
|
|
#define DOGLCD |
|
|
|
#define SDSUPPORT |
|
|
|
#define ULTIPANEL |
|
|
|
#define NEWPANEL |
|
|
|
#define DEFAULT_LCD_CONTRAST 17 |
|
|
|
#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 |
|
|
|
// Delta calibration menu
|
|
|
|
// uncomment to add three points calibration menu option.
|
|
|
|
// See http://minow.blogspot.com/index.html#4918805519571907051
|
|
|
|
// If needed, adjust the X, Y, Z calibration coordinates
|
|
|
|
// in ultralcd.cpp@lcd_delta_calibrate_menu()
|
|
|
|
// #define DELTA_CALIBRATION_MENU
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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 |
|
|
|
|
|
|
|
// SSD1306 OLED generic display support
|
|
|
|
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
|
|
|
|
//#define U8GLIB_SSD1306
|
|
|
|
|
|
|
|
// Shift register panels
|
|
|
|
// ---------------------
|
|
|
|
// 2 wire Non-latching LCD SR from:
|
|
|
|
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
|
|
|
//#define SR_LCD
|
|
|
|
#ifdef SR_LCD |
|
|
|
#define SR_LCD_2W_NL // Non latching 2 wire shift register
|
|
|
|
//#define NEWPANEL
|
|
|
|
#endif |
|
|
|
|
|
|
|
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
|
|
|
//#define SAV_3DLCD
|
|
|
|
|
|
|
|
// @section extras
|
|
|
|
#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 20 |
|
|
|
#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 20 |
|
|
|
#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
|
|
|
|