@ -55,18 +55,45 @@
*/
//===========================================================================
//============================= DELT A Printer ===============================
//============================= SCAR A Printer ===============================
//===========================================================================
// For a Delta printer start with one of the configuration files in the
// config/examples/delta directory and customize for your machine.
//
/**
* MORGAN_SCARA was developed by QHARLEY in South Africa in 2012 - 2013.
* Implemented and slightly reworked by JCERNY in June , 2014.
*/
// Specify the specific SCARA model
# define MORGAN_SCARA
# if ENABLED(MORGAN_SCARA)
//#define DEBUG_SCARA_KINEMATICS
# define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly
// If movement is choppy try lowering this value
# define SCARA_SEGMENTS_PER_SECOND 200
// Length of inner and outer support arms. Measure arm lengths precisely.
# define SCARA_LINKAGE_1 150 //mm
# define SCARA_LINKAGE_2 150 //mm
// SCARA tower offset (position of Tower relative to bed zero position)
// This needs to be reasonably accurate as it defines the printbed position in the SCARA space.
# define SCARA_OFFSET_X 100 //mm
# define SCARA_OFFSET_Y -56 //mm
// Radius around the center where the arm cannot reach
# define MIDDLE_DEAD_ZONE_R 0 //mm
# define THETA_HOMING_OFFSET 0 //calculatated from Calibration Guide and command M360 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073
# define PSI_HOMING_OFFSET 0 //calculatated from Calibration Guide and command M364 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073
# endif
//===========================================================================
//============================= SCARA Printer ===============================
//==================== END ==== SCARA Printer ==== END ======================
//===========================================================================
// For a SCARA printer start with the configuration files in
// config/examples/SCARA and customize for your machine.
//
// @section info
@ -133,7 +160,7 @@
# endif
// Name displayed in the LCD "Ready" message and Info menu
//#define CUSTOM_MACHINE_NAME "3D Printer"
# define CUSTOM_MACHINE_NAME "SCARA"
// Printer's unique ID, used by some programs to differentiate between machines.
// Choose your own or use a service like http://www.uuidgenerator.net/version4
@ -320,7 +347,7 @@
* Enable and connect the power supply to the PS_ON_PIN .
* Specify whether the power supply is active HIGH or active LOW .
*/
//#define PSU_CONTROL
# define PSU_CONTROL
//#define PSU_NAME "Power Supply"
# if ENABLED(PSU_CONTROL)
@ -409,7 +436,7 @@
# define TEMP_SENSOR_3 0
# define TEMP_SENSOR_4 0
# define TEMP_SENSOR_5 0
# define TEMP_SENSOR_BED 0
# define TEMP_SENSOR_BED 1
# define TEMP_SENSOR_CHAMBER 0
// Dummy thermistor constant temperature readings, for use with 998 and 999
@ -421,11 +448,11 @@
//#define TEMP_SENSOR_1_AS_REDUNDANT
# define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
# define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109
# define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer
# define TEMP_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target
# define TEMP_RESIDENCY_TIME 3 // (seconds) Time to wait for hotend to "settle" in M109
# define TEMP_HYSTERESIS 2 // (°C) Temperature proximity considered "close enough" to the target
# define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer
# define TEMP_BED_RESIDENCY_TIME 1 0 // (seconds) Time to wait for bed to "settle" in M190
# define TEMP_BED_RESIDENCY_TIME 0 // (seconds) Time to wait for bed to "settle" in M190
# define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer
# define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target
@ -468,25 +495,13 @@
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
// Set/get with gcode: M301 E[extruder number, 0-2]
# define PID_FUNCTIONAL_RANGE 1 0 // If the temperature difference between the target temperature and the actual temperature
# define PID_FUNCTIONAL_RANGE 2 0 // If the temperature difference between the target temperature and the actual temperature
// is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
# define DEFAULT_Kp 22.2
# define DEFAULT_Ki 1.08
# define DEFAULT_Kd 114
// MakerGear
//#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12
// Mendel Parts V9 on 12V
//#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440
// Merlin Hotend: From Autotune
# define DEFAULT_Kp 24.5
# define DEFAULT_Ki 1.72
# define DEFAULT_Kd 87.73
# endif // PIDTEMP
@ -507,7 +522,7 @@
* heater . If your configuration is significantly different than this and you don ' t understand
* the issues involved , don ' t use bed PID until someone else verifies that your hardware works .
*/
//#define PIDTEMPBED
# define PIDTEMPBED
//#define BED_LIMIT_SWITCHING
@ -523,17 +538,11 @@
//#define MIN_BED_POWER 0
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
# define DEFAULT_bedKp 10.00
# define DEFAULT_bedKi .023
# define DEFAULT_bedKd 305.4
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//12v Heatbed Mk3 12V in parallel
//from pidautotune
//#define DEFAULT_bedKp 97.1
//#define DEFAULT_bedKi 1.41
//#define DEFAULT_bedKd 1675.16
# define DEFAULT_bedKp 630.14
# define DEFAULT_bedKi 121.71
# define DEFAULT_bedKd 815.64
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
# endif // PIDTEMPBED
@ -602,23 +611,23 @@
// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
# define USE_XMIN_PLUG
# define USE_YMIN_PLUG
//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
# define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
# define USE_XMAX_PLUG
# define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
// Enable pullup for all endstops to prevent a floating state
# define ENDSTOPPULLUPS
//#define ENDSTOPPULLUPS
# if DISABLED(ENDSTOPPULLUPS)
// Disable ENDSTOPPULLUPS to set pullups individually
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
# define ENDSTOPPULLUP_XMAX
# define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX // open pin, inverted
//#define ENDSTOPPULLUP_XMIN // open pin, inverted
//#define ENDSTOPPULLUP_YMIN // open pin, inverted
# define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
# endif
@ -636,13 +645,13 @@
# endif
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
# define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
# define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
# define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
# define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
# define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
# define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
# define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.
# define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
# define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
# define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
# define X_MAX_ENDSTOP_INVERTING false
# define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
# define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
# define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.
/**
* Stepper Drivers
@ -659,14 +668,14 @@
* TMC5130 , TMC5130_STANDALONE , TMC5160 , TMC5160_STANDALONE
* : [ ' A4988 ' , ' A5984 ' , ' DRV8825 ' , ' LV8729 ' , ' L6470 ' , ' TB6560 ' , ' TB6600 ' , ' TMC2100 ' , ' TMC2130 ' , ' TMC2130_STANDALONE ' , ' TMC2160 ' , ' TMC2160_STANDALONE ' , ' TMC2208 ' , ' TMC2208_STANDALONE ' , ' TMC2209 ' , ' TMC2209_STANDALONE ' , ' TMC26X ' , ' TMC26X_STANDALONE ' , ' TMC2660 ' , ' TMC2660_STANDALONE ' , ' TMC5130 ' , ' TMC5130_STANDALONE ' , ' TMC5160 ' , ' TMC5160_STANDALONE ' ]
*/
//#define X_DRIVER_TYPE A4988
//#define Y_DRIVER_TYPE A4988
//#define Z_DRIVER_TYPE A4988
# define X_DRIVER_TYPE TMC2209
# define Y_DRIVER_TYPE TMC2130
# define Z_DRIVER_TYPE TMC2130
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE A4988
# define E0_DRIVER_TYPE TMC2660
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
@ -716,14 +725,14 @@
* Override with M92
* X , Y , Z , E0 [ , E1 [ , E2 [ , E3 [ , E4 [ , E5 ] ] ] ] ]
*/
# define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }
# define DEFAULT_AXIS_STEPS_PER_UNIT { 103.69, 106.65, 200 / 1.25, 1000 } // default steps per unit for SCARA
/**
* Default Max Feed Rate ( mm / s )
* Override with M203
* X , Y , Z , E0 [ , E1 [ , E2 [ , E3 [ , E4 [ , E5 ] ] ] ] ]
*/
# define DEFAULT_MAX_FEEDRATE { 300, 300, 5 , 25 }
# define DEFAULT_MAX_FEEDRATE { 300, 300, 30 , 25 }
//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
# if ENABLED(LIMITED_MAX_FR_EDITING)
@ -736,7 +745,7 @@
* Override with M201
* X , Y , Z , E0 [ , E1 [ , E2 [ , E3 [ , E4 [ , E5 ] ] ] ] ]
*/
# define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10 000 }
# define DEFAULT_MAX_ACCELERATION { 300, 300, 20, 1 000 }
//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2
# if ENABLED(LIMITED_MAX_ACCEL_EDITING)
@ -751,35 +760,22 @@
* 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
/**
* Junction Deviation
*
* Use Junction Deviation instead of traditional Jerk Limiting
*
* See :
* https : //reprap.org/forum/read.php?1,739819
* http : //blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
*/
//#define JUNCTION_DEVIATION
# if ENABLED(JUNCTION_DEVIATION)
# define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
# endif
# define DEFAULT_ACCELERATION 400 // X, Y, Z and E acceleration for printing moves
# define DEFAULT_RETRACT_ACCELERATION 2000 // E acceleration for retracts
# define DEFAULT_TRAVEL_ACCELERATION 400 // X, Y, Z acceleration for travel (non printing) moves
/**
* Default Jerk ( mm / s )
* Default Jerk limits ( mm / s )
* Override with M205 X Y Z E
*
* " 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 .
*/
# if DISABLED(JUNCTION_DEVIATION)
# define DEFAULT_XJERK 10.0
# define DEFAULT_YJERK 10.0
# define CLASSIC_JERK
# if ENABLED(CLASSIC_JERK)
# define DEFAULT_XJERK 5.0
# define DEFAULT_YJERK 5.0
# define DEFAULT_ZJERK 0.3
//#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2
@ -788,7 +784,18 @@
# endif
# endif
# define DEFAULT_EJERK 5.0 // May be used by Linear Advance
# define DEFAULT_EJERK 3.0 // May be used by Linear Advance
/**
* Junction Deviation Factor
*
* See :
* https : //reprap.org/forum/read.php?1,739819
* http : //blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
*/
# if DISABLED(CLASSIC_JERK)
# define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
# endif
/**
* S - Curve Acceleration
@ -853,7 +860,7 @@
* A Fix - Mounted Probe either doesn ' t deploy or needs manual deployment .
* ( e . g . , an inductive probe or a nozzle - based probe - switch . )
*/
//#define FIX_MOUNTED_PROBE
# define FIX_MOUNTED_PROBE
/**
* Z Servo Probe , such as an endstop switch on a rotating arm .
@ -921,7 +928,7 @@
*
* Specify a Probe position as { X , Y , Z }
*/
# define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
# define NOZZLE_TO_PROBE_OFFSET { -25, -29, -12.35 }
// Certain types of probes need to stay away from edges
# define MIN_PROBE_EDGE 10
@ -961,7 +968,7 @@
* Example : ` M851 Z - 5 ` with a CLEARANCE of 4 = > 9 mm from bed to nozzle .
* But : ` M851 Z + 1 ` with a CLEARANCE of 2 = > 2 mm from bed to nozzle .
*/
# define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
# define Z_CLEARANCE_DEPLOY_PROBE 15 // Z Clearance for Deploy/Stow
# define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
# define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done
@ -976,7 +983,7 @@
//#define Z_MIN_PROBE_REPEATABILITY_TEST
// Before deploy/stow pause for user confirmation
//#define PAUSE_BEFORE_DEPLOY_STOW
# define PAUSE_BEFORE_DEPLOY_STOW
# if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
# endif
@ -1021,8 +1028,8 @@
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
# define INVERT_X_DIR false
# define INVERT_Y_DIR tru e
# define INVERT_Z_DIR fals e
# define INVERT_Y_DIR fals e
# define INVERT_Z_DIR tru e
// @section extruder
@ -1045,8 +1052,8 @@
// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
# define X_HOME_DIR - 1
# define Y_HOME_DIR - 1
# define X_HOME_DIR 1
# define Y_HOME_DIR 1
# define Z_HOME_DIR -1
// @section machine
@ -1058,10 +1065,10 @@
// Travel limits (mm) after homing, corresponding to endstop positions.
# define X_MIN_POS 0
# define Y_MIN_POS 0
# define Z_MIN_POS 0
# define Z_MIN_POS MANUAL_Z_HOME_POS
# define X_MAX_POS X_BED_SIZE
# define Y_MAX_POS Y_BED_SIZE
# define Z_MAX_POS 200
# define Z_MAX_POS 225
/**
* Software Endstops
@ -1164,7 +1171,7 @@
*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
# define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING
@ -1302,9 +1309,9 @@
// Manually set the home position. Leave these undefined for automatic settings.
// For DELTA this is the top-center of the Cartesian print volume.
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0
# define MANUAL_X_HOME_POS -22
# define MANUAL_Y_HOME_POS -52
# define MANUAL_Z_HOME_POS 0.1
// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
@ -1323,8 +1330,8 @@
# endif
// Homing speeds (mm/m)
# define HOMING_FEEDRATE_XY (5 0*60)
# define HOMING_FEEDRATE_Z (4 *60)
# define HOMING_FEEDRATE_XY (4 0*60)
# define HOMING_FEEDRATE_Z (10 *60)
// Validate that endstops are triggered on homing moves
# define VALIDATE_HOMING_ENDSTOPS
@ -1401,7 +1408,7 @@
* M501 - Read settings from EEPROM . ( i . e . , Throw away unsaved changes )
* M502 - Revert settings to " factory " defaults . ( Follow with M500 to init the EEPROM . )
*/
//#define EEPROM_SETTINGS // Persistent storage with M500 and M501
# define EEPROM_SETTINGS // Persistent storage with M500 and M501
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
# define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
# if ENABLED(EEPROM_SETTINGS)
@ -1439,12 +1446,12 @@
# define PREHEAT_1_LABEL "PLA"
# define PREHEAT_1_TEMP_HOTEND 180
# define PREHEAT_1_TEMP_BED 70
# define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
# define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255
# define PREHEAT_2_LABEL "ABS"
# define PREHEAT_2_TEMP_HOTEND 240
# define PREHEAT_2_TEMP_BED 11 0
# define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
# define PREHEAT_2_TEMP_BED 10 0
# define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
/**
* Nozzle Park
@ -1740,7 +1747,7 @@
//
// ULTIMAKER Controller.
//
//#define ULTIMAKERCONTROLLER
# define ULTIMAKERCONTROLLER
//
// ULTIPANEL as seen on Thingiverse.