From ad0e5928f58c7722fdcf6f53f02ee0b6d6519388 Mon Sep 17 00:00:00 2001 From: Roxy-3D Date: Sun, 7 May 2017 18:23:48 -0500 Subject: [PATCH] misc. UBL fixes (#6631) * Restore LSF functionality Some of the typo's persisted... Hopefully this gets them all fixed. * Restore user's expectations of how G28 should behave * Allow Nozzle size control with ornery host programs --- Marlin/G26_Mesh_Validation_Tool.cpp | 3 ++- Marlin/Marlin_main.cpp | 6 ++++++ Marlin/least_squares_fit.cpp | 6 +++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Marlin/G26_Mesh_Validation_Tool.cpp b/Marlin/G26_Mesh_Validation_Tool.cpp index 0924d7d8b..3d93baa91 100644 --- a/Marlin/G26_Mesh_Validation_Tool.cpp +++ b/Marlin/G26_Mesh_Validation_Tool.cpp @@ -92,6 +92,7 @@ * un-retraction is at 1.2mm These numbers will be scaled by the specified amount * * N # Nozzle Used to control the size of nozzle diameter. If not specified, a .4mm nozzle is assumed. + * 'n' can be used instead if your host program does not appreciate you using 'N'. * * O # Ooooze How much your nozzle will Ooooze filament while getting in position to print. This * is over kill, but using this parameter will let you get the very first 'cicle' perfect @@ -674,7 +675,7 @@ } } - if (code_seen('N')) { + if (code_seen('N') || code_seen('n')) { nozzle = code_value_float(); if (!WITHIN(nozzle, 0.1, 1.0)) { SERIAL_PROTOCOLLNPGM("?Specified nozzle size not plausible."); diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 43639d99a..90bcacc40 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3741,6 +3741,9 @@ inline void gcode_G28() { // Disable the leveling matrix before homing #if HAS_LEVELING + #if ENABLED(AUTO_BED_LEVELING_UBL) + const bool bed_leveling_state_at_entry = ubl.state.active; + #endif set_bed_leveling_enabled(false); #endif @@ -3882,6 +3885,9 @@ inline void gcode_G28() { // move to a height where we can use the full xy-area do_blocking_move_to_z(delta_clip_start_height); #endif + #if ENABLED(AUTO_BED_LEVELING_UBL) + set_bed_leveling_enabled(bed_leveling_state_at_entry); + #endif clean_up_after_endstop_or_probe_move(); diff --git a/Marlin/least_squares_fit.cpp b/Marlin/least_squares_fit.cpp index 271aae11f..f7b8163e8 100644 --- a/Marlin/least_squares_fit.cpp +++ b/Marlin/least_squares_fit.cpp @@ -52,9 +52,9 @@ void incremental_LSF(struct linear_fit_data *lsf, float x, float y, float z) { lsf->x2bar += sq(x); lsf->y2bar += sq(y); lsf->z2bar += sq(z); - lsf->xybar += sq(x); - lsf->xzbar += sq(x); - lsf->yzbar += sq(y); + lsf->xybar += x*y; + lsf->xzbar += x*z; + lsf->yzbar += y*z; lsf->max_absx = max(fabs(x), lsf->max_absx); lsf->max_absy = max(fabs(y), lsf->max_absy); lsf->n++;