#define ACTION_ON_FILAMENT_RUNOUT "pause: filament_runout"
#define ADAPTIVE_FAN_SLOWING
#define ADVANCED_OK
#define ADVANCED_PAUSE_FEATURE
#define ADVANCED_PAUSE_PURGE_FEEDRATE 1.0
#define ADVANCED_PAUSE_PURGE_LENGTH 20
#define AO_EXP2_PINMAP
#define AUTO_BED_LEVELING_LINEAR
#define BABYSTEPPING
#define BABYSTEP_XY
#define BABYSTEP_ZPROBE_OFFSET
#define BACKLASH_COMPENSATION
#define BACKLASH_CORRECTION 1.0
#define BACKLASH_DISTANCE_MM {0.252, 0.183, 0.075}
#define BACKLASH_GCODE
#define BACKLASH_SMOOTHING_MM 3
#define BACK_PROBE_BED_POSITION 291
#define BAUDRATE 250000
#define BUFSIZE 5
#define CALIBRATION_GCODE
#define CALIBRATION_MEASURE_BACK
//#define CALIBRATION_MEASURE_FRONT
#define CALIBRATION_MEASURE_LEFT
#define CALIBRATION_MEASURE_RIGHT
#define CALIBRATION_OBJECT_CENTER {261.0, -22.0, -2.0}
#define CALIBRATION_OBJECT_DIMENSIONS {10.0, 10.0, 10.0}
#define CALIBRATION_REPORTING
#define CHOPPER_TIMING {3, -2, 6}
#define CONTROLLERFAN_SPEED 255
#define CONTROLLER_FAN_PIN FAN1_PIN
#define CUSTOM_MACHINE_NAME "LulzBot TAZ Pro"
#define DEFAULT_ACCELERATION 500
#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 500, 420}
#define DEFAULT_EJERK 10.0
#define DEFAULT_Kd 65.36
#define DEFAULT_Ki 5.39
#define DEFAULT_Kp 37.55
#define DEFAULT_MAX_ACCELERATION {9000, 9000, 200, 9000}
#define DEFAULT_MAX_FEEDRATE {300, 300, 30, 25}
#define DEFAULT_STEPPER_DEACTIVE_TIME 600
#define DEFAULT_TRAVEL_ACCELERATION 500
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_bedKd 374.9
#define DEFAULT_bedKi 54.55
#define DEFAULT_bedKp 286.02
#define DEVELOPER_SCREENS
#define DISABLE_INACTIVE_Z false
#define E0_CURRENT 960
#define E0_DRIVER_TYPE TMC2130
#define E0_RSENSE 0.12
#define EEPROM_AUTO_INIT
#define EEPROM_SETTINGS
#define EMERGENCY_PARSER
#define EVENT_GCODE_SD_STOP "G91\nG0 Z15 F600\nG90\nG0 X170 Y290 F3000\nM117 Print aborted."
#define EXTRUDERS 1
#define EXTRUDE_MINTEMP 120
#define FAN_KICKSTART_TIME 100
#define FAN_MIN_PWM 70
#define FAN_SOFT_PWM
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 1.0
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 40
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 5
#define FILAMENT_CHANGE_UNLOAD_LENGTH 80
#define FILAMENT_MOTION_SENSOR
#define FILAMENT_RUNOUT_DISTANCE_MM 14
#define FILAMENT_RUNOUT_SCRIPT "M25"
#define FILAMENT_RUNOUT_SENSOR
#define FIX_MOUNTED_PROBE
#define FRONT_PROBE_BED_POSITION -9
#define G29_FAILURE_COMMANDS "M117 Bed leveling failed.\nG0 Z10\nG0 E0\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nG4 S1"
#define G29_HALT_ON_FAILURE
#define G29_MAX_RETRIES 2
#define G29_RECOVER_COMMANDS "M104 S170\nM117 Leveling X Axis\nG0 X150 F9999\nG28 Z0\nM117 Leveling done.\nG12\nM109 R160\nM400\nM117 Probing bed"
#define G29_RETRY_AND_RECOVER
#define G29_SUCCESS_COMMANDS "M117 Probe successful"
#define GCODE_MACROS
#define GRID_MAX_POINTS_X 2
#define GRID_MAX_POINTS_Y 2
#define HEATER_0_MAXTEMP 305
#define HOLD_MULTIPLIER 0.5
#define HOME_AFTER_DEACTIVATE
#define HOME_BEFORE_FILAMENT_CHANGE
#define HOMING_BACKOFF_MM {5, 5, 2}
#define HOMING_FEEDRATE_XY 3000
#define HOMING_FEEDRATE_Z 1800
#define HOST_ACTION_COMMANDS
#define HOTEND_OFFSET_X {0.0, 0}
#define HOTEND_OFFSET_Y {0.0, 0}
#define HOTEND_OFFSET_Z {0.0, 0}
#define HYBRID_THRESHOLD
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define JOYSTICK
#define JOY_EN_PIN -1
//#define JOY_X_LIMITS
#define JOY_X_PIN -1
//#define JOY_Y_LIMITS
#define JOY_Y_PIN -1
//#define JOY_Z_LIMITS
#define JOY_Z_PIN -1
#define LCD_ALEPHOBJECTS_CLCD_UI
#define LCD_SET_PROGRESS_MANUALLY
#define LEFT_PROBE_BED_POSITION -6
#define LIN_ADVANCE
#define LIN_ADVANCE_K 0.0
#define LULZBOT_ADVANCED_PAUSE_PURGE_WORKAROUND
#define LULZBOT_AERO_UNLOAD_PURGE_FEEDRATE 1.0
#define LULZBOT_AERO_UNLOAD_PURGE_LENGTH 6
#define LULZBOT_AERO_UNLOAD_WORKAROUND
#define LULZBOT_AXIS_LEVELING_COMMANDS "M117 Leveling X Axis\nG0 X150 F9999\nG28 Z0\nM117 Leveling done."
#define LULZBOT_CALIBRATION_COMMANDS "M117 Starting Auto-Calibration\nT0\nG28\nM117 Leveling X Axis\nG0 X150 F9999\nG28 Z0\nM117 Leveling done.\nG12\nM117 Calibrating...\nG425\nM500\nM117 Calibration data saved"
#define LULZBOT_DISABLE_DUE_SD_MMC
#define LULZBOT_EEPROM_BACKUP_SIZE 1000
#define LULZBOT_EMI_MITIGATION
#define LULZBOT_G29_ENDS_ON_BACK_LEFT_CORNER
#define LULZBOT_LCD_MACHINE_NAME "TAZ Pro"
#define LULZBOT_LCD_TOOLHEAD_NAME "HS 0.8mm"
#define LULZBOT_M226_NON_ARDUINO_PINS_WORKAROUND
#define LULZBOT_M226_PIN_PROTECTION_WORKAROUND
#define LULZBOT_NO_PAUSE_FOR_REHEAT_WORKAROUND
#define LULZBOT_RUNOUT_HANDLING_WORKAROUND
#define LULZBOT_TOOLHEAD_M115_TYPE "HardenedSteel"
#define LULZBOT_TOUCH_UI
#define LULZBOT_USB_DEVICE_PRODUCT_ID 0x0001
#define LULZBOT_USB_DEVICE_VENDOR_ID 0x27b1
#define LULZBOT_WIPE_SEQUENCE_COMMANDS "M117 Hot end heating...\nM104 S170\nG28 O1\nM117 Wiping nozzle\nG1 X297 Y25 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X297 Y25\nG1 X297 Y95\nG1 X297 Y25\nG1 X297 Y95\nG1 X297 Y25\nG1 X297 Y95\nG1 X297 Y25\nG1 X297 Y95\nG1 X297 Y25\nG1 X297 Y95\nG1 X297 Y25\nG1 X297 Y95\nG1 Z15\nM400\nM106 S255\nG0 X-6 Y-9M109 R160\nM107"
#define MACHINE_UUID "a952577d-8722-483a-999d-acdc9e772b7b"
#define MANUAL_FEEDRATE {2340, 2340, 2340, 60.0}
#define MAX_BED_POWER 206
#define MAX_PROBE_X 288
#define MAX_PROBE_Y 291
#define MINIMUM_STEPPER_PULSE 1
//#define MIN_PROBE_EDGE
#define MIN_PROBE_X -6
#define MIN_PROBE_Y -9
#define MIN_STEPS_PER_SEGMENT 1
#define MONITOR_DRIVER_STATUS
#define MOTHERBOARD BOARD_ARCHIM2
#define MULTIPLE_PROBING 2
#define NOZZLE_CLEAN_END_POINT {297, 25, 1}
#define NOZZLE_CLEAN_FEATURE
//#define NOZZLE_CLEAN_GOBACK
#define NOZZLE_CLEAN_START_POINT {297, 95, 1}
#define NOZZLE_PARK_FEATURE
#define NOZZLE_PARK_POINT {100, 312, 20}
#define NO_MOTION_BEFORE_HOMING
#define NO_VOLUMETRICS
#define NO_WORKSPACE_OFFSETS
#define NUM_RUNOUT_SENSORS 1
#define NUM_SERVOS 0
#define PARK_HEAD_ON_PAUSE
#define PAUSE_PARK_NOZZLE_TIMEOUT 300
#define PAUSE_PARK_RETRACT_FEEDRATE 10
#define PIDTEMP
#define PIDTEMPBED
#define PREHEAT_1_TEMP_HOTEND 200
#define PREVENT_COLD_EXTRUSION
#define PRINTCOUNTER
//#define PRINTJOB_TIMER_AUTOSTART
#define PROBING_FANS_OFF
#define PROBING_STEPPERS_OFF
//#define QUICK_HOME
#define RESTORE_LEVELING_AFTER_G28
#define RIGHT_PROBE_BED_POSITION 288
#define SCROLL_LONG_FILENAMES
#define SDSUPPORT
#define SD_ABORT_ON_ENDSTOP_HIT
//#define SD_DETECT_INVERTED
#define SD_FINISHED_RELEASECOMMAND "M84 X Y E"
#define SD_FINISHED_STEPPERRELEASE false
#define SENSORLESS_HOMING
#define SERIAL_PORT -1
#define SOFT_PWM_SCALE 4
#define SPI_SPEED SPI_SIXTEENTH_SPEED
#define STARTUP_COMMANDS "G28 Z"
#define STEALTHCHOP_E
//#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
#define STRING_CONFIG_H_AUTHOR "(Aleph Objects Inc., LulzBot Git Repository)"
#define TEMP_BED_HYSTERESIS 5
#define TEMP_BED_RESIDENCY_TIME 1
#define TEMP_BED_WINDOW 5
#define TEMP_HYSTERESIS 10
#define TEMP_RESIDENCY_TIME 1
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_BED 7
#define TEMP_WINDOW 10
#define THERMAL_PROTECTION_BED_HYSTERESIS 10
#define THERMAL_PROTECTION_BED_PERIOD 15
#define THERMAL_PROTECTION_HYSTERESIS 30
#define THERMAL_PROTECTION_PERIOD 15
#define TMC_ADV {stepperX.shaft(0);stepperX.semin(1);stepperX.semax(3);stepperY.shaft(0);stepperY.semin(1);stepperY.semax(3);stepperZ.shaft(0);stepperZ.semin(1);stepperZ.semax(3);stepperE0.shaft(0);stepperE0.semin(1);stepperE0.semax(3);}
#define TMC_DEBUG
#define TMC_USE_SW_SPI
#define TOUCH_UI_800x480
#define TOUCH_UI_PORTRAIT
#define TOUCH_UI_USE_UTF8
#define TOUCH_UI_UTF8_COPYRIGHT
#define TOUCH_UI_UTF8_SUPERSCRIPTS
#define TX_BUFFER_SIZE 32
#define USB_FLASH_DRIVE_SUPPORT
#define USB_INTR_PIN SD_DETECT_PIN
#define USE_CONTROLLER_FAN
//#define USE_UHS3_USB
//#define USE_XMAX_PLUG
#define USE_XMIN_PLUG
#define USE_YMAX_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMAX_PLUG
#define USE_ZMIN_PLUG
#define WATCH_TEMP_INCREASE 10
#define WATCH_TEMP_PERIOD 40
#define XY_PROBE_SPEED 6000
#define X_BED_SIZE 280
#define X_CURRENT 975
#define X_DRIVER_TYPE TMC2130
#define X_HOME_BUMP_MM 0
#define X_HOME_DIR -1
#define X_HYBRID_THRESHOLD 72
#define X_MAX_ENDSTOP_INVERTING 0
#define X_MAX_POS 320
#define X_MIN_ENDSTOP_INVERTING 1
#define X_MIN_POS -6
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define X_RSENSE 0.12
#define X_STALL_SENSITIVITY 6
#define Y_BED_SIZE 280
#define Y_CURRENT 975
#define Y_DRIVER_TYPE TMC2130
#define Y_HOME_BUMP_MM 0
#define Y_HOME_DIR 1
#define Y_HYBRID_THRESHOLD 72
#define Y_MAX_ENDSTOP_INVERTING 1
#define Y_MAX_POS 313
#define Y_MIN_ENDSTOP_INVERTING 0
#define Y_MIN_POS -15
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_RSENSE 0.12
#define Y_STALL_SENSITIVITY 5
#define Z_CLEARANCE_BETWEEN_PROBES 5
#define Z_CLEARANCE_DEPLOY_PROBE 5
#define Z_CURRENT 975
#define Z_DRIVER_TYPE TMC2130
#define Z_HOME_BUMP_MM 2
#define Z_HOME_DIR 1
#define Z_HOMING_HEIGHT 4
#define Z_MAX_ENDSTOP_INVERTING 0
#define Z_MAX_POS 299
#define Z_MICROSTEPS 16
#define Z_MIN_ENDSTOP_INVERTING 1
#define Z_MIN_POS -2
#define Z_MIN_PROBE_ENDSTOP_INVERTING 1
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#define Z_PROBE_LOW_POINT -2
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.102
#define Z_PROBE_OFFSET_RANGE_MAX 5
#define Z_PROBE_OFFSET_RANGE_MIN -2
#define Z_PROBE_SPEED_FAST 1200
#define Z_PROBE_SPEED_SLOW 60
#define Z_RSENSE 0.12
