@ -41,6 +41,7 @@
// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)
// 4 = Duemilanove w/ ATMega328P pin assignment
// 4 = Duemilanove w/ ATMega328P pin assignment
// 5 = Gen6
// 5 = Gen6
// 51 = Gen6 deluxe
// 51 = Gen6 deluxe
@ -54,12 +55,14 @@
// 68 = Azteeg X3 Pro
// 68 = Azteeg X3 Pro
// 7 = Ultimaker
// 7 = Ultimaker
// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare)
// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare)
// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20)
// 77 = 3Drag Controller
// 77 = 3Drag Controller
// 8 = Teensylu
// 8 = Teensylu
// 80 = Rumba
// 80 = Rumba
// 81 = Printrboard (AT90USB1286)
// 81 = Printrboard (AT90USB1286)
// 82 = Brainwave (AT90USB646)
// 82 = Brainwave (AT90USB646)
// 83 = SAV Mk-I (AT90USB1286)
// 83 = SAV Mk-I (AT90USB1286)
// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make
// 9 = Gen3+
// 9 = Gen3+
// 70 = Megatronics
// 70 = Megatronics
// 701= Megatronics v2.0
// 701= Megatronics v2.0
@ -68,6 +71,8 @@
// 91 = Final OMCA board
// 91 = Final OMCA board
// 301= Rambo
// 301= Rambo
// 21 = Elefu Ra Board (v3)
// 21 = Elefu Ra Board (v3)
// 88 = 5DPrint D8 Driver Board
// 999 = Leapfrog
# ifndef MOTHERBOARD
# ifndef MOTHERBOARD
# define MOTHERBOARD 33
# define MOTHERBOARD 33
@ -141,7 +146,11 @@
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// (but gives greater accuracy and more stable PID)
@ -205,7 +214,7 @@
// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
# define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term
# define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term
# define K1 0.95 //smoothing factor within the PID
# define K1 0.95 //smoothing factor within the PID
# define PID_dT (( 16.0 * 8 .0)/ (F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
# define PID_dT (( OVERSAMPLENR * 10 .0)/ (F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
// Ultimaker
@ -271,6 +280,44 @@
# define EXTRUDE_MINTEMP 170
# define EXTRUDE_MINTEMP 170
# define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
# define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
/*================== Thermal Runaway Protection ==============================
This is a feature to protect your printer from burn up in flames if it has
a thermistor coming off place ( this happened to a friend of mine recently and
motivated me writing this feature ) .
The issue : If a thermistor come off , it will read a lower temperature than actual .
The system will turn the heater on forever , burning up the filament and anything
else around .
After the temperature reaches the target for the first time , this feature will
start measuring for how long the current temperature stays below the target
minus _HYSTERESIS ( set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS ) .
If it stays longer than _PERIOD , it means the thermistor temperature
cannot catch up with the target , so something * may be * wrong . Then , to be on the
safe side , the system will he halt .
Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target , so you will have no problem if
your extruder heater takes 2 minutes to hit the target on heating .
*/
// If you want to enable this feature for all your extruder heaters,
// uncomment the 2 defines below:
// Parameters for all extruder heaters
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
// If you want to enable this feature for your bed heater,
// uncomment the 2 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
//===========================================================================
//===========================================================================
//===========================================================================
//=============================Mechanical Settings===========================
//=============================Mechanical Settings===========================
//===========================================================================
//===========================================================================
@ -326,6 +373,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
# define DISABLE_Y false
# define DISABLE_Y false
# define DISABLE_Z false
# define DISABLE_Z false
# define DISABLE_E false // For all extruders
# define DISABLE_E false // For all extruders
# define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
# define INVERT_X_DIR false // DELTA does not invert
# define INVERT_X_DIR false // DELTA does not invert
# define INVERT_Y_DIR false
# define INVERT_Y_DIR false
@ -359,15 +407,54 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
//============================= Bed Auto Leveling ===========================
//============================= Bed Auto Leveling ===========================
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
# define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
# ifdef ENABLE_AUTO_BED_LEVELING
# ifdef ENABLE_AUTO_BED_LEVELING
// these are the positions on the bed to do the probing
// There are 2 different ways to pick the X and Y locations to probe:
// - "grid" mode
// Probe every point in a rectangular grid
// You must specify the rectangle, and the density of sample points
// This mode is preferred because there are more measurements.
// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
// - "3-point" mode
// Probe 3 arbitrary points on the bed (that aren't colinear)
// You must specify the X & Y coordinates of all 3 points
# define AUTO_BED_LEVELING_GRID
// 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
# define LEFT_PROBE_BED_POSITION 15
# define LEFT_PROBE_BED_POSITION 15
# define RIGHT_PROBE_BED_POSITION 170
# define RIGHT_PROBE_BED_POSITION 170
# define BACK_PROBE_BED_POSITION 180
# define BACK_PROBE_BED_POSITION 180
# define FRONT_PROBE_BED_POSITION 20
# define FRONT_PROBE_BED_POSITION 20
// set the number of grid points per dimension
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
# define AUTO_BED_LEVELING_GRID_POINTS 2
# else // not AUTO_BED_LEVELING_GRID
// with no grid, just probe 3 arbitrary points. A simple cross-product
// is used to esimate the plane of the print bed
# define ABL_PROBE_PT_1_X 15
# define ABL_PROBE_PT_1_Y 180
# define ABL_PROBE_PT_2_X 15
# define ABL_PROBE_PT_2_Y 20
# define ABL_PROBE_PT_3_X 170
# define ABL_PROBE_PT_3_Y 20
# endif // AUTO_BED_LEVELING_GRID
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
# define X_PROBE_OFFSET_FROM_EXTRUDER -25
# define X_PROBE_OFFSET_FROM_EXTRUDER -25
# define Y_PROBE_OFFSET_FROM_EXTRUDER -29
# define Y_PROBE_OFFSET_FROM_EXTRUDER -29
@ -381,6 +468,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
# define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
# define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
# define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
# define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
@ -406,7 +495,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
# endif
# endif
# endif
# endif // ENABLE_AUTO_BED_LEVELING
// The position of the homing switches
// The position of the homing switches
@ -451,6 +540,15 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
//=============================Additional Features===========================
//=============================Additional Features===========================
//===========================================================================
//===========================================================================
// Custom M code points
# define CUSTOM_M_CODES
# ifdef CUSTOM_M_CODES
# define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
# define Z_PROBE_OFFSET_RANGE_MIN -15
# define Z_PROBE_OFFSET_RANGE_MAX -5
# endif
// EEPROM
// EEPROM
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores parameters in EEPROM
// M500 - stores parameters in EEPROM
@ -476,10 +574,13 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
//#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
//#define ULTIPANEL //the UltiPanel as on Thingiverse
//#define ULTIPANEL //the UltiPanel as on Thingiverse
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
// The MaKr3d Makr-Panel with graphic controller and SD support
// The MaKr3d Makr-Panel with graphic controller and SD support
// http://reprap.org/wiki/MaKr3d_MaKrPanel
// http://reprap.org/wiki/MaKr3d_MaKrPanel
@ -565,6 +666,21 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
# define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
# define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
# define NEWPANEL
# define NEWPANEL
# define ULTIPANEL
# 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
# endif
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
@ -587,7 +703,7 @@ 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
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
//#define SR_LCD
//#define SR_LCD
# ifdef SR_LCD
# ifdef SR_LCD
# define SR_LCD_2W_NL // Non latching 2 wire shift register
# define SR_LCD_2W_NL // Non latching 2 wire shift register
//#define NEWPANEL
//#define NEWPANEL
# endif
# endif
@ -676,6 +792,35 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
/**********************************************************************\
* Support for a filament diameter sensor
* Also allows adjustment of diameter at print time ( vs at slicing )
* Single extruder only at this point ( extruder 0 )
*
* Motherboards
* 34 - RAMPS1 .4 - uses Analog input 5 on the AUX2 connector
* 81 - Printrboard - Uses Analog input 2 on the Aux 2 connector
* 301 - Rambo - uses Analog input 3
* Note may require analog pins to be defined for different motherboards
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# define FILAMENT_SENSOR
# define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
# define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
# define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
# define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm
# define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm
# define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM)
//defines used in the code
# define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially
# include "Configuration_adv.h"
# include "Configuration_adv.h"
# include "thermistortables.h"
# include "thermistortables.h"