diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 9a6661e97e..0832721c19 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1617,7 +1617,7 @@ #define XATC_Z_OFFSETS { 0, 0, 0 } // Z offsets for X axis sample points #endif - #endif + #endif // HAS_BED_PROBE // Include a page of printer information in the LCD Main Menu //#define LCD_INFO_MENU @@ -3609,7 +3609,13 @@ //#define SPI_ENDSTOPS // TMC2130, TMC2240, and TMC5160 //#define IMPROVE_HOMING_RELIABILITY //#define SENSORLESS_STALLGUARD_DELAY 0 // (ms) Delay to allow drivers to settle - #endif + + #if HAS_MARLINUI_MENU + // Convenient homing menu items next to Sensorless Homing edit items + //#define SENSORLESS_HOMING_TEST_MENU_ITEMS + #endif + + #endif // SENSORLESS_HOMING || SENSORLESS_PROBING // @section tmc/config diff --git a/Marlin/src/lcd/menu/menu_tmc.cpp b/Marlin/src/lcd/menu/menu_tmc.cpp index 2ddb38f3a4..6142ffaebb 100644 --- a/Marlin/src/lcd/menu/menu_tmc.cpp +++ b/Marlin/src/lcd/menu/menu_tmc.cpp @@ -86,25 +86,29 @@ void menu_tmc_current() { #if ENABLED(SENSORLESS_HOMING) - #define TMC_EDIT_STORED_SGT(ST) EDIT_ITEM_F(int4, F(STR_##ST), &stepper##ST.stored.homing_thrs, stepper##ST.sgt_min, stepper##ST.sgt_max, []{ stepper##ST.refresh_homing_thrs(); }); + #define TMC_EDIT_STORED_SGT(ST) EDIT_ITEM_F(int4, F(STR_##ST), &stepper##ST.stored.homing_thrs, stepper##ST.sgt_min, stepper##ST.sgt_max, []{ stepper##ST.refresh_homing_thrs(); }) + #define TMC_HOME_TEST(N) TERN_(SENSORLESS_HOMING_TEST_MENU_ITEMS, GCODES_ITEM_N(N##_AXIS, MSG_AUTO_HOME_N, F("G28" STR_##N))) void menu_tmc_homing_thrs() { START_MENU(); BACK_ITEM(MSG_TMC_DRIVERS); TERN_( X_SENSORLESS, TMC_EDIT_STORED_SGT(X)); - TERN_(X2_SENSORLESS, TMC_EDIT_STORED_SGT(X2)); + TERN_(X2_SENSORLESS, TMC_EDIT_STORED_SGT(X2)); TERN_( X_SENSORLESS, TMC_HOME_TEST(X)); TERN_( Y_SENSORLESS, TMC_EDIT_STORED_SGT(Y)); - TERN_(Y2_SENSORLESS, TMC_EDIT_STORED_SGT(Y2)); + TERN_(Y2_SENSORLESS, TMC_EDIT_STORED_SGT(Y2)); TERN_( Y_SENSORLESS, TMC_HOME_TEST(Y)); TERN_( Z_SENSORLESS, TMC_EDIT_STORED_SGT(Z)); TERN_(Z2_SENSORLESS, TMC_EDIT_STORED_SGT(Z2)); TERN_(Z3_SENSORLESS, TMC_EDIT_STORED_SGT(Z3)); - TERN_(Z4_SENSORLESS, TMC_EDIT_STORED_SGT(Z4)); + TERN_(Z4_SENSORLESS, TMC_EDIT_STORED_SGT(Z4)); TERN_( Z_SENSORLESS, TMC_HOME_TEST(Z)); TERN_( I_SENSORLESS, TMC_EDIT_STORED_SGT(I)); - TERN_( J_SENSORLESS, TMC_EDIT_STORED_SGT(J)); - TERN_( K_SENSORLESS, TMC_EDIT_STORED_SGT(K)); - TERN_( U_SENSORLESS, TMC_EDIT_STORED_SGT(U)); - TERN_( V_SENSORLESS, TMC_EDIT_STORED_SGT(V)); - TERN_( W_SENSORLESS, TMC_EDIT_STORED_SGT(W)); + TERN_( J_SENSORLESS, TMC_EDIT_STORED_SGT(J)); TERN_( J_SENSORLESS, TMC_HOME_TEST(J)); + TERN_( K_SENSORLESS, TMC_EDIT_STORED_SGT(K)); TERN_( K_SENSORLESS, TMC_HOME_TEST(K)); + TERN_( U_SENSORLESS, TMC_EDIT_STORED_SGT(U)); TERN_( U_SENSORLESS, TMC_HOME_TEST(U)); + TERN_( V_SENSORLESS, TMC_EDIT_STORED_SGT(V)); TERN_( V_SENSORLESS, TMC_HOME_TEST(V)); + TERN_( W_SENSORLESS, TMC_EDIT_STORED_SGT(W)); TERN_( W_SENSORLESS, TMC_HOME_TEST(W)); + + TERN_(SENSORLESS_HOMING_TEST_MENU_ITEMS, GCODES_ITEM(MSG_DISABLE_STEPPERS, F("M84"))); + END_MENU(); }