diff --git a/Marlin/src/gcode/motion/M290.cpp b/Marlin/src/gcode/motion/M290.cpp index cdf5c9d6a..35f291ada 100644 --- a/Marlin/src/gcode/motion/M290.cpp +++ b/Marlin/src/gcode/motion/M290.cpp @@ -37,22 +37,17 @@ void GcodeSuite::M290() { for (uint8_t a = X_AXIS; a <= Z_AXIS; a++) if (parser.seenval(axis_codes[a]) || (a == Z_AXIS && parser.seenval('S'))) { const float offs = constrain(parser.value_axis_units((AxisEnum)a), -2, 2); - #if ENABLED(BABYSTEP_ZPROBE_OFFSET) - if (a == Z_AXIS) { - zprobe_zoffset += offs; - refresh_zprobe_zoffset(true); // 'true' to not babystep - } - #endif thermalManager.babystep_axis((AxisEnum)a, offs * planner.axis_steps_per_mm[a]); + #if ENABLED(BABYSTEP_ZPROBE_OFFSET) + zprobe_zoffset += offs; + #endif } #else if (parser.seenval('Z') || parser.seenval('S')) { const float offs = constrain(parser.value_axis_units(Z_AXIS), -2, 2); + thermalManager.babystep_axis(Z_AXIS, offs * planner.axis_steps_per_mm[Z_AXIS]); #if ENABLED(BABYSTEP_ZPROBE_OFFSET) zprobe_zoffset += offs; - refresh_zprobe_zoffset(); // This will babystep the axis - #else - thermalManager.babystep_axis(Z_AXIS, offs * planner.axis_steps_per_mm[Z_AXIS]); #endif } #endif diff --git a/Marlin/src/gcode/probe/M851.cpp b/Marlin/src/gcode/probe/M851.cpp index 6aea1f158..5a84b634b 100644 --- a/Marlin/src/gcode/probe/M851.cpp +++ b/Marlin/src/gcode/probe/M851.cpp @@ -35,7 +35,6 @@ void GcodeSuite::M851() { const float value = parser.value_linear_units(); if (WITHIN(value, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX)) { zprobe_zoffset = value; - refresh_zprobe_zoffset(); SERIAL_ECHO(zprobe_zoffset); } else diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 5b310f6e3..c5118242a 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -1100,8 +1100,6 @@ void kill_screen(const char* lcd_msg) { ENCODER_DIRECTION_NORMAL(); if (encoderPosition) { const int16_t babystep_increment = (int32_t)encoderPosition * (BABYSTEP_MULTIPLICATOR); - encoderPosition = 0; - const float new_zoffset = zprobe_zoffset + planner.steps_to_mm[Z_AXIS] * babystep_increment; if (WITHIN(new_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX)) { @@ -1109,9 +1107,9 @@ void kill_screen(const char* lcd_msg) { thermalManager.babystep_axis(Z_AXIS, babystep_increment); zprobe_zoffset = new_zoffset; - refresh_zprobe_zoffset(true); lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT; } + encoderPosition = 0; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR(MSG_ZPROBE_ZOFFSET), ftostr43sign(zprobe_zoffset)); @@ -1678,11 +1676,6 @@ void kill_screen(const char* lcd_msg) { static void lcd_load_settings() { lcd_completion_feedback(settings.load()); } #endif - #if HAS_BED_PROBE && DISABLED(BABYSTEP_ZPROBE_OFFSET) - static void lcd_refresh_zprobe_zoffset() { refresh_zprobe_zoffset(); } - #endif - - #if ENABLED(LEVEL_BED_CORNERS) /** @@ -2000,7 +1993,7 @@ void kill_screen(const char* lcd_msg) { #if ENABLED(BABYSTEP_ZPROBE_OFFSET) MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE - MENU_ITEM_EDIT_CALLBACK(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX, lcd_refresh_zprobe_zoffset); + MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #endif MENU_ITEM(submenu, MSG_LEVEL_BED, _lcd_level_bed_continue); @@ -3647,7 +3640,7 @@ void kill_screen(const char* lcd_msg) { #if ENABLED(BABYSTEP_ZPROBE_OFFSET) MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE - MENU_ITEM_EDIT_CALLBACK(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX, lcd_refresh_zprobe_zoffset); + MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #endif // M203 / M205 - Feedrate items diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index 65c55c145..404a98761 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -247,10 +247,6 @@ void MarlinSettings::postprocess() { set_z_fade_height(new_z_fade_height); #endif - #if HAS_BED_PROBE - refresh_zprobe_zoffset(); - #endif - #if ENABLED(AUTO_BED_LEVELING_BILINEAR) refresh_bed_level(); //set_bed_leveling_enabled(leveling_is_on); @@ -355,9 +351,8 @@ void MarlinSettings::postprocess() { sizeof(mbl.z_values) == GRID_MAX_POINTS * sizeof(mbl.z_values[0][0]), "MBL Z array is the wrong size." ); - const bool leveling_is_on = mbl.has_mesh; const uint8_t mesh_num_x = GRID_MAX_POINTS_X, mesh_num_y = GRID_MAX_POINTS_Y; - EEPROM_WRITE(leveling_is_on); + EEPROM_WRITE(mbl.has_mesh); EEPROM_WRITE(mbl.z_offset); EEPROM_WRITE(mesh_num_x); EEPROM_WRITE(mesh_num_y); diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp index 046ae0bcb..43ab0f9d9 100644 --- a/Marlin/src/module/probe.cpp +++ b/Marlin/src/module/probe.cpp @@ -640,42 +640,6 @@ float probe_pt(const float &rx, const float &ry, const bool stow, const uint8_t return measured_z; } -void refresh_zprobe_zoffset(const bool no_babystep/*=false*/) { - static float last_zoffset = NAN; - - if (!isnan(last_zoffset)) { - - #if ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(BABYSTEP_ZPROBE_OFFSET) || ENABLED(DELTA) - const float diff = zprobe_zoffset - last_zoffset; - #endif - - #if ENABLED(AUTO_BED_LEVELING_BILINEAR) - // Correct bilinear grid for new probe offset - if (diff) { - for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++) - for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++) - z_values[x][y] -= diff; - } - #if ENABLED(ABL_BILINEAR_SUBDIVISION) - bed_level_virt_interpolate(); - #endif - #endif - - #if ENABLED(BABYSTEP_ZPROBE_OFFSET) - if (!no_babystep && planner.leveling_active) - thermalManager.babystep_axis(Z_AXIS, -LROUND(diff * planner.axis_steps_per_mm[Z_AXIS])); - #else - UNUSED(no_babystep); - #endif - - #if ENABLED(DELTA) // correct the delta_height - delta_height -= diff; - #endif - } - - last_zoffset = zprobe_zoffset; -} - #if HAS_Z_SERVO_ENDSTOP void servo_probe_init() { diff --git a/Marlin/src/module/probe.h b/Marlin/src/module/probe.h index 3a8c3d442..012d3d801 100644 --- a/Marlin/src/module/probe.h +++ b/Marlin/src/module/probe.h @@ -34,7 +34,6 @@ float probe_pt(const float &rx, const float &ry, const bool, const uint8_t, cons #if HAS_BED_PROBE extern float zprobe_zoffset; - void refresh_zprobe_zoffset(const bool no_babystep=false); #define DEPLOY_PROBE() set_probe_deployed(true) #define STOW_PROBE() set_probe_deployed(false) #else