From 9a5a7a3f68e2c5437c1521c75355d902038478c4 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 31 Mar 2015 03:38:03 -0700 Subject: [PATCH 1/2] Raise when not retracting Code to raise the probe before retraction is good, but the code should always raise the probe, not just when retracting --- Marlin/Marlin_main.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 86138fb8f..95bfc6bf1 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1254,18 +1254,18 @@ inline void sync_plan_position() { } - static void retract_z_probe(const float z_after=Z_RAISE_AFTER_PROBING) { + static void retract_z_probe() { #ifdef SERVO_ENDSTOPS // Retract Z Servo endstop if enabled if (servo_endstops[Z_AXIS] >= 0) { - if (z_after > 0) { - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], z_after); + #if Z_RAISE_AFTER_PROBING > 0 + do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], Z_RAISE_AFTER_PROBING); st_synchronize(); - } - + #endif + #if SERVO_LEVELING servos[servo_endstops[Z_AXIS]].attach(0); #endif @@ -1343,8 +1343,13 @@ inline void sync_plan_position() { run_z_probe(); float measured_z = current_position[Z_AXIS]; + #if Z_RAISE_AFTER_PROBING > 0 + do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], Z_RAISE_AFTER_PROBING); + st_synchronize(); + #endif + #if !defined(Z_PROBE_SLED) && !defined(Z_PROBE_ALLEN_KEY) - if (retract_action & ProbeRetract) retract_z_probe(z_before); + if (retract_action & ProbeRetract) retract_z_probe(); #endif if (verbose_level > 2) { From ae89ccd2c7384d900e4cf892ce311e380889ce88 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 31 Mar 2015 03:45:21 -0700 Subject: [PATCH 2/2] Use Z_RAISE_BETWEEN_PROBINGS --- Marlin/Marlin_main.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 95bfc6bf1..127f02f0c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1343,9 +1343,11 @@ inline void sync_plan_position() { run_z_probe(); float measured_z = current_position[Z_AXIS]; - #if Z_RAISE_AFTER_PROBING > 0 - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], Z_RAISE_AFTER_PROBING); - st_synchronize(); + #if Z_RAISE_BETWEEN_PROBINGS > 0 + if (retract_action == ProbeStay) { + do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], Z_RAISE_BETWEEN_PROBINGS); + st_synchronize(); + } #endif #if !defined(Z_PROBE_SLED) && !defined(Z_PROBE_ALLEN_KEY)