From cba26988712ea49f1654f7131cbb7be94e63b96b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 17:37:06 -0700 Subject: [PATCH 1/2] Additional DEBUG_LEVELING output --- Marlin/Marlin_main.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 8a3610d58..eb36568a5 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1242,7 +1242,10 @@ static void set_axis_is_at_home(AxisEnum axis) { if (axis == Z_AXIS) { current_position[Z_AXIS] -= zprobe_zoffset; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOPAIR("> zprobe_zoffset==", zprobe_zoffset); + if (DEBUGGING(LEVELING)) { + SERIAL_ECHOPAIR("> zprobe_zoffset==", zprobe_zoffset); + SERIAL_EOL; + } #endif } #endif @@ -1288,10 +1291,16 @@ inline void line_to_destination() { line_to_destination(feedrate); } inline void sync_plan_position() { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position", current_position); + #endif plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); } #if ENABLED(DELTA) || ENABLED(SCARA) inline void sync_plan_position_delta() { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position_delta", current_position); + #endif calculate_delta(current_position); plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); } @@ -1332,8 +1341,12 @@ static void setup_for_endstop_move() { #if DISABLED(DELTA) static void set_bed_level_equation_lsq(double* plane_equation_coefficients) { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE set_bed_level_equation_lsq", current_position); + #endif + vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); - planeNormal.debug("planeNormal"); + // planeNormal.debug("planeNormal"); plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); //bedLevel.debug("bedLevel"); @@ -1348,7 +1361,7 @@ static void setup_for_endstop_move() { current_position[Z_AXIS] = corrected_position.z; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("set_bed_level_equation_lsq", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER set_bed_level_equation_lsq", current_position); #endif sync_plan_position(); @@ -3042,6 +3055,10 @@ inline void gcode_G28() { reset_bed_level(); #else //!DELTA //vector_3 corrected_position = plan_get_position_mm(); + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE matrix.set_to_identity", current_position); + #endif + //corrected_position.debug("position before G29"); vector_3 uncorrected_position = plan_get_position(); //uncorrected_position.debug("position during G29"); @@ -3049,6 +3066,11 @@ inline void gcode_G28() { current_position[Y_AXIS] = uncorrected_position.y; current_position[Z_AXIS] = uncorrected_position.z; sync_plan_position(); + + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER matrix.set_to_identity", current_position); + #endif + #endif // !DELTA } From a644ab1de48742c6c432190039432b67d0f821e2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 17:38:26 -0700 Subject: [PATCH 2/2] Minor patch ups to `G29` This may fix a subtle bug caused by doing `G29` more than once without `G28` between. --- Marlin/Marlin_main.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index eb36568a5..6f2a6cbce 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1351,7 +1351,7 @@ static void setup_for_endstop_move() { //bedLevel.debug("bedLevel"); //plan_bed_level_matrix.debug("bed level before"); - //vector_3 uncorrected_position = plan_get_position_mm(); + //vector_3 uncorrected_position = plan_get_position(); //uncorrected_position.debug("position before"); vector_3 corrected_position = plan_get_position(); @@ -3039,26 +3039,20 @@ inline void gcode_G28() { #endif // AUTO_BED_LEVELING_GRID - #if ENABLED(Z_PROBE_SLED) - dock_sled(false); // engage (un-dock) the Z probe - #elif ENABLED(Z_PROBE_ALLEN_KEY) || (ENABLED(DELTA) && SERVO_LEVELING) - deploy_z_probe(); - #endif - - st_synchronize(); - if (!dryrun) { + // make sure the bed_level_rotation_matrix is identity or the planner will get it wrong plan_bed_level_matrix.set_to_identity(); #if ENABLED(DELTA) reset_bed_level(); #else //!DELTA - //vector_3 corrected_position = plan_get_position_mm(); + #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE matrix.set_to_identity", current_position); #endif + //vector_3 corrected_position = plan_get_position(); //corrected_position.debug("position before G29"); vector_3 uncorrected_position = plan_get_position(); //uncorrected_position.debug("position during G29"); @@ -3074,6 +3068,14 @@ inline void gcode_G28() { #endif // !DELTA } + #if ENABLED(Z_PROBE_SLED) + dock_sled(false); // engage (un-dock) the Z probe + #elif ENABLED(Z_PROBE_ALLEN_KEY) || (ENABLED(DELTA) && SERVO_LEVELING) + deploy_z_probe(); + #endif + + st_synchronize(); + setup_for_endstop_move(); feedrate = homing_feedrate[Z_AXIS];