@ -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 print er 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_Z_MIN_ENDSTOP_INVERTING true
# define LULZBOT_Z_MIN_PROBE_ENDSTOP_INVERTING true
# 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_ Gladiola_Mini) || defined(LULZBOT_Huerfano_Mini )
# 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,11 +254,31 @@
# 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 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 ) ; \
@ -257,40 +292,72 @@
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_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"
# 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"
// 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"
# 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"
# 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"
# 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"
# 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"
// 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
// 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
# 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 ) ; \