Configuration for Mini added. General cleanup.

master
Marcio Teixeira 8 years ago
parent 5ba4d9f4a3
commit ecc24d6a87

@ -20,6 +20,8 @@
*
*/
#include "Configuration_LulzBot.h"
/**
* Configuration.h
*
@ -74,7 +76,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 "(none, default config)" // Who made the changes.
#define STRING_CONFIG_H_AUTHOR LULZBOT_STRING_CONFIG_H_AUTHOR // 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
@ -90,7 +92,7 @@
// boot image unmodified. For an example have a look at the bq Hephestos 2
// example configuration folder.
//
//#define SHOW_CUSTOM_BOOTSCREEN
#define SHOW_CUSTOM_BOOTSCREEN LULZBOT_SHOW_CUSTOM_BOOTSCREEN
// @section machine
/**
@ -118,22 +120,22 @@
// 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_RAMPS_14_EFB
#define MOTHERBOARD LULZBOT_MOTHERBOARD
#endif
// Optional custom name for your RepStrap or other custom machine
// Displayed in the LCD "Ready" message
//#define CUSTOM_MACHINE_NAME "3D Printer"
#define CUSTOM_MACHINE_NAME LULZBOT_CUSTOM_MACHINE_NAME
// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
#define MACHINE_UUID LULZBOT_UUID
// @section extruder
// This defines the number of extruders
// :[1, 2, 3, 4, 5]
#define EXTRUDERS 1
#define EXTRUDERS LULZBOT_EXTRUDERS
// For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE
@ -267,12 +269,12 @@
*
* :{ '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 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_0 LULZBOT_TEMP_SENSOR_0
#define TEMP_SENSOR_1 LULZBOT_TEMP_SENSOR_1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_BED 0
#define TEMP_SENSOR_BED LULZBOT_TEMP_SENSOR_BED
// Dummy thermistor constant temperature readings, for use with 998 and 999
#define DUMMY_THERMISTOR_998_VALUE 25
@ -284,14 +286,14 @@
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
// Extruder temperature must be close to target for this long before M109 returns success
#define TEMP_RESIDENCY_TIME 10 // (seconds)
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
#define TEMP_RESIDENCY_TIME LULZBOT_TEMP_RESIDENCY_TIME // (seconds)
#define TEMP_HYSTERESIS LULZBOT_TEMP_HYSTERESIS // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_WINDOW LULZBOT_TEMP_WINDOW // (degC) Window around target to start the residency timer x degC early.
// Bed temperature must be close to target for this long before M190 returns success
#define TEMP_BED_RESIDENCY_TIME 10 // (seconds)
#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
#define TEMP_BED_RESIDENCY_TIME LULZBOT_TEMP_BED_RESIDENCY_TIME // (seconds)
#define TEMP_BED_HYSTERESIS LULZBOT_TEMP_BED_HYSTERESIS // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_BED_WINDOW LULZBOT_TEMP_BED_WINDOW // (degC) Window around target to start the residency timer x degC early.
// The minimal temperature defines the temperature below which the heater will not be enabled It is used
// to check that the wiring to the thermistor is not broken.
@ -306,11 +308,11 @@
// When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection.
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
#define HEATER_4_MAXTEMP 275
#define HEATER_0_MAXTEMP LULZBOT_HEATER_MAXTEMP
#define HEATER_1_MAXTEMP LULZBOT_HEATER_MAXTEMP
#define HEATER_2_MAXTEMP LULZBOT_HEATER_MAXTEMP
#define HEATER_3_MAXTEMP LULZBOT_HEATER_MAXTEMP
#define HEATER_4_MAXTEMP LULZBOT_HEATER_MAXTEMP
#define BED_MAXTEMP 150
//===========================================================================
@ -335,10 +337,15 @@
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// LulzBot Printer
#define DEFAULT_Kp LULZBOT_DEFAULT_Kp
#define DEFAULT_Ki LULZBOT_DEFAULT_Ki
#define DEFAULT_Kd LULZBOT_DEFAULT_Kd
// Ultimaker
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
//#define DEFAULT_Kp 22.2
//#define DEFAULT_Ki 1.08
//#define DEFAULT_Kd 114
// MakerGear
//#define DEFAULT_Kp 7.0
@ -364,7 +371,7 @@
// If your configuration is significantly different than this and you don't understand the issues involved, you probably
// shouldn't use bed PID until someone else verifies your hardware works.
// If this is enabled, find your own PID constants below.
//#define PIDTEMPBED
#define PIDTEMPBED LULZBOT_PIDTEMPBED
//#define BED_LIMIT_SWITCHING
@ -372,17 +379,22 @@
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
#define MAX_BED_POWER LULZBOT_MAX_BED_POWER // limits duty cycle to bed; 255=full current
#if ENABLED(PIDTEMPBED)
//#define PID_BED_DEBUG // Sends debug data to the serial port.
// LulzBot Print Bed
#define DEFAULT_bedKp LULZBOT_DEFAULT_bedKp
#define DEFAULT_bedKi LULZBOT_DEFAULT_bedKi
#define DEFAULT_bedKd LULZBOT_DEFAULT_bedKd
//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
//#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
@ -400,7 +412,7 @@
// or to allow moving the extruder regardless of the hotend temperature.
// *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! ***
#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 170
#define EXTRUDE_MINTEMP LULZBOT_EXTRUDE_MINTEMP
// This option prevents a single extrusion longer than EXTRUDE_MAXLENGTH.
// Note that for Bowden Extruders a too-small value here may prevent loading.
@ -450,12 +462,12 @@
// 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_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
#define USE_XMIN_PLUG LULZBOT_USE_XMIN_PLUG
#define USE_YMIN_PLUG LULZBOT_USE_YMIN_PLUG
#define USE_ZMIN_PLUG LULZBOT_USE_ZMIN_PLUG
#define USE_XMAX_PLUG LULZBOT_USE_XMAX_PLUG
#define USE_YMAX_PLUG LULZBOT_USE_YMAX_PLUG
#define USE_ZMAX_PLUG LULZBOT_USE_ZMAX_PLUG
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
@ -472,13 +484,14 @@
#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 LULZBOT_X_MIN_ENDSTOP_INVERTING // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING LULZBOT_Y_MIN_ENDSTOP_INVERTING // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING LULZBOT_Z_MIN_ENDSTOP_INVERTING // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING LULZBOT_X_MAX_ENDSTOP_INVERTING // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING LULZBOT_Y_MAX_ENDSTOP_INVERTING // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING LULZBOT_Z_MAX_ENDSTOP_INVERTING // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING LULZBOT_Z_MIN_PROBE_ENDSTOP_INVERTING // set to true to invert the logic of the probe.
// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
@ -509,14 +522,15 @@
* Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }
#define DEFAULT_AXIS_STEPS_PER_UNIT LULZBOT_DEFAULT_AXIS_STEPS_PER_UNIT
/**
* Default Max Feed Rate (mm/s)
* Override with M203
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
#define DEFAULT_MAX_FEEDRATE LULZBOT_DEFAULT_MAX_FEEDRATE
/**
* Default Max Acceleration (change/s) change = mm/s
@ -524,7 +538,7 @@
* Override with M201
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }
#define DEFAULT_MAX_ACCELERATION LULZBOT_DEFAULT_MAX_ACCELERATION
/**
* Default Acceleration (change/s) change = mm/s
@ -534,9 +548,9 @@
* M204 R Retract Acceleration
* M204 T Travel Acceleration
*/
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_ACCELERATION LULZBOT_DEFAULT_ACCELERATION // 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
#define DEFAULT_TRAVEL_ACCELERATION LULZBOT_DEFAULT_TRAVEL_ACCELERATION // X, Y, Z acceleration for travel (non printing) moves
/**
* Default Jerk (mm/s)
@ -546,10 +560,10 @@
* When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously.
*/
#define DEFAULT_XJERK 20.0
#define DEFAULT_YJERK 20.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0
#define DEFAULT_XJERK LULZBOT_DEFAULT_XJERK
#define DEFAULT_YJERK LULZBOT_DEFAULT_YJERK
#define DEFAULT_ZJERK LULZBOT_DEFAULT_ZJERK
#define DEFAULT_EJERK LULZBOT_DEFAULT_EJERK
//===========================================================================
@ -566,7 +580,9 @@
*
* Enable this option for a probe connected to the Z Min endstop pin.
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#ifdef LULZBOT_Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN LULZBOT_Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#endif
/**
* Z_MIN_PROBE_ENDSTOP
@ -587,7 +603,10 @@
* disastrous consequences. Use with caution and do your homework.
*
*/
//#define Z_MIN_PROBE_ENDSTOP
#ifdef LULZBOT_Z_MIN_PROBE_ENDSTOP
#define Z_MIN_PROBE_ENDSTOP LULZBOT_Z_MIN_PROBE_ENDSTOP
#define Z_MIN_PROBE_PIN LULZBOT_Z_MIN_PROBE_PIN
#endif
/**
* Probe Type
@ -607,7 +626,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 LULZBOT_FIX_MOUNTED_PROBE
/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
@ -663,21 +682,21 @@
* O-- FRONT --+
* (0,0)
*/
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
#define X_PROBE_OFFSET_FROM_EXTRUDER LULZBOT_X_PROBE_OFFSET_FROM_EXTRUDER // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER LULZBOT_Y_PROBE_OFFSET_FROM_EXTRUDER // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER LULZBOT_Z_PROBE_OFFSET_FROM_EXTRUDER // Z offset: -below +above [the nozzle]
// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000
#define XY_PROBE_SPEED LULZBOT_XY_PROBE_SPEED
// Speed for the first approach when double-probing (with PROBE_DOUBLE_TOUCH)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
#define Z_PROBE_SPEED_FAST LULZBOT_Z_PROBE_SPEED_FAST
// Speed for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
#define Z_PROBE_SPEED_SLOW LULZBOT_Z_PROBE_SPEED_SLOW
// Use double touch for probing
//#define PROBE_DOUBLE_TOUCH
#define PROBE_DOUBLE_TOUCH LULZBOT_PROBE_DOUBLE_TOUCH
/**
* Z probes require clearance when deploying, stowing, and moving between
@ -693,12 +712,12 @@
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
#define Z_CLEARANCE_DEPLOY_PROBE LULZBOT_Z_CLEARANCE_DEPLOY_PROBE // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES LULZBOT_Z_CLEARANCE_BETWEEN_PROBES // Z Clearance between probe points
// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MIN LULZBOT_Z_PROBE_OFFSET_RANGE_MIN
#define Z_PROBE_OFFSET_RANGE_MAX LULZBOT_Z_PROBE_OFFSET_RANGE_MAX
// Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST
@ -726,9 +745,9 @@
// @section machine
// 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 true
#define INVERT_Z_DIR false
#define INVERT_X_DIR LULZBOT_INVERT_X_DIR
#define INVERT_Y_DIR LULZBOT_INVERT_Y_DIR
#define INVERT_Z_DIR LULZBOT_INVERT_Z_DIR
// Enable this option for Toshiba stepper drivers
//#define CONFIG_STEPPERS_TOSHIBA
@ -736,32 +755,32 @@
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E0_DIR LULZBOT_INVERT_E0_DIR
#define INVERT_E1_DIR LULZBOT_INVERT_E1_DIR
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
// @section homing
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
#define Z_HOMING_HEIGHT LULZBOT_Z_HOMING_HEIGHT // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
// Be sure you have this distance over your Z_MAX_POS in case.
// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define X_HOME_DIR LULZBOT_INVERT_X_HOME_DIR
#define Y_HOME_DIR LULZBOT_INVERT_Y_HOME_DIR
#define Z_HOME_DIR LULZBOT_INVERT_Z_HOME_DIR
// @section machine
// Travel limits after homing (units are in mm)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 200
#define Y_MAX_POS 200
#define Z_MAX_POS 200
#define X_MIN_POS LULZBOT_X_MIN_POS
#define Y_MIN_POS LULZBOT_Y_MIN_POS
#define Z_MIN_POS LULZBOT_Z_MIN_POS
#define X_MAX_POS LULZBOT_X_MAX_POS
#define Y_MAX_POS LULZBOT_Y_MAX_POS
#define Z_MAX_POS LULZBOT_Z_MAX_POS
// If enabled, axes won't move below MIN_POS in response to movement commands.
#define MIN_SOFTWARE_ENDSTOPS
@ -826,7 +845,7 @@
* leveling in steps so you can manually adjust the Z height at each grid-point.
* With an LCD controller the process is guided step-by-step.
*/
//#define AUTO_BED_LEVELING_3POINT
#define AUTO_BED_LEVELING_3POINT LULZBOT_AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
@ -849,14 +868,14 @@
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#define GRID_MAX_POINTS_X LULZBOT_GRID_MAX_POINTS_X
#define GRID_MAX_POINTS_Y LULZBOT_GRID_MAX_POINTS_Y
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170
#define LEFT_PROBE_BED_POSITION LULZBOT_LEFT_PROBE_BED_POSITION
#define RIGHT_PROBE_BED_POSITION LULZBOT_RIGHT_PROBE_BED_POSITION
#define FRONT_PROBE_BED_POSITION LULZBOT_FRONT_PROBE_BED_POSITION
#define BACK_PROBE_BED_POSITION LULZBOT_BACK_PROBE_BED_POSITION
// The Z probe minimum outer margin (to validate G29 parameters).
#define MIN_PROBE_EDGE 10
@ -886,12 +905,12 @@
// 3 arbitrary points to probe.
// A simple cross-product is used to estimate the plane of the 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
#define ABL_PROBE_PT_1_X LULZBOT_ABL_PROBE_PT_1_X
#define ABL_PROBE_PT_1_Y LULZBOT_ABL_PROBE_PT_1_Y
#define ABL_PROBE_PT_2_X LULZBOT_ABL_PROBE_PT_2_X
#define ABL_PROBE_PT_2_Y LULZBOT_ABL_PROBE_PT_2_Y
#define ABL_PROBE_PT_3_X LULZBOT_ABL_PROBE_PT_3_X
#define ABL_PROBE_PT_3_Y LULZBOT_ABL_PROBE_PT_3_Y
#elif ENABLED(AUTO_BED_LEVELING_UBL)
@ -965,16 +984,18 @@
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
// - Prevent Z homing when the Z probe is outside bed area.
//
//#define Z_SAFE_HOMING
#ifdef LULZBOT_Z_SAFE_HOMING
#define Z_SAFE_HOMING LULZBOT_Z_SAFE_HOMING
#endif
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_X_POINT LULZBOT_Z_SAFE_HOMING_X_POINT // X point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_Y_POINT LULZBOT_Z_SAFE_HOMING_Y_POINT // Y point for Z homing when homing all axis (G28).
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60)
#define HOMING_FEEDRATE_XY LULZBOT_HOMING_FEEDRATE_XY
#define HOMING_FEEDRATE_Z LULZBOT_HOMING_FEEDRATE_Z
//=============================================================================
//============================= Additional Features ===========================
@ -990,7 +1011,7 @@
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
//
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
#define EEPROM_SETTINGS LULZBOT_EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
@ -1000,7 +1021,7 @@
// When enabled Marlin will send a busy status message to the host
// every couple of seconds when it can't accept commands.
//
#define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages
//#define HOST_KEEPALIVE_FEATURE LULZBOT_HOST_KEEPALIVE_FEATURE_DISABLED // Disable this if your host doesn't like keepalive messages
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
//
@ -1085,7 +1106,7 @@
* Attention: EXPERIMENTAL. G-code arguments may change.
*
*/
//#define NOZZLE_CLEAN_FEATURE
#define NOZZLE_CLEAN_FEATURE LULZBOT_NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE)
// Default number of pattern repetitions
@ -1095,8 +1116,8 @@
#define NOZZLE_CLEAN_TRIANGLES 3
// Specify positions as { X, Y, Z }
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
#define NOZZLE_CLEAN_START_POINT LULZBOT_NOZZLE_CLEAN_START_POINT
#define NOZZLE_CLEAN_END_POINT LULZBOT_NOZZLE_CLEAN_END_POINT
// Circular pattern radius
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
@ -1203,7 +1224,7 @@
* you must uncomment the following option or it won't work.
*
*/
//#define SDSUPPORT
#define SDSUPPORT LULZBOT_SDSUPPORT
/**
* SD CARD: SPI SPEED
@ -1220,7 +1241,7 @@
*
* Use CRC checks and retries on the SD communication.
*/
//#define SD_CHECK_AND_RETRY
#define SD_CHECK_AND_RETRY LULZBOT_SD_CHECK_AND_RETRY
//
// ENCODER SETTINGS
@ -1361,7 +1382,7 @@
// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER LULZBOT_REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//
// MakerLab Mini Panel with graphic
@ -1484,7 +1505,7 @@
// @section extras
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
//#define FAST_PWM_FAN
#define FAST_PWM_FAN LULZBOT_FAST_PWM_FAN
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
// which is not as annoying as with the hardware PWM. On the other hand, if this frequency

@ -4,20 +4,20 @@
// Change printer model and toolhead here
#define LULZBOT_Oliveoil_TAZ_6
#define TOOLHEAD_Angelfish_Aero
#define TOOLHEAD_Oliveoil_SingleExtruder
/* We define the LULZBOT_ values based on which print head or printer variants we are compiling for,
* these constants are then placed where appropriate in the following files:
/* We define the LULZBOT_ values based on which printer or toolhead variants we are compiling
* for, these constants are then placed where appropriate in the following files:
*
* - Configuration.h
* - Configuration_adv.h
* - pins.h
* - Default_Version.h
*
* Using our own set of constants make it easier to keep track of changes from upstream.
* All values are prefixed with LULZBOT_ so that it is easy to see what was changed and where.
* If a setting is commented out, we define a LULZBOT_{SETTING}_DISABLED here, just so
* we have a record of things that got disabled.
* Using our own set of constants and limiting modification to Marlin's files makes it easier to
* merge from upstream. All values are prefixed with LULZBOT_ so that it is easy to see what
* was changed and where. If a setting is commented out, we define a LULZBOT_{SETTING}_DISABLED
* here, just so we have a record of things that got disabled.
*/
#if ( \
@ -27,6 +27,8 @@
!defined(LULZBOT_Huerfano_TAZ_7) \
) || ( \
!defined(TOOLHEAD_Gladiola_SingleExtruder) && \
!defined(TOOLHEAD_Albatross_Flexystruder) && \
!defined(TOOLHEAD_Heather_Aero) && \
!defined(TOOLHEAD_Oliveoil_SingleExtruder) && \
!defined(TOOLHEAD_Kanyu_Flexystruder) && \
!defined(TOOLHEAD_Opah_Moarstruder) && \
@ -35,26 +37,30 @@
!defined(TOOLHEAD_Yellowfin_DualExtruder) && \
!defined(TOOLHEAD_Angelfish_Aero) \
)
#error Must specify model and toolhead to build:
#error
#error make clean
#error make MODEL=<model> TOOLHEAD=<toolhead>
#error
#error Model Choices:
#error Gladiola_Mini // Lulzbot Mini (Gladiola)
#error Huerfano_Mini // Lulzbot Mini (Huerfano)
#error Oliveoil_TAZ_6 // Lulzbot TAZ 6 (Olive Oil)
#error Huerfano_TAZ_7 // Lulzbot TAZ 7 (Huerfano)
#error
#error Toolhead Choices:
#error Gladiola_SingleExtruder // Standard Single Extruder (Gladiola)
#error Oliveoil_SingleExtruder // Standard Single Extruder (TAZ Olive)
#error Kanyu_Flexystruder // Flexystruder (Kanyu)
#error Opah_Moarstruder // Moarstruder (Opah)
#error Javelin_DualExtruder // Dual Extruder v2 (Javelin)
#error Longfin_FlexyDually // FlexyDually (Longfin)
#error Yellowfin_DualExtruder // Dual Extruder v3 (Yellowfin)
#error Angelfish_Aero // Titan AERO (Angelfish)
#error Must specify model and toolhead to build:
#error
#error make clean
#error make MODEL=<model> TOOLHEAD=<toolhead>
#error
#error Printer Model Choices:
#error Gladiola_Mini // Lulzbot Mini (Gladiola)
#error Huerfano_Mini // Lulzbot Mini (Huerfano)
#error Oliveoil_TAZ_6 // Lulzbot TAZ 6 (Olive Oil)
#error Huerfano_TAZ_7 // Lulzbot TAZ 7 (Huerfano)
#error
#error Mini Toolhead Choices:
#error Gladiola_SingleExtruder // Standard Single Extruder (Gladiola)
#error Albatross_Flexystruder // Flexystruder (Albatross)
#error Heather_Aero // Titan AERO (Heather)
#error
#error TAZ Toolhead Choices:
#error Oliveoil_SingleExtruder // Standard Single Extruder (TAZ Olive)
#error Kanyu_Flexystruder // Flexystruder (Kanyu)
#error Opah_Moarstruder // Moarstruder (Opah)
#error Javelin_DualExtruder // Dual Extruder v2 (Javelin)
#error Longfin_FlexyDually // FlexyDually (Longfin)
#error Yellowfin_DualExtruder // Dual Extruder v3 (Yellowfin)
#error Angelfish_Aero // Titan AERO (Angelfish)
#endif
#define LULZBOT_FW_VERSION ".1"
@ -62,25 +68,31 @@
// Select options based on printer model
#if defined(LULZBOT_Gladiola_Mini)
#define LULZBOT_CUSTOM_MACHINE_NAME "Mini"
#define LULZBOT_CUSTOM_MACHINE_NAME "Mini"
#define LULZBOT_IS_MINI
#define LULZBOT_MINI_BED
#endif
#if defined(LULZBOT_Huerfano_Mini)
#define LULZBOT_CUSTOM_MACHINE_NAME "Mini Too"
#define LULZBOT_MINI_Z_BELT
// Prototype Mini w/ Z-Belt
#define LULZBOT_CUSTOM_MACHINE_NAME "Mini"
#define LULZBOT_IS_MINI
#define LULZBOT_MINI_BED
#endif
#if defined(LULZBOT_Oliveoil_TAZ_6)
#define LULZBOT_CUSTOM_MACHINE_NAME "TAZ 6"
#define LULZBOT_IS_TAZ
#define LULZBOT_TAZ_BED
#define LULZBOT_USE_LCD_DISPLAY
#endif
#if defined(LULZBOT_Huerfano_TAZ_7)
// Prototype TAZ w/ Z-Belt
#define LULZBOT_CUSTOM_MACHINE_NAME "TAZ 7"
#define LULZBOT_TAZ_Z_BELT
#define LULZBOT_IS_TAZ
#define LULZBOT_TAZ_BED
#define LULZBOT_USE_LCD_DISPLAY
#endif
// Shared values
@ -114,12 +126,12 @@
// Motherboard specifics and custom pins for probing.
#if defined(LULZBOT_Gladiola_Mini) || defined(LULZBOT_Huerfano_Mini)
#if defined(LULZBOT_IS_MINI)
#define LULZBOT_MOTHERBOARD BOARD_MINIRAMBO
#define LULZBOT_CONTROLLER_FAN_PIN FAN_1_PIN // Digital pin 6
#define LULZBOT_Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#elif defined(LULZBOT_Oliveoil_TAZ_6) || defined(LULZBOT_Huerfano_TAZ_7)
#elif defined(LULZBOT_IS_TAZ)
#define LULZBOT_MOTHERBOARD BOARD_RAMBO
#define LULZBOT_CONTROLLER_FAN_PIN FAN_2_PIN // Digital pin 2
#define LULZBOT_Z_MIN_PROBE_ENDSTOP
@ -133,39 +145,39 @@
#define LULZBOT_USE_YMAX_PLUG
#define LULZBOT_USE_ZMAX_PLUG
#if defined(LULZBOT_Gladiola_Mini) || defined(LULZBOT_Huerfano_Mini)
/* Endstop settings are determined by printer model, except for the
* X_MAX which varies by toolhead. */
#if defined(LULZBOT_Gladiola_Mini)
#define LULZBOT_X_MIN_ENDSTOP_INVERTING true
#define LULZBOT_Y_MIN_ENDSTOP_INVERTING true
#define LULZBOT_Z_MIN_ENDSTOP_INVERTING true
#define LULZBOT_Z_MIN_PROBE_ENDSTOP_INVERTING true
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#define LULZBOT_Y_MAX_ENDSTOP_INVERTING true
#define LULZBOT_Z_MAX_ENDSTOP_INVERTING true
#elif defined(LULZBOT_Oliveoil_TAZ_6) || defined(LULZBOT_Huerfano_TAZ_7)
#elif defined(LULZBOT_IS_TAZ) || defined(LULZBOT_Huerfano_Mini)
#define LULZBOT_X_MIN_ENDSTOP_INVERTING false
#define LULZBOT_Y_MIN_ENDSTOP_INVERTING false
#define LULZBOT_Z_MIN_ENDSTOP_INVERTING true
#define LULZBOT_Z_MIN_PROBE_ENDSTOP_INVERTING true
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#define LULZBOT_Y_MAX_ENDSTOP_INVERTING false
#define LULZBOT_Z_MAX_ENDSTOP_INVERTING false
#endif
#define LULZBOT_INVERT_X_DIR false
#define LULZBOT_INVERT_Y_DIR true
#define LULZBOT_INVERT_Z_DIR false
#define LULZBOT_INVERT_E0_DIR true
#define LULZBOT_INVERT_E1_DIR true
#define LULZBOT_Z_MIN_ENDSTOP_INVERTING true
#define LULZBOT_Z_MIN_PROBE_ENDSTOP_INVERTING true
#if defined(LULZBOT_Gladiola_Mini) || defined(LULZBOT_Huerfano_Mini)
#define LULZBOT_INVERT_X_DIR false
#define LULZBOT_INVERT_Y_DIR true
#define LULZBOT_INVERT_Z_DIR false
#define LULZBOT_INVERT_E0_DIR true
#define LULZBOT_INVERT_E1_DIR true
#if defined(LULZBOT_IS_MINI)
#define LULZBOT_HOMING_Z_WITH_PROBE false
#define LULZBOT_INVERT_X_HOME_DIR -1
#define LULZBOT_INVERT_Y_HOME_DIR 1
#define LULZBOT_INVERT_Z_HOME_DIR 1
#define LULZBOT_QUICKHOME
#elif defined(LULZBOT_Oliveoil_TAZ_6) || defined(LULZBOT_Huerfano_TAZ_7)
#elif defined(LULZBOT_IS_TAZ)
#define LULZBOT_HOMING_Z_WITH_PROBE true
#define LULZBOT_INVERT_X_HOME_DIR -1
#define LULZBOT_INVERT_Y_HOME_DIR 1
@ -176,8 +188,8 @@
#if defined(LULZBOT_MINI_BED)
#define LULZBOT_LEFT_PROBE_BED_POSITION 0
#define LULZBOT_RIGHT_PROBE_BED_POSITION 164
#define LULZBOT_FRONT_PROBE_BED_POSITION -6
#define LULZBOT_BACK_PROBE_BED_POSITION 162
#define LULZBOT_FRONT_PROBE_BED_POSITION -6
#define LULZBOT_HOMING_FEEDRATE_XY (30*60)
#define LULZBOT_HOMING_FEEDRATE_Z (12*60)
@ -191,6 +203,7 @@
#define LULZBOT_HOMING_FEEDRATE_XY (50*60)
#define LULZBOT_HOMING_FEEDRATE_Z (8*60)
// Only the TAZ models have a Z-homing button
#define LULZBOT_Z_SAFE_HOMING
#define LULZBOT_Z_SAFE_HOMING_X_POINT (-19)
#define LULZBOT_Z_SAFE_HOMING_Y_POINT (258)
@ -198,13 +211,15 @@
#define LULZBOT_RAISE_AFTER_HOME // Not in upstream Marlin.
#endif
#elif defined(LULZBOT_MINI_BED)
#if defined(LULZBOT_MINI_BED)
// Mini has a horizontal wiping pad on the back of the bed
#define LULZBOT_WIPE_X1 115
#define LULZBOT_WIPE_X2 45
#define LULZBOT_WIPE_Y1 173
#define LULZBOT_WIPE_Y2 173
#else defined(LULZBOT_TAZ_BED)
#elif defined(LULZBOT_TAZ_BED)
// TAZ has a vertical wiping pad on the left side of the bed
#define LULZBOT_WIPE_X1 -16
#define LULZBOT_WIPE_X2 -16
#define LULZBOT_WIPE_Y1 95
@ -239,58 +254,110 @@
#define LULZBOT_Z_CLEARANCE_DEPLOY_PROBE 5
#define LULZBOT_Z_CLEARANCE_BETWEEN_PROBES 5
/* Enable the probe pins only only when homing/probing.
/* Enable the probe pins only only when homing/probing,
* as this helps reduce EMI by grounding the lines.
*
* On Mini:
* Z_MIN_PIN are the bed washers.
*
* On TAZ:
* Z_MIN_PIN corresponds to the Z-Home push button.
* LULZBOT_Z_MIN_PROBE_PIN are the bed washers.
*/
#define LULZBOT_ENABLE_PROBE_PINS(enable) { \
if(enable) { \
/* Set both as inputs with pull-up resistor */ \
SET_INPUT(LULZBOT_Z_MIN_PROBE_PIN); \
WRITE(LULZBOT_Z_MIN_PROBE_PIN, HIGH); \
SET_INPUT(Z_MIN_PIN); \
WRITE(Z_MIN_PIN, HIGH); \
} else { \
/* Ground both pins to prevent EMI */ \
SET_OUTPUT(LULZBOT_Z_MIN_PROBE_PIN); \
WRITE(LULZBOT_Z_MIN_PROBE_PIN, LOW); \
SET_OUTPUT(Z_MIN_PIN); \
WRITE(Z_MIN_PIN, LOW); \
} \
}
#if defined(LULZBOT_MINI_BED)
#define LULZBOT_ENABLE_PROBE_PINS(enable) { \
if(enable) { \
/* Set as inputs with pull-up resistor */ \
SET_INPUT(Z_MIN_PIN); \
WRITE(Z_MIN_PIN, HIGH); \
} else { \
/* Ground to prevent EMI */ \
SET_OUTPUT(Z_MIN_PIN); \
WRITE(Z_MIN_PIN, LOW); \
} \
}
#elif defined(LULZBOT_TAZ_BED)
#define LULZBOT_ENABLE_PROBE_PINS(enable) { \
if(enable) { \
/* Set both as inputs with pull-up resistor */ \
SET_INPUT(LULZBOT_Z_MIN_PROBE_PIN); \
WRITE(LULZBOT_Z_MIN_PROBE_PIN, HIGH); \
SET_INPUT(Z_MIN_PIN); \
WRITE(Z_MIN_PIN, HIGH); \
} else { \
/* Ground both pins to prevent EMI */ \
SET_OUTPUT(LULZBOT_Z_MIN_PROBE_PIN); \
WRITE(LULZBOT_Z_MIN_PROBE_PIN, LOW); \
SET_OUTPUT(Z_MIN_PIN); \
WRITE(Z_MIN_PIN, LOW); \
} \
}
#endif
#define LULZBOT_FAN_KICKSTART_TIME 100
#define LULZBOT_FAN_MIN_PWM 70
#define LULZBOT_REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#define LULZBOT_SDSUPPORT
#define LULZBOT_XYZ_HOLLOW_FRAME_DISABLE
#define LULZBOT_MENU_HOLLOW_FRAME_DISABLE
#define LULZBOT_USE_SMALL_INFOFONT
#define LULZBOT_BABYSTEPPING
#define LULZBOT_BABYSTEP_ZPROBE_OFFSET
#define LULZBOT_SHOW_CUSTOM_BOOTSCREEN
#define LULZBOT_HOST_KEEPALIVE_FEATURE_DISABLED
#define LULZBOT_MENU_BED_LEVELING_GCODE "G28 XY\nM109 S175\nG28 Z\nM109 R145\nG12\nG29\nM104 S0"
#if defined(TOOLHEAD_Gladiola_SingleExtruder)
#if defined(LULZBOT_USE_LCD_DISPLAY)
#define LULZBOT_REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#define LULZBOT_SDSUPPORT
#define LULZBOT_XYZ_HOLLOW_FRAME_DISABLE
#define LULZBOT_MENU_HOLLOW_FRAME_DISABLE
#define LULZBOT_USE_SMALL_INFOFONT
#define LULZBOT_BABYSTEPPING
#define LULZBOT_BABYSTEP_ZPROBE_OFFSET
#define LULZBOT_SHOW_CUSTOM_BOOTSCREEN
#define LULZBOT_MENU_BED_LEVELING_GCODE "G28 XY\nM109 S175\nG28 Z\nM109 R145\nG12\nG29\nM104 S0"
#endif
/*********************************************** COMMON TOOLHEADS PARAMETERS *****************************/
#define LULZBOT_DEFAULT_EJERK 10.0
#if defined(LULZBOT_IS_TAZ)
#define LULZBOT_E_STEPS 830
#elif defined(LULZBOT_IS_MINI)
#define LULZBOT_E_STEPS 833
#endif
/*********************************************** MINI TOOLHEADS *******************************************/
#if defined(TOOLHEAD_Gladiola_SingleExtruder) || defined(TOOLHEAD_Albatross_Flexystruder) || defined(TOOLHEAD_Heather_Aero)
#define LULZBOT_TOOLHEAD_VER VERSION_STRING
#define LULZBOT_UUID "351487b6-ca9a-4c1a-8765-d668b1da6585"
#define LULZBOT_PWM_MOTOR_CURRENT {1300, 1630, 1250} // Values in milliamps
#define LULZBOT_EXTRUDERS 1
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#define LULZBOT_X_MAX_POS 175
#define LULZBOT_X_MIN_POS 0
#define LULZBOT_Y_MAX_POS 191
#define LULZBOT_Y_MIN_POS -10
#define LULZBOT_AO_Hexagon
#define PWM_MOTOR_CURRENT_E 1250
#endif /* TOOLHEAD_Gladiola_SingleExtruder || TOOLHEAD_Albatross_Flexystruder || TOOLHEAD_Heather_Aero */
#if defined(TOOLHEAD_Gladiola_SingleExtruder)
#define LULZBOT_LCD_TOOLHEAD_NAME "Single Extruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#endif /* TOOLHEAD_Gladiola_SingleExtruder */
#if defined(TOOLHEAD_Albatross_Flexystruder)
#define LULZBOT_LCD_TOOLHEAD_NAME "Flexystruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#endif /* TOOLHEAD_Albatross_Flexystruder */
#if defined(TOOLHEAD_Heather_Aero)
// Prototype Aero toolhead for Mini
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#endif /* TOOLHEAD_Heather_Aero */
/*********************************************** TAZ TOOLHEADS *******************************************/
#if defined(TOOLHEAD_Oliveoil_SingleExtruder) || defined(TOOLHEAD_Angelfish_Aero)
#define LULZBOT_TOOLHEAD_VER VERSION_STRING
#define LULZBOT_UUID "845f003c-aebd-4e53-a6b9-7d0984fde609"
#define LULZBOT_TOOLHEAD_VER VERSION_STRING
#define LULZBOT_UUID "845f003c-aebd-4e53-a6b9-7d0984fde609"
#define LULZBOT_EXTRUDERS 1
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#define LULZBOT_X_MAX_POS 300
#define LULZBOT_X_MIN_POS -20
#define LULZBOT_Y_MAX_POS 303
@ -299,28 +366,30 @@
#endif /* TOOLHEAD_Oliveoil_SingleExtruder || TOOLHEAD_Angelfish_Aero */
#if defined(TOOLHEAD_Oliveoil_SingleExtruder)
#define LULZBOT_TOOLHEAD_NAME "Single Extruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_LCD_TOOLHEAD_NAME "Single Extruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_BUILD_VARIANT " LulzBot"
#define LULZBOT_DIGIPOT_MOTOR_CURRENT {175,175,200,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_E 135,135 // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#endif /* TOOLHEAD_Oliveoil_SingleExtruder */
#if defined(TOOLHEAD_Angelfish_Aero)
#define LULZBOT_TOOLHEAD_NAME "Titan AERO"
// 16 chars max ^^^^^^^^^^^^^^^
// Prototype Aero for TAZ
#define LULZBOT_LCD_TOOLHEAD_NAME "Titan AERO"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_BUILD_VARIANT " LulzBot AERO"
#define LULZBOT_DIGIPOT_MOTOR_CURRENT {175,175,200,160,160} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_E 160 // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#endif /* TOOLHEAD_Angelfish_Aero */
#if defined(TOOLHEAD_Kanyu_Flexystruder)
#define LULZBOT_TOOLHEAD_VER VERSION_STRING" Flexystruder"
#define LULZBOT_TOOLHEAD_NAME "Flexystruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_LCD_TOOLHEAD_NAME "Flexystruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_BUILD_VARIANT " LulzBot Flexy"
#define LULZBOT_DIGIPOT_MOTOR_CURRENT {175,175,200,67,135}
#define DIGIPOT_MOTOR_CURRENT_E 67 // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define LULZBOT_EXTRUDERS 1
#define LULZBOT_UUID "564bab1c-704c-4225-b329-ac1a093d2638"
#undef LULZBOT_X_MAX_ENDSTOP_INVERTING
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#define LULZBOT_X_MAX_POS 288
#define LULZBOT_X_MIN_POS -27
@ -331,15 +400,13 @@
#if defined(TOOLHEAD_Opah_Moarstruder)
#define LULZBOT_TOOLHEAD_VER VERSION_STRING
#define LULZBOT_TOOLHEAD_NAME "MOARstruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_LCD_TOOLHEAD_NAME "MOARstruder"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_BUILD_VARIANT " LulzBot MOAR"
#undef LULZBOT_DEFAULT_ACCELERATION
#define LULZBOT_DEFAULT_ACCELERATION 250
#define LULZBOT_DIGIPOT_MOTOR_CURRENT {175,175,200,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_E 135 // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define LULZBOT_EXTRUDERS 1
#define LULZBOT_UUID "d651819d-4a79-4b73-bc5b-ae1fe1aab36b"
#undef LULZBOT_X_MAX_ENDSTOP_INVERTING
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#define LULZBOT_X_MAX_POS 290
#define LULZBOT_X_MIN_POS -20
@ -351,12 +418,10 @@
#if defined(TOOLHEAD_Javelin_DualExtruder) || defined(TOOLHEAD_Longfin_FlexyDually) || defined(TOOLHEAD_Yellowfin_DualExtruder)
#define LULZBOT_TOOLHEAD_VER VERSION_STRING" Dual"
#define LULZBOT_BUILD_VARIANT " LulzBot Dual"
#define LULZBOT_SWAP_FAN_PINS_6_AND_8
#define LULZBOT_DIGIPOT_MOTOR_CURRENT {175,175,200,160,160} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define LULZBOT_SWAP_FAN_PINS_6_AND_8 // For backwards compatibility
#define DIGIPOT_MOTOR_CURRENT_E 160, 160 // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define LULZBOT_EXTRUDERS 2
#define LULZBOT_UUID "c5077702-4ecd-4532-beaf-6acf94acc404"
#undef LULZBOT_X_MAX_ENDSTOP_INVERTING
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#define LULZBOT_X_MAX_POS 288
#define LULZBOT_X_MIN_POS -22
#define LULZBOT_Y_MAX_POS 303
@ -366,29 +431,31 @@
#endif /* TOOLHEAD_Javelin_DualExtruder || TOOLHEAD_Longfin_FlexyDually || TOOLHEAD_Yellowfin_DualExtruder */
#if defined(TOOLHEAD_Javelin_DualExtruder)
#define LULZBOT_TOOLHEAD_NAME "Dual Extruder 2"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_LCD_TOOLHEAD_NAME "Dual Extruder 2"
// 16 chars max ^^^^^^^^^^^^^^^
#undef LULZBOT_WIPE_Y2
#define LULZBOT_WIPE_Y2 73
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#endif /* TOOLHEAD_Javelin_DualExtruder */
#if defined(TOOLHEAD_Longfin_FlexyDually)
#define LULZBOT_TOOLHEAD_NAME "FlexyDually v2"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_LCD_TOOLHEAD_NAME "FlexyDually v2"
// 16 chars max ^^^^^^^^^^^^^^^
#undef LULZBOT_WIPE_Y2
#define LULZBOT_WIPE_Y2 73
#define LULZBOT_X_MAX_ENDSTOP_INVERTING true
#endif /* TOOLHEAD_Longfin_FlexyDually */
#if defined(TOOLHEAD_Yellowfin_DualExtruder)
#define LULZBOT_TOOLHEAD_NAME "Dual Extruder 3"
// 16 chars max ^^^^^^^^^^^^^^^
// Prototype Dual v3 for TAZ.
#define LULZBOT_LCD_TOOLHEAD_NAME "Dual Extruder 3"
// 16 chars max ^^^^^^^^^^^^^^^
#define LULZBOT_AFTER_Z_PROBE_CMD "G92 Z15.5" // Correction for raised homing button
#undef LULZBOT_WIPE_X1
#undef LULZBOT_WIPE_X2
#define LULZBOT_WIPE_X1 -22
#define LULZBOT_WIPE_X2 -22
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false // Yellowfin toolhead has a normally closed endstop
#undef LULZBOT_Z_HOMING_HEIGHT
#define LULZBOT_Z_HOMING_HEIGHT 10
#undef LULZBOT_Z_SAFE_HOMING_X_POINT
@ -397,6 +464,7 @@
#define LULZBOT_Z_SAFE_HOMING_Y_POINT (260) // Y point for Z homing when homing all axis (G28)
#undef LULZBOT_X_MAX_POS
#define LULZBOT_X_MAX_POS 290
#define LULZBOT_X_MAX_ENDSTOP_INVERTING false
#define LULZBOT_AO_Hexagon
#endif /* TOOLHEAD_Yellowfin_DualExtruder */
@ -430,75 +498,104 @@
#define LULZBOT_DEFAULT_bedKd 382
#endif
// Acceleration, feedrate and E-Steps
// Nozzle wiping points (varies by toolhead, as the nozzle position varies)
#ifdef defined(LULZBOT_Huerfano_TAZ_7)
// Z-belt driven TAZ 7
#define LULZBOT_DEFAULT_MAX_FEEDRATE {800, 800, 600, 40} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,10,10000}
#define LULZBOT_XY_STEPS 100.5
#define LULZBOT_Z_STEPS 1790.08264463
#define LULZBOT_E_STEPS 760
#define LULZBOT_DEFAULT_ACCELERATION 500
#define LULZBOT_DEFAULT_TRAVEL_ACCELERATION 3000
#define LULZBOT_DEFAULT_XJERK 8.0
#define LULZBOT_DEFAULT_YJERK 8.0
#define LULZBOT_DEFAULT_ZJERK 0.4
#define LULZBOT_DEFAULT_EJERK 10.0
#define LULZBOT_NOZZLE_CLEAN_START_POINT {LULZBOT_WIPE_X1, LULZBOT_WIPE_Y1, 1}
#define LULZBOT_NOZZLE_CLEAN_END_POINT {LULZBOT_WIPE_X2, LULZBOT_WIPE_Y2, 1}
#define LULZBOT_Z_MAX_POS 290
#define LULZBOT_Z_MIN_POS 0
// Acceleration, feedrate, motor steps and motor currents for XYZ vary
// by printer model (steps and motor currents for E vary by toolhead).
// Z values additionally vary depending on whether the Z assembly is
// rod or belt driven.
#elif defined(LULZBOT_Gladiola_Mini)
#if defined(LULZBOT_IS_MINI)
#define PWM_MOTOR_CURRENT_XY 1300
#define LULZBOT_XY_STEPS 100.5
#define LULZBOT_DEFAULT_MAX_FEEDRATE {800, 800, 8, 40} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
#define LULZBOT_XY_STEPS 100.5
#define LULZBOT_Z_STEPS 1600
#define LULZBOT_E_STEPS 833
#define LULZBOT_DEFAULT_ACCELERATION 2000
#define LULZBOT_DEFAULT_TRAVEL_ACCELERATION 3000
#define LULZBOT_DEFAULT_XJERK 12.0
#define LULZBOT_DEFAULT_YJERK 12.0
#define LULZBOT_DEFAULT_ZJERK 0.4
#define LULZBOT_DEFAULT_EJERK 10.0
#define LULZBOT_DEFAULT_ACCELERATION 2000
#define LULZBOT_DEFAULT_TRAVEL_ACCELERATION 3000
#define LULZBOT_Z_MAX_POS 159
#define LULZBOT_Z_MIN_POS -2
#elif defined(LULZBOT_Oliveoil_TAZ_6)
#define LULZBOT_DEFAULT_MAX_FEEDRATE {800, 800, 3, 40} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
#elif defined(LULZBOT_IS_TAZ)
#define DIGIPOT_MOTOR_CURRENT_XY 175
#define LULZBOT_XY_STEPS 100.5
#define LULZBOT_Z_STEPS 1600
#define LULZBOT_E_STEPS 830
#define LULZBOT_DEFAULT_ACCELERATION 500
#define LULZBOT_DEFAULT_TRAVEL_ACCELERATION 3000
#define LULZBOT_DEFAULT_XJERK 8.0
#define LULZBOT_DEFAULT_YJERK 8.0
#define LULZBOT_DEFAULT_ZJERK 0.4
#define LULZBOT_DEFAULT_EJERK 10.0
#if not defined(LULZBOT_DEFAULT_ACCELERATION)
#define LULZBOT_DEFAULT_ACCELERATION 500
#endif
#define LULZBOT_DEFAULT_TRAVEL_ACCELERATION 3000
#define LULZBOT_Z_MIN_POS 0
#endif
#if defined(LULZBOT_Gladiola_Mini)
#define PWM_MOTOR_CURRENT_Z 1630
#define LULZBOT_Z_STEPS 1600
#elif defined(LULZBOT_Huerfano_Mini)
#define PWM_MOTOR_CURRENT_Z 1000
// Prototype Z-Belt Mini
#define Z_FULL_STEPS_PER_ROTATION 200
#define Z_MICROSTEPS 16
#define Z_BELT_PITCH 2
#define Z_PULLEY_TEETH 24
#define Z_MOTOR_GEAR_REDUCTION 26.8512396694
#define LULZBOT_Z_STEPS (Z_FULL_STEPS_PER_ROTATION * Z_MICROSTEPS * Z_MOTOR_GEAR_REDUCTION / double(Z_BELT_PITCH) / double(Z_PULLEY_TEETH))
#elif defined(LULZBOT_Oliveoil_TAZ_6)
#define DIGIPOT_MOTOR_CURRENT_Z 200
#define LULZBOT_DEFAULT_MAX_FEEDRATE {800, 800, 3, 40} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
#define LULZBOT_Z_STEPS 1600
#define LULZBOT_Z_MAX_POS 270
#define LULZBOT_Z_MIN_POS 0
#elif defined(LULZBOT_Huerfano_TAZ_7)
#define DIGIPOT_MOTOR_CURRENT_Z 175
// Prototype Z-belt driven TAZ 7
#define LULZBOT_DEFAULT_MAX_FEEDRATE {800, 800, 600, 40} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,10,10000}
#define LULZBOT_Z_STEPS 1790.08264463
#define LULZBOT_Z_MAX_POS 290
#endif
// default steps per unit for LulzBot TAZ
#if defined(PWM_MOTOR_CURRENT_XY) && defined(PWM_MOTOR_CURRENT_Z) && defined(PWM_MOTOR_CURRENT_E)
#define LULZBOT_PWM_MOTOR_CURRENT { \
PWM_MOTOR_CURRENT_XY, \
PWM_MOTOR_CURRENT_Z, \
PWM_MOTOR_CURRENT_E \
} // Values in milliamps
#elif defined(DIGIPOT_MOTOR_CURRENT_XY) && defined(DIGIPOT_MOTOR_CURRENT_Z) && defined(DIGIPOT_MOTOR_CURRENT_E)
#define LULZBOT_DIGIPOT_MOTOR_CURRENT { \
DIGIPOT_MOTOR_CURRENT_XY, \
DIGIPOT_MOTOR_CURRENT_XY, \
DIGIPOT_MOTOR_CURRENT_Z, \
DIGIPOT_MOTOR_CURRENT_E \
} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#else
#error Motor currents not defined
#endif
#if LULZBOT_EXTRUDERS == 1
// default steps per unit for LulzBot TAZ.
// LULZBOT_ESTEPS_PER_EXTRUDER is required for the tuning of FlexyDually
// but currently is not implemented in Marlin 1.1.4.
#if LULZBOT_EXTRUDERS == 1 || not defined(LULZBOT_ESTEPS_PER_EXTRUDER)
#define LULZBOT_DEFAULT_AXIS_STEPS_PER_UNIT {LULZBOT_XY_STEPS,LULZBOT_XY_STEPS,LULZBOT_Z_STEPS,LULZBOT_E_STEPS}
#elif LULZBOT_EXTRUDERS == 2
#define LULZBOT_DEFAULT_AXIS_STEPS_PER_UNIT {LULZBOT_XY_STEPS,LULZBOT_XY_STEPS,LULZBOT_Z_STEPS,LULZBOT_E_STEPS,LULZBOT_E_STEPS}
#elif LULZBOT_EXTRUDERS == 3
#define LULZBOT_DEFAULT_AXIS_STEPS_PER_UNIT {LULZBOT_XY_STEPS,LULZBOT_XY_STEPS,LULZBOT_Z_STEPS,LULZBOT_E_STEPS,LULZBOT_E_STEPS,LULZBOT_E_STEPS}
#elif LULZBOT_EXTRUDERS == 4
#define LULZBOT_DEFAULT_AXIS_STEPS_PER_UNIT {LULZBOT_XY_STEPS,LULZBOT_XY_STEPS,LULZBOT_Z_STEPS,LULZBOT_E_STEPS,LULZBOT_E_STEPS,830,LULZBOT_E_STEPS}
#endif
// Nozzle wiping points
#define LULZBOT_NOZZLE_CLEAN_START_POINT {LULZBOT_WIPE_X1, LULZBOT_WIPE_Y1, 1}
#define LULZBOT_NOZZLE_CLEAN_END_POINT {LULZBOT_WIPE_X2, LULZBOT_WIPE_Y2, 1}
// Gralco's customized Z Offset overlay (also requires dogm_bitmaps_Lulzbot.h)
#define LULZBOT_ZOFFSET_OVERLAY(zprobe_zoffset) \
@ -537,7 +634,7 @@
u8g.setFont(u8g_font_6x13); \
u8g.drawStr(61,17,LULZBOT_CUSTOM_MACHINE_NAME); \
u8g.setFont(u8g_font_04b_03); \
u8g.drawStr(62,28,LULZBOT_TOOLHEAD_NAME); \
u8g.drawStr(62,28,LULZBOT_LCD_TOOLHEAD_NAME); \
u8g.setFont(u8g_font_5x8); \
u8g.drawStr(63,41,"LulzBot.com"); \
u8g.setFont(u8g_font_5x8); \

@ -421,7 +421,7 @@
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
*/
#define PWM_MOTOR_CURRENT LULZBOT_PMW_MOTOR_CURRENT // Values in milliamps
#define PWM_MOTOR_CURRENT LULZBOT_PWM_MOTOR_CURRENT // Values in milliamps
#define DIGIPOT_MOTOR_CURRENT LULZBOT_DIGIPOT_MOTOR_CURRENT // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis

@ -0,0 +1,19 @@
# Experimental LulzBot Marlin 1.1.4 firmware
This is an experimental development branch of Marlin 1.1.4 for LulzBot printers.
# Safety and warnings:
**This is alpha level software.** It has not been extensively tested and may damage your printer and present other hazards. Use at your own risk. Do not operate your printer while unattended and be sure to power it off when leaving the room. Please consult the documentation that came with your printer for additional safety and warning information.
# Compilation:
The source on this branch can compile firmware for the TAZ 6 and Mini, as well as all the current toolheads. This firmware also supports some internal R&D prototypes and toolheads.
To select what firmware to build, modify lines 6 and 7 of "Configuration_LulzBot.h" according to the instructions on line 39.
# Known Limitations:
1. There is no way to tune the FlexyDually properly right now, as Marlin 1.1.4 does not support separate ESTEPs per extruder.
2. The probe fail and rewipe/reprobe functionality is currently not implemented.
3. The Makefile does not work. Building must be done via the Arduino IDE (internal builds are being done with 1.8.3)
Loading…
Cancel
Save