@ -55,45 +55,18 @@
*/
//===========================================================================
//============================= SCAR A Printer ===============================
//============================= DELT A Printer ===============================
//===========================================================================
/**
* 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
// For a Delta printer start with one of the configuration files in the
// config/examples/delta directory and customize for your machine.
//
//===========================================================================
//==================== END ==== SCARA Printer ==== END ======================
//============================= SCARA Printer ===============================
//===========================================================================
// For a SCARA printer start with the configuration files in
// config/examples/SCARA and customize for your machine.
//
// @section info
@ -160,7 +133,7 @@
# endif
// Name displayed in the LCD "Ready" message and Info menu
# define CUSTOM_MACHINE_NAME "SCARA"
//#define CUSTOM_MACHINE_NAME "3D Printer"
// 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
@ -347,7 +320,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)
@ -436,7 +409,7 @@
# define TEMP_SENSOR_3 0
# define TEMP_SENSOR_4 0
# define TEMP_SENSOR_5 0
# define TEMP_SENSOR_BED 1
# define TEMP_SENSOR_BED 0
# define TEMP_SENSOR_CHAMBER 0
// Dummy thermistor constant temperature readings, for use with 998 and 999
@ -448,11 +421,11 @@
//#define TEMP_SENSOR_1_AS_REDUNDANT
# define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
# 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_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_BED_RESIDENCY_TIME 0 // (seconds) Time to wait for bed to "settle" in M190
# define TEMP_BED_RESIDENCY_TIME 1 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
@ -495,13 +468,25 @@
//#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 2 0 // If the temperature difference between the target temperature and the actual temperature
# define PID_FUNCTIONAL_RANGE 1 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.
// Merlin Hotend: From Autotune
# define DEFAULT_Kp 24.5
# define DEFAULT_Ki 1.72
# define DEFAULT_Kd 87.73
// 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
# endif // PIDTEMP
@ -522,7 +507,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
@ -538,11 +523,17 @@
//#define MIN_BED_POWER 0
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//12v Heatbed Mk3 12V in parallel
//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+)
//from pidautotune
# define DEFAULT_bedKp 630.14
# define DEFAULT_bedKi 121.71
# define DEFAULT_bedKd 815.64
//#define DEFAULT_bedKp 97.1
//#define DEFAULT_bedKi 1.41
//#define DEFAULT_bedKd 1675.16
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
# endif // PIDTEMPBED
@ -611,23 +602,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 // open pin, inverted
//#define ENDSTOPPULLUP_XMIN // open pin, inverted
//#define ENDSTOPPULLUP_YMIN // open pin, inverted
# define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
# endif
@ -645,13 +636,13 @@
# endif
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
# 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.
# 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.
/**
* Stepper Drivers
@ -668,14 +659,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 TMC2209
# define Y_DRIVER_TYPE TMC2130
# define Z_DRIVER_TYPE TMC2130
//#define X_DRIVER_TYPE A4988
//#define Y_DRIVER_TYPE A4988
//#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
# define E0_DRIVER_TYPE TMC2660
//#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
@ -725,14 +716,14 @@
* Override with M92
* X , Y , Z , E0 [ , E1 [ , E2 [ , E3 [ , E4 [ , E5 ] ] ] ] ]
*/
# define DEFAULT_AXIS_STEPS_PER_UNIT { 103.69, 106.65, 200/ 1.25, 1000 } // default steps per unit for SCARA
# define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }
/**
* Default Max Feed Rate ( mm / s )
* Override with M203
* X , Y , Z , E0 [ , E1 [ , E2 [ , E3 [ , E4 [ , E5 ] ] ] ] ]
*/
# define DEFAULT_MAX_FEEDRATE { 300, 300, 30 , 25 }
# define DEFAULT_MAX_FEEDRATE { 300, 300, 5 , 25 }
//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
# if ENABLED(LIMITED_MAX_FR_EDITING)
@ -745,7 +736,7 @@
* Override with M201
* X , Y , Z , E0 [ , E1 [ , E2 [ , E3 [ , E4 [ , E5 ] ] ] ] ]
*/
# define DEFAULT_MAX_ACCELERATION { 300 , 300, 20, 1 000 }
# define DEFAULT_MAX_ACCELERATION { 300 0, 3000, 100, 10 000 }
//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2
# if ENABLED(LIMITED_MAX_ACCEL_EDITING)
@ -760,9 +751,9 @@
* M204 R Retract Acceleration
* M204 T Travel Acceleration
*/
# define DEFAULT_ACCELERATION 4 00 // X, Y, Z and E acceleration for printing moves
# define DEFAULT_RETRACT_ACCELERATION 2000 // E acceleration for retracts
# define DEFAULT_TRAVEL_ACCELERATION 4 00 // X, Y, Z acceleration for travel (non printing) moves
# define DEFAULT_ACCELERATION 30 00 // X, Y, Z and E acceleration for printing moves
# define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
# define DEFAULT_TRAVEL_ACCELERATION 30 00 // X, Y, Z acceleration for travel (non printing) moves
/**
* Default Jerk limits ( mm / s )
@ -772,10 +763,10 @@
* When changing speed and direction , if the difference is less than the
* value set here , it may happen instantaneously .
*/
# define CLASSIC_JERK
//#define CLASSIC_JERK
# if ENABLED(CLASSIC_JERK)
# define DEFAULT_XJERK 5 .0
# define DEFAULT_YJERK 5 .0
# define DEFAULT_XJERK 10 .0
# define DEFAULT_YJERK 10 .0
# define DEFAULT_ZJERK 0.3
//#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2
@ -784,7 +775,7 @@
# endif
# endif
# define DEFAULT_EJERK 3 .0 // May be used by Linear Advance
# define DEFAULT_EJERK 5 .0 // May be used by Linear Advance
/**
* Junction Deviation Factor
@ -860,7 +851,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 .
@ -928,7 +919,7 @@
*
* Specify a Probe position as { X , Y , Z }
*/
# define NOZZLE_TO_PROBE_OFFSET { -25, -29, -12.35 }
# define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
// Certain types of probes need to stay away from edges
# define MIN_PROBE_EDGE 10
@ -968,7 +959,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 1 5 // Z Clearance for Deploy/Stow
# define Z_CLEARANCE_DEPLOY_PROBE 1 0 // 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
@ -983,7 +974,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
@ -1028,8 +1019,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 fals e
# define INVERT_Z_DIR tru e
# define INVERT_Y_DIR tru e
# define INVERT_Z_DIR fals e
// @section extruder
@ -1052,8 +1043,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
@ -1065,10 +1056,10 @@
// Travel limits (mm) after homing, corresponding to endstop positions.
# define X_MIN_POS 0
# define Y_MIN_POS 0
# define Z_MIN_POS MANUAL_Z_HOME_POS
# define Z_MIN_POS 0
# define X_MAX_POS X_BED_SIZE
# define Y_MAX_POS Y_BED_SIZE
# define Z_MAX_POS 2 25
# define Z_MAX_POS 2 00
/**
* Software Endstops
@ -1171,7 +1162,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
@ -1309,9 +1300,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 -22
# define MANUAL_Y_HOME_POS -52
# define MANUAL_Z_HOME_POS 0.1
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0
// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
@ -1330,8 +1321,8 @@
# endif
// Homing speeds (mm/m)
# define HOMING_FEEDRATE_XY ( 4 0*60)
# define HOMING_FEEDRATE_Z ( 10 *60)
# define HOMING_FEEDRATE_XY ( 5 0*60)
# define HOMING_FEEDRATE_Z ( 4 *60)
// Validate that endstops are triggered on homing moves
# define VALIDATE_HOMING_ENDSTOPS
@ -1408,7 +1399,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)
@ -1446,12 +1437,12 @@
# define PREHEAT_1_LABEL "PLA"
# define PREHEAT_1_TEMP_HOTEND 180
# define PREHEAT_1_TEMP_BED 70
# define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255
# define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
# define PREHEAT_2_LABEL "ABS"
# define PREHEAT_2_TEMP_HOTEND 240
# define PREHEAT_2_TEMP_BED 1 0 0
# define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
# define PREHEAT_2_TEMP_BED 1 1 0
# define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
/**
* Nozzle Park
@ -1747,7 +1738,7 @@
//
// ULTIMAKER Controller.
//
# define ULTIMAKERCONTROLLER
//#define ULTIMAKERCONTROLLER
//
// ULTIPANEL as seen on Thingiverse.