Reconcile LulzBot firmware with Marlin upstream

This commit is contained in:
Dawson Coleman 2021-08-24 17:08:36 -05:00
parent d7c77403fd
commit ef1b9e2b1c
12 changed files with 1547 additions and 328 deletions

File diff suppressed because it is too large Load Diff

View File

@ -244,12 +244,12 @@
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/ */
#if ENABLED(THERMAL_PROTECTION_HOTENDS) #if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds #define THERMAL_PROTECTION_PERIOD 15 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius #define THERMAL_PROTECTION_HYSTERESIS 30 // Degrees Celsius
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops #define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
#if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP)
//#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303 #define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303
#endif #endif
/** /**
@ -264,22 +264,22 @@
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2. * below 2.
*/ */
#define WATCH_TEMP_PERIOD 20 // Seconds #define WATCH_TEMP_PERIOD 50 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius #define WATCH_TEMP_INCREASE 5 // Degrees Celsius
#endif #endif
/** /**
* Thermal Protection parameters for the bed are just as above for hotends. * Thermal Protection parameters for the bed are just as above for hotends.
*/ */
#if ENABLED(THERMAL_PROTECTION_BED) #if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_PERIOD 15 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius #define THERMAL_PROTECTION_BED_HYSTERESIS 10 // Degrees Celsius
/** /**
* As described above, except for the bed (M140/M190/M303). * As described above, except for the bed (M140/M190/M303).
*/ */
#define WATCH_BED_TEMP_PERIOD 60 // Seconds #define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #define WATCH_BED_TEMP_INCREASE 1 // Degrees Celsius
#endif #endif
/** /**
@ -445,8 +445,8 @@
*/ */
//#define HOTEND_IDLE_TIMEOUT //#define HOTEND_IDLE_TIMEOUT
#if ENABLED(HOTEND_IDLE_TIMEOUT) #if ENABLED(HOTEND_IDLE_TIMEOUT)
#define HOTEND_IDLE_TIMEOUT_SEC (5*60) // (seconds) Time without extruder movement to trigger protection #define HOTEND_IDLE_TIMEOUT_SEC (15*60) // (seconds) Time without extruder movement to trigger protection
#define HOTEND_IDLE_MIN_TRIGGER 180 // (°C) Minimum temperature to enable hotend protection #define HOTEND_IDLE_MIN_TRIGGER 150 // (°C) Minimum temperature to enable hotend protection
#define HOTEND_IDLE_NOZZLE_TARGET 0 // (°C) Safe temperature for the nozzle after timeout #define HOTEND_IDLE_NOZZLE_TARGET 0 // (°C) Safe temperature for the nozzle after timeout
#define HOTEND_IDLE_BED_TARGET 0 // (°C) Safe temperature for the bed after timeout #define HOTEND_IDLE_BED_TARGET 0 // (°C) Safe temperature for the bed after timeout
#endif #endif
@ -467,16 +467,22 @@
* The fan turns on automatically whenever any driver is enabled and turns * The fan turns on automatically whenever any driver is enabled and turns
* off (or reduces to idle speed) shortly after drivers are turned off. * off (or reduces to idle speed) shortly after drivers are turned off.
*/ */
//#define USE_CONTROLLER_FAN #define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN) #if ENABLED(USE_CONTROLLER_FAN)
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan #if ANY(MiniV2, TAZPro, TAZProXT, Sidekick_289, Sidekick_747)
#define CONTROLLER_FAN_PIN FAN1_PIN // Set a custom pin for the controller fan
#else
#define CONTROLLER_FAN_PIN FAN2_PIN // Set a custom pin for the controller fan
#endif
//#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered //#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered
//#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled. #if ENABLED(MiniV2)
#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled.
#endif
#define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.) #define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.)
#define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled #define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled
#define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled #define CONTROLLERFAN_SPEED_IDLE 120 // (0-255) Idle speed, used when motors are disabled
#define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors #define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors
//#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings #define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings
#if ENABLED(CONTROLLER_FAN_EDITABLE) #if ENABLED(CONTROLLER_FAN_EDITABLE)
#define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu #define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu
#endif #endif
@ -485,7 +491,7 @@
// When first starting the main fan, run it at full speed for the // When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably // given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu) // before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100 #define FAN_KICKSTART_TIME 100
// Some coolers may require a non-zero "off" state. // Some coolers may require a non-zero "off" state.
//#define FAN_OFF_PWM 1 //#define FAN_OFF_PWM 1
@ -502,7 +508,7 @@
* *
* Define one or both of these to override the default 0-255 range. * Define one or both of these to override the default 0-255 range.
*/ */
//#define FAN_MIN_PWM 50 #define FAN_MIN_PWM 70
//#define FAN_MAX_PWM 128 //#define FAN_MAX_PWM 128
/** /**
@ -528,7 +534,7 @@
* USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies. * USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies.
*/ */
#if ENABLED(FAST_PWM_FAN) #if ENABLED(FAST_PWM_FAN)
//#define FAST_PWM_FAN_FREQUENCY 31400 #define FAST_PWM_FAN_FREQUENCY 122
//#define USE_OCR2A_AS_TOP //#define USE_OCR2A_AS_TOP
#endif #endif
@ -608,7 +614,7 @@
// If you want endstops to stay on (by default) even when not homing // If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121. // enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT #define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras // @section extras
@ -659,7 +665,11 @@
// //
// For Z set the number of stepper drivers // For Z set the number of stepper drivers
// //
#if ENABLED(TazDualZ)
#define NUM_Z_STEPPER_DRIVERS 2 // (1-4) Z options change based on how many
#else
#define NUM_Z_STEPPER_DRIVERS 1 // (1-4) Z options change based on how many #define NUM_Z_STEPPER_DRIVERS 1 // (1-4) Z options change based on how many
#endif
#if NUM_Z_STEPPER_DRIVERS > 1 #if NUM_Z_STEPPER_DRIVERS > 1
// Enable if Z motor direction signals are the opposite of Z1 // Enable if Z motor direction signals are the opposite of Z1
@ -751,7 +761,12 @@
* the position of the toolhead relative to the workspace. * the position of the toolhead relative to the workspace.
*/ */
//#define SENSORLESS_BACKOFF_MM { 2, 2, 0 } // (mm) Backoff from endstops before sensorless homing #if ANY(MiniV2, TAZPro, TAZProXT, Sidekick_289, Sidekick_747)
#define SENSORLESS_BACKOFF_MM { 4, 4 , 0} // (mm) Backoff from endstops before sensorless homing
#else
#define HOMING_BACKOFF_POST_MM { 2, 2, 16 } // (mm) Backoff from endstops after homing
#define QUICK_HOME // If G28 contains XY do a diagonal move first
#endif
#define HOMING_BUMP_MM { 5, 5, 2 } // (mm) Backoff from endstops after first bump #define HOMING_BUMP_MM { 5, 5, 2 } // (mm) Backoff from endstops after first bump
#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) #define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate)
@ -838,12 +853,14 @@
* Z Steppers Auto-Alignment * Z Steppers Auto-Alignment
* Add the G34 command to align multiple Z steppers using a bed probe. * Add the G34 command to align multiple Z steppers using a bed probe.
*/ */
//#define Z_STEPPER_AUTO_ALIGN #if ENABLED(TazDualZ)
#define Z_STEPPER_AUTO_ALIGN
#endif
#if ENABLED(Z_STEPPER_AUTO_ALIGN) #if ENABLED(Z_STEPPER_AUTO_ALIGN)
// Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]] // Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]]
// If not defined, probe limits will be used. // If not defined, probe limits will be used.
// Override with 'M422 S<index> X<pos> Y<pos>' // Override with 'M422 S<index> X<pos> Y<pos>'
//#define Z_STEPPER_ALIGN_XY { { 10, 190 }, { 100, 10 }, { 190, 190 } } #define Z_STEPPER_ALIGN_XY { { -10, -9 }, { (X_BED_SIZE + 8), -9 } }
/** /**
* Orientation for the automatically-calculated probe positions. * Orientation for the automatically-calculated probe positions.
@ -945,10 +962,18 @@
* Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period. * Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period.
* The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout. * The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout.
*/ */
#define DEFAULT_STEPPER_DEACTIVE_TIME 120 #define DEFAULT_STEPPER_DEACTIVE_TIME 600
#define DISABLE_INACTIVE_X true #define DISABLE_INACTIVE_X true
#if ANY(Sidekick_289, Sidekick_747)
#define DISABLE_INACTIVE_Y false
#else
#define DISABLE_INACTIVE_Y true #define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // Set 'false' if the nozzle could fall onto your printed part! #endif
//#if ANY(TAZPro, TAZProXT, Workhorse)
// #define DISABLE_INACTIVE_Z true // Set to false if the nozzle will fall down on your printed part when print has finished.
//#else
#define DISABLE_INACTIVE_Z false
//#endif
#define DISABLE_INACTIVE_I true #define DISABLE_INACTIVE_I true
#define DISABLE_INACTIVE_J true #define DISABLE_INACTIVE_J true
#define DISABLE_INACTIVE_K true #define DISABLE_INACTIVE_K true
@ -988,22 +1013,27 @@
// Backlash Compensation // Backlash Compensation
// Adds extra movement to axes on direction-changes to account for backlash. // Adds extra movement to axes on direction-changes to account for backlash.
// //
//#define BACKLASH_COMPENSATION #define BACKLASH_COMPENSATION
#if ENABLED(BACKLASH_COMPENSATION) #if ENABLED(BACKLASH_COMPENSATION)
// Define values for backlash distance and correction. // Define values for backlash distance and correction.
// If BACKLASH_GCODE is enabled these values are the defaults. // If BACKLASH_GCODE is enabled these values are the defaults.
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) One value for each linear axis #if ANY(TAZPro, TAZProXT)
#define BACKLASH_DISTANCE_MM {0.252, 0.183, 0.075}: (mm)
#define BACKLASH_CORRECTION 1.0: 0.0 = no correction; 1.0 = full correction
#else
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction #define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
#endif
// Add steps for motor direction changes on CORE kinematics // Add steps for motor direction changes on CORE kinematics
//#define CORE_BACKLASH //#define CORE_BACKLASH
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
// to reduce print artifacts. (Enabling this is costly in memory and computation!) // to reduce print artifacts. (Enabling this is costly in memory and computation!)
//#define BACKLASH_SMOOTHING_MM 3 // (mm) #define BACKLASH_SMOOTHING_MM 3 // (mm)
// Add runtime configuration and tuning of backlash values (M425) // Add runtime configuration and tuning of backlash values (M425)
//#define BACKLASH_GCODE #define BACKLASH_GCODE
#if ENABLED(BACKLASH_GCODE) #if ENABLED(BACKLASH_GCODE)
// Measure the Z backlash when probing (G29) and set with "M425 Z" // Measure the Z backlash when probing (G29) and set with "M425 Z"
@ -1033,7 +1063,9 @@
* Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
* ±5mm of true values for G425 to succeed. * ±5mm of true values for G425 to succeed.
*/ */
//#define CALIBRATION_GCODE #if DISABLED(Sidekick_289, Sidekick_747, MiniV2,LULZBOT_UNIVERSAL_TOOLHEAD)
#define CALIBRATION_GCODE
#endif
#if ENABLED(CALIBRATION_GCODE) #if ENABLED(CALIBRATION_GCODE)
//#define CALIBRATION_SCRIPT_PRE "M117 Starting Auto-Calibration\nT0\nG28\nG12\nM117 Calibrating..." //#define CALIBRATION_SCRIPT_PRE "M117 Starting Auto-Calibration\nT0\nG28\nG12\nM117 Calibrating..."
@ -1053,8 +1085,39 @@
//#define CALIBRATION_REPORTING //#define CALIBRATION_REPORTING
// The true location and dimension the cube/bolt/washer on the bed. // The true location and dimension the cube/bolt/washer on the bed.
#define CALIBRATION_OBJECT_CENTER { 264.0, -22.0, -2.0 } // mm #if ENABLED(MiniV2)
#define CALIBRATION_OBJECT_DIMENSIONS { 10.0, 10.0, 10.0 } // mm #define CALIBRATION_OBJECT_CENTER {169.5, 171.3, 0}: mm
#define CALIBRATION_OBJECT_DIMENSIONS {22.0, 22.0, 1.5}: mm
// Comment out any sides which are unreachable by the probe. For best
// auto-calibration results, all sides must be reachable.
//#define CALIBRATION_MEASURE_RIGHT
#define CALIBRATION_MEASURE_FRONT
#define CALIBRATION_MEASURE_LEFT
//#define CALIBRATION_MEASURE_BACK
#elif ENABLED(TAZ6)
#define CALIBRATION_OBJECT_CENTER { -14, -11.0, 0 } // mm
#define CALIBRATION_OBJECT_DIMENSIONS {22.0, 22.0, 1.5} // mm
// Comment out any sides which are unreachable by the probe. For best
// auto-calibration results, all sides must be reachable.
#define CALIBRATION_MEASURE_RIGHT
//#define CALIBRATION_MEASURE_FRONT
#define CALIBRATION_MEASURE_LEFT
#define CALIBRATION_MEASURE_BACK
#elif ENABLED(Workhorse)
#define CALIBRATION_OBJECT_CENTER { 266, -17.0, -2.0 } // mm True location is -22 in y but object size is accounting for location change
#define CALIBRATION_OBJECT_DIMENSIONS { 10.0, 4.0, 10.0 } // mm
// Comment out any sides which are unreachable by the probe. For best
// auto-calibration results, all sides must be reachable.
#define CALIBRATION_MEASURE_RIGHT
//#define CALIBRATION_MEASURE_FRONT
#define CALIBRATION_MEASURE_LEFT
#define CALIBRATION_MEASURE_BACK
#elif ANY(TAZPro, TAZProXT)
#define CALIBRATION_OBJECT_CENTER {267.5, -20.0, -2.0}: mm
#define CALIBRATION_OBJECT_DIMENSIONS {10.0, 10.0, 10.0}: mm
// Comment out any sides which are unreachable by the probe. For best // Comment out any sides which are unreachable by the probe. For best
// auto-calibration results, all sides must be reachable. // auto-calibration results, all sides must be reachable.
@ -1062,6 +1125,7 @@
#define CALIBRATION_MEASURE_FRONT #define CALIBRATION_MEASURE_FRONT
#define CALIBRATION_MEASURE_LEFT #define CALIBRATION_MEASURE_LEFT
#define CALIBRATION_MEASURE_BACK #define CALIBRATION_MEASURE_BACK
#endif
//#define CALIBRATION_MEASURE_IMIN //#define CALIBRATION_MEASURE_IMIN
//#define CALIBRATION_MEASURE_IMAX //#define CALIBRATION_MEASURE_IMAX
@ -1126,7 +1190,11 @@
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2 * M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
*/ */
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps //#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) #if ENABLED(TAZ6)
#define DIGIPOT_MOTOR_CURRENT { 175,175,200,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#elif ENABLED(Workhorse)
#define DIGIPOT_MOTOR_CURRENT {175, 175, 180, 177, 177}: Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#endif
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
/** /**
@ -1164,7 +1232,7 @@
// @section lcd // @section lcd
#if EITHER(IS_ULTIPANEL, EXTENSIBLE_UI) #if EITHER(IS_ULTIPANEL, EXTENSIBLE_UI)
#define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel #define MANUAL_FEEDRATE { 50*60, 50*60, 50*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel
#define FINE_MANUAL_MOVE 0.025 // (mm) Smallest manual move (< 0.1mm) applying to Z on most machines #define FINE_MANUAL_MOVE 0.025 // (mm) Smallest manual move (< 0.1mm) applying to Z on most machines
#if IS_ULTIPANEL #if IS_ULTIPANEL
#define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position"
@ -1175,8 +1243,8 @@
// Change values more rapidly when the encoder is rotated faster // Change values more rapidly when the encoder is rotated faster
#define ENCODER_RATE_MULTIPLIER #define ENCODER_RATE_MULTIPLIER
#if ENABLED(ENCODER_RATE_MULTIPLIER) #if ENABLED(ENCODER_RATE_MULTIPLIER)
#define ENCODER_10X_STEPS_PER_SEC 30 // (steps/s) Encoder rate for 10x speed #define ENCODER_10X_STEPS_PER_SEC 45 // (steps/s) Encoder rate for 10x speed
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed #define ENCODER_100X_STEPS_PER_SEC 150 // (steps/s) Encoder rate for 100x speed
#endif #endif
// Play a beep when the feedrate is changed from the Status Screen // Play a beep when the feedrate is changed from the Status Screen
@ -1205,13 +1273,13 @@
#endif #endif
// Include a page of printer information in the LCD Main Menu // Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU #define LCD_INFO_MENU
#if ENABLED(LCD_INFO_MENU) #if ENABLED(LCD_INFO_MENU)
//#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages #define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages
#endif #endif
// BACK menu items keep the highlight at the top // BACK menu items keep the highlight at the top
//#define TURBO_BACK_MENU_ITEM #define TURBO_BACK_MENU_ITEM
// Add a mute option to the LCD menu // Add a mute option to the LCD menu
//#define SOUND_MENU_ITEM //#define SOUND_MENU_ITEM
@ -1249,23 +1317,23 @@
#if HAS_DISPLAY #if HAS_DISPLAY
// The timeout (in ms) to return to the status screen from sub-menus // The timeout (in ms) to return to the status screen from sub-menus
//#define LCD_TIMEOUT_TO_STATUS 15000 #define LCD_TIMEOUT_TO_STATUS 15000
#if ENABLED(SHOW_BOOTSCREEN) #if ENABLED(SHOW_BOOTSCREEN)
#define BOOTSCREEN_TIMEOUT 4000 // (ms) Total Duration to display the boot screen(s) #define BOOTSCREEN_TIMEOUT 2000 // (ms) Total Duration to display the boot screen(s)
#if EITHER(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI) #if EITHER(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI)
#define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash) #define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash)
#endif #endif
#endif #endif
// Scroll a longer status message into view // Scroll a longer status message into view
//#define STATUS_MESSAGE_SCROLLING #define STATUS_MESSAGE_SCROLLING
// On the Info Screen, display XY with one decimal place when possible // On the Info Screen, display XY with one decimal place when possible
//#define LCD_DECIMAL_SMALL_XY //#define LCD_DECIMAL_SMALL_XY
// Add an 'M73' G-code to set the current percentage // Add an 'M73' G-code to set the current percentage
//#define LCD_SET_PROGRESS_MANUALLY #define LCD_SET_PROGRESS_MANUALLY
// Show the E position (filament used) during printing // Show the E position (filament used) during printing
//#define LCD_SHOW_E_TOTAL //#define LCD_SHOW_E_TOTAL
@ -1304,7 +1372,9 @@
* *
* :['SPI_HALF_SPEED', 'SPI_QUARTER_SPEED', 'SPI_EIGHTH_SPEED'] * :['SPI_HALF_SPEED', 'SPI_QUARTER_SPEED', 'SPI_EIGHTH_SPEED']
*/ */
//#define SD_SPI_SPEED SPI_HALF_SPEED #if ANY(TAZPro, TAZProXT)
#define SD_SPI_SPEED SPI_HALF_SPEED
#endif
// The standard SD detect circuit reads LOW when media is inserted and HIGH when empty. // The standard SD detect circuit reads LOW when media is inserted and HIGH when empty.
// Enable this option and set to HIGH if your SD cards are incorrectly detected. // Enable this option and set to HIGH if your SD cards are incorrectly detected.
@ -1317,8 +1387,8 @@
#define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls #define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished #define SD_FINISHED_STEPPERRELEASE false // Disable steppers when SD Print is finished
#define SD_FINISHED_RELEASECOMMAND "M84" // Use "M84XYE" to keep Z enabled so your bed stays in place // #define SD_FINISHED_RELEASECOMMAND "M84" // Use "M84XYE" to keep Z enabled so your bed stays in place
// Reverse SD sort to show "more recent" files first, according to the card's FAT. // Reverse SD sort to show "more recent" files first, according to the card's FAT.
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended. // Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
@ -1333,7 +1403,7 @@
//#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu //#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu
#define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") #define EVENT_GCODE_SD_ABORT "G27\nM524" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27")
#if ENABLED(PRINTER_EVENT_LEDS) #if ENABLED(PRINTER_EVENT_LEDS)
#define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination #define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination
@ -1347,7 +1417,9 @@
* an option on the LCD screen to continue the print from the last-known * an option on the LCD screen to continue the print from the last-known
* point in the file. * point in the file.
*/ */
//#define POWER_LOSS_RECOVERY #if DISABLED (Z_AXIS_WILL_FALL) for sidekicks because with no power the Z will fall into print
#define POWER_LOSS_RECOVERY
#endif
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
#define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) #define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500)
//#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss
@ -1413,10 +1485,10 @@
//#define UTF_FILENAME_SUPPORT //#define UTF_FILENAME_SUPPORT
// This allows hosts to request long names for files and folders with M33 // This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT #define LONG_FILENAME_HOST_SUPPORT
// Enable this option to scroll long filenames in the SD card menu // Enable this option to scroll long filenames in the SD card menu
//#define SCROLL_LONG_FILENAMES #define SCROLL_LONG_FILENAMES
// Leave the heaters on after Stop Print (not recommended!) // Leave the heaters on after Stop Print (not recommended!)
//#define SD_ABORT_NO_COOLDOWN //#define SD_ABORT_NO_COOLDOWN
@ -1438,7 +1510,7 @@
/** /**
* Auto-report SdCard status with M27 S<seconds> * Auto-report SdCard status with M27 S<seconds>
*/ */
//#define AUTO_REPORT_SD_STATUS #define AUTO_REPORT_SD_STATUS
/** /**
* Support for USB thumb drives using an Arduino USB Host Shield or * Support for USB thumb drives using an Arduino USB Host Shield or
@ -1454,7 +1526,9 @@
* *
* [1] On AVR an interrupt-capable pin is best for UHS3 compatibility. * [1] On AVR an interrupt-capable pin is best for UHS3 compatibility.
*/ */
//#define USB_FLASH_DRIVE_SUPPORT #if ANY(TAZPro, TAZProXT)
#define USB_FLASH_DRIVE_SUPPORT
#endif
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) #if ENABLED(USB_FLASH_DRIVE_SUPPORT)
/** /**
* USB Host Shield Library * USB Host Shield Library
@ -1542,7 +1616,7 @@
* controller events, as there is a trade-off between reliable * controller events, as there is a trade-off between reliable
* printing performance versus fast display updates. * printing performance versus fast display updates.
*/ */
#if HAS_MARLINUI_U8GLIB #if ANY(MiniV2, Sidekick_289, Sidekick_747, TAZ6, Workhorse, HAS_MARLINUI_U8GLIB)
// Show SD percentage next to the progress bar // Show SD percentage next to the progress bar
//#define DOGM_SD_PERCENT //#define DOGM_SD_PERCENT
@ -1601,19 +1675,19 @@
//#define STATUS_CUTTER_ANIM // Use a second bitmap to indicate spindle / laser active //#define STATUS_CUTTER_ANIM // Use a second bitmap to indicate spindle / laser active
//#define STATUS_COOLER_ANIM // Use a second bitmap to indicate laser cooling //#define STATUS_COOLER_ANIM // Use a second bitmap to indicate laser cooling
//#define STATUS_FLOWMETER_ANIM // Use multiple bitmaps to indicate coolant flow //#define STATUS_FLOWMETER_ANIM // Use multiple bitmaps to indicate coolant flow
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap #define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap //#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames #define STATUS_FAN_FRAMES 4 // :[0,1,2,3,4] Number of fan animation frames
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar //#define STATUS_HEAT_PERCENT // Show heating in a progress bar
//#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of PROGMEM. //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of PROGMEM.
// Frivolous Game Options // Frivolous Game Options
//#define MARLIN_BRICKOUT #define MARLIN_BRICKOUT
//#define MARLIN_INVADERS #define MARLIN_INVADERS
//#define MARLIN_SNAKE #define MARLIN_SNAKE
//#define GAMES_EASTER_EGG // Add extra blank lines above the "Games" sub-menu #define GAMES_EASTER_EGG // Add extra blank lines above the "Games" sub-menu
#endif // HAS_MARLINUI_U8GLIB #endif // Has graphical LCD, HAS_MARLINUI_U8GLIB
// //
// Additional options for DGUS / DWIN displays // Additional options for DGUS / DWIN displays
@ -1699,7 +1773,7 @@
//#define LCD_4DSYSTEMS_4DLCD_FT843 // 4D Systems 4.3" (480x272) //#define LCD_4DSYSTEMS_4DLCD_FT843 // 4D Systems 4.3" (480x272)
//#define LCD_HAOYU_FT800CB // Haoyu with 4.3" or 5" (480x272) //#define LCD_HAOYU_FT800CB // Haoyu with 4.3" or 5" (480x272)
//#define LCD_HAOYU_FT810CB // Haoyu with 5" (800x480) //#define LCD_HAOYU_FT810CB // Haoyu with 5" (800x480)
//#define LCD_ALEPHOBJECTS_CLCD_UI // Aleph Objects Color LCD UI #define LCD_ALEPHOBJECTS_CLCD_UI // Aleph Objects Color LCD UI
//#define LCD_FYSETC_TFT81050 // FYSETC with 5" (800x480) //#define LCD_FYSETC_TFT81050 // FYSETC with 5" (800x480)
//#define LCD_EVE3_50G // Matrix Orbital 5.0", 800x480, BT815 //#define LCD_EVE3_50G // Matrix Orbital 5.0", 800x480, BT815
//#define LCD_EVE2_50G // Matrix Orbital 5.0", 800x480, FT813 //#define LCD_EVE2_50G // Matrix Orbital 5.0", 800x480, FT813
@ -1707,11 +1781,11 @@
// Correct the resolution if not using the stock TFT panel. // Correct the resolution if not using the stock TFT panel.
//#define TOUCH_UI_320x240 //#define TOUCH_UI_320x240
//#define TOUCH_UI_480x272 //#define TOUCH_UI_480x272
//#define TOUCH_UI_800x480 #define TOUCH_UI_800x480
// Mappings for boards with a standard RepRapDiscount Display connector // Mappings for boards with a standard RepRapDiscount Display connector
//#define AO_EXP1_PINMAP // AlephObjects CLCD UI EXP1 mapping //#define AO_EXP1_PINMAP // AlephObjects CLCD UI EXP1 mapping
//#define AO_EXP2_PINMAP // AlephObjects CLCD UI EXP2 mapping #define AO_EXP2_PINMAP // AlephObjects CLCD UI EXP2 mapping
//#define CR10_TFT_PINMAP // Rudolph Riedel's CR10 pin mapping //#define CR10_TFT_PINMAP // Rudolph Riedel's CR10 pin mapping
//#define S6_TFT_PINMAP // FYSETC S6 pin mapping //#define S6_TFT_PINMAP // FYSETC S6 pin mapping
//#define F6_TFT_PINMAP // FYSETC F6 pin mapping //#define F6_TFT_PINMAP // FYSETC F6 pin mapping
@ -1735,7 +1809,7 @@
// is supported on the FT800. The FT810 and beyond also support // is supported on the FT800. The FT810 and beyond also support
// portrait and mirrored orientations. // portrait and mirrored orientations.
//#define TOUCH_UI_INVERTED //#define TOUCH_UI_INVERTED
//#define TOUCH_UI_PORTRAIT #define TOUCH_UI_PORTRAIT
//#define TOUCH_UI_MIRRORED //#define TOUCH_UI_MIRRORED
// UTF8 processing and rendering. // UTF8 processing and rendering.
@ -1748,8 +1822,8 @@
#if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET) #if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET)
// Additional character groups. These characters require // Additional character groups. These characters require
// full bitmaps and take up considerable storage: // full bitmaps and take up considerable storage:
//#define TOUCH_UI_UTF8_SUPERSCRIPTS // ¹ ² ³ #define TOUCH_UI_UTF8_SUPERSCRIPTS // ¹ ² ³
//#define TOUCH_UI_UTF8_COPYRIGHT // © ® #define TOUCH_UI_UTF8_COPYRIGHT // © ®
//#define TOUCH_UI_UTF8_GERMANIC // ß //#define TOUCH_UI_UTF8_GERMANIC // ß
//#define TOUCH_UI_UTF8_SCANDINAVIAN // Æ Ð Ø Þ æ ð ø þ //#define TOUCH_UI_UTF8_SCANDINAVIAN // Æ Ð Ø Þ æ ð ø þ
//#define TOUCH_UI_UTF8_PUNCTUATION // « » ¿ ¡ //#define TOUCH_UI_UTF8_PUNCTUATION // « » ¿ ¡
@ -1822,18 +1896,18 @@
* *
* Warning: Does not respect endstops! * Warning: Does not respect endstops!
*/ */
//#define BABYSTEPPING #define BABYSTEPPING
#if ENABLED(BABYSTEPPING) #if ENABLED(BABYSTEPPING)
//#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR #define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR
//#define BABYSTEP_WITHOUT_HOMING //#define BABYSTEP_WITHOUT_HOMING
//#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). #define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement).
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! //#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way #define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
//#define BABYSTEP_MILLIMETER_UNITS // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps #define BABYSTEP_MILLIMETER_UNITS // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps
#define BABYSTEP_MULTIPLICATOR_Z 1 // (steps or mm) Steps or millimeter distance for each Z babystep #define BABYSTEP_MULTIPLICATOR_Z 0.01 // (steps or mm) Steps or millimeter distance for each Z babystep
#define BABYSTEP_MULTIPLICATOR_XY 1 // (steps or mm) Steps or millimeter distance for each XY babystep #define BABYSTEP_MULTIPLICATOR_XY 0.01 // (steps or mm) Steps or millimeter distance for each XY babystep
//#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency. // Note: Extra time may be added to mitigate controller latency.
@ -1845,10 +1919,12 @@
//#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28
//#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping #define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping
#if ENABLED(BABYSTEP_ZPROBE_OFFSET) #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
//#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets
//#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor #if DISABLED(TAZPro, TAZProXT)
#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
#endif
#endif #endif
#endif #endif
@ -1869,10 +1945,10 @@
* *
* See https://marlinfw.org/docs/features/lin_advance.html for full instructions. * See https://marlinfw.org/docs/features/lin_advance.html for full instructions.
*/ */
//#define LIN_ADVANCE #define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)
//#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants //#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants
#define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed #define LIN_ADVANCE_K 0.0 // Unit: mm compression per 1mm/s extruder speed
//#define LA_DEBUG // If enabled, this will generate debug information output over USB. //#define LA_DEBUG // If enabled, this will generate debug information output over USB.
//#define EXPERIMENTAL_SCURVE // Enable this option to permit S-Curve Acceleration //#define EXPERIMENTAL_SCURVE // Enable this option to permit S-Curve Acceleration
#endif #endif
@ -1912,10 +1988,22 @@
* the probe to be unable to reach any points. * the probe to be unable to reach any points.
*/ */
#if PROBE_SELECTED && !IS_KINEMATIC #if PROBE_SELECTED && !IS_KINEMATIC
//#define PROBING_MARGIN_LEFT PROBING_MARGIN #if ENABLED(MiniV2)
//#define PROBING_MARGIN_RIGHT PROBING_MARGIN #define PROBING_MARGIN_LEFT -5.0
//#define PROBING_MARGIN_FRONT PROBING_MARGIN #define PROBING_MARGIN_RIGHT -10.0
//#define PROBING_MARGIN_BACK PROBING_MARGIN #define PROBING_MARGIN_FRONT -5.0
#define PROBING_MARGIN_BACK -10.0
#elif ENABLED(TAZ6)
#define PROBING_MARGIN_LEFT -10.0
#define PROBING_MARGIN_RIGHT -8.0
#define PROBING_MARGIN_FRONT -9.0
#define PROBING_MARGIN_BACK -11.1
#elif ANY(Workhorse, TAZPro, TAZProXT)
#define PROBING_MARGIN_LEFT -8
#define PROBING_MARGIN_RIGHT -9
#define PROBING_MARGIN_FRONT -10
#define PROBING_MARGIN_BACK -9
#endif
#endif #endif
#if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL) #if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
@ -1934,7 +2022,9 @@
* Repeatedly attempt G29 leveling until it succeeds. * Repeatedly attempt G29 leveling until it succeeds.
* Stop after G29_MAX_RETRIES attempts. * Stop after G29_MAX_RETRIES attempts.
*/ */
//#define G29_RETRY_AND_RECOVER #if DISABLED(Sidekick_289, Sidekick_747)
#define G29_RETRY_AND_RECOVER
#endif
#if ENABLED(G29_RETRY_AND_RECOVER) #if ENABLED(G29_RETRY_AND_RECOVER)
#define G29_MAX_RETRIES 3 #define G29_MAX_RETRIES 3
#define G29_HALT_ON_FAILURE #define G29_HALT_ON_FAILURE
@ -1942,10 +2032,17 @@
* Specify the GCODE commands that will be executed when leveling succeeds, * Specify the GCODE commands that will be executed when leveling succeeds,
* between attempts, and after the maximum number of retries have been tried. * between attempts, and after the maximum number of retries have been tried.
*/ */
#define G29_SUCCESS_COMMANDS "M117 Bed leveling done." #define G29_SUCCESS_COMMANDS "M117 Probe successful"
#define G29_RECOVER_COMMANDS "M117 Probe failed. Rewiping.\nG28\nG12 P0 S12 T0" #if ENABLED(MiniV2)
#define G29_FAILURE_COMMANDS "M117 Bed leveling failed.\nG0 Z10\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nG4 S1" #define G29_RECOVER_COMMANDS "M104 S170\nG28\nG0 Z5 F6000\nG0 X150 F9999\nG91\nM211 S0\nM400\nM906 Z600\nG0 Z-15 F500\nG0 Z5 F500\nM400\nG90\nM906 Z960\nM211 S1\nG28 Z0\nG28\nG12\nM109 R160\nM400\nM117 Probing bed"
#elif ENABLED(TAZ6)
#define G29_RECOVER_COMMANDS "G0 Z10\nG12\nM109 R160\nM400\nM117 Probing bed"
#elif ENABLED(Workhorse)
#define G29_RECOVER_COMMANDS "M104 S170\nG28 Z0\nG28\nG12\nM109 R160\nM400\nM117 Probing bed"
#elif ANY(TAZProXT, TAZPro)
#define G29_RECOVER_COMMANDS "M104 S170 T0\nM104 S170 T1\nG0 Z5 F6000\nG0 X150 F9999\nG28 Z0\nG28\nG12\nM109 R160\nM400\nM117 Probing bed"
#endif
#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"
#endif #endif
/** /**
@ -2132,7 +2229,7 @@
// For debug-echo: 128 bytes for the optimal speed. // For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy. // Other output doesn't need to be that speedy.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256] // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
#define TX_BUFFER_SIZE 0 #define TX_BUFFER_SIZE 32
// Host Receive Buffer Size // Host Receive Buffer Size
// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough. // Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
@ -2170,7 +2267,7 @@
* Currently handles M108, M112, M410, M876 * Currently handles M108, M112, M410, M876
* NOTE: Not yet implemented for all platforms. * NOTE: Not yet implemented for all platforms.
*/ */
//#define EMERGENCY_PARSER #define EMERGENCY_PARSER
/** /**
* Realtime Reporting (requires EMERGENCY_PARSER) * Realtime Reporting (requires EMERGENCY_PARSER)
@ -2199,7 +2296,7 @@
//#define NO_TIMEOUTS 1000 // Milliseconds //#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. // Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK #define ADVANCED_OK
// Printrun may have trouble receiving long strings all at once. // Printrun may have trouble receiving long strings all at once.
// This option inserts short delays between lines of serial output. // This option inserts short delays between lines of serial output.
@ -2347,27 +2444,27 @@
* *
* Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park. * Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park.
*/ */
//#define ADVANCED_PAUSE_FEATURE #define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE) #if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_FEEDRATE 10 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle. // This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 5 // (mm/s) Unload filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload. #define FILAMENT_CHANGE_UNLOAD_LENGTH 70 // (mm) The length of filament for a complete unload.
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
// Set to 0 for manual unloading. // Set to 0 for manual unloading.
#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 2 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material.
// 0 to disable start loading and skip to fast load only // 0 to disable start loading and skip to fast load only
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 2 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 40 // (mm) Load length of filament, from extruder gear to nozzle.
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
//#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted.
#define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. #define ADVANCED_PAUSE_PURGE_FEEDRATE 2 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
#define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading.
// Set to 0 for manual extrusion. // Set to 0 for manual extrusion.
// Filament can be extruded repeatedly from the Filament Change menu // Filament can be extruded repeatedly from the Filament Change menu
@ -2376,20 +2473,20 @@
//#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. //#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused.
// Filament Unload does a Retract, Delay, and Purge first: // Filament Unload does a Retract, Delay, and Purge first:
#define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. #define FILAMENT_UNLOAD_PURGE_RETRACT 5 // (mm) Unload initial retract length.
#define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract. #define FILAMENT_UNLOAD_PURGE_DELAY 1500 // (ms) Delay for the filament to cool after retract.
#define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
#define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. #define PAUSE_PARK_NOZZLE_TIMEOUT 180 // (seconds) Time limit before the nozzle is turned off for safety.
#define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define FILAMENT_CHANGE_ALERT_BEEPS 2 // Number of alert beeps to play when a response is needed.
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
//#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
//#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change #define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change
//#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
//#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
#endif #endif
// @section tmc // @section tmc
@ -2547,10 +2644,10 @@
#define INTERPOLATE true #define INTERPOLATE true
#if AXIS_IS_TMC(X) #if AXIS_IS_TMC(X)
#define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current. #define X_CURRENT 950 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing
#define X_MICROSTEPS 16 // 0..256 #define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.11 #define X_RSENSE 0.12
#define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ... #define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ...
//#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis //#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis
#endif #endif
@ -2565,10 +2662,10 @@
#endif #endif
#if AXIS_IS_TMC(Y) #if AXIS_IS_TMC(Y)
#define Y_CURRENT 800 #define Y_CURRENT 950
#define Y_CURRENT_HOME Y_CURRENT #define Y_CURRENT_HOME Y_CURRENT
#define Y_MICROSTEPS 16 #define Y_MICROSTEPS 16
#define Y_RSENSE 0.11 #define Y_RSENSE 0.12
#define Y_CHAIN_POS -1 #define Y_CHAIN_POS -1
//#define Y_INTERPOLATE true //#define Y_INTERPOLATE true
#endif #endif
@ -2583,10 +2680,14 @@
#endif #endif
#if AXIS_IS_TMC(Z) #if AXIS_IS_TMC(Z)
#define Z_CURRENT 800 #define Z_CURRENT 975
#define Z_CURRENT_HOME Z_CURRENT #define Z_CURRENT_HOME Z_CURRENT
#if ANY(MiniV2, Sidekick_289, Sidekick_747)
#define Z_MICROSTEPS 32
#else
#define Z_MICROSTEPS 16 #define Z_MICROSTEPS 16
#define Z_RSENSE 0.11 #endif
#define Z_RSENSE 0.12
#define Z_CHAIN_POS -1 #define Z_CHAIN_POS -1
//#define Z_INTERPOLATE true //#define Z_INTERPOLATE true
#endif #endif
@ -2738,7 +2839,9 @@
* The default SW SPI pins are defined the respective pins files, * The default SW SPI pins are defined the respective pins files,
* but you can override or define them here. * but you can override or define them here.
*/ */
//#define TMC_USE_SW_SPI #if ANY(TAZPro, TAZProXT)
#define TMC_USE_SW_SPI
#endif
//#define TMC_SW_MOSI -1 //#define TMC_SW_MOSI -1
//#define TMC_SW_MISO -1 //#define TMC_SW_MISO -1
//#define TMC_SW_SCK -1 //#define TMC_SW_SCK -1
@ -2839,7 +2942,7 @@
* M912 - Clear stepper driver overtemperature pre-warn condition flag. * M912 - Clear stepper driver overtemperature pre-warn condition flag.
* M122 - Report driver parameters (Requires TMC_DEBUG) * M122 - Report driver parameters (Requires TMC_DEBUG)
*/ */
//#define MONITOR_DRIVER_STATUS #define MONITOR_DRIVER_STATUS
#if ENABLED(MONITOR_DRIVER_STATUS) #if ENABLED(MONITOR_DRIVER_STATUS)
#define CURRENT_STEP_DOWN 50 // [mA] #define CURRENT_STEP_DOWN 50 // [mA]
@ -2901,15 +3004,23 @@
* *
* Comment *_STALL_SENSITIVITY to disable sensorless homing for that axis. * Comment *_STALL_SENSITIVITY to disable sensorless homing for that axis.
*/ */
//#define SENSORLESS_HOMING // StallGuard capable drivers only #define SENSORLESS_HOMING // StallGuard capable drivers only
#if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING) #if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING)
// TMC2209: 0...255. TMC2130: -64...63 // TMC2209: 0...255. TMC2130: -64...63
#define X_STALL_SENSITIVITY 8 #if ANY(TAZPro, TAZProXT)
#define X_STALL_SENSITIVITY 4
#define Y_STALL_SENSITIVITY 4
#elif ENABLED(MiniV2)
#define X_STALL_SENSITIVITY 3
#define Y_STALL_SENSITIVITY 3
#elif ANY(Sidekick_289, Sidekick_747)
#define X_STALL_SENSITIVITY 2
#define Y_STALL_SENSITIVITY 2
#define Z_STALL_SENSITIVITY 4
#endif
#define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY
#define Y_STALL_SENSITIVITY 8
#define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY #define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY
//#define Z_STALL_SENSITIVITY 8
//#define Z2_STALL_SENSITIVITY Z_STALL_SENSITIVITY //#define Z2_STALL_SENSITIVITY Z_STALL_SENSITIVITY
//#define Z3_STALL_SENSITIVITY Z_STALL_SENSITIVITY //#define Z3_STALL_SENSITIVITY Z_STALL_SENSITIVITY
//#define Z4_STALL_SENSITIVITY Z_STALL_SENSITIVITY //#define Z4_STALL_SENSITIVITY Z_STALL_SENSITIVITY
@ -3660,7 +3771,17 @@
* *
* Execute certain G-code commands immediately after power-on. * Execute certain G-code commands immediately after power-on.
*/ */
//#define STARTUP_COMMANDS "M17 Z" #if ANY(Sidekick_289, Sidekick_747)
#if ENABLED(TOOLHEAD_M175)
#define STARTUP_COMMANDS "M906 Z450\nG91\nG0 Z20\nG90\nG28 X\nM906 Z975\nM206X-6Y-8\nM500\nM117 SideKick Ready"
#else
#define STARTUP_COMMANDS "M906 Z450\nG91\nG0 Z20\nG90\nG28 X\nM906 Z975"
#endif
#elif ENABLED(TAZ6)
#define STARTUP_COMMANDS "G28 X"
#else
#define STARTUP_COMMANDS "G28 Z"
#endif
/** /**
* G-code Macros * G-code Macros
@ -3680,35 +3801,95 @@
*/ */
// Custom Menu: Main Menu // Custom Menu: Main Menu
//#define CUSTOM_MENU_MAIN //#if DISABLED(TAZPro, TAZProXT)
#if defined(LULZBOT_UNIVERSAL_TOOLHEAD)
#define CUSTOM_MENU_MAIN
#if ENABLED(CUSTOM_MENU_MAIN) #if ENABLED(CUSTOM_MENU_MAIN)
//#define CUSTOM_MENU_MAIN_TITLE "Custom Commands" #define CUSTOM_MENU_MAIN_TITLE "Tool Heads"
#define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 User Script Done" //#define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 Tool Changed"
#define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK #define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK
//#define CUSTOM_MENU_MAIN_SCRIPT_RETURN // Return to status screen after a script #define CUSTOM_MENU_MAIN_SCRIPT_RETURN // Return to status screen after a script
#define CUSTOM_MENU_MAIN_ONLY_IDLE // Only show custom menu when the machine is idle #define CUSTOM_MENU_MAIN_ONLY_IDLE // Only show custom menu when the machine is idle
#define MAIN_MENU_ITEM_1_DESC "Home & UBL Info" #if ANY(TAZ6)
#define MAIN_MENU_ITEM_1_GCODE "G28\nG29 W" #define DEFAULT_PID "P28.79I1.91D108.51"
//#define MAIN_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action #else
#define DEFAULT_PID "P21.0I1.78D61.93"
#define MAIN_MENU_ITEM_2_DESC "Preheat for " PREHEAT_1_LABEL
#define MAIN_MENU_ITEM_2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
//#define MAIN_MENU_ITEM_2_CONFIRM
//#define MAIN_MENU_ITEM_3_DESC "Preheat for " PREHEAT_2_LABEL
//#define MAIN_MENU_ITEM_3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
//#define MAIN_MENU_ITEM_3_CONFIRM
//#define MAIN_MENU_ITEM_4_DESC "Heat Bed/Home/Level"
//#define MAIN_MENU_ITEM_4_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
//#define MAIN_MENU_ITEM_4_CONFIRM
//#define MAIN_MENU_ITEM_5_DESC "Home & Info"
//#define MAIN_MENU_ITEM_5_GCODE "G28\nM503"
//#define MAIN_MENU_ITEM_5_CONFIRM
#endif #endif
#if ANY(TAZ6, Workhorse)
#define E_CURRENT_Aero "875"
#define E_CURRENT_Std "750"
#define E_CURRENT_Moar "750"
#define E_CURRENT_BMG "875"
#define E_CURRENT_ARST "875"
#else
#define E_CURRENT_Aero "960"
#define E_CURRENT_BMG "960"
#endif
#if ANY(Sidekick_289, Sidekick_747)
#define MAIN_MENU_ITEM_1_DESC "SK175|0.50mm|BRASS"
#define MAIN_MENU_ITEM_1_GCODE "M92E420\nM301P26.29I2.57D72.59\nM906E" E_CURRENT_Aero "\nM500\nM117 SK175|0.50mm|BRASS"
#define MAIN_MENU_ITEM_2_DESC "SK285|0.50mm|BRASS"
#define MAIN_MENU_ITEM_2_GCODE "M92E420\nM301P26.90I2.41D75.19\nM906E" E_CURRENT_Aero "\nM500\nM117 SK285|0.50mm|BRASS"
#endif
#if DISABLED(TAZ6, Workhorse)
#define MAIN_MENU_ITEM_3_DESC "M175v2|0.50mm|CRB CU"
#define MAIN_MENU_ITEM_3_GCODE "M92E415\nM301P24.54I2.52D61.75\nM906E" E_CURRENT_BMG "\nM500\nM117 M175|0.50mm|CRB CU"
#define MAIN_MENU_ITEM_4_DESC "SL|0.25mm|NKL-PL CU"
#define MAIN_MENU_ITEM_4_GCODE "M92E420\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 SL|0.25mm|NKL-PL CU"
#define MAIN_MENU_ITEM_5_DESC "SE|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_5_GCODE "M92E420\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 SE|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_6_DESC "HE|0.50mm|HRD STEEL"
#define MAIN_MENU_ITEM_6_GCODE "M92E420\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 HE|0.50mm|HRD STEEL"
#define MAIN_MENU_ITEM_7_DESC "HS|0.80mm|HRD STEEL"
#define MAIN_MENU_ITEM_7_GCODE "M92E420\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 HS|0.80mm|HRD STEEL"
#define MAIN_MENU_ITEM_8_DESC "HS+|1.20mm|HRD STEEL"
#define MAIN_MENU_ITEM_8_GCODE "M92E420\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 HS+|1.20mm|HRD STEEL"
#define MAIN_MENU_ITEM_9_DESC "H175|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_9_GCODE "M92E409\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 HM|0.50mm|NKL-PL CU"
#else
#define MAIN_MENU_ITEM_3_DESC "M175|0.50mm|CRB CU"
#define MAIN_MENU_ITEM_3_GCODE "M92E415\nM301P24.54I2.52D61.75\nM907E" E_CURRENT_BMG "\nM500\nM117 M175|0.50mm|CRB CU"
#define MAIN_MENU_ITEM_4_DESC "SL|0.25mm|NKL-PL CU"
#define MAIN_MENU_ITEM_4_GCODE "M92E420\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Aero "\nM500\nM117 SL|0.25mm|NKL-PL CU"
#define MAIN_MENU_ITEM_5_DESC "SE|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_5_GCODE "M92E420\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Aero "\nM500\nM117 SE|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_6_DESC "HE|0.50mm|HRD STEEL"
#define MAIN_MENU_ITEM_6_GCODE "M92E420\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Aero "\nM500\nM117 HE|0.50mm|HRD STEEL"
#define MAIN_MENU_ITEM_7_DESC "HS|0.80mm|HRD STEEL"
#define MAIN_MENU_ITEM_7_GCODE "M92E420\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Aero "\nM500\nM117 HS|0.80mm|HRD STEEL"
#define MAIN_MENU_ITEM_8_DESC "HS+|1.20mm|HRD STEEL"
#define MAIN_MENU_ITEM_8_GCODE "M92E420\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Aero "\nM500\nM117 HS+|1.20mm|HRD STEEL"
#define MAIN_MENU_ITEM_9_DESC "H175|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_9_GCODE "M92E409\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 HM|0.50mm|NKL-PL CU"
#endif
#if defined(TAZ6)
#define MAIN_MENU_ITEM_1_DESC "Standard|0.5mm"
#define MAIN_MENU_ITEM_1_GCODE "M92E814\nM206X0Y5\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Std "\nM500\nM117 Standard|0.5mm"
#endif
#endif
#endif
//#endif
// Custom Menu: Configuration Menu // Custom Menu: Configuration Menu
//#define CUSTOM_MENU_CONFIG //#define CUSTOM_MENU_CONFIG
#if ENABLED(CUSTOM_MENU_CONFIG) #if ENABLED(CUSTOM_MENU_CONFIG)
@ -3795,7 +3976,7 @@
* *
* Implement M486 to allow Marlin to skip objects * Implement M486 to allow Marlin to skip objects
*/ */
//#define CANCEL_OBJECTS #define CANCEL_OBJECTS
#if ENABLED(CANCEL_OBJECTS) #if ENABLED(CANCEL_OBJECTS)
#define CANCEL_OBJECTS_REPORTING // Emit the current object as a status message #define CANCEL_OBJECTS_REPORTING // Emit the current object as a status message
#endif #endif
@ -3907,17 +4088,24 @@
* Adds capability to work with any adjustable current drivers. * Adds capability to work with any adjustable current drivers.
* Implemented as G34 because M915 is deprecated. * Implemented as G34 because M915 is deprecated.
*/ */
//#define MECHANICAL_GANTRY_CALIBRATION #if ANY(MiniV2, Sidekick_289, Sidekick_747)
#define MECHANICAL_GANTRY_CALIBRATION
#endif
#if ENABLED(MECHANICAL_GANTRY_CALIBRATION) #if ENABLED(MECHANICAL_GANTRY_CALIBRATION)
#define GANTRY_CALIBRATION_CURRENT 600 // Default calibration current in ma #define GANTRY_CALIBRATION_CURRENT 450 // Default calibration current in ma - TMC
#define GANTRY_CALIBRATION_EXTRA_HEIGHT 15 // Extra distance in mm past Z_###_POS to move
#define GANTRY_CALIBRATION_FEEDRATE 500 // Feedrate for correction move #define GANTRY_CALIBRATION_FEEDRATE 500 // Feedrate for correction move
//#define GANTRY_CALIBRATION_TO_MIN // Enable to calibrate Z in the MIN direction
//#define GANTRY_CALIBRATION_SAFE_POSITION XY_CENTER // Safe position for nozzle #if ANY(Sidekick_289, Sidekick_747)
//#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000 // XY Park Feedrate - MMM #define GANTRY_CALIBRATION_SAFE_POSITION {X_CENTER, Y_MIN} // Safe position for nozzle
#define GANTRY_CALIBRATION_EXTRA_HEIGHT 15 // Extra distance in mm past Z_###_POS to move
#else
#define GANTRY_CALIBRATION_TO_MIN
#define GANTRY_CALIBRATION_SAFE_POSITION {150, 192} // Safe position for nozzle
#define GANTRY_CALIBRATION_EXTRA_HEIGHT -10 // Extra distance in mm past Z_###_POS to move
#endif
#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000 // XY Park Feedrate - MMM
//#define GANTRY_CALIBRATION_COMMANDS_PRE "" //#define GANTRY_CALIBRATION_COMMANDS_PRE ""
#define GANTRY_CALIBRATION_COMMANDS_POST "G28" // G28 highly recommended to ensure an accurate position #define GANTRY_CALIBRATION_COMMANDS_POST "G28"
#endif #endif
/** /**

View File

@ -28,25 +28,25 @@
/** /**
* Marlin release version identifier * Marlin release version identifier
*/ */
//#define SHORT_BUILD_VERSION "2.0.9" #define SHORT_BUILD_VERSION LULZBOT_FW_VERSION
/** /**
* Verbose version identifier which should contain a reference to the location * Verbose version identifier which should contain a reference to the location
* from where the binary was downloaded or the source code was compiled. * from where the binary was downloaded or the source code was compiled.
*/ */
//#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION #define DETAILED_BUILD_VERSION " FIRMWARE_VERSION:" SHORT_BUILD_VERSION " EXTRUDER_TYPE:" LULZBOT_M115_EXTRUDER_TYPE
/** /**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built, * The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release * here we define this default string as the date where the latest release
* version was tagged. * version was tagged.
*/ */
//#define STRING_DISTRIBUTION_DATE "2021-06-15" #define STRING_DISTRIBUTION_DATE "2021-06-15"
/** /**
* Defines a generic printer name to be output to the LCD after booting Marlin. * Defines a generic printer name to be output to the LCD after booting Marlin.
*/ */
//#define MACHINE_NAME "3D Printer" #define MACHINE_NAME LULZBOT_CUSTOM_MACHINE_NAME
/** /**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source * The SOURCE_CODE_URL is the location where users will find the Marlin Source
@ -54,12 +54,12 @@
* has a distinct Github fork the Source Code URL should just be the main * has a distinct Github fork the Source Code URL should just be the main
* Marlin repository. * Marlin repository.
*/ */
//#define SOURCE_CODE_URL "github.com/MarlinFirmware/Marlin" #define SOURCE_CODE_URL "https://gitlab.com/lulzbot3d/marlin"
/** /**
* Default generic printer UUID. * Default generic printer UUID.
*/ */
//#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff" #define DEFAULT_MACHINE_UUID LULZBOT_MACHINE_UUID
/** /**
* The WEBSITE_URL is the location where users can get more information such as * The WEBSITE_URL is the location where users can get more information such as
@ -71,6 +71,8 @@
* Set the vendor info the serial USB interface, if changable * Set the vendor info the serial USB interface, if changable
* Currently only supported by DUE platform * Currently only supported by DUE platform
*/ */
//#define USB_DEVICE_VENDOR_ID 0x0000 #if ANY(TAZPro, TAZProXT)
//#define USB_DEVICE_PRODUCT_ID 0x0000 #define USB_DEVICE_VENDOR_ID 0x27b1
#define USB_DEVICE_PRODUCT_ID 0x0001
#endif
//#define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL //#define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL

View File

@ -58,7 +58,11 @@ void GcodeSuite::M125() {
// Initial retract before move to filament change position // Initial retract before move to filament change position
const float retract = -ABS(parser.axisunitsval('L', E_AXIS, PAUSE_PARK_RETRACT_LENGTH)); const float retract = -ABS(parser.axisunitsval('L', E_AXIS, PAUSE_PARK_RETRACT_LENGTH));
#if ANY(Sidekick_289, Sidekick_747, MiniV2)
xyz_pos_t park_point = { X_CENTER, (Y_MAX_POS - 5), (Z_MAX_POS - 3) };
#else
xyz_pos_t park_point = NOZZLE_PARK_POINT; xyz_pos_t park_point = NOZZLE_PARK_POINT;
#endif
// Move XY axes to filament change position or given position // Move XY axes to filament change position or given position
if (parser.seenval('X')) park_point.x = RAW_X_POSITION(parser.linearval('X')); if (parser.seenval('X')) park_point.x = RAW_X_POSITION(parser.linearval('X'));

View File

@ -56,6 +56,11 @@
void GcodeSuite::M701() { void GcodeSuite::M701() {
xyz_pos_t park_point = NOZZLE_PARK_POINT; xyz_pos_t park_point = NOZZLE_PARK_POINT;
#if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)
// If needed, home before parking for filament change
home_if_needed(true);
#endif
// Don't raise Z if the machine isn't homed // Don't raise Z if the machine isn't homed
if (TERN0(NO_MOTION_BEFORE_HOMING, axes_should_home())) park_point.z = 0; if (TERN0(NO_MOTION_BEFORE_HOMING, axes_should_home())) park_point.z = 0;
@ -121,7 +126,9 @@ void GcodeSuite::M701() {
#endif #endif
// Restore Z axis // Restore Z axis
#if defined(RESTORE_Z_POSITION_AFTER_FILAMENT_CHANGE)
move_z_by(-park_raise); move_z_by(-park_raise);
#endif
#if HAS_MULTI_EXTRUDER && (HAS_PRUSA_MMU1 || !HAS_MMU) #if HAS_MULTI_EXTRUDER && (HAS_PRUSA_MMU1 || !HAS_MMU)
// Restore toolhead if it was changed // Restore toolhead if it was changed
@ -149,6 +156,11 @@ void GcodeSuite::M701() {
void GcodeSuite::M702() { void GcodeSuite::M702() {
xyz_pos_t park_point = NOZZLE_PARK_POINT; xyz_pos_t park_point = NOZZLE_PARK_POINT;
#if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)
// If needed, home before parking for filament change
home_if_needed(true);
#endif
// Don't raise Z if the machine isn't homed // Don't raise Z if the machine isn't homed
if (TERN0(NO_MOTION_BEFORE_HOMING, axes_should_home())) park_point.z = 0; if (TERN0(NO_MOTION_BEFORE_HOMING, axes_should_home())) park_point.z = 0;

View File

@ -3670,3 +3670,8 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
#undef _TEST_PWM #undef _TEST_PWM
#undef _LINEAR_AXES_STR #undef _LINEAR_AXES_STR
#undef _LOGICAL_AXES_STR #undef _LOGICAL_AXES_STR
//Making sure universal_toolhead is not selected while defining specific heads
#if ANY(TOOLHEAD_SK285, TOOLHEAD_SK175, TOOLHEAD_M175, TOOLHEAD_H175, TOOLHEAD_SL_SE_HE, TOOLHEAD_HS_HSPLUS) && ENABLED (LULZBOT_UNIVERSAL_TOOLHEAD)
#error "Can not have universal tool head while defining spectific tool head"
#endif

View File

@ -32,7 +32,7 @@
class MediaFileReader { class MediaFileReader {
private: private:
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
DiskIODriver_SPI_SD card; DiskIODriver_USBFlash card; // Allows use of flash drive
SdVolume volume; SdVolume volume;
SdFile root, file; SdFile root, file;
#endif #endif

View File

@ -32,7 +32,7 @@
#if ENABLED(TOUCH_UI_PORTRAIT) #if ENABLED(TOUCH_UI_PORTRAIT)
#include "../theme/bootscreen_logo_portrait.h" #include "../theme/bootscreen_logo_portrait.h"
#else #else
#include "../theme/_bootscreen_landscape.h" #include "../theme/marlin_bootscreen_landscape.h"
#endif #endif
#else #else
#if ENABLED(TOUCH_UI_PORTRAIT) #if ENABLED(TOUCH_UI_PORTRAIT)

View File

@ -42,16 +42,16 @@ void CustomUserMenus::onRedraw(draw_mode_t what) {
.cmd(CLEAR(true, true, true)); .cmd(CLEAR(true, true, true));
} }
#if HAS_USER_ITEM(16, 17, 18, 19, 20) // #if HAS_USER_ITEM(16, 17, 18, 19, 20)
#define _MORE_THAN_FIFTEEN 1 // #define _MORE_THAN_FIFTEEN 1
#else // #else
#define _MORE_THAN_FIFTEEN 0 #define _MORE_THAN_FIFTEEN 0
#endif // #endif
#if _MORE_THAN_FIFTEEN || HAS_USER_ITEM(11, 12, 13, 14, 15) // #if _MORE_THAN_FIFTEEN || HAS_USER_ITEM(11, 12, 13, 14, 15)
#define _MORE_THAN_TEN 1 // #define _MORE_THAN_TEN 1
#else // #else
#define _MORE_THAN_TEN 0 #define _MORE_THAN_TEN 0
#endif // #endif
#if ENABLED(TOUCH_UI_PORTRAIT) #if ENABLED(TOUCH_UI_PORTRAIT)
#define GRID_ROWS 11 #define GRID_ROWS 11
@ -59,11 +59,11 @@ void CustomUserMenus::onRedraw(draw_mode_t what) {
#define USER_ITEM_POS(N) BTN_POS((1+((N-1)/10)), ((N-1) % 10 + 1)), BTN_SIZE(1,1) #define USER_ITEM_POS(N) BTN_POS((1+((N-1)/10)), ((N-1) % 10 + 1)), BTN_SIZE(1,1)
#define BACK_POS BTN_POS(1,11), BTN_SIZE(1,1) #define BACK_POS BTN_POS(1,11), BTN_SIZE(1,1)
#else #else
#if _MORE_THAN_TEN || HAS_USER_ITEM(6, 7, 8, 9, 10) // #if _MORE_THAN_TEN || HAS_USER_ITEM(6, 7, 8, 9, 10)
#define _MORE_THAN_FIVE 1 // #define _MORE_THAN_FIVE 1
#else // #else
#define _MORE_THAN_FIVE 0 #define _MORE_THAN_FIVE 0
#endif // #endif
#define GRID_ROWS 6 #define GRID_ROWS 6
#define GRID_COLS (1 + _MORE_THAN_FIVE + _MORE_THAN_TEN + _MORE_THAN_FIFTEEN) #define GRID_COLS (1 + _MORE_THAN_FIVE + _MORE_THAN_TEN + _MORE_THAN_FIFTEEN)
#define USER_ITEM_POS(N) BTN_POS((1+((N-1)/5)), ((N-1) % 5 + 1)), BTN_SIZE(1,1) #define USER_ITEM_POS(N) BTN_POS((1+((N-1)/5)), ((N-1) % 5 + 1)), BTN_SIZE(1,1)

File diff suppressed because one or more lines are too long

View File

@ -68,6 +68,10 @@ void menu_motion();
void menu_temperature(); void menu_temperature();
void menu_configuration(); void menu_configuration();
#if ENABLED(CUSTOM_USER_MENUS)
void menu_user();
#endif
#if HAS_POWER_MONITOR #if HAS_POWER_MONITOR
void menu_power_monitor(); void menu_power_monitor();
#endif #endif

View File

@ -13,7 +13,14 @@
[platformio] [platformio]
src_dir = Marlin src_dir = Marlin
boards_dir = buildroot/share/PlatformIO/boards boards_dir = buildroot/share/PlatformIO/boards
default_envs = mega2560 default_envs =
MiniV2
TAZ6
Workhorse
TAZPro
TAZProXT
Sidekick_289
Sidekick_747
include_dir = Marlin include_dir = Marlin
extra_configs = extra_configs =
ini/avr.ini ini/avr.ini
@ -241,6 +248,198 @@ default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
-<src/module/servo.cpp> -<src/gcode/control/M280.cpp> -<src/module/servo.cpp> -<src/gcode/control/M280.cpp>
-<src/module/stepper/TMC26X.cpp> -<src/module/stepper/TMC26X.cpp>
#
# Feature Dependencies
#
[features]
HAS_TFT_LVGL_UI = lvgl=https://github.com/makerbase-mks/LVGL-6.1.1-MKS/archive/master.zip
src_filter=+<src/lcd/extui/lib/mks_ui>
extra_scripts=download_mks_assets.py
HAS_TRINAMIC_CONFIG = TMCStepper@~0.7.1
src_filter=+<src/feature/tmc_util.cpp> +<src/module/stepper/trinamic.cpp> +<src/gcode/feature/trinamic/M122.cpp> +<src/gcode/feature/trinamic/M906.cpp> +<src/gcode/feature/trinamic/M911-M914.cpp>
HAS_STEALTHCHOP = src_filter=+<src/gcode/feature/trinamic/M569.cpp>
SR_LCD_3W_NL = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
HAS_MOTOR_CURRENT_I2C = SlowSoftI2CMaster
src_filter=+<src/feature/digipot>
HAS_TMC26X = TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter=+<src/module/TMC26X.cpp>
HAS_L64XX = Arduino-L6470@0.8.0
src_filter=+<src/libs/L64XX> +<src/module/stepper/L64xx.cpp> +<src/gcode/feature/L6470>
NEOPIXEL_LED = Adafruit NeoPixel@1.5.0
src_filter=+<src/feature/leds/neopixel.cpp>
MAX6675_._IS_MAX31865 = Adafruit MAX31865 library@~1.1.0
USES_LIQUIDCRYSTAL = LiquidCrystal@1.5.0
USES_LIQUIDCRYSTAL_I2C = marcoschwartz/LiquidCrystal_I2C@1.1.4
USES_LIQUIDTWI2 = LiquidTWI2@1.2.7
HAS_WIRED_LCD = src_filter=+<src/lcd/lcdprint.cpp>
HAS_MARLINUI_HD44780 = src_filter=+<src/lcd/HD44780>
HAS_MARLINUI_U8GLIB = U8glib-HAL@~0.4.1
src_filter=+<src/lcd/dogm>
HAS_(FSMC|SPI)_TFT = src_filter=+<src/HAL/STM32/tft> +<src/HAL/STM32F1/tft> +<src/lcd/tft_io>
HAS_FSMC_TFT = src_filter=+<src/HAL/STM32/tft/tft_fsmc.cpp> +<src/HAL/STM32F1/tft/tft_fsmc.cpp>
HAS_SPI_TFT = src_filter=+<src/HAL/STM32/tft/tft_spi.cpp> +<src/HAL/STM32F1/tft/tft_spi.cpp>
HAS_GRAPHICAL_TFT = src_filter=+<src/lcd/tft>
DWIN_CREALITY_LCD = src_filter=+<src/lcd/dwin>
IS_TFTGLCD_PANEL = src_filter=+<src/lcd/TFTGLCD>
HAS_TOUCH_BUTTONS = src_filter=+<src/lcd/touch/touch_buttons.cpp>
HAS_LCD_MENU = src_filter=+<src/lcd/menu>
HAS_GAMES = src_filter=+<src/lcd/menu/game/game.cpp>
MARLIN_BRICKOUT = src_filter=+<src/lcd/menu/game/brickout.cpp>
MARLIN_INVADERS = src_filter=+<src/lcd/menu/game/invaders.cpp>
MARLIN_MAZE = src_filter=+<src/lcd/menu/game/maze.cpp>
MARLIN_SNAKE = src_filter=+<src/lcd/menu/game/snake.cpp>
HAS_MENU_BACKLASH = src_filter=+<src/lcd/menu/menu_backlash.cpp>
HAS_MENU_BED_CORNERS = src_filter=+<src/lcd/menu/menu_bed_corners.cpp>
LCD_BED_LEVELING = src_filter=+<src/lcd/menu/menu_bed_leveling.cpp>
HAS_MENU_CANCELOBJECT = src_filter=+<src/lcd/menu/menu_cancelobject.cpp>
HAS_MENU_DELTA_CALIBRATE = src_filter=+<src/lcd/menu/menu_delta_calibrate.cpp>
HAS_MENU_FILAMENT = src_filter=+<src/lcd/menu/menu_filament.cpp>
LCD_INFO_MENU = src_filter=+<src/lcd/menu/menu_info.cpp>
HAS_MENU_JOB_RECOVERY = src_filter=+<src/lcd/menu/menu_job_recovery.cpp>
HAS_MENU_LED = src_filter=+<src/lcd/menu/menu_led.cpp>
HAS_MENU_MEDIA = src_filter=+<src/lcd/menu/menu_media.cpp>
HAS_MENU_MIXER = src_filter=+<src/lcd/menu/menu_mixer.cpp>
HAS_MENU_MMU2 = src_filter=+<src/lcd/menu/menu_mmu2.cpp>
HAS_MENU_PASSWORD = src_filter=+<src/lcd/menu/menu_password.cpp>
HAS_MENU_POWER_MONITOR = src_filter=+<src/lcd/menu/menu_power_monitor.cpp>
HAS_MENU_CUTTER = src_filter=+<src/lcd/menu/menu_spindle_laser.cpp>
HAS_MENU_TEMPERATURE = src_filter=+<src/lcd/menu/menu_temperature.cpp>
HAS_MENU_TMC = src_filter=+<src/lcd/menu/menu_tmc.cpp>
HAS_MENU_TOUCH_SCREEN = src_filter=+<src/lcd/menu/menu_touch_screen.cpp>
HAS_MENU_TRAMMING = src_filter=+<src/lcd/menu/menu_tramming.cpp>
HAS_MENU_UBL = src_filter=+<src/lcd/menu/menu_ubl.cpp>
ANYCUBIC_LCD_CHIRON = src_filter=+<src/lcd/extui/anycubic_chiron_lcd.cpp> +<src/lcd/extui/lib/anycubic_chiron>
ANYCUBIC_LCD_I3MEGA = src_filter=+<src/lcd/extui/anycubic_i3mega_lcd.cpp> +<src/lcd/extui/lib/anycubic_i3mega>
HAS_DGUS_LCD = src_filter=+<src/lcd/extui/lib/dgus> +<src/lcd/extui/dgus_lcd.cpp>
TOUCH_UI_FTDI_EVE = src_filter=+<src/lcd/extui/lib/ftdi_eve_touch_ui>
EXTUI_EXAMPLE = src_filter=+<src/lcd/extui/example.cpp>
MALYAN_LCD = src_filter=+<src/lcd/extui/malyan_lcd.cpp>
USE_UHS2_USB = src_filter=+<src/sd/usb_flashdrive/lib-uhs2>
USE_UHS3_USB = src_filter=+<src/sd/usb_flashdrive/lib-uhs3>
AUTO_BED_LEVELING_BILINEAR = src_filter=+<src/feature/bedlevel/abl>
AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = src_filter=+<src/gcode/bedlevel/abl>
MESH_BED_LEVELING = src_filter=+<src/feature/bedlevel/mbl> +<src/gcode/bedlevel/mbl>
AUTO_BED_LEVELING_UBL = src_filter=+<src/feature/bedlevel/ubl> +<src/gcode/bedlevel/ubl>
BACKLASH_COMPENSATION = src_filter=+<src/feature/backlash.cpp>
BARICUDA = src_filter=+<src/feature/baricuda.cpp> +<src/gcode/feature/baricuda>
BINARY_FILE_TRANSFER = src_filter=+<src/feature/binary_stream.cpp> +<src/libs/heatshrink>
BLTOUCH = src_filter=+<src/feature/bltouch.cpp>
CANCEL_OBJECTS = src_filter=+<src/feature/cancel_object.cpp> +<src/gcode/feature/cancel>
CASE_LIGHT_ENABLE = src_filter=+<src/feature/caselight.cpp> +<src/gcode/feature/caselight>
EXTERNAL_CLOSED_LOOP_CONTROLLER = src_filter=+<src/feature/closedloop.cpp> +<src/gcode/calibrate/M12.cpp>
USE_CONTROLLER_FAN = src_filter=+<src/feature/controllerfan.cpp>
HAS_MOTOR_CURRENT_DAC = src_filter=+<src/feature/dac>
DIRECT_STEPPING = src_filter=+<src/feature/direct_stepping.cpp> +<src/gcode/motion/G6.cpp>
EMERGENCY_PARSER = src_filter=+<src/feature/e_parser.cpp> -<src/gcode/control/M108_*.cpp>
I2C_POSITION_ENCODERS = src_filter=+<src/feature/encoder_i2c.cpp>
IIC_BL24CXX_EEPROM = src_filter=+<src/libs/BL24CXX.cpp>
HAS_SPI_FLASH = src_filter=+<src/libs/W25Qxx.cpp>
HAS_ETHERNET = src_filter=+<src/feature/ethernet.cpp>
HAS_FANMUX = src_filter=+<src/feature/fanmux.cpp>
FILAMENT_WIDTH_SENSOR = src_filter=+<src/feature/filwidth.cpp> +<src/gcode/feature/filwidth>
FWRETRACT = src_filter=+<src/feature/fwretract.cpp> +<src/gcode/feature/fwretract>
HOST_ACTION_COMMANDS = src_filter=+<src/feature/host_actions.cpp>
HOTEND_IDLE_TIMEOUT = src_filter=+<src/feature/hotend_idle.cpp>
JOYSTICK = src_filter=+<src/feature/joystick.cpp>
BLINKM = src_filter=+<src/feature/leds/blinkm.cpp>
HAS_COLOR_LEDS = src_filter=+<src/feature/leds/leds.cpp> +<src/gcode/feature/leds/M150.cpp>
PCA9533 = src_filter=+<src/feature/leds/pca9533.cpp>
PCA9632 = src_filter=+<src/feature/leds/pca9632.cpp>
PRINTER_EVENT_LEDS = src_filter=+<src/feature/leds/printer_event_leds.cpp>
TEMP_STAT_LEDS = src_filter=+<src/feature/leds/tempstat.cpp>
MAX7219_DEBUG = src_filter=+<src/feature/max7219.cpp> +<src/gcode/feature/leds/M7219.cpp>
MIXING_EXTRUDER = src_filter=+<src/feature/mixing.cpp> +<src/gcode/feature/mixing/M163-M165.cpp>
HAS_PRUSA_MMU1 = src_filter=+<src/feature/mmu/mmu.cpp>
HAS_PRUSA_MMU2 = src_filter=+<src/feature/mmu/mmu2.cpp> +<src/gcode/feature/prusa_MMU2>
PASSWORD_FEATURE = src_filter=+<src/feature/password> +<src/gcode/feature/password>
ADVANCED_PAUSE_FEATURE = src_filter=+<src/feature/pause.cpp> +<src/gcode/feature/pause/M600.cpp> +<src/gcode/feature/pause/M603.cpp>
AUTO_POWER_CONTROL = src_filter=+<src/feature/power.cpp>
HAS_POWER_MONITOR = src_filter=+<src/feature/power_monitor.cpp> +<src/gcode/feature/power_monitor>
POWER_LOSS_RECOVERY = src_filter=+<src/feature/powerloss.cpp> +<src/gcode/feature/powerloss>
PROBE_TEMP_COMPENSATION = src_filter=+<src/feature/probe_temp_comp.cpp> +<src/gcode/calibrate/G76_M192_M871.cpp>
HAS_FILAMENT_SENSOR = src_filter=+<src/feature/runout.cpp> +<src/gcode/feature/runout>
(EXT|MANUAL)_SOLENOID.* = src_filter=+<src/feature/solenoid.cpp> +<src/gcode/control/M380_M381.cpp>
HAS_CUTTER = src_filter=+<src/feature/spindle_laser.cpp> +<src/gcode/control/M3-M5.cpp>
EXPERIMENTAL_I2CBUS = src_filter=+<src/feature/twibus.cpp> +<src/gcode/feature/i2c>
MECHANICAL_GANTRY_CAL.+ = src_filter=+<src/gcode/calibrate/G34.cpp>
Z_MULTI_ENDSTOPS = src_filter=+<src/gcode/calibrate/G34_M422.cpp>
Z_STEPPER_AUTO_ALIGN = src_filter=+<src/feature/z_stepper_align.cpp> +<src/gcode/calibrate/G34_M422.cpp>
G26_MESH_VALIDATION = src_filter=+<src/gcode/bedlevel/G26.cpp>
ASSISTED_TRAMMING = src_filter=+<src/feature/tramming.cpp> +<src/gcode/bedlevel/G35.cpp>
HAS_MESH = src_filter=+<src/gcode/bedlevel/G42.cpp>
HAS_LEVELING = src_filter=+<src/gcode/bedlevel/M420.cpp>
DELTA_AUTO_CALIBRATION = src_filter=+<src/gcode/calibrate/G33.cpp>
CALIBRATION_GCODE = src_filter=+<src/gcode/calibrate/G425.cpp>
Z_MIN_PROBE_REPEATABILITY_TEST = src_filter=+<src/gcode/calibrate/M48.cpp>
M100_FREE_MEMORY_WATCHER = src_filter=+<src/gcode/calibrate/M100.cpp>
BACKLASH_GCODE = src_filter=+<src/gcode/calibrate/M425.cpp>
IS_KINEMATIC = src_filter=+<src/gcode/calibrate/M665.cpp>
HAS_EXTRA_ENDSTOPS = src_filter=+<src/gcode/calibrate/M666.cpp>
SKEW_CORRECTION_GCODE = src_filter=+<src/gcode/calibrate/M852.cpp>
DIRECT_PIN_CONTROL = src_filter=+<src/gcode/control/M42.cpp> +<src/gcode/control/M226.cpp>
PINS_DEBUGGING = src_filter=+<src/gcode/config/M43.cpp>
NO_VOLUMETRICS = src_filter=-<src/gcode/config/M200-M205.cpp>
HAS_MULTI_EXTRUDER = src_filter=+<src/gcode/config/M217.cpp>
HAS_HOTEND_OFFSET = src_filter=+<src/gcode/config/M218.cpp>
EDITABLE_SERVO_ANGLES = src_filter=+<src/gcode/config/M281.cpp>
PIDTEMP = src_filter=+<src/gcode/config/M301.cpp>
PREVENT_COLD_EXTRUSION = src_filter=+<src/gcode/config/M302.cpp>
PIDTEMPBED = src_filter=+<src/gcode/config/M304.cpp>
HAS_USER_THERMISTORS = src_filter=+<src/gcode/config/M305.cpp>
SD_ABORT_ON_ENDSTOP_HIT = src_filter=+<src/gcode/config/M540.cpp>
BAUD_RATE_GCODE = src_filter=+<src/gcode/config/M575.cpp>
HAS_SMART_EFF_MOD = src_filter=+<src/gcode/config/M672.cpp>
COOLANT_CONTROL = src_filter=+<src/gcode/control/M7-M9.cpp>
HAS_SOFTWARE_ENDSTOPS = src_filter=+<src/gcode/control/M211.cpp>
HAS_DUPLICATION_MODE = src_filter=+<src/gcode/control/M605.cpp>
LIN_ADVANCE = src_filter=+<src/gcode/feature/advance>
PHOTO_GCODE = src_filter=+<src/gcode/feature/camera>
CONTROLLER_FAN_EDITABLE = src_filter=+<src/gcode/feature/controllerfan>
GCODE_MACROS = src_filter=+<src/gcode/feature/macro>
GRADIENT_MIX = src_filter=+<src/gcode/feature/mixing/M166.cpp>
HAS_SAVED_POSITIONS = src_filter=+<src/gcode/feature/pause/G60.cpp> +<src/gcode/feature/pause/G61.cpp>
PARK_HEAD_ON_PAUSE = src_filter=+<src/gcode/feature/pause/M125.cpp>
FILAMENT_LOAD_UNLOAD_GCODES = src_filter=+<src/gcode/feature/pause/M701_M702.cpp>
CNC_WORKSPACE_PLANES = src_filter=+<src/gcode/geometry/G17-G19.cpp>
CNC_COORDINATE_SYSTEMS = src_filter=+<src/gcode/geometry/G53-G59.cpp>
HAS_M206_COMMAND = src_filter=+<src/gcode/geometry/M206_M428.cpp>
EXPECTED_PRINTER_CHECK = src_filter=+<src/gcode/host/M16.cpp>
HOST_KEEPALIVE_FEATURE = src_filter=+<src/gcode/host/M113.cpp>
REPETIER_GCODE_M360 = src_filter=+<src/gcode/host/M360.cpp>
HAS_GCODE_M876 = src_filter=+<src/gcode/host/M876.cpp>
HAS_RESUME_CONTINUE = src_filter=+<src/gcode/lcd/M0_M1.cpp>
HAS_LCD_CONTRAST = src_filter=+<src/gcode/lcd/M250.cpp>
LCD_SET_PROGRESS_MANUALLY = src_filter=+<src/gcode/lcd/M73.cpp>
TOUCH_SCREEN_CALIBRATION = src_filter=+<src/gcode/lcd/M995.cpp>
ARC_SUPPORT = src_filter=+<src/gcode/motion/G2_G3.cpp>
GCODE_MOTION_MODES = src_filter=+<src/gcode/motion/G80.cpp>
BABYSTEPPING = src_filter=+<src/gcode/motion/M290.cpp> +<src/feature/babystep.cpp>
Z_PROBE_SLED = src_filter=+<src/gcode/probe/G31_G32.cpp>
G38_PROBE_TARGET = src_filter=+<src/gcode/probe/G38.cpp>
MAGNETIC_PARKING_EXTRUDER = src_filter=+<src/gcode/probe/M951.cpp>
SDSUPPORT = src_filter=+<src/gcode/sd>
HAS_MEDIA_SUBCALLS = src_filter=+<src/gcode/sd/M32.cpp>
GCODE_REPEAT_MARKERS = src_filter=+<src/feature/repeat.cpp> +<src/gcode/sd/M808.cpp>
HAS_EXTRUDERS = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp>
INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp>
TEMPERATURE_UNITS_SUPPORT = src_filter=+<src/gcode/units/M149.cpp>
NEED_HEX_PRINT = src_filter=+<src/libs/hex_print.cpp>
NEED_LSF = src_filter=+<src/libs/least_squares_fit.cpp>
NOZZLE_PARK_FEATURE = src_filter=+<src/libs/nozzle.cpp> +<src/gcode/feature/pause/G27.cpp>
NOZZLE_CLEAN_FEATURE = src_filter=+<src/libs/nozzle.cpp> +<src/gcode/feature/clean>
DELTA = src_filter=+<src/module/delta.cpp> +<src/gcode/calibrate/M666.cpp>
BEZIER_CURVE_SUPPORT = src_filter=+<src/module/planner_bezier.cpp> +<src/gcode/motion/G5.cpp>
PRINTCOUNTER = src_filter=+<src/module/printcounter.cpp>
HAS_BED_PROBE = src_filter=+<src/module/probe.cpp> +<src/gcode/probe/G30.cpp> +<src/gcode/probe/M401_M402.cpp> +<src/gcode/probe/M851.cpp>
IS_SCARA = src_filter=+<src/module/scara.cpp>
MORGAN_SCARA = src_filter=+<src/gcode/scara>
(ESP3D_)?WIFISUPPORT = AsyncTCP, ESP Async WebServer
ESP3DLib=https://github.com/luc-github/ESP3DLib.git
arduinoWebSockets=https://github.com/Links2004/arduinoWebSockets.git
ESP32SSDP=https://github.com/luc-github/ESP32SSDP.git
lib_ignore=ESPAsyncTCP
# #
# Default values apply to all 'env:' prefixed environments # Default values apply to all 'env:' prefixed environments
# #
@ -260,6 +459,176 @@ monitor_flags =
--filter --filter
time time
#################################
# #
# Unique Core Architectures #
# #
# Add a new "env" below if no #
# entry has values suitable to #
# build for a given board. #
# #
#################################
#################################
# #
# AVR Architecture #
# #
#################################
#
# AVR (8-bit) Common Environment values
#
[common_avr8]
board_build.f_cpu = 16000000L
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
#
# ATmega2560
#
[env:mega2560]
platform = atmelavr
extends = common_avr8
board = megaatmega2560
#
# Lulzbot Mini V2
#
[env:MiniV2]
platform = atmelavr
extends = common_avr8
build_flags = ${common.build_flags} -DLULZBOT_Hibiscus_Mini2
board = megaatmega2560
#
# Taz 6
#
[env:TAZ6]
platform = atmelavr
extends = common_avr8
build_flags = ${common.build_flags} -DLULZBOT_Oliveoil_TAZ6
board = megaatmega2560
#
# Taz Workhorse
#
[env:Workhorse]
platform = atmelavr
extends = common_avr8
build_flags = ${common.build_flags} -DLULZBOT_Redgum_TAZWorkhorse
board = megaatmega2560
#
# TAZ Pro
[env:TAZPro]
platform = atmelsam
extends = env:DUE
board = marlin_archim
build_flags = ${common.build_flags}
-DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON -DLULZBOT_Quiver_TAZPro
board_build.variants_dir = buildroot/share/PlatformIO/variants/
extra_scripts = ${common.extra_scripts}
Marlin/src/HAL/DUE/upload_extra_script.py
#
# TAZ PROXT
#
[env:TAZProXT]
platform = atmelsam
extends = env:DUE
board = marlin_archim
build_flags = ${common.build_flags}
-DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON -DLULZBOT_Gladiator_TAZProXT
board_build.variants_dir = buildroot/share/PlatformIO/variants/
extra_scripts = ${common.extra_scripts}
Marlin/src/HAL/DUE/upload_extra_script.py
#
# Lulzbot Sidekick 289
#
[env:Sidekick_289]
platform = atmelavr
extends = common_avr8
build_flags = ${common.build_flags} -DLULZBOT_Sidekick_289
board = megaatmega2560
#
# Lulzbot Sidekick 747
#
[env:Sidekick_747]
platform = atmelavr
extends = common_avr8
build_flags = ${common.build_flags} -DLULZBOT_Sidekick_747
board = megaatmega2560
#################################
# #
# DUE Architecture #
# #
#################################
#
# Due (Atmel SAM3X8E ARM Cortex-M3)
#
# - RAMPS4DUE
# - RADDS
#
[env:DUE]
platform = atmelsam
board = due
src_filter = ${common.default_src_filter} +<src/HAL/DUE> +<src/HAL/shared/backtrace>
[env:DUE_USB]
platform = atmelsam
extends = env:DUE
board = dueUSB
[env:DUE_debug]
# Used when WATCHDOG_RESET_MANUAL is enabled
platform = atmelsam
extends = env:DUE
build_flags = ${common.build_flags}
-funwind-tables
-mpoke-function-name
#
# Archim SAM
#
[common_DUE_archim]
platform = atmelsam
extends = env:DUE
board = archim
build_flags = ${common.build_flags}
-DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON
board_build.variants_dir = buildroot/share/PlatformIO/variants/
extra_scripts = ${common.extra_scripts}
Marlin/src/HAL/DUE/upload_extra_script.py
[env:DUE_archim]
platform = ${common_DUE_archim.platform}
extends = common_DUE_archim
# Used when WATCHDOG_RESET_MANUAL is enabled
[env:DUE_archim_debug]
platform = ${common_DUE_archim.platform}
extends = common_DUE_archim
build_flags = ${common_DUE_archim.build_flags} -funwind-tables -mpoke-function-name
#
# Native
# No supported Arduino libraries, base Marlin only
#
[env:linux_native]
platform = native
framework =
build_flags = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread -D__MARLIN_FIRMWARE__ -Wno-expansion-to-defined
src_build_flags = -Wall -IMarlin/src/HAL/LINUX/include
build_unflags = -Wall
lib_ldf_mode = off
lib_deps =
src_filter = ${common.default_src_filter} +<src/HAL/LINUX>
# #
# Just print the dependency tree # Just print the dependency tree
# #