From 2c41857cb514c4b698eda24bab8cae97668bd7c0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 30 Jun 2020 18:39:10 +0200 Subject: [PATCH 1/3] Raise Z 5cm after stopping Check if Z axis has been homed and, if so, raise Z at least 5cm after stopping so that the steel sheet can be comfortably removed. --- Firmware/ultralcd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 704d9bb83..ecf206633 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6307,8 +6307,10 @@ void lcd_print_stop() lcd_cooldown(); //turns off heaters and fan; goes to status screen. - current_position[Z_AXIS] += 10; //lift Z. - plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); + if (axis_known_position[Z_AXIS]) { + current_position[Z_AXIS] += 50; //lift Z. + plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); + } if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) //if axis are homed, move to parked position. { From 44fce0696b74165ca143f95922e7496b0d1027a1 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 30 Mar 2022 11:50:28 +0200 Subject: [PATCH 2/3] Make the stop raising distance configurable (Z_CANCEL_LIFT) --- Firmware/ultralcd.cpp | 2 +- Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h | 1 + Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h | 1 + Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h | 1 + Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h | 1 + Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 1 + Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 1 + 7 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ecf206633..4f9f4a3c9 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6308,7 +6308,7 @@ void lcd_print_stop() lcd_cooldown(); //turns off heaters and fan; goes to status screen. if (axis_known_position[Z_AXIS]) { - current_position[Z_AXIS] += 50; //lift Z. + current_position[Z_AXIS] += Z_CANCEL_LIFT; plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); } diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index 4f51d268e..98235b824 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index fcc45f630..4793d3a5f 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index fed20087e..21d6d7cad 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index 3a03d5c70..cbb5fe992 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 39a4adbcf..ced9209c3 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -73,6 +73,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index ba71e9e3e..5f71e3556 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -75,6 +75,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 From 253b14def12a04d5e2f1fe7a1131932b98b118c9 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 4 Jul 2022 18:26:14 +0200 Subject: [PATCH 3/3] Clamp Z movements to machine limits --- Firmware/Marlin_main.cpp | 3 ++- Firmware/ultralcd.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f36164acd..2640acbbe 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3688,6 +3688,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float //Lift Z current_position[Z_AXIS] += z_shift; + clamp_to_software_endstops(current_position); plan_buffer_line_curposXYZE(FILAMENTCHANGE_ZFEED); st_synchronize(); @@ -10734,7 +10735,7 @@ void long_pause() //long pause print //lift z current_position[Z_AXIS] += Z_PAUSE_LIFT; - if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; + clamp_to_software_endstops(current_position); plan_buffer_line_curposXYZE(15); //Move XY to side diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 4f9f4a3c9..738192f89 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6309,6 +6309,7 @@ void lcd_print_stop() if (axis_known_position[Z_AXIS]) { current_position[Z_AXIS] += Z_CANCEL_LIFT; + clamp_to_software_endstops(current_position); plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); }