@ -86,7 +86,7 @@
 
			
		
	
		
			
				
					// User-specified version info of this build to display in [Pronterface, etc] terminal window during
  
			
		
	
		
			
				
					// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
  
			
		
	
		
			
				
					// build by the user have been successfully uploaded into firmware.
  
			
		
	
		
			
				
					# define STRING_CONFIG_H_AUTHOR " Bob Kuhn, G2/ G3 radius testing  " // Who made the changes.
  
			
		
	
		
			
				
					# define STRING_CONFIG_H_AUTHOR " (none, default config) " // Who made the changes.
  
			
		
	
		
			
				
					# define SHOW_BOOTSCREEN  
			
		
	
		
			
				
					# define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION  // will be shown during bootup in line 1
  
			
		
	
		
			
				
					# define STRING_SPLASH_LINE2 WEBSITE_URL          // will be shown during bootup in line 2
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -105,15 +105,24 @@
 
			
		
	
		
			
				
					//#define SHOW_CUSTOM_BOOTSCREEN
  
			
		
	
		
			
				
					// @section machine
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// SERIAL_PORT selects which serial port should be used for communication with the host.
  
			
		
	
		
			
				
					// This allows the connection of wireless adapters (for instance) to non-default port pins.
  
			
		
	
		
			
				
					// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
  
			
		
	
		
			
				
					// :[0,1,2,3,4,5,6,7]
  
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Select  which  serial  port  on  the  board  will  be  used  for  communication  with  the  host . 
 
			
		
	
		
			
				
					 *  This  allows  the  connection  of  wireless  adapters  ( for  instance )  to  non - default  port  pins . 
 
			
		
	
		
			
				
					 *  Serial  port  0  is  always  used  by  the  Arduino  bootloader  regardless  of  this  setting . 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  : [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define SERIAL_PORT 0  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// This determines the communication speed of the printer
  
			
		
	
		
			
				
					// :[2400,9600,19200,38400,57600,115200,250000]
  
			
		
	
		
			
				
					# define BAUDRATE 115200  
			
		
	
		
			
				
					# define BAUDRATE 250000  
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  This  setting  determines  the  communication  speed  of  the  printer . 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  250000  works  in  most  cases ,  but  you  might  try  a  lower  speed  if 
 
			
		
	
		
			
				
					 *  you  commonly  experience  drop - outs  during  host  printing . 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  : [ 2400 , 9600 , 19200 , 38400 , 57600 , 115200 , 250000 ] 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Enable the Bluetooth serial interface on AT90USB devices
  
			
		
	
		
			
				
					//#define BLUETOOTH
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -121,7 +130,7 @@
 
			
		
	
		
			
				
					// The following define selects which electronics board you have.
  
			
		
	
		
			
				
					// Please choose the name from boards.h that matches your setup
  
			
		
	
		
			
				
					# ifndef MOTHERBOARD  
			
		
	
		
			
				
					  # define MOTHERBOARD BOARD_ AZTEEG_X3_PRO      
 
			
		
	
		
			
				
					  # define MOTHERBOARD BOARD_ RAMPS_14_EFB 
 
			
		
	
		
			
				
					# endif  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Optional custom name for your RepStrap or other custom machine
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -169,14 +178,22 @@
 
			
		
	
		
			
				
					//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
  
			
		
	
		
			
				
					//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//// The following define selects which power supply you have. Please choose the one that matches your setup
  
			
		
	
		
			
				
					// 1 = ATX
  
			
		
	
		
			
				
					// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
  
			
		
	
		
			
				
					// :{1:'ATX',2:'X-Box 360'}
  
			
		
	
		
			
				
					# define POWER_SUPPLY 1  
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Select  your  power  supply  here .  Use  0  if  you  haven ' t  connected  the  PS_ON_PIN 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  0  =  No  Power  Switch 
 
			
		
	
		
			
				
					 *  1  =  ATX 
 
			
		
	
		
			
				
					 *  2  =  X - Box  360  203 Watts  ( the  blue  wire  connected  to  PS_ON  and  the  red  wire  to  VCC ) 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  : { 0 : ' No  power  switch ' , 1 : ' ATX ' , 2 : ' X - Box  360 ' } 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define POWER_SUPPLY 0  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
  
			
		
	
		
			
				
					//#define PS_DEFAULT_OFF
  
			
		
	
		
			
				
					# if POWER_SUPPLY > 0  
			
		
	
		
			
				
					  // Enable this option to leave the PSU off at startup.
 
 
			
		
	
		
			
				
					  // Power to steppers and heaters will need to be turned on with M80.
 
 
			
		
	
		
			
				
					  //#define PS_DEFAULT_OFF
 
 
			
		
	
		
			
				
					# endif  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// @section temperature
  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -222,10 +239,10 @@
 
			
		
	
		
			
				
					// 110 is Pt100 with 1k pullup (non standard)
  
			
		
	
		
			
				
					// 998 and 999 are Dummy Tables. They will ALWAYS read 25°C or the temperature defined below.
  
			
		
	
		
			
				
					//     Use it for Testing or Development purposes. NEVER for production machine.
  
			
		
	
		
			
				
					# define DUMMY_THERMISTOR_998_VALUE 25  
			
		
	
		
			
				
					//#define DUMMY_THERMISTOR_998_VALUE 25
  
			
		
	
		
			
				
					//#define DUMMY_THERMISTOR_999_VALUE 100
  
			
		
	
		
			
				
					// :{ '0': "Not used",'1':"100k / 4.7k - EPCOS",'2':"200k / 4.7k - ATC Semitec 204GT-2",'3':"Mendel-parts / 4.7k",'4':"10k !! do not use for a hotend. Bad resolution at high temp. !!",'5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)",'6':"100k / 4.7k EPCOS - Not as accurate as Table 1",'7':"100k / 4.7k Honeywell 135-104LAG-J01",'8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT",'9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1",'10':"100k / 4.7k RS 198-961",'11':"100k / 4.7k beta 3950 1%",'12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)",'13':"100k Hisens 3950  1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'",'20':"PT100 (Ultimainboard V2.x)",'51':"100k / 1k - EPCOS",'52':"200k / 1k - ATC Semitec 204GT-2",'55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)",'60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950",'66':"Dyze Design 4.7M High Temperature thermistor",'70':"the 100K thermistor found in the bq Hephestos 2",'71':"100k / 4.7k Honeywell 135-104LAF-J01",'147':"Pt100 / 4.7k",'1047':"Pt1000 / 4.7k",'110':"Pt100 / 1k (non-standard)",'1010':"Pt1000 / 1k (non standard)",'-3':"Thermocouple + MAX31855 (only for sensor 0)",'-2':"Thermocouple + MAX6675 (only for sensor 0)",'-1':"Thermocouple + AD595",'998':"Dummy 1",'999':"Dummy 2" }
  
			
		
	
		
			
				
					# define TEMP_SENSOR_0  998  
			
		
	
		
			
				
					# define TEMP_SENSOR_0  1  
			
		
	
		
			
				
					# define TEMP_SENSOR_1 0  
			
		
	
		
			
				
					# define TEMP_SENSOR_2 0  
			
		
	
		
			
				
					# define TEMP_SENSOR_3 0  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -355,8 +372,9 @@
 
			
		
	
		
			
				
					# define EXTRUDE_MINTEMP 170  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// This option prevents a single extrusion longer than EXTRUDE_MAXLENGTH.
  
			
		
	
		
			
				
					// Note that for Bowden Extruders a too-small value here may prevent loading.
  
			
		
	
		
			
				
					# define PREVENT_LENGTHY_EXTRUDE  
			
		
	
		
			
				
					# define EXTRUDE_MAXLENGTH  (X_MAX_LENGTH+Y_MAX_LENGTH)  
			
		
	
		
			
				
					# define EXTRUDE_MAXLENGTH  200  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//===========================================================================
  
			
		
	
		
			
				
					//======================== Thermal Runaway Protection =======================
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -403,9 +421,9 @@
 
			
		
	
		
			
				
					# define USE_XMIN_PLUG  
			
		
	
		
			
				
					# define USE_YMIN_PLUG  
			
		
	
		
			
				
					# define USE_ZMIN_PLUG  
			
		
	
		
			
				
					# define USE_XMAX_PLUG  
			
		
	
		
			
				
					# define USE_YMAX_PLUG  
			
		
	
		
			
				
					# define USE_ZMAX_PLUG  
			
		
	
		
			
				
					//#define USE_XMAX_PLUG
  
			
		
	
		
			
				
					//#define USE_YMAX_PLUG
  
			
		
	
		
			
				
					//#define USE_ZMAX_PLUG
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// coarse Endstop Settings
  
			
		
	
		
			
				
					# define ENDSTOPPULLUPS  // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -422,13 +440,13 @@
 
			
		
	
		
			
				
					# endif  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
  
			
		
	
		
			
				
					# define X_MIN_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Y_MIN_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Z_MIN_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define X_MAX_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Y_MAX_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Z_MAX_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Z_MIN_PROBE_ENDSTOP_INVERTING  tru e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define X_MIN_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Y_MIN_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Z_MIN_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define X_MAX_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Y_MAX_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Z_MAX_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					# define Z_MIN_PROBE_ENDSTOP_INVERTING  fals e // set to true to invert the logic of the endstop.
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//=============================================================================
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -436,20 +454,56 @@
 
			
		
	
		
			
				
					//=============================================================================
  
			
		
	
		
			
				
					// @section motion
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# define DEFAULT_AXIS_STEPS_PER_UNIT   {8*24.8139,8*24.8139,8*24.8139,100}    
			
		
	
		
			
				
					# define DEFAULT_MAX_FEEDRATE          {35, 35, 25, 25}         // (mm/sec)
  
			
		
	
		
			
				
					# define DEFAULT_MAX_ACCELERATION      {3000,3000,100,10000}     // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
  
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Default  Settings 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  These  settings  can  be  reset  by  M502 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Note  that  if  EEPROM  is  enabled ,  saved  values  will  override  these . 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Default  Axis  Steps  Per  Unit  ( steps / mm ) 
 
			
		
	
		
			
				
					 *  Override  with  M92 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Default  Max  Feed  Rate  ( mm / s ) 
 
			
		
	
		
			
				
					 *  Override  with  M203 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Default  Max  Acceleration  ( change / s )  change  =  mm / s 
 
			
		
	
		
			
				
					 *  Override  with  M201 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Maximum  start  speed  for  accelerated  moves :  {  X ,  Y ,  Z ,  E  } 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# define DEFAULT_ACCELERATION          3000     // X, Y, Z and E acceleration in mm/s^2 for printing moves
  
			
		
	
		
			
				
					# 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
  
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Default  Acceleration  ( change / s )  change  =  mm / s 
 
			
		
	
		
			
				
					 *  Override  with  M204 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *    M204  P     Acceleration 
 
			
		
	
		
			
				
					 *    M204  R     Retract  Acceleration 
 
			
		
	
		
			
				
					 *    M204  T     Travel  Acceleration 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define DEFAULT_ACCELERATION          3000     // X, Y, Z and E acceleration for printing moves
  
			
		
	
		
			
				
					# define DEFAULT_RETRACT_ACCELERATION  3000     // E acceleration for retracts
  
			
		
	
		
			
				
					# define DEFAULT_TRAVEL_ACCELERATION   3000     // X, Y, Z acceleration for travel (non printing) moves
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// "Jerk" specifies the minimum speed change that requires acceleration.
  
			
		
	
		
			
				
					// When changing speed and direction, if the difference is less than the
  
			
		
	
		
			
				
					// value set here, it may happen instantaneously.
  
			
		
	
		
			
				
					# define DEFAULT_XYJERK                20.0     // (mm/sec)
  
			
		
	
		
			
				
					# define DEFAULT_ZJERK                  0.4     // (mm/sec)
  
			
		
	
		
			
				
					# define DEFAULT_EJERK                  5.0     // (mm/sec)
  
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  Defult  Jerk  ( mm / s ) 
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  " Jerk "  specifies  the  minimum  speed  change  that  requires  acceleration . 
 
			
		
	
		
			
				
					 *  When  changing  speed  and  direction ,  if  the  difference  is  less  than  the 
 
			
		
	
		
			
				
					 *  value  set  here ,  it  may  happen  instantaneously . 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					# define DEFAULT_XYJERK                20.0  
			
		
	
		
			
				
					# define DEFAULT_ZJERK                  0.4  
			
		
	
		
			
				
					# define DEFAULT_EJERK                  5.0  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//===========================================================================
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -474,6 +528,7 @@
 
			
		
	
		
			
				
					//#define FIX_MOUNTED_PROBE
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// The BLTouch probe emulates a servo probe.
  
			
		
	
		
			
				
					// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
  
			
		
	
		
			
				
					//#define BLTOUCH
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Z Servo Probe, such as an endstop switch on a rotating arm.
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -610,9 +665,9 @@
 
			
		
	
		
			
				
					// @section machine
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
  
			
		
	
		
			
				
					# define INVERT_X_DIR  true    // positive is away from the motor
   
			
		
	
		
			
				
					# define INVERT_Y_DIR  false    // positive is towards the motor
   
			
		
	
		
			
				
					# define INVERT_Z_DIR  true    // positive is away from the motor
   
			
		
	
		
			
				
					# define INVERT_X_DIR  false  
			
		
	
		
			
				
					# define INVERT_Y_DIR  true  
			
		
	
		
			
				
					# define INVERT_Z_DIR  false  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// @section extruder
  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -640,12 +695,12 @@
 
			
		
	
		
			
				
					// @section machine
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Travel limits after homing (units are in mm)
  
			
		
	
		
			
				
					# define X_MIN_POS  -10 0 
			
		
	
		
			
				
					# define Y_MIN_POS  -10 0 
			
		
	
		
			
				
					# define Z_MIN_POS  -10 0 
			
		
	
		
			
				
					# define X_MAX_POS  375  
			
		
	
		
			
				
					# define Y_MAX_POS  45 0 
			
		
	
		
			
				
					# define Z_MAX_POS  45 0 
			
		
	
		
			
				
					# define X_MIN_POS  0 
			
		
	
		
			
				
					# define Y_MIN_POS  0 
			
		
	
		
			
				
					# define Z_MIN_POS  0 
			
		
	
		
			
				
					# define X_MAX_POS  200  
			
		
	
		
			
				
					# define Y_MAX_POS  20 0 
			
		
	
		
			
				
					# define Z_MAX_POS  20 0 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//===========================================================================
  
			
		
	
		
			
				
					//========================= Filament Runout Sensor ==========================
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1005,7 +1060,7 @@
 
			
		
	
		
			
				
					// SD Card support is disabled by default. If your controller has an SD slot,
  
			
		
	
		
			
				
					// you must uncomment the following option or it won't work.
  
			
		
	
		
			
				
					//
  
			
		
	
		
			
				
					# define SDSUPPORT  
			
		
	
		
			
				
					//#define SDSUPPORT
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//
  
			
		
	
		
			
				
					// SD CARD: SPI SPEED
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1022,7 +1077,7 @@
 
			
		
	
		
			
				
					//
  
			
		
	
		
			
				
					// Use CRC checks and retries on the SD communication.
  
			
		
	
		
			
				
					//
  
			
		
	
		
			
				
					# define SD_CHECK_AND_RETRY  
			
		
	
		
			
				
					//#define SD_CHECK_AND_RETRY
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					//
  
			
		
	
		
			
				
					// ENCODER SETTINGS