Browse Source

Reorganized ultralcd menu (10317) (#10360)

Replaced "Prepare" and "Control" menus with "Movement", "Temperature", "Configuration" and "Advanced Settings"
Marcio Teixeira 7 years ago
parent
commit
0966bdcbc4
2 changed files with 190 additions and 199 deletions
  1. 6
    0
      Marlin/src/lcd/language/language_en.h
  2. 184
    199
      Marlin/src/lcd/ultralcd.cpp

+ 6
- 0
Marlin/src/lcd/language/language_en.h View File

@@ -61,6 +61,12 @@
61 61
 #ifndef MSG_MAIN
62 62
   #define MSG_MAIN                            _UxGT("Main")
63 63
 #endif
64
+#ifndef MSG_ADVANCED_SETTINGS
65
+  #define MSG_ADVANCED_SETTINGS               _UxGT("Advanced Settings")
66
+#endif
67
+#ifndef MSG_CONFIGURATION
68
+  #define MSG_CONFIGURATION                   _UxGT("Configuration")
69
+#endif
64 70
 #ifndef MSG_AUTOSTART
65 71
   #define MSG_AUTOSTART                       _UxGT("Autostart")
66 72
 #endif

+ 184
- 199
Marlin/src/lcd/ultralcd.cpp View File

@@ -181,19 +181,19 @@ uint16_t max_display_update_time = 0;
181 181
 
182 182
   void lcd_main_menu();
183 183
   void lcd_tune_menu();
184
-  void lcd_prepare_menu();
184
+  void lcd_movement_menu();
185 185
   void lcd_move_menu();
186
-  void lcd_control_menu();
187
-  void lcd_control_temperature_menu();
188
-  void lcd_control_motion_menu();
186
+  void lcd_configuration_menu();
187
+  void lcd_temperature_menu();
188
+  void lcd_advanced_settings_menu();
189 189
 
190 190
   #if DISABLED(SLIM_LCD_MENUS)
191
-    void lcd_control_temperature_preheat_material1_settings_menu();
192
-    void lcd_control_temperature_preheat_material2_settings_menu();
191
+    void lcd_configuration_temperature_preheat_material1_settings_menu();
192
+    void lcd_configuration_temperature_preheat_material2_settings_menu();
193 193
   #endif
194 194
 
195 195
   #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
196
-    void lcd_control_filament_menu();
196
+    void lcd_advanced_filament_menu();
197 197
   #endif
198 198
 
199 199
   #if ENABLED(LCD_INFO_MENU)
@@ -226,7 +226,7 @@ uint16_t max_display_update_time = 0;
226 226
 
227 227
   #if ENABLED(FWRETRACT)
228 228
     #include "../feature/fwretract.h"
229
-    void lcd_control_retract_menu();
229
+    void lcd_config_retract_menu();
230 230
   #endif
231 231
 
232 232
   #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
@@ -1093,6 +1093,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
1093 1093
    *
1094 1094
    */
1095 1095
 
1096
+  #if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART)
1097
+
1098
+    void lcd_autostart_sd() { card.beginautostart(); }
1099
+
1100
+  #endif
1101
+
1096 1102
   void lcd_main_menu() {
1097 1103
     START_MENU();
1098 1104
     MENU_BACK(MSG_WATCH);
@@ -1119,13 +1125,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
1119 1125
         MENU_ITEM_EDIT_CALLBACK(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light);
1120 1126
     #endif
1121 1127
 
1122
-    if (planner.movesplanned() || IS_SD_PRINTING)
1123
-      MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
1124
-    else
1125
-      MENU_ITEM(submenu, MSG_PREPARE, lcd_prepare_menu);
1126
-
1127
-    MENU_ITEM(submenu, MSG_CONTROL, lcd_control_menu);
1128
-
1129 1128
     #if ENABLED(SDSUPPORT)
1130 1129
       if (card.cardOK) {
1131 1130
         if (card.isFileOpen()) {
@@ -1150,6 +1149,25 @@ void lcd_quick_feedback(const bool clear_buttons) {
1150 1149
       }
1151 1150
     #endif // SDSUPPORT
1152 1151
 
1152
+    if (planner.movesplanned() || IS_SD_PRINTING)
1153
+      MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
1154
+    else {
1155
+      MENU_ITEM(submenu, MSG_MOTION, lcd_movement_menu);
1156
+      MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_temperature_menu);
1157
+      MENU_ITEM(submenu, MSG_CONFIGURATION, lcd_configuration_menu);
1158
+    }
1159
+
1160
+    #if ENABLED(ADVANCED_PAUSE_FEATURE)
1161
+      #if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES)
1162
+        if (thermalManager.targetHotEnoughToExtrude(active_extruder))
1163
+          MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600 B0"));
1164
+        else
1165
+          MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_temp_menu_e0_filament_change);
1166
+      #else
1167
+        MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_change_filament_menu);
1168
+      #endif
1169
+    #endif
1170
+
1153 1171
     #if ENABLED(LCD_INFO_MENU)
1154 1172
       MENU_ITEM(submenu, MSG_INFO_MENU, lcd_info_menu);
1155 1173
     #endif
@@ -1158,6 +1176,23 @@ void lcd_quick_feedback(const bool clear_buttons) {
1158 1176
       MENU_ITEM(submenu, MSG_LED_CONTROL, lcd_led_menu);
1159 1177
     #endif
1160 1178
 
1179
+    //
1180
+    // Switch power on/off
1181
+    //
1182
+    #if HAS_POWER_SWITCH
1183
+      if (powersupply_on)
1184
+        MENU_ITEM(gcode, MSG_SWITCH_PS_OFF, PSTR("M81"));
1185
+      else
1186
+        MENU_ITEM(gcode, MSG_SWITCH_PS_ON, PSTR("M80"));
1187
+    #endif
1188
+
1189
+    //
1190
+    // Autostart
1191
+    //
1192
+    #if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART)
1193
+      MENU_ITEM(function, MSG_AUTOSTART, lcd_autostart_sd);
1194
+    #endif
1195
+
1161 1196
     END_MENU();
1162 1197
   }
1163 1198
 
@@ -1167,17 +1202,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
1167 1202
    *
1168 1203
    */
1169 1204
 
1170
-  #if HAS_M206_COMMAND
1171
-    /**
1172
-     * Set the home offset based on the current_position
1173
-     */
1174
-    void lcd_set_home_offsets() {
1175
-      // M428 Command
1176
-      enqueue_and_echo_commands_P(PSTR("M428"));
1177
-      lcd_return_to_status();
1178
-    }
1179
-  #endif
1180
-
1181 1205
   #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) || ENABLED(MESH_EDIT_GFX_OVERLAY)
1182 1206
 
1183 1207
     void _lcd_zoffset_overlay_gfx(const float zvalue) {
@@ -1511,20 +1535,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
1511 1535
       #endif
1512 1536
     #endif
1513 1537
 
1514
-    //
1515
-    // Change filament
1516
-    //
1517
-    #if ENABLED(ADVANCED_PAUSE_FEATURE)
1518
-      #if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES)
1519
-        if (thermalManager.targetHotEnoughToExtrude(active_extruder))
1520
-          MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600 B0"));
1521
-        else
1522
-          MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_temp_menu_e0_filament_change);
1523
-      #else
1524
-        MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_change_filament_menu);
1525
-      #endif
1526
-    #endif
1527
-
1528 1538
     END_MENU();
1529 1539
   }
1530 1540
 
@@ -1578,7 +1588,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
1578 1588
 
1579 1589
   /**
1580 1590
    *
1581
-   * "Prepare" submenu items
1591
+   * "Temperature" submenu items
1582 1592
    *
1583 1593
    */
1584 1594
   void _lcd_preheat(const int16_t endnum, const int16_t temph, const int16_t tempb, const int16_t fan) {
@@ -1691,7 +1701,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
1691 1701
 
1692 1702
     void lcd_preheat_m1_menu() {
1693 1703
       START_MENU();
1694
-      MENU_BACK(MSG_PREPARE);
1704
+      MENU_BACK(MSG_TEMPERATURE);
1695 1705
       #if HOTENDS == 1
1696 1706
         #if HAS_HEATED_BED
1697 1707
           MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_m1_e0);
@@ -1743,7 +1753,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
1743 1753
 
1744 1754
     void lcd_preheat_m2_menu() {
1745 1755
       START_MENU();
1746
-      MENU_BACK(MSG_PREPARE);
1756
+      MENU_BACK(MSG_TEMPERATURE);
1747 1757
       #if HOTENDS == 1
1748 1758
         #if HAS_HEATED_BED
1749 1759
           MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_m2_e0);
@@ -1823,12 +1833,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
1823 1833
 
1824 1834
   #endif
1825 1835
 
1826
-  #if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART)
1827
-
1828
-    void lcd_autostart_sd() { card.beginautostart(); }
1829
-
1830
-  #endif
1831
-
1832 1836
   #if ENABLED(EEPROM_SETTINGS)
1833 1837
     static void lcd_store_settings()   { lcd_completion_feedback(settings.save()); }
1834 1838
     static void lcd_load_settings()    { lcd_completion_feedback(settings.load()); }
@@ -1898,7 +1902,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
1898 1902
 
1899 1903
     /**
1900 1904
      *
1901
-     * "Prepare" > "Level Bed" handlers
1905
+     * "Motion" > "Level Bed" handlers
1902 1906
      *
1903 1907
      */
1904 1908
 
@@ -2545,7 +2549,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2545 2549
     /**
2546 2550
      * UBL System submenu
2547 2551
      *
2548
-     * << Prepare
2552
+     * << Motion
2549 2553
      *  - Manually Build Mesh >>
2550 2554
      *  - Activate UBL >>
2551 2555
      *  - Deactivate UBL >>
@@ -2558,7 +2562,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2558 2562
 
2559 2563
     void _lcd_ubl_level_bed() {
2560 2564
       START_MENU();
2561
-      MENU_BACK(MSG_PREPARE);
2565
+      MENU_BACK(MSG_MOTION);
2562 2566
       MENU_ITEM(gcode, MSG_UBL_ACTIVATE_MESH, PSTR("G29 A"));
2563 2567
       MENU_ITEM(gcode, MSG_UBL_DEACTIVATE_MESH, PSTR("G29 D"));
2564 2568
       MENU_ITEM(submenu, MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step);
@@ -2585,7 +2589,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2585 2589
     /**
2586 2590
      * Step 1: Bed Level entry-point
2587 2591
      *
2588
-     * << Prepare
2592
+     * << Motion
2589 2593
      *    Auto Home           (if homing needed)
2590 2594
      *    Leveling On/Off     (if data exists, and homed)
2591 2595
      *    Fade Height: ---    (Req: ENABLE_LEVELING_FADE_HEIGHT)
@@ -2598,7 +2602,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2598 2602
      */
2599 2603
     void lcd_bed_leveling() {
2600 2604
       START_MENU();
2601
-      MENU_BACK(MSG_PREPARE);
2605
+      MENU_BACK(MSG_MOTION);
2602 2606
 
2603 2607
       const bool is_homed = all_axes_known();
2604 2608
 
@@ -2656,11 +2660,11 @@ void lcd_quick_feedback(const bool clear_buttons) {
2656 2660
 
2657 2661
   /**
2658 2662
    *
2659
-   * "Prepare" submenu
2663
+   * "Movement" submenu
2660 2664
    *
2661 2665
    */
2662 2666
 
2663
-  void lcd_prepare_menu() {
2667
+  void lcd_movement_menu() {
2664 2668
     START_MENU();
2665 2669
 
2666 2670
     //
@@ -2727,92 +2731,11 @@ void lcd_quick_feedback(const bool clear_buttons) {
2727 2731
         MENU_ITEM(function, MSG_LEVEL_CORNERS, _lcd_level_bed_corners);
2728 2732
     #endif
2729 2733
 
2730
-    #if HAS_M206_COMMAND && DISABLED(SLIM_LCD_MENUS)
2731
-      //
2732
-      // Set Home Offsets
2733
-      //
2734
-      MENU_ITEM(function, MSG_SET_HOME_OFFSETS, lcd_set_home_offsets);
2735
-    #endif
2736
-
2737 2734
     //
2738 2735
     // Disable Steppers
2739 2736
     //
2740 2737
     MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84"));
2741 2738
 
2742
-    //
2743
-    // Change filament
2744
-    //
2745
-    #if ENABLED(ADVANCED_PAUSE_FEATURE)
2746
-      if (!IS_SD_FILE_OPEN) {
2747
-        #if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES)
2748
-          if (thermalManager.targetHotEnoughToExtrude(active_extruder))
2749
-            MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600 B0"));
2750
-          else
2751
-            MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_temp_menu_e0_filament_change);
2752
-        #else
2753
-          MENU_ITEM(submenu, MSG_FILAMENTCHANGE, lcd_change_filament_menu);
2754
-        #endif
2755
-      }
2756
-    #endif // ADVANCED_PAUSE_FEATURE
2757
-
2758
-    #if HAS_TEMP_HOTEND
2759
-
2760
-      //
2761
-      // Cooldown
2762
-      //
2763
-      bool has_heat = false;
2764
-      HOTEND_LOOP() if (thermalManager.target_temperature[HOTEND_INDEX]) { has_heat = true; break; }
2765
-      #if HAS_HEATED_BED
2766
-        if (thermalManager.target_temperature_bed) has_heat = true;
2767
-      #endif
2768
-      if (has_heat) MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
2769
-
2770
-      //
2771
-      // Preheat for Material 1 and 2
2772
-      //
2773
-      #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_4 != 0 || HAS_HEATED_BED
2774
-        MENU_ITEM(submenu, MSG_PREHEAT_1, lcd_preheat_m1_menu);
2775
-        MENU_ITEM(submenu, MSG_PREHEAT_2, lcd_preheat_m2_menu);
2776
-      #else
2777
-        MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_m1_e0_only);
2778
-        MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_m2_e0_only);
2779
-      #endif
2780
-
2781
-    #endif // HAS_TEMP_HOTEND
2782
-
2783
-    //
2784
-    // BLTouch Self-Test and Reset
2785
-    //
2786
-    #if ENABLED(BLTOUCH)
2787
-      MENU_ITEM(gcode, MSG_BLTOUCH_SELFTEST, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_SELFTEST)));
2788
-      if (!endstops.z_probe_enabled && TEST_BLTOUCH())
2789
-        MENU_ITEM(gcode, MSG_BLTOUCH_RESET, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_RESET)));
2790
-    #endif
2791
-
2792
-    //
2793
-    // Switch power on/off
2794
-    //
2795
-    #if HAS_POWER_SWITCH
2796
-      if (powersupply_on)
2797
-        MENU_ITEM(gcode, MSG_SWITCH_PS_OFF, PSTR("M81"));
2798
-      else
2799
-        MENU_ITEM(gcode, MSG_SWITCH_PS_ON, PSTR("M80"));
2800
-    #endif
2801
-
2802
-    //
2803
-    // Autostart
2804
-    //
2805
-    #if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART)
2806
-      MENU_ITEM(function, MSG_AUTOSTART, lcd_autostart_sd);
2807
-    #endif
2808
-
2809
-    //
2810
-    // Delta Calibration
2811
-    //
2812
-    #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
2813
-      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
2814
-    #endif
2815
-
2816 2739
     END_MENU();
2817 2740
   }
2818 2741
 
@@ -2991,7 +2914,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2991 2914
 
2992 2915
   /**
2993 2916
    *
2994
-   * "Prepare" > "Move Axis" submenu
2917
+   * "Motion" > "Move Axis" submenu
2995 2918
    *
2996 2919
    */
2997 2920
 
@@ -3143,7 +3066,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
3143 3066
 
3144 3067
   /**
3145 3068
    *
3146
-   * "Prepare" > "Move Xmm" > "Move XYZ" submenu
3069
+   * "Motion" > "Move Xmm" > "Move XYZ" submenu
3147 3070
    *
3148 3071
    */
3149 3072
 
@@ -3199,7 +3122,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
3199 3122
 
3200 3123
   /**
3201 3124
    *
3202
-   * "Prepare" > "Move Axis" submenu
3125
+   * "Motion" > "Move Axis" submenu
3203 3126
    *
3204 3127
    */
3205 3128
 
@@ -3221,7 +3144,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
3221 3144
 
3222 3145
   void lcd_move_menu() {
3223 3146
     START_MENU();
3224
-    MENU_BACK(MSG_PREPARE);
3147
+    MENU_BACK(MSG_MOTION);
3225 3148
 
3226 3149
     #if HAS_SOFTWARE_ENDSTOPS && ENABLED(SOFT_ENDSTOPS_MENU_ITEM)
3227 3150
       MENU_ITEM_EDIT(bool, MSG_LCD_SOFT_ENDSTOPS, &soft_endstops_enabled);
@@ -3310,7 +3233,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
3310 3233
 
3311 3234
   /**
3312 3235
    *
3313
-   * "Control" submenu
3236
+   * "Configuration" submenu
3314 3237
    *
3315 3238
    */
3316 3239
 
@@ -3332,30 +3255,31 @@ void lcd_quick_feedback(const bool clear_buttons) {
3332 3255
 
3333 3256
     static void lcd_init_eeprom_confirm() {
3334 3257
       START_MENU();
3335
-      MENU_BACK(MSG_CONTROL);
3258
+      MENU_BACK(MSG_ADVANCED_SETTINGS);
3336 3259
       MENU_ITEM(function, MSG_INIT_EEPROM, lcd_init_eeprom);
3337 3260
       END_MENU();
3338 3261
     }
3339 3262
 
3340 3263
   #endif
3341 3264
 
3342
-  void lcd_control_menu() {
3265
+  void lcd_configuration_menu() {
3343 3266
     START_MENU();
3344 3267
     MENU_BACK(MSG_MAIN);
3345
-    MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu);
3346
-    MENU_ITEM(submenu, MSG_MOTION, lcd_control_motion_menu);
3347 3268
 
3348
-    #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
3349
-      MENU_ITEM(submenu, MSG_FILAMENT, lcd_control_filament_menu);
3350
-    #elif ENABLED(LIN_ADVANCE)
3351
-      MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
3269
+    MENU_ITEM(submenu, MSG_ADVANCED_SETTINGS, lcd_advanced_settings_menu);
3270
+
3271
+    //
3272
+    // Delta Calibration
3273
+    //
3274
+    #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
3275
+      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
3352 3276
     #endif
3353 3277
 
3354 3278
     #if HAS_LCD_CONTRAST
3355 3279
       MENU_ITEM_EDIT_CALLBACK(int3, MSG_CONTRAST, &lcd_contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX, lcd_callback_set_contrast, true);
3356 3280
     #endif
3357 3281
     #if ENABLED(FWRETRACT)
3358
-      MENU_ITEM(submenu, MSG_RETRACT, lcd_control_retract_menu);
3282
+      MENU_ITEM(submenu, MSG_RETRACT, lcd_config_retract_menu);
3359 3283
     #endif
3360 3284
     #if ENABLED(DAC_STEPPER_CURRENT)
3361 3285
       MENU_ITEM(submenu, MSG_DRIVE_STRENGTH, lcd_dac_menu);
@@ -3368,6 +3292,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
3368 3292
       MENU_ITEM(submenu, MSG_BLTOUCH, bltouch_menu);
3369 3293
     #endif
3370 3294
 
3295
+    #if DISABLED(SLIM_LCD_MENUS)
3296
+      // Preheat configurations
3297
+      MENU_ITEM(submenu, MSG_PREHEAT_1_SETTINGS, lcd_configuration_temperature_preheat_material1_settings_menu);
3298
+      MENU_ITEM(submenu, MSG_PREHEAT_2_SETTINGS, lcd_configuration_temperature_preheat_material2_settings_menu);
3299
+    #endif
3300
+
3371 3301
     #if ENABLED(EEPROM_SETTINGS)
3372 3302
       MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
3373 3303
       MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
@@ -3375,10 +3305,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
3375 3305
 
3376 3306
     MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings);
3377 3307
 
3378
-    #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
3379
-      MENU_ITEM(submenu, MSG_INIT_EEPROM, lcd_init_eeprom_confirm);
3380
-    #endif
3381
-
3382 3308
     END_MENU();
3383 3309
   }
3384 3310
 
@@ -3464,16 +3390,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
3464 3390
 
3465 3391
   /**
3466 3392
    *
3467
-   * "Control" > "Temperature" submenu
3393
+   * "Temperature" submenu
3468 3394
    *
3469 3395
    */
3470
-  void lcd_control_temperature_menu() {
3396
+  void lcd_temperature_menu() {
3471 3397
     START_MENU();
3472
-
3473
-    //
3474
-    // ^ Control
3475
-    //
3476
-    MENU_BACK(MSG_CONTROL);
3398
+    MENU_BACK(MSG_MAIN);
3477 3399
 
3478 3400
     //
3479 3401
     // Nozzle:
@@ -3526,6 +3448,42 @@ void lcd_quick_feedback(const bool clear_buttons) {
3526 3448
       #endif
3527 3449
     #endif // FAN_COUNT > 0
3528 3450
 
3451
+    #if HAS_TEMP_HOTEND
3452
+
3453
+      //
3454
+      // Cooldown
3455
+      //
3456
+      bool has_heat = false;
3457
+      HOTEND_LOOP() if (thermalManager.target_temperature[HOTEND_INDEX]) { has_heat = true; break; }
3458
+      #if HAS_TEMP_BED
3459
+        if (thermalManager.target_temperature_bed) has_heat = true;
3460
+      #endif
3461
+      if (has_heat) MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
3462
+
3463
+      //
3464
+      // Preheat for Material 1 and 2
3465
+      //
3466
+      #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_4 != 0 || HAS_HEATED_BED
3467
+        MENU_ITEM(submenu, MSG_PREHEAT_1, lcd_preheat_m1_menu);
3468
+        MENU_ITEM(submenu, MSG_PREHEAT_2, lcd_preheat_m2_menu);
3469
+      #else
3470
+        MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_m1_e0_only);
3471
+        MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_m2_e0_only);
3472
+      #endif
3473
+
3474
+    #endif // HAS_TEMP_HOTEND
3475
+
3476
+    END_MENU();
3477
+  }
3478
+
3479
+  /**
3480
+   *
3481
+   * "Advanced Settings" -> "Temperature" submenu
3482
+   *
3483
+   */
3484
+  void lcd_advanced_temperature_menu() {
3485
+    START_MENU();
3486
+    MENU_BACK(MSG_ADVANCED_SETTINGS);
3529 3487
     //
3530 3488
     // Autotemp, Min, Max, Fact
3531 3489
     //
@@ -3587,24 +3545,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
3587 3545
 
3588 3546
     #endif // PIDTEMP
3589 3547
 
3590
-    #if DISABLED(SLIM_LCD_MENUS)
3591
-      //
3592
-      // Preheat Material 1 conf
3593
-      //
3594
-      MENU_ITEM(submenu, MSG_PREHEAT_1_SETTINGS, lcd_control_temperature_preheat_material1_settings_menu);
3595
-
3596
-      //
3597
-      // Preheat Material 2 conf
3598
-      //
3599
-      MENU_ITEM(submenu, MSG_PREHEAT_2_SETTINGS, lcd_control_temperature_preheat_material2_settings_menu);
3600
-    #endif
3601
-
3602 3548
     END_MENU();
3603 3549
   }
3604 3550
 
3605 3551
   #if DISABLED(SLIM_LCD_MENUS)
3606 3552
 
3607
-    void _lcd_control_temperature_preheat_settings_menu(const uint8_t material) {
3553
+    void _lcd_configuration_temperature_preheat_settings_menu(const uint8_t material) {
3608 3554
       #if HOTENDS > 4
3609 3555
         #define MINTEMP_ALL MIN5(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP, HEATER_4_MINTEMP)
3610 3556
         #define MAXTEMP_ALL MAX5(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP)
@@ -3622,7 +3568,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
3622 3568
         #define MAXTEMP_ALL HEATER_0_MAXTEMP
3623 3569
       #endif
3624 3570
       START_MENU();
3625
-      MENU_BACK(MSG_TEMPERATURE);
3571
+      MENU_BACK(MSG_CONFIGURATION);
3626 3572
       MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &lcd_preheat_fan_speed[material], 0, 255);
3627 3573
       #if HAS_TEMP_HOTEND
3628 3574
         MENU_ITEM_EDIT(int3, MSG_NOZZLE, &lcd_preheat_hotend_temp[material], MINTEMP_ALL, MAXTEMP_ALL - 15);
@@ -3641,14 +3587,14 @@ void lcd_quick_feedback(const bool clear_buttons) {
3641 3587
      * "Temperature" > "Preheat Material 1 conf" submenu
3642 3588
      *
3643 3589
      */
3644
-    void lcd_control_temperature_preheat_material1_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); }
3590
+    void lcd_configuration_temperature_preheat_material1_settings_menu() { _lcd_configuration_temperature_preheat_settings_menu(0); }
3645 3591
 
3646 3592
     /**
3647 3593
      *
3648 3594
      * "Temperature" > "Preheat Material 2 conf" submenu
3649 3595
      *
3650 3596
      */
3651
-    void lcd_control_temperature_preheat_material2_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); }
3597
+    void lcd_configuration_temperature_preheat_material2_settings_menu() { _lcd_configuration_temperature_preheat_settings_menu(1); }
3652 3598
 
3653 3599
     void _reset_acceleration_rates() { planner.reset_acceleration_rates(); }
3654 3600
     #if ENABLED(DISTINCT_E_FACTORS)
@@ -3688,9 +3634,9 @@ void lcd_quick_feedback(const bool clear_buttons) {
3688 3634
     #endif
3689 3635
 
3690 3636
     // M203 / M205 Velocity options
3691
-    void lcd_control_motion_velocity_menu() {
3637
+    void lcd_advanced_velocity_menu() {
3692 3638
       START_MENU();
3693
-      MENU_BACK(MSG_MOTION);
3639
+      MENU_BACK(MSG_ADVANCED_SETTINGS);
3694 3640
 
3695 3641
       // M203 Max Feedrate
3696 3642
       MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VMAX MSG_A, &planner.max_feedrate_mm_s[A_AXIS], 1, 999);
@@ -3724,9 +3670,9 @@ void lcd_quick_feedback(const bool clear_buttons) {
3724 3670
     }
3725 3671
 
3726 3672
     // M201 / M204 Accelerations
3727
-    void lcd_control_motion_acceleration_menu() {
3673
+    void lcd_advanced_acceleration_menu() {
3728 3674
       START_MENU();
3729
-      MENU_BACK(MSG_MOTION);
3675
+      MENU_BACK(MSG_ADVANCED_SETTINGS);
3730 3676
 
3731 3677
       // M204 P Acceleration
3732 3678
       MENU_MULTIPLIER_ITEM_EDIT(float5, MSG_ACC, &planner.acceleration, 10, 99000);
@@ -3763,9 +3709,9 @@ void lcd_quick_feedback(const bool clear_buttons) {
3763 3709
     }
3764 3710
 
3765 3711
     // M205 Jerk
3766
-    void lcd_control_motion_jerk_menu() {
3712
+    void lcd_advanced_jerk_menu() {
3767 3713
       START_MENU();
3768
-      MENU_BACK(MSG_MOTION);
3714
+      MENU_BACK(MSG_ADVANCED_SETTINGS);
3769 3715
 
3770 3716
       #if ENABLED(JUNCTION_DEVIATION)
3771 3717
         MENU_ITEM_EDIT_CALLBACK(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.01f, 0.3f, planner.recalculate_max_e_jerk);
@@ -3784,9 +3730,9 @@ void lcd_quick_feedback(const bool clear_buttons) {
3784 3730
     }
3785 3731
 
3786 3732
     // M92 Steps-per-mm
3787
-    void lcd_control_motion_steps_per_mm_menu() {
3733
+    void lcd_advanced_steps_per_mm_menu() {
3788 3734
       START_MENU();
3789
-      MENU_BACK(MSG_MOTION);
3735
+      MENU_BACK(MSG_ADVANCED_SETTINGS);
3790 3736
 
3791 3737
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ASTEPS, &planner.axis_steps_per_mm[A_AXIS], 5, 9999, _planner_refresh_positioning);
3792 3738
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_BSTEPS, &planner.axis_steps_per_mm[B_AXIS], 5, 9999, _planner_refresh_positioning);
@@ -3816,13 +3762,24 @@ void lcd_quick_feedback(const bool clear_buttons) {
3816 3762
 
3817 3763
   /**
3818 3764
    *
3819
-   * "Control" > "Motion" submenu
3765
+   * "Advanced Settings" submenu
3820 3766
    *
3821 3767
    */
3822 3768
 
3823
-  void lcd_control_motion_menu() {
3769
+  #if HAS_M206_COMMAND
3770
+    /**
3771
+     * Set the home offset based on the current_position
3772
+     */
3773
+    void lcd_set_home_offsets() {
3774
+      // M428 Command
3775
+      enqueue_and_echo_commands_P(PSTR("M428"));
3776
+      lcd_return_to_status();
3777
+    }
3778
+  #endif
3779
+
3780
+  void lcd_advanced_settings_menu() {
3824 3781
     START_MENU();
3825
-    MENU_BACK(MSG_CONTROL);
3782
+    MENU_BACK(MSG_CONFIGURATION);
3826 3783
 
3827 3784
     #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
3828 3785
       MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
@@ -3832,37 +3789,65 @@ void lcd_quick_feedback(const bool clear_buttons) {
3832 3789
 
3833 3790
     #if DISABLED(SLIM_LCD_MENUS)
3834 3791
 
3792
+      #if HAS_M206_COMMAND
3793
+        //
3794
+        // Set Home Offsets
3795
+        //
3796
+        MENU_ITEM(function, MSG_SET_HOME_OFFSETS, lcd_set_home_offsets);
3797
+      #endif
3798
+
3835 3799
       // M203 / M205 - Feedrate items
3836
-      MENU_ITEM(submenu, MSG_VELOCITY, lcd_control_motion_velocity_menu);
3800
+      MENU_ITEM(submenu, MSG_VELOCITY, lcd_advanced_velocity_menu);
3837 3801
 
3838 3802
       // M201 - Acceleration items
3839
-      MENU_ITEM(submenu, MSG_ACCELERATION, lcd_control_motion_acceleration_menu);
3803
+      MENU_ITEM(submenu, MSG_ACCELERATION, lcd_advanced_acceleration_menu);
3840 3804
 
3841 3805
       // M205 - Max Jerk
3842
-      MENU_ITEM(submenu, MSG_JERK, lcd_control_motion_jerk_menu);
3806
+      MENU_ITEM(submenu, MSG_JERK, lcd_advanced_jerk_menu);
3843 3807
 
3844 3808
       // M92 - Steps Per mm
3845
-      MENU_ITEM(submenu, MSG_STEPS_PER_MM, lcd_control_motion_steps_per_mm_menu);
3809
+      MENU_ITEM(submenu, MSG_STEPS_PER_MM, lcd_advanced_steps_per_mm_menu);
3846 3810
 
3847 3811
     #endif // !SLIM_LCD_MENUS
3848 3812
 
3813
+    MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_advanced_temperature_menu);
3814
+
3815
+    #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
3816
+      MENU_ITEM(submenu, MSG_FILAMENT, lcd_advanced_filament_menu);
3817
+    #elif ENABLED(LIN_ADVANCE)
3818
+      MENU_ITEM_EDIT(float32, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
3819
+    #endif
3820
+
3849 3821
     // M540 S - Abort on endstop hit when SD printing
3850 3822
     #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
3851 3823
       MENU_ITEM_EDIT(bool, MSG_ENDSTOP_ABORT, &planner.abort_on_endstop_hit);
3852 3824
     #endif
3853 3825
 
3826
+    //
3827
+    // BLTouch Self-Test and Reset
3828
+    //
3829
+    #if ENABLED(BLTOUCH)
3830
+      MENU_ITEM(gcode, MSG_BLTOUCH_SELFTEST, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_SELFTEST)));
3831
+      if (!endstops.z_probe_enabled && TEST_BLTOUCH())
3832
+        MENU_ITEM(gcode, MSG_BLTOUCH_RESET, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_RESET)));
3833
+    #endif
3834
+
3835
+    #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
3836
+      MENU_ITEM(submenu, MSG_INIT_EEPROM, lcd_init_eeprom_confirm);
3837
+    #endif
3838
+
3854 3839
     END_MENU();
3855 3840
   }
3856 3841
 
3857 3842
   #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
3858 3843
     /**
3859 3844
      *
3860
-     * "Control" > "Filament" submenu
3845
+     * "Advanced Settings" > "Filament" submenu
3861 3846
      *
3862 3847
      */
3863
-    void lcd_control_filament_menu() {
3848
+    void lcd_advanced_filament_menu() {
3864 3849
       START_MENU();
3865
-      MENU_BACK(MSG_CONTROL);
3850
+      MENU_BACK(MSG_ADVANCED_SETTINGS);
3866 3851
 
3867 3852
       #if ENABLED(LIN_ADVANCE)
3868 3853
         MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
@@ -3941,12 +3926,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
3941 3926
 
3942 3927
   /**
3943 3928
    *
3944
-   * "Control" > "Retract" submenu
3929
+   * "Configuration" > "Retract" submenu
3945 3930
    *
3946 3931
    */
3947 3932
   #if ENABLED(FWRETRACT)
3948 3933
 
3949
-    void lcd_control_retract_menu() {
3934
+    void lcd_config_retract_menu() {
3950 3935
       START_MENU();
3951 3936
       MENU_BACK(MSG_CONTROL);
3952 3937
       MENU_ITEM_EDIT_CALLBACK(bool, MSG_AUTORETRACT, &fwretract.autoretract_enabled, fwretract.refresh_autoretract);
@@ -4378,7 +4363,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
4378 4363
     #if E_STEPPERS > 1 || ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
4379 4364
       void lcd_change_filament_menu() {
4380 4365
         START_MENU();
4381
-        MENU_BACK(MSG_PREPARE);
4366
+        MENU_BACK(MSG_MAIN);
4382 4367
 
4383 4368
         // Change filament
4384 4369
         #if E_STEPPERS == 1

Loading…
Cancel
Save