Merge branch 'Sidekick-filament-runout-and-bed-position-correction' into 'master'

Merging all printers to a functioning standpoint released in experimental cura

See merge request lulzbot3d/marlin!5
This commit is contained in:
Brian Kahl 2021-09-07 19:03:43 +00:00
commit f2803468c7
13 changed files with 205 additions and 174 deletions

View File

@ -97,7 +97,7 @@
// Author info of this build printed to the host during boot and M115
#define STRING_CONFIG_H_AUTHOR "Lulzbot" // Who made the changes.
#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes)
#define LULZBOT_FW_VERSION "2.0.9.0"
#define LULZBOT_FW_VERSION "2.0.9.0.5"
/**
* *** VENDORS PLEASE READ ***
@ -133,7 +133,6 @@
#define LULZBOT_CUSTOM_MACHINE_NAME "LulzBot Mini 2"
#define LULZBOT_LCD_MACHINE_NAME "Mini 2"
#define LULZBOT_MACHINE_UUID "e5502411-d46d-421d-ba3a-a20126d7930f"
#endif
#if defined(LULZBOT_Quiver_TAZPro)
@ -388,16 +387,22 @@
#define LULZBOT_TOOLHEAD_Z_MIN_ADJ 0
#endif
#if defined(TOOLHEAD_SE_SL_HE)
#undef LULZBOT_M115_EXTRUDER_TYPE
#define LULZBOT_M115_EXTRUDER_TYPE "Titan Areo"
#elif defined(TOOLHEAD_HS_HSPLUS)
#undef LULZBOT_M115_EXTRUDER_TYPE
#define LULZBOT_M115_EXTRUDER_TYPE "Titan Areo Vulcano"
#elif defined(TOOLHEAD_H175)
#undef LULZBOT_M115_EXTRUDER_TYPE
#define LULZBOT_M115_EXTRUDER_TYPE "H175"
#elif defined(TOOLHEAD_M175)
#undef LULZBOT_M115_EXTRUDER_TYPE
#define LULZBOT_M115_EXTRUDER_TYPE "M175"
#elif defined(TOOLHEAD_SK175)
#undef LULZBOT_M115_EXTRUDER_TYPE
#define LULZBOT_M115_EXTRUDER_TYPE "SK175"
#elif defined(TOOLHEAD_SK285)
#undef LULZBOT_M115_EXTRUDER_TYPE
#define LULZBOT_M115_EXTRUDER_TYPE "SK285"
#endif
@ -838,9 +843,9 @@
#define LULZBOT_DEFAULT_Kd 75.56
#else
// E3D Titan Aero with LulzBot V6 block
#define LULZBOT_DEFAULT_Kp 41.68
#define LULZBOT_DEFAULT_Ki 6.87
#define LULZBOT_DEFAULT_Kd 63.16
#define LULZBOT_DEFAULT_Kp 21.0
#define LULZBOT_DEFAULT_Ki 1.78
#define LULZBOT_DEFAULT_Kd 61.93
#endif
#endif
#if ANY(TOOLHEAD_SL_SE_HE, LULZBOT_E3D_Titan_Aero_V6)
@ -1274,7 +1279,7 @@
#elif ENABLED(TAZ6)
#define Z_FEEDRATE 5
#elif ANY(Workhorse, TAZPro, TAZProXT)
#define Z_FEEDRATE 30
#define Z_FEEDRATE 25
#endif
#define DEFAULT_MAX_FEEDRATE { 300, 300, Z_FEEDRATE, 40 }
@ -1325,8 +1330,8 @@
#define CLASSIC_JERK
#if ENABLED(CLASSIC_JERK)
#if ANY(MiniV2, Sidekick_289, Sidekick_747)
#define DEFAULT_XJERK 12.0
#define DEFAULT_YJERK 12.0
#define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0
#else
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
@ -1547,7 +1552,7 @@
#elif ANY(TAZPro, TAZProXT)
#define NOZZLE_TO_PROBE_OFFSET { 0, 0, -1.102 }
#elif ANY(Sidekick_289, Sidekick_747)
#define NOZZLE_TO_PROBE_OFFSET { -6.25, 50, -1.10 }
#define NOZZLE_TO_PROBE_OFFSET { -1, 50, -2.1 }
#endif
// Most probes should stay away from the edges of the bed, but
@ -1555,7 +1560,15 @@
#if defined (LULZBOT_BLTouch)
#define PROBING_MARGIN 10
#else
#define PROBING_MARGIN -3
#if ENABLED(MiniV2)
#define PROBING_MARGIN -4
#elif ENABLED(TAZ6)
#define PROBING_MARGIN -8
#elif ENABLED(Workhorse)
#define PROBING_MARGIN -10
#elif ANY(TAZPro, TAZProXT)
#define PROBING_MARGIN -9
#endif
#endif
// X and Y axis travel speed (mm/min) between probes
#define XY_PROBE_FEEDRATE (200*60)
@ -1630,7 +1643,7 @@
#define Z_PROBE_LOW_POINT -4 // Farthest distance below the trigger-point to go before stopping
// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -3
#define Z_PROBE_OFFSET_RANGE_MIN -5
#define Z_PROBE_OFFSET_RANGE_MAX 5
// Enable the M48 repeatability test to test probe accuracy
@ -1771,124 +1784,103 @@
// The size of the printable area
#if ENABLED(MiniV2)
#define X_BED_SIZE 154
#define Y_BED_SIZE 154
#define X_BED_SIZE 160
#define Y_BED_SIZE 165
// Travel limits (mm) after homing, corresponding to endstop positions.
#if defined (TOOLHEAD_M175)
#define LULZBOT_X_MIN_POS -12
#define LULZBOT_Y_MIN_POS -15
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_X_MAX_POS 166
#define LULZBOT_Y_MAX_POS 182
#define LULZBOT_Z_MAX_POS 184
#else
#define LULZBOT_X_MIN_POS -7
#define LULZBOT_Y_MIN_POS -5
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_X_MAX_POS 168
#define LULZBOT_Y_MAX_POS 192
#define LULZBOT_Z_MAX_POS 183
#endif
#define LULZBOT_X_MIN_POS -4.25
#define LULZBOT_Y_MIN_POS -5
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_X_MAX_POS 161.5
#define LULZBOT_Y_MAX_POS 193
#define LULZBOT_Z_MAX_POS 183
#elif ENABLED(TAZ6)
#define X_BED_SIZE 280.4
#define Y_BED_SIZE 281.4
#define X_BED_SIZE 280
#define Y_BED_SIZE 285
// Travel limits (mm) after homing, corresponding to endstop positions.
#if defined (TOOLHEAD_M175)
#define LULZBOT_X_MIN_POS -28.1
#define LULZBOT_Y_MIN_POS -32.1
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_X_MAX_POS 293.5
#define LULZBOT_Y_MAX_POS 292.5
#define LULZBOT_Z_MAX_POS 271
#else
#define LULZBOT_X_MIN_POS -22.1
#define LULZBOT_Y_MIN_POS -22.1
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_X_MAX_POS 299.5
#define LULZBOT_Y_MAX_POS 302.5
#define LULZBOT_Z_MAX_POS 270
#endif
#define LULZBOT_X_MIN_POS -20.1
#define LULZBOT_Y_MIN_POS -21.6
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_X_MAX_POS 292
#define LULZBOT_Y_MAX_POS 303.5
#define LULZBOT_Z_MAX_POS 257.7
#elif ENABLED(Workhorse)
#define X_BED_SIZE 280
#define Y_BED_SIZE 280
// Travel limits (mm) after homing, corresponding to endstop positions.
#if defined (TOOLHEAD_M175)
#define LULZBOT_X_MIN_POS -57
#define LULZBOT_Y_MIN_POS -29
#define LULZBOT_Z_MIN_POS -2
#define LULZBOT_X_MAX_POS 290
#define LULZBOT_Y_MAX_POS 298
#define LULZBOT_Z_MAX_POS 298
#else
#define LULZBOT_X_MIN_POS -50
#define LULZBOT_Y_MIN_POS -17
#define LULZBOT_Z_MIN_POS -2
#define LULZBOT_X_MAX_POS 295
#define LULZBOT_Y_MAX_POS 308
#define LULZBOT_Z_MAX_POS 299
#endif
#define LULZBOT_X_MIN_POS -50
#define LULZBOT_Y_MIN_POS -17
#define LULZBOT_Z_MIN_POS -2
#define LULZBOT_X_MAX_POS 295
#define LULZBOT_Y_MAX_POS 308
#define LULZBOT_Z_MAX_POS 299
#elif ENABLED(TAZPro)
#define X_BED_SIZE 281
#define Y_BED_SIZE 283
// Travel limits (mm) after homing, corresponding to endstop positions.
#if defined (TOOLHEAD_M175)
#define LULZBOT_X_MIN_POS -9-13
#define LULZBOT_Y_MIN_POS -23
#define LULZBOT_X_MAX_POS 308
#define LULZBOT_Y_MAX_POS 303 307
#define LULZBOT_Z_MIN_POS -9
#define LULZBOT_Z_MAX_POS 298
#if defined(TOOLHEAD_Quiver_DualExtruder)
#define X_BED_SIZE 281
#define Y_BED_SIZE 283
// Travel limits (mm) after homing, corresponding to endstop positions.
#define LULZBOT_X_MIN_POS -6// <-- changed
#define LULZBOT_Y_MIN_POS -13 // <-- changed
#define LULZBOT_X_MAX_POS 308 // <-- changed
#define LULZBOT_Y_MAX_POS 315 // <-- changed
#define LULZBOT_Z_MIN_POS -9 // <-- changed
#define LULZBOT_Z_MAX_POS 299 // <-- changed
#else
#define X_BED_SIZE 284
#define Y_BED_SIZE 286
// Travel limits (mm) after homing, corresponding to endstop positions.
#define LULZBOT_X_MIN_POS -1
#define LULZBOT_Y_MIN_POS -13
#define LULZBOT_Y_MIN_POS -9
#define LULZBOT_X_MAX_POS 313
#define LULZBOT_Y_MAX_POS 315
#define LULZBOT_Y_MAX_POS 318
#define LULZBOT_Z_MIN_POS -9
#define LULZBOT_Z_MAX_POS 299
#endif
#elif ENABLED(TAZProXT)
#define X_BED_SIZE 281
#define Y_BED_SIZE 283
// Travel limits (mm) after homing, corresponding to endstop positions.
#if defined (TOOLHEAD_M175)
#define LULZBOT_X_MIN_POS -9
#define LULZBOT_Y_MIN_POS -18
#define LULZBOT_X_MAX_POS 308
#define LULZBOT_Y_MAX_POS 298
#if defined(TOOLHEAD_Quiver_DualExtruder)
#define X_BED_SIZE 281
#define Y_BED_SIZE 283
// Travel limits (mm) after homing, corresponding to endstop positions.
#define LULZBOT_X_MIN_POS -6// <-- changed
#define LULZBOT_Y_MIN_POS -13 // <-- changed
#define LULZBOT_X_MAX_POS 308 // <-- changed
#define LULZBOT_Y_MAX_POS 315 // <-- changed
#define LULZBOT_Z_MIN_POS -9 // <-- changed
#define LULZBOT_Z_MAX_POS 599 // <-- changed
#else
#define X_BED_SIZE 284
#define Y_BED_SIZE 286
// Travel limits (mm) after homing, corresponding to endstop positions.
#define LULZBOT_X_MIN_POS -1
#define LULZBOT_Y_MIN_POS -13
#define LULZBOT_Y_MIN_POS -9
#define LULZBOT_X_MAX_POS 313
#define LULZBOT_Y_MAX_POS 315
#define LULZBOT_Y_MAX_POS 318
#define LULZBOT_Z_MIN_POS -9
#define LULZBOT_Z_MAX_POS 599
#endif
#define LULZBOT_Z_MIN_POS -1
#define LULZBOT_Z_MAX_POS 600
#elif defined(Sidekick_289)
#define X_BED_SIZE 162
#define Y_BED_SIZE 164
#define X_BED_SIZE 161
#define Y_BED_SIZE 161
// Travel limits (mm) after homing, corresponding to endstop positions.
#define LULZBOT_X_MAX_POS 168
#define LULZBOT_X_MIN_POS -3.5
#define LULZBOT_Y_MAX_POS 173
#define LULZBOT_Y_MIN_POS -36
#define LULZBOT_X_MAX_POS 166
#define LULZBOT_X_MIN_POS -5.5
#define LULZBOT_Y_MAX_POS 175
#define LULZBOT_Y_MIN_POS -27
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_Z_MAX_POS 184.5
#define LULZBOT_Z_MAX_POS 181.5
#elif defined(Sidekick_747)
#define X_BED_SIZE 231
#define Y_BED_SIZE 231
// Travel limits (mm) after homing, corresponding to endstop positions.
#define LULZBOT_X_MAX_POS 232
#define LULZBOT_X_MIN_POS -1
#define LULZBOT_X_MIN_POS -1.5
#define LULZBOT_Y_MAX_POS 240
#define LULZBOT_Y_MIN_POS -23
#define LULZBOT_Y_MIN_POS -16
#define LULZBOT_Z_MIN_POS 0
#define LULZBOT_Z_MAX_POS 246.5
#define LULZBOT_Z_MAX_POS 244.5
#endif
// Travel limits (mm) after homing, corresponding to endstop positions.
@ -1953,7 +1945,7 @@
* RAMPS-based boards use SERVO3_PIN for the first runout sensor.
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
*/
#if ANY(TAZPro, TAZProXT)
#if ANY(TAZPro, TAZProXT, Sidekick_289, Sidekick_747)
#define FILAMENT_RUNOUT_SENSOR
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
@ -2284,8 +2276,8 @@
#if ENABLED(Z_SAFE_HOMING)
#if ENABLED(TAZ6)
#define Z_SAFE_HOMING_X_POINT -22 // X point for Z homing
#define Z_SAFE_HOMING_Y_POINT 259 // Y point for Z homing
#define Z_SAFE_HOMING_X_POINT -20.1 // X point for Z homing
#define Z_SAFE_HOMING_Y_POINT 259.5 // Y point for Z homing
#elif ANY(Sidekick_289, Sisdekick_747)
#define Z_SAFE_HOMING_X_POINT (X_CENTER) // X point for Z homing
#define Z_SAFE_HOMING_Y_POINT (Y_BED_SIZE/2) // Y point for Z homing
@ -2494,7 +2486,7 @@
#endif
#if ENABLED(NOZZLE_CLEAN_FEATURE)
#define CLEAN_SCRIPT "M117 Hot end heating...\nM104 S170\nG28 O1\nM117 Wiping nozzle\nT0\nG1 X-17 Y25 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nM106 S255\nG0 X-10.0 Y-9.0M109 R160\nM107"
#define CLEAN_SCRIPT "M117 Hot end heating...\nM104 S170\nG28 O\nG12"
// Default number of pattern repetitions
#define NOZZLE_CLEAN_STROKES 12
@ -2505,10 +2497,13 @@
// Specify positions for each tool as { { X, Y, Z }, { X, Y, Z } }
// Dual hotend system may use { { -20, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }, { 420, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }}
#if ENABLED(MiniV2)
#define NOZZLE_CLEAN_START_POINT { 45, 175, 0 }
#define NOZZLE_CLEAN_END_POINT { 115, 175, 0 }
#elif ENABLED(TAZPro, TAZProXT)
#define NOZZLE_CLEAN_START_POINT {{ -17, 95, 1 }, { 297, 95, 1 }}
#define NOZZLE_CLEAN_START_POINT { 45, 177, 0 }
#define NOZZLE_CLEAN_END_POINT { 115, 177, 0 }
#elif ANY(TAZPro, TAZProXT) && ENABLED(LULZBOT_UNIVERSAL_TOOLHEAD)
#define NOZZLE_CLEAN_START_POINT { 300, 95, 1 }
#define NOZZLE_CLEAN_END_POINT { 300, 25, 1 }
#elif ANY(TAZPro, TAZProXT) && ENABLED(TOOLHEAD_Quiver_DualExtruder)
#define NOZZLE_CLEAN_START_POINT {{ -17, 95, 1 }, { 297, 95, 1 }}
#define NOZZLE_CLEAN_END_POINT {{ -17, 25, 1 }, { 297, 25, 1 }}
#else
#define NOZZLE_CLEAN_START_POINT { -17, 95, 1 }
@ -2537,17 +2532,16 @@
// Explicit wipe G-code script applies to a G12 with no arguments.
#if ENABLED(MiniV2)
#define WIPE_SEQUENCE_COMMANDS "M117 Hot end heating...\nM104 S170\nG28 O1\nM117 Wiping nozzle\nT0\nG1 X115 Y175 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X115 Y175\nG1 X45 Y175\nG1 X115 Y175\nG1 X45 Y175\nG1 X115 Y175\nG1 X45 Y175\nG1 X115 Y175\nG1 X45 Y175\nG1 X115 Y175\nG1 X45 Y175\nG1 X115 Y175\nG1 X45 Y175\nG1 Z15\nM400\nM106 S255\nM107"
#define WIPE_SEQUENCE_COMMANDS "G28O\n M117 Hot end heating...\nM104 S170\nM117 Wiping nozzle\nT0\nG1 X115 Y177 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X115 \nG1 X45 \nG1 X115 \nG1 X45 \nG1 X115 \nG1 X45 \nG1 X115 \nG1 X45 \nG1 X115 \nG1 X45 \nG1 X115 \nG1 X45 \nG1 Z15\nM400\nM106 S255\nM109 R160\nM107\nM117 Wipe Complete"
#elif ENABLED(TAZ6)
#define WIPE_SEQUENCE_COMMANDS "M117 Hot end heating...\nM104 S170\nG28 O1\nM117 Wiping nozzle\nT0\nG1 X-19 Y25 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X-19 Y25\nG1 X-19 Y95\nG1 X-19 Y25\nG1 X-19 Y95\nG1 X-19 Y25\nG1 X-19 Y95\nG1 X-19 Y25\nG1 X-19 Y95\nG1 X-19 Y25\nG1 X-19 Y95\nG1 X-19 Y25\nG1 X-19 Y95\nG1 Z15\nM400\nM106 S255\nM107"
#define WIPE_SEQUENCE_COMMANDS "G28O\n M117 Hot end heating...\nM104 S170\nM117 Wiping nozzle\nT0\nG1 X-17 Y25 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 Y25\nG1 Y95\nG1 Y25\nG1 Y95\nG1 Y25\nG1 Y95\nG1 Y25\nG1 Y95\nG1 Y25\nG1 Y95\nG1 Y25\nG1 Y95\nG1 Z15\nM400\nM106 S255\nM109 R160\nM107\nM117 Wipe Complete"
#elif ENABLED(Workhorse)
#define WIPE_SEQUENCE_COMMANDS "M117 Hot end heating...\nM104 S170\nG28 O1\nM117 Wiping nozzle\nT0\nG1 X-17 Y25 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nM106 S255\nM107"
#elif ENABLED(TAZPro) && ENABLED(LULZBOT_UNIVERSAL_TOOLHEAD)
#define WIPE_SEQUENCE_COMMANDS "G1 X301 Y25 Z10 F4000\nM109 R170 \nG1 Z-1\nM114\nG1 X301 Y25\nG1 X301 Y95\nG1 X301 Y25\nG1 X301 Y95\nG1 X301 Y25\nG1 X301 Y95\nG1 X301 Y25\nG1 X301 Y95\nG1 X301 Y25\nG1 X301 Y95\nG1 X301 Y25\nG1 X301 Y95\nG1 Z15\nM400\nM106 S255 \nM106 S255\nG0 Y-9.0\nM109 R160\nM107"
#elif ENABLED(TAZPro) && ENABLED(TOOLHEAD_Quiver_DualExtruder)
#define WIPE_SEQUENCE_COMMANDS "G1 X-10.5 Y25 Z10 F4000\nM109 R170 T0\nG1 Z-1\nM114\nG1 X-10.5 Y25\nG1 X-10.5 Y95\nG1 X-10.5 Y25\nG1 X-10.5 Y95\nG1 X-10.5 Y25\nG1 X-10.5 Y95\nG1 X-10.5 Y25\nG1 X-10.5 Y95\nG1 X-10.5 Y25\nG1 X-10.5 Y95\nG1 X-10.5 Y25\nG1 X-10.5 Y95\nG1 Z15\nM400\nM106 S255 \nT0\nM106 S255\nM109 R160 T0\nM107"
#define WIPE_SEQUENCE_COMMANDS "G28O\n M117 Hot end heating...\nM104 S170\nM117 Wiping nozzle\nT0\nG1 X-17 Y25 Z10 F4000\nM109 R170\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nM106 S255\nM109 R160\nM107\nM117 Wipe Complete"
#elif ANY(TAZPro, TAZProXT) && ENABLED(LULZBOT_UNIVERSAL_TOOLHEAD)
#define WIPE_SEQUENCE_COMMANDS "G28O\n M117 Hot end heating...\nM104 S170\nM117 Wiping nozzle\nT0\nG1 X300 Y25 Z10 F4000\nM109 R170 \nG1 Z-1 F4000\nM114\nG1 Y25 F4000\nG1 Y95 F4000\nG1 Y25 F4000\nG1 Y95 F4000\nG1 Y25 F4000\nG1 Y95 F4000\nG1 Y25 F4000\nG1 Y95 F4000\nG1 Y25 F4000\nG1 Y95 F4000\nG1 Y25 F4000\nG1 Y95 F4000\nG1 Z15 F4000\nM400\nM106 S255\nG0 Y-9.0 F4000\nM109 R160\nM107\nM117 Wipe Complete"
#elif ANY(TAZPro, TAZProXT) && ENABLED(TOOLHEAD_Quiver_DualExtruder)
#define WIPE_SEQUENCE_COMMANDS "G1 X-17 Y25 Z10 F4000\nM109 R170 T0\nG1 Z-1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nM106 S255 \nT0\nM106 S255\nM109 R160 T0\nM107"
#endif
#endif
/**
@ -3485,12 +3479,12 @@
* Set this manually if there are extra servos needing manual control.
* Set to 0 to turn off servo support.
*/
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
#define NUM_SERVOS LULZBOT_NUM_SERVOS // Servo index starts with 0 for M280 command
// (ms) Delay before the next move will start, to give the servo time to reach its target angle.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
#define SERVO_DELAY { 300 }
#define SERVO_DELAY LULZBOT_SERVO_DELAY
// Only power servos during movement, otherwise leave off to prevent jitter
//#define DEACTIVATE_SERVOS_AFTER_MOVE

View File

@ -1063,7 +1063,7 @@
* Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
* ±5mm of true values for G425 to succeed.
*/
#if DISABLED(Sidekick_289, Sidekick_747, MiniV2,LULZBOT_UNIVERSAL_TOOLHEAD)
#if ANY(TAZPro,TAZProXT,Workhorse)
#define CALIBRATION_GCODE
#endif
#if ENABLED(CALIBRATION_GCODE)
@ -1086,8 +1086,8 @@
// The true location and dimension the cube/bolt/washer on the bed.
#if ENABLED(MiniV2)
#define CALIBRATION_OBJECT_CENTER {169.5, 171.3, 0}: mm
#define CALIBRATION_OBJECT_DIMENSIONS {22.0, 22.0, 1.5}: 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.
@ -1106,8 +1106,8 @@
#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
#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.
@ -1116,13 +1116,17 @@
#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
#if defined(TOOLHEAD_Quiver_DualExtruder)
#define CALIBRATION_OBJECT_CENTER {261.5, -18, -2.0} // mm
#define CALIBRATION_OBJECT_DIMENSIONS {10.0, .1, 10.0} // mm
#else
#define CALIBRATION_OBJECT_CENTER {267.5,-9.5,-2.0} // mm
#define CALIBRATION_OBJECT_DIMENSIONS {10.0, 1.0, 10.0} // mm
#endif
// 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_FRONT
#define CALIBRATION_MEASURE_LEFT
#define CALIBRATION_MEASURE_BACK
#endif
@ -1257,18 +1261,26 @@
#if HAS_LCD_MENU
// Add Probe Z Offset calibration to the Z Probe Offsets menu
#if HAS_BED_PROBE
//#define PROBE_OFFSET_WIZARD
#if HAS_BED_PROBE && ANY(Sidekick_289, Sidekick_747)
#define PROBE_OFFSET_WIZARD
#if ENABLED(PROBE_OFFSET_WIZARD)
//
// Enable to init the Probe Z-Offset when starting the Wizard.
// Use a height slightly above the estimated nozzle-to-probe Z offset.
// For example, with an offset of -5, consider a starting height of -4.
//
//#define PROBE_OFFSET_WIZARD_START_Z -4.0
#define PROBE_OFFSET_WIZARD_START_Z 1.0
// Set a convenient position to do the calibration (probing point and nozzle/bed-distance)
//#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
#if ANY(Sidekick_289, Sidekick_747)
#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
#elif ENABLED(MiniV2)
#define PROBE_OFFSET_WIZARD_XY_POS { -4, -4 }
#elif ENABLED(TAZ6)
#define PROBE_OFFSET_WIZARD_XY_POS { -8, -8 }
#elif ENABLED(Workhorse)
#define PROBE_OFFSET_WIZARD_XY_POS { -10, -10 }
#endif
#endif
#endif
@ -1988,22 +2000,10 @@
* the probe to be unable to reach any points.
*/
#if PROBE_SELECTED && !IS_KINEMATIC
#if ENABLED(MiniV2)
#define PROBING_MARGIN_LEFT -5.0
#define PROBING_MARGIN_RIGHT -10.0
#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
//#define PROBING_MARGIN_LEFT -5.0
//#define PROBING_MARGIN_RIGHT -10.0
//#define PROBING_MARGIN_FRONT -5.0
//#define PROBING_MARGIN_BACK -10.0
#endif
#if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
@ -2644,7 +2644,7 @@
#define INTERPOLATE true
#if AXIS_IS_TMC(X)
#define X_CURRENT 950 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_CURRENT 975 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.12
@ -2662,7 +2662,7 @@
#endif
#if AXIS_IS_TMC(Y)
#define Y_CURRENT 950
#define Y_CURRENT 975
#define Y_CURRENT_HOME Y_CURRENT
#define Y_MICROSTEPS 16
#define Y_RSENSE 0.12
@ -2891,11 +2891,11 @@
* Use Trinamic's ultra quiet stepping mode.
* When disabled, Marlin will use spreadCycle stepping mode.
*/
#define STEALTHCHOP_XY
//#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
#define STEALTHCHOP_I
#define STEALTHCHOP_J
#define STEALTHCHOP_K
//#define STEALTHCHOP_I
//#define STEALTHCHOP_J
//#define STEALTHCHOP_K
#define STEALTHCHOP_E
/**
@ -3009,8 +3009,13 @@
#if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING)
// TMC2209: 0...255. TMC2130: -64...63
#if ANY(TAZPro, TAZProXT)
#define X_STALL_SENSITIVITY 4
#define Y_STALL_SENSITIVITY 4
#if ANY(LULZBOT_UNIVERSAL_TOOLHEAD, TOOLHEAD_M175)
#define X_STALL_SENSITIVITY 3
#define Y_STALL_SENSITIVITY 5
#else
#define X_STALL_SENSITIVITY 6
#define Y_STALL_SENSITIVITY 5
#endif
#elif ENABLED(MiniV2)
#define X_STALL_SENSITIVITY 3
#define Y_STALL_SENSITIVITY 3
@ -3053,7 +3058,7 @@
* Enable M122 debugging command for TMC stepper drivers.
* M122 S0/1 will enable continuous reporting.
*/
//#define TMC_DEBUG
#define TMC_DEBUG
/**
* You can set your own advanced settings by filling in predefined functions.
@ -3859,37 +3864,37 @@
#define MAIN_MENU_ITEM_9_GCODE "M92E409\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 H175|0.50mm|NKL-PL CU"
#else
#define MAIN_MENU_ITEM_3_DESC "M175v2|0.50mm|CRB CU"
#define MAIN_MENU_ITEM_3_GCODE "M92E415\nM301P24.54I2.52D61.75\nM907E" E_CURRENT_BMG "\nM500\nM117 M175v2|0.50mm|CRB CU"
#define MAIN_MENU_ITEM_3_GCODE "M92E415\nM206Y0\nM301P24.54I2.52D61.75\nM907E" E_CURRENT_BMG "\nM500\nM117 M175v2|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_4_GCODE "M92E420\nM206Y0\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_5_GCODE "M92E420\nM206Y0\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_6_GCODE "M92E420\nM206Y0\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_7_GCODE "M92E420\nM206Y0\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_8_GCODE "M92E420\nM206Y0\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 H175|0.50mm|NKL-PL CU"
#define MAIN_MENU_ITEM_9_GCODE "M92E409\nM206Y0\nM301" DEFAULT_PID "\nM906E" E_CURRENT_Aero "\nM500\nM117 H175|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"
#define MAIN_MENU_ITEM_1_GCODE "M92E814\nM206Y5\nM301" DEFAULT_PID "\nM907E" E_CURRENT_Std "\nM500\nM117 Standard|0.5mm"
#endif
#endif
#endif
// Custom Menu: Configuration Menu
#define CUSTOM_MENU_CONFIG
//#define CUSTOM_MENU_CONFIG
#if ENABLED(CUSTOM_MENU_CONFIG)
//#define CUSTOM_MENU_CONFIG_TITLE "Custom Commands"
#define CUSTOM_MENU_CONFIG_SCRIPT_DONE "M117 Wireless Script Done"

View File

@ -27,6 +27,8 @@
#include "../gcode.h"
#include "../../lcd/marlinui.h"
//#define SHOW_HEATING_MESSAGE 1
/**
* M117: Set LCD Status Message
*/

View File

@ -125,8 +125,8 @@ void GcodeSuite::M104_M109(const bool isM109) {
thermalManager.auto_job_check_timer(isM109, true);
#endif
if (thermalManager.isHeatingHotend(target_extruder) || !no_wait_for_cooling)
thermalManager.set_heating_message(target_extruder);
//if (thermalManager.isHeatingHotend(target_extruder) || !no_wait_for_cooling)
//thermalManager.set_heating_message(target_extruder);
}
TERN_(AUTOTEMP, planner.autotemp_M104_M109());

View File

@ -83,7 +83,7 @@ void GcodeSuite::M140_M190(const bool isM190) {
thermalManager.setTargetBed(temp);
ui.set_status_P(thermalManager.isHeatingBed() ? GET_TEXT(MSG_BED_HEATING) : GET_TEXT(MSG_BED_COOLING));
//ui.set_status_P(thermalManager.isHeatingBed() ? GET_TEXT(MSG_BED_HEATING) : GET_TEXT(MSG_BED_COOLING));
// with PRINTJOB_TIMER_AUTOSTART, M190 can start the timer, and M140 can stop it
TERN_(PRINTJOB_TIMER_AUTOSTART, thermalManager.auto_job_check_timer(isM190, !isM190));

View File

@ -37,7 +37,7 @@ bool ConfirmAutoCalibrationDialogBox::onTouchEnd(uint8_t tag) {
switch (tag) {
case 1:
GOTO_SCREEN(StatusScreen);
injectCommands_P(PSTR("G425"));
injectCommands_P(PSTR("M425 X0Y0Z0\nM117 Auto-Calibrate in Progress...\nG28\nG425\nM500\nM117 Backlash Saved"));
return true;
default:
return DialogBoxBaseClass::onTouchEnd(tag);

View File

@ -106,7 +106,7 @@ bool MainMenu::onTouchEnd(uint8_t tag) {
case 1: SaveSettingsDialogBox::promptToSaveSettings(); break;
case 2: SpinnerDialogBox::enqueueAndWait_P(F("G28")); break;
#if ENABLED(NOZZLE_CLEAN_FEATURE)
case 3: injectCommands_P(PSTR("G12")); GOTO_SCREEN(StatusScreen); break;
case 3: injectCommands_P(PSTR("G28O\nG12\nM77")); GOTO_SCREEN(StatusScreen); break;
#endif
case 4: GOTO_SCREEN(MoveAxisScreen); break;
case 5: injectCommands_P(PSTR("M84")); break;

View File

@ -46,7 +46,7 @@ void ZOffsetScreen::onRedraw(draw_mode_t what) {
w.heading( GET_TEXT_F(MSG_ZPROBE_ZOFFSET));
w.color(z_axis).adjuster(4, GET_TEXT_F(MSG_ZPROBE_ZOFFSET), getZOffset_mm());
w.increments();
w.button(2, GET_TEXT_F(MSG_PROBE_WIZARD), !isPrinting());
//w.button(2, GET_TEXT_F(MSG_PROBE_WIZARD), !isPrinting());
}
void ZOffsetScreen::move(float mm, int16_t steps) {
@ -88,7 +88,7 @@ bool ZOffsetScreen::onTouchHeld(uint8_t tag) {
const int16_t steps = mmToWholeSteps(getIncrement(), Z);
const float increment = mmFromWholeSteps(steps, Z);
switch (tag) {
case 2: runWizard(); break;
//case 2: runWizard(); break;
case 4: UI_DECREMENT(ZOffset_mm); move(-increment, -steps); break;
case 5: UI_INCREMENT(ZOffset_mm); move( increment, steps); break;
default:

View File

@ -159,7 +159,7 @@ namespace Language_en {
PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Deviation");
PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX Mode");
PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Tool Offsets");
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park");
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Park Nozzle");
PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplication");
PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Mirrored Copy");
PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Full Control");
@ -290,6 +290,7 @@ namespace Language_en {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Nozzle ~");
PROGMEM Language_Str MSG_NOZZLE_PARKED = _UxGT("Nozzle Parked");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Nozzle Standby");
PROGMEM Language_Str MSG_NOZZLE_CLEAN = _UxGT("Clean Nozzle");
PROGMEM Language_Str MSG_BED = _UxGT("Bed");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Enclosure");
PROGMEM Language_Str MSG_COOLER = _UxGT("Laser Coolant");

View File

@ -364,11 +364,18 @@ void menu_motion() {
#endif
#endif
//
// Park Nozzle
//
#if ENABLED(PARK_NOZZLE_MENU_OPTION)
GCODES_ITEM(MSG_IDEX_MODE_AUTOPARK, PSTR("G28 O\nG27"));
#endif
//
// Auto-calibration
//
#if ENABLED(CALIBRATION_GCODE)
GCODES_ITEM(MSG_AUTO_CALIBRATE, PSTR("G425"));
GCODES_ITEM(MSG_AUTO_CALIBRATE, PSTR("M425 X0Y0Z0\nM117 Auto-Calibrate in Progress...\nG28\nG425\nM500\nM117 Backlash Saved"));
#endif
//
@ -378,6 +385,20 @@ void menu_motion() {
GCODES_ITEM(MSG_AUTO_Z_ALIGN, PSTR("G34"));
#endif
//
// Clean Nozzle
//
#if defined(NOZZLE_CLEAN_FEATURE)
GCODES_ITEM(MSG_NOZZLE_CLEAN, PSTR("G28O\nM117 cleaning Nozzle\nG12\nM77\nM117 Nozzle Clean"));
#endif
//
// Z Probe Wizard
//
#if ENABLED(PROBE_OFFSET_WIZARD)
SUBMENU(MSG_PROBE_WIZARD, goto_probe_offset_wizard);
#endif
//
// Assisted Bed Tramming
//
@ -400,7 +421,7 @@ void menu_motion() {
#elif HAS_LEVELING && DISABLED(SLIM_LCD_MENUS)
#if DISABLED(PROBE_MANUALLY)
GCODES_ITEM(MSG_LEVEL_BED, PSTR("G29N"));
GCODES_ITEM(MSG_LEVEL_BED, PSTR("G28O\nG29"));
#endif
if (all_axes_homed() && leveling_is_valid()) {

View File

@ -80,7 +80,7 @@ void probe_offset_wizard_menu() {
STATIC_ITEM_P(PSTR("Z="), SS_CENTER, ftostr42_52(current_position.z));
STATIC_ITEM(MSG_ZPROBE_ZOFFSET, SS_LEFT, ftostr42_52(calculated_z_offset));
SUBMENU(MSG_MOVE_1MM, []{ _goto_manual_move_z( 1); });
//SUBMENU(MSG_MOVE_1MM, []{ _goto_manual_move_z( 1); });
SUBMENU(MSG_MOVE_01MM, []{ _goto_manual_move_z( 0.1f); });
if ((FINE_MANUAL_MOVE) > 0.0f && (FINE_MANUAL_MOVE) < 0.1f) {
@ -131,6 +131,7 @@ void prepare_for_probe_offset_wizard() {
#endif
// Get X and Y from configuration, or use center
constexpr xy_pos_t wizard_pos = PROBE_OFFSET_WIZARD_XY_POS;
constexpr xy_pos_t wizard_pos_center = XY_CENTER;
// Probe for Z reference
ui.wait_for_move = true;
@ -146,7 +147,8 @@ void prepare_for_probe_offset_wizard() {
// Move Nozzle to Probing/Homing Position
ui.wait_for_move = true;
current_position += probe.offset_xy;
do_blocking_move_to_xy(wizard_pos_center); // move to center of bed
//current_position += probe.offset_xy;
line_to_current_position(MMM_TO_MMS(XY_PROBE_FEEDRATE));
ui.synchronize(GET_TEXT(MSG_PROBE_WIZARD_MOVING));
ui.wait_for_move = false;

View File

@ -3505,7 +3505,7 @@ void Temperature::isr() {
void Temperature::AutoReportTemp::report() { print_heater_states(active_extruder); SERIAL_EOL(); }
#endif
#if HAS_HOTEND && HAS_STATUS_MESSAGE
#if HAS_HOTEND && HAS_STATUS_MESSAGE && SHOW_HEATING_MESSAGE
void Temperature::set_heating_message(const uint8_t e) {
const bool heating = isHeatingHotend(e);
ui.status_printf_P(0,

View File

@ -84,6 +84,12 @@
#define Z_MIN_PIN 10
#endif
//
// Filament runout sensor
//
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_PIN 12 //X-
#endif
#endif
#define Z_MAX_PIN 7