|
@@ -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
|