From 6a568c5a20f9cb48d79cfc37774f8cb769f308c5 Mon Sep 17 00:00:00 2001 From: Brian Kahl Date: Tue, 31 Aug 2021 10:28:34 -0500 Subject: [PATCH] Adding Probe wizard --- Marlin/Configuration_adv.h | 10 +++++++--- Marlin/src/lcd/language/language_en.h | 1 + Marlin/src/lcd/menu/menu_motion.cpp | 14 ++++++++++++++ Marlin/src/lcd/menu/menu_probe_offset.cpp | 6 ++++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 881882193..314bf6f91 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1258,17 +1258,21 @@ // Add Probe Z Offset calibration to the Z Probe Offsets menu #if HAS_BED_PROBE - //#define PROBE_OFFSET_WIZARD + #define PROBE_OFFSET_WIZARD #if ENABLED(PROBE_OFFSET_WIZARD) // // Enable to init the Probe Z-Offset when starting the Wizard. // Use a height slightly above the estimated nozzle-to-probe Z offset. // For example, with an offset of -5, consider a starting height of -4. // - //#define PROBE_OFFSET_WIZARD_START_Z -4.0 + #define PROBE_OFFSET_WIZARD_START_Z 1.0 // Set a convenient position to do the calibration (probing point and nozzle/bed-distance) - //#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } + #if ANY(Sidekick_289, Sidekick_747) + #define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } + #else + #define PROBE_OFFSET_WIZARD_XY_POS { -4, -4 } + #endif #endif #endif diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 4d1d95bcb..437a44653 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -290,6 +290,7 @@ namespace Language_en { PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Nozzle ~"); PROGMEM Language_Str MSG_NOZZLE_PARKED = _UxGT("Nozzle Parked"); PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Nozzle Standby"); + PROGMEM Language_Str MSG_NOZZLE_CLEAN = _UxGT("Clean Nozzle"); PROGMEM Language_Str MSG_BED = _UxGT("Bed"); PROGMEM Language_Str MSG_CHAMBER = _UxGT("Enclosure"); PROGMEM Language_Str MSG_COOLER = _UxGT("Laser Coolant"); diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 26c045ad0..7dd1bc655 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -385,6 +385,20 @@ void menu_motion() { GCODES_ITEM(MSG_AUTO_Z_ALIGN, PSTR("G34")); #endif + // + // Clean Nozzle + // + #if defined(NOZZLE_CLEAN_FEATURE) + GCODES_ITEM(MSG_NOZZLE_CLEAN, PSTR("G28O\nM117 cleaning Nozzle\nG12\nM77\nM117 Nozzle Clean")); + #endif + + // + // Z Probe Wizard + // + #if ENABLED(PROBE_OFFSET_WIZARD) + SUBMENU(MSG_PROBE_WIZARD, goto_probe_offset_wizard); + #endif + // // Assisted Bed Tramming // diff --git a/Marlin/src/lcd/menu/menu_probe_offset.cpp b/Marlin/src/lcd/menu/menu_probe_offset.cpp index 5ed217131..4d834ae6a 100644 --- a/Marlin/src/lcd/menu/menu_probe_offset.cpp +++ b/Marlin/src/lcd/menu/menu_probe_offset.cpp @@ -80,7 +80,7 @@ void probe_offset_wizard_menu() { STATIC_ITEM_P(PSTR("Z="), SS_CENTER, ftostr42_52(current_position.z)); STATIC_ITEM(MSG_ZPROBE_ZOFFSET, SS_LEFT, ftostr42_52(calculated_z_offset)); - SUBMENU(MSG_MOVE_1MM, []{ _goto_manual_move_z( 1); }); + //SUBMENU(MSG_MOVE_1MM, []{ _goto_manual_move_z( 1); }); SUBMENU(MSG_MOVE_01MM, []{ _goto_manual_move_z( 0.1f); }); if ((FINE_MANUAL_MOVE) > 0.0f && (FINE_MANUAL_MOVE) < 0.1f) { @@ -131,6 +131,7 @@ void prepare_for_probe_offset_wizard() { #endif // Get X and Y from configuration, or use center constexpr xy_pos_t wizard_pos = PROBE_OFFSET_WIZARD_XY_POS; + constexpr xy_pos_t wizard_pos_center = XY_CENTER; // Probe for Z reference ui.wait_for_move = true; @@ -146,7 +147,8 @@ void prepare_for_probe_offset_wizard() { // Move Nozzle to Probing/Homing Position ui.wait_for_move = true; - current_position += probe.offset_xy; + do_blocking_move_to_xy(wizard_pos_center); // move to center of bed + //current_position += probe.offset_xy; line_to_current_position(MMM_TO_MMS(XY_PROBE_FEEDRATE)); ui.synchronize(GET_TEXT(MSG_PROBE_WIZARD_MOVING)); ui.wait_for_move = false;