From ade6dbf01eb2c1d58bf526e0f7bc993f190f38ef Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 18 May 2025 21:13:30 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Fix=20Speed/Flow=20edit=20option?= =?UTF-8?q?s=20(#27863)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #27849 --- Marlin/Configuration_adv.h | 5 +++-- Marlin/src/inc/Conditionals-2-LCD.h | 3 --- Marlin/src/inc/Conditionals-3-etc.h | 5 ----- Marlin/src/inc/Conditionals-4-adv.h | 4 ++++ Marlin/src/lcd/extui/ui_api.cpp | 4 ++-- Marlin/src/lcd/menu/menu_bed_tramming.cpp | 15 ++++++++------- Marlin/src/module/motion.cpp | 2 +- Marlin/src/module/motion.h | 5 ++++- Marlin/src/module/probe.cpp | 2 +- 9 files changed, 23 insertions(+), 22 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 762ae2aa81..60e5378c30 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1673,11 +1673,12 @@ #endif // HAS_DISPLAY -#if HAS_FEEDRATE_EDIT +// Some displays offer Feedrate / Flow editing. +#if ANY(HAS_MARLINUI_MENU, DWIN_CREALITY_LCD, DWIN_LCD_PROUI, MALYAN_LCD, TOUCH_SCREEN, ULTIPANEL_FEEDMULTIPLY) #define SPEED_EDIT_MIN 10 // (%) Feedrate percentage edit range minimum #define SPEED_EDIT_MAX 999 // (%) Feedrate percentage edit range maximum #endif -#if HAS_FLOW_EDIT +#if ANY(HAS_MARLINUI_MENU, DWIN_CREALITY_LCD, DWIN_LCD_PROUI, MALYAN_LCD, TOUCH_SCREEN) #define FLOW_EDIT_MIN 10 // (%) Flow percentage edit range minimum #define FLOW_EDIT_MAX 999 // (%) Flow percentage edit range maximum #endif diff --git a/Marlin/src/inc/Conditionals-2-LCD.h b/Marlin/src/inc/Conditionals-2-LCD.h index 2bf663b6f0..362ca7a714 100644 --- a/Marlin/src/inc/Conditionals-2-LCD.h +++ b/Marlin/src/inc/Conditionals-2-LCD.h @@ -667,9 +667,6 @@ #if HAS_EXTRUDERS && ANY(HAS_MARLINUI_MENU, DWIN_CREALITY_LCD, DWIN_LCD_PROUI, MALYAN_LCD, TOUCH_SCREEN) #define HAS_FLOW_EDIT 1 #endif -#if ANY(HAS_MARLINUI_MENU, ULTIPANEL_FEEDMULTIPLY, DWIN_CREALITY_LCD, DWIN_LCD_PROUI, MALYAN_LCD, TOUCH_SCREEN) - #define HAS_FEEDRATE_EDIT 1 -#endif /** * TFT Displays diff --git a/Marlin/src/inc/Conditionals-3-etc.h b/Marlin/src/inc/Conditionals-3-etc.h index b361a50a58..00bff0e072 100644 --- a/Marlin/src/inc/Conditionals-3-etc.h +++ b/Marlin/src/inc/Conditionals-3-etc.h @@ -560,11 +560,6 @@ #undef Z_CLEARANCE_DEPLOY_PROBE #endif -#if !(ANY(HAS_BED_PROBE, BACKLASH_GCODE) || (ENABLED(EXTENSIBLE_UI) && ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL))) - #undef Z_PROBE_FEEDRATE_FAST - #undef Z_PROBE_FEEDRATE_SLOW -#endif - /** * Z_CLEARANCE_FOR_HOMING */ diff --git a/Marlin/src/inc/Conditionals-4-adv.h b/Marlin/src/inc/Conditionals-4-adv.h index 629ee98273..a0eaa7081c 100644 --- a/Marlin/src/inc/Conditionals-4-adv.h +++ b/Marlin/src/inc/Conditionals-4-adv.h @@ -105,6 +105,10 @@ #endif #endif +#if !(ANY(HAS_BED_PROBE, BACKLASH_GCODE) || (ENABLED(EXTENSIBLE_UI) && ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL))) + #undef Z_PROBE_FEEDRATE_FAST + #undef Z_PROBE_FEEDRATE_SLOW +#endif #if !HAS_BED_PROBE #undef BABYSTEP_ZPROBE_OFFSET #undef PROBING_USE_CURRENT_HOME diff --git a/Marlin/src/lcd/extui/ui_api.cpp b/Marlin/src/lcd/extui/ui_api.cpp index 5380b05596..badb3335a3 100644 --- a/Marlin/src/lcd/extui/ui_api.cpp +++ b/Marlin/src/lcd/extui/ui_api.cpp @@ -887,14 +887,14 @@ namespace ExtUI { y_target = MESH_MIN_Y + pos.y * (MESH_Y_DIST); if (x_target != current_position.x || y_target != current_position.y) { // If moving across bed, raise nozzle to safe height over bed - feedrate_mm_s = MMM_TO_MMS(Z_PROBE_FEEDRATE_FAST); + feedrate_mm_s = z_probe_fast_mm_s; destination.set(current_position.x, current_position.y, Z_CLEARANCE_BETWEEN_PROBES); prepare_line_to_destination(); if (XY_PROBE_FEEDRATE_MM_S) feedrate_mm_s = XY_PROBE_FEEDRATE_MM_S; destination.set(x_target, y_target); prepare_line_to_destination(); } - feedrate_mm_s = MMM_TO_MMS(Z_PROBE_FEEDRATE_FAST); + feedrate_mm_s = z_probe_fast_mm_s; destination.z = z; prepare_line_to_destination(); #else diff --git a/Marlin/src/lcd/menu/menu_bed_tramming.cpp b/Marlin/src/lcd/menu/menu_bed_tramming.cpp index d749763808..0d5feddce6 100644 --- a/Marlin/src/lcd/menu/menu_bed_tramming.cpp +++ b/Marlin/src/lcd/menu/menu_bed_tramming.cpp @@ -230,11 +230,12 @@ static void _lcd_goto_next_corner() { ); } + // Probe down and return 'true' if the probe triggered bool _lcd_bed_tramming_probe(const bool verify=false) { - if (verify) line_to_z(current_position.z + (BED_TRAMMING_Z_HOP)); // do clearance if needed - TERN_(BLTOUCH, if (!bltouch.high_speed_mode) bltouch.deploy()); // Deploy in LOW SPEED MODE on every probe action - do_blocking_move_to_z(last_z - BED_TRAMMING_PROBE_TOLERANCE, MMM_TO_MMS(Z_PROBE_FEEDRATE_SLOW)); // Move down to lower tolerance - if (TEST(endstops.trigger_state(), Z_MIN_PROBE)) { // check if probe triggered + if (verify) line_to_z(current_position.z + (BED_TRAMMING_Z_HOP)); // Do clearance if needed + TERN_(BLTOUCH, if (!bltouch.high_speed_mode) bltouch.deploy()); // Deploy in LOW SPEED MODE on every probe action + do_blocking_move_to_z(last_z - BED_TRAMMING_PROBE_TOLERANCE, z_probe_slow_mm_s); // Move down to lower tolerance + if (TEST(endstops.trigger_state(), Z_MIN_PROBE)) { // Probe triggered? endstops.hit_on_purpose(); set_current_from_steppers_for_axis(Z_AXIS); sync_plan_position(); @@ -251,10 +252,10 @@ static void _lcd_goto_next_corner() { if (TERN0(NEEDS_PROBE_DEPLOY, good_points == nr_edge_points - 1)) do_z_clearance(BED_TRAMMING_Z_HOP); - return true; // probe triggered + return true; // Triggered } - line_to_z(last_z); // go back to tolerance middle point before raise - return false; // probe not triggered + line_to_z(last_z); // Go back to tolerance middle point before raise + return false; // Not triggered } bool _lcd_bed_tramming_raise() { diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index fcaaf613e4..f2f27ee6a9 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1990,7 +1990,7 @@ void prepare_line_to_destination() { */ feedRate_t get_homing_bump_feedrate(const AxisEnum axis) { #if HOMING_Z_WITH_PROBE - if (axis == Z_AXIS) return MMM_TO_MMS(Z_PROBE_FEEDRATE_SLOW); + if (axis == Z_AXIS) return z_probe_slow_mm_s; #endif static const uint8_t homing_bump_divisor[] PROGMEM = HOMING_BUMP_DIVISOR; uint8_t hbd = pgm_read_byte(&homing_bump_divisor[axis]); diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index 4245331010..edee41a903 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -71,7 +71,10 @@ extern xyz_pos_t cartes; #define XY_PROBE_FEEDRATE_MM_S PLANNER_XY_FEEDRATE_MM_S #endif -#if HAS_BED_PROBE +#ifdef Z_PROBE_FEEDRATE_SLOW + constexpr feedRate_t z_probe_slow_mm_s = MMM_TO_MMS(Z_PROBE_FEEDRATE_SLOW); +#endif +#ifdef Z_PROBE_FEEDRATE_FAST constexpr feedRate_t z_probe_fast_mm_s = MMM_TO_MMS(Z_PROBE_FEEDRATE_FAST); #endif diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp index 9a998ec569..b1f1f2cf40 100644 --- a/Marlin/src/module/probe.cpp +++ b/Marlin/src/module/probe.cpp @@ -854,7 +854,7 @@ float Probe::run_z_probe(const bool sanity_check/*=true*/, const_float_t z_min_p // Probe downward slowly to find the bed if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Slow Probe:"); - if (try_to_probe(PSTR("SLOW"), z_probe_low_point, MMM_TO_MMS(Z_PROBE_FEEDRATE_SLOW), sanity_check)) return NAN; + if (try_to_probe(PSTR("SLOW"), z_probe_low_point, z_probe_slow_mm_s, sanity_check)) return NAN; TERN_(MEASURE_BACKLASH_WHEN_PROBING, backlash.measure_with_probe());