Browse Source

A specific option to SLIM_LCD_MENUS

Scott Lahteine 6 years ago
parent
commit
2929c9e56f
2 changed files with 220 additions and 202 deletions
  1. 3
    0
      Marlin/Configuration_adv.h
  2. 217
    202
      Marlin/src/lcd/ultralcd.cpp

+ 3
- 0
Marlin/Configuration_adv.h View File

@@ -473,6 +473,9 @@
473 473
 // Include a page of printer information in the LCD Main Menu
474 474
 //#define LCD_INFO_MENU
475 475
 
476
+// Leave out seldom-used LCD menu items to recover some Program Memory
477
+//#define SLIM_LCD_MENUS
478
+
476 479
 // Scroll a longer status message into view
477 480
 //#define STATUS_MESSAGE_SCROLLING
478 481
 

+ 217
- 202
Marlin/src/lcd/ultralcd.cpp View File

@@ -176,10 +176,13 @@ uint16_t max_display_update_time = 0;
176 176
   void lcd_move_menu();
177 177
   void lcd_control_menu();
178 178
   void lcd_control_temperature_menu();
179
-  void lcd_control_temperature_preheat_material1_settings_menu();
180
-  void lcd_control_temperature_preheat_material2_settings_menu();
181 179
   void lcd_control_motion_menu();
182 180
 
181
+  #if DISABLED(SLIM_LCD_MENUS)
182
+    void lcd_control_temperature_preheat_material1_settings_menu();
183
+    void lcd_control_temperature_preheat_material2_settings_menu();
184
+  #endif
185
+
183 186
   #if DISABLED(NO_VOLUMETRICS)
184 187
     void lcd_control_filament_menu();
185 188
   #endif
@@ -2627,7 +2630,7 @@ void kill_screen(const char* lcd_msg) {
2627 2630
               lcd_bed_leveling
2628 2631
             #endif
2629 2632
           );
2630
-    #elif PLANNER_LEVELING && DISABLED(PROBE_MANUALLY)
2633
+    #elif PLANNER_LEVELING && DISABLED(PROBE_MANUALLY) && DISABLED(SLIM_LCD_MENUS)
2631 2634
       MENU_ITEM(gcode, MSG_BED_LEVELING, PSTR("G28\nG29"));
2632 2635
     #endif
2633 2636
 
@@ -2636,7 +2639,7 @@ void kill_screen(const char* lcd_msg) {
2636 2639
         MENU_ITEM(function, MSG_LEVEL_CORNERS, _lcd_level_bed_corners);
2637 2640
     #endif
2638 2641
 
2639
-    #if HAS_M206_COMMAND
2642
+    #if HAS_M206_COMMAND && DISABLED(SLIM_LCD_MENUS)
2640 2643
       //
2641 2644
       // Set Home Offsets
2642 2645
       //
@@ -3250,8 +3253,10 @@ void kill_screen(const char* lcd_msg) {
3250 3253
       MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
3251 3254
       MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
3252 3255
     #endif
3256
+
3253 3257
     MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings);
3254
-    #if ENABLED(EEPROM_SETTINGS)
3258
+
3259
+    #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
3255 3260
       MENU_ITEM(submenu, MSG_INIT_EEPROM, lcd_init_eeprom_confirm);
3256 3261
     #endif
3257 3262
 
@@ -3463,228 +3468,234 @@ void kill_screen(const char* lcd_msg) {
3463 3468
 
3464 3469
     #endif // PIDTEMP
3465 3470
 
3466
-    //
3467
-    // Preheat Material 1 conf
3468
-    //
3469
-    MENU_ITEM(submenu, MSG_PREHEAT_1_SETTINGS, lcd_control_temperature_preheat_material1_settings_menu);
3470
-
3471
-    //
3472
-    // Preheat Material 2 conf
3473
-    //
3474
-    MENU_ITEM(submenu, MSG_PREHEAT_2_SETTINGS, lcd_control_temperature_preheat_material2_settings_menu);
3475
-    END_MENU();
3476
-  }
3471
+    #if DISABLED(SLIM_LCD_MENUS)
3472
+      //
3473
+      // Preheat Material 1 conf
3474
+      //
3475
+      MENU_ITEM(submenu, MSG_PREHEAT_1_SETTINGS, lcd_control_temperature_preheat_material1_settings_menu);
3477 3476
 
3478
-  void _lcd_control_temperature_preheat_settings_menu(uint8_t material) {
3479
-    #if HOTENDS > 4
3480
-      #define MINTEMP_ALL MIN5(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP, HEATER_4_MINTEMP)
3481
-      #define MAXTEMP_ALL MAX5(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP)
3482
-    #elif HOTENDS > 3
3483
-      #define MINTEMP_ALL MIN4(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP)
3484
-      #define MAXTEMP_ALL MAX4(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP)
3485
-    #elif HOTENDS > 2
3486
-      #define MINTEMP_ALL MIN3(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP)
3487
-      #define MAXTEMP_ALL MAX3(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP)
3488
-    #elif HOTENDS > 1
3489
-      #define MINTEMP_ALL min(HEATER_0_MINTEMP, HEATER_1_MINTEMP)
3490
-      #define MAXTEMP_ALL max(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP)
3491
-    #else
3492
-      #define MINTEMP_ALL HEATER_0_MINTEMP
3493
-      #define MAXTEMP_ALL HEATER_0_MAXTEMP
3494
-    #endif
3495
-    START_MENU();
3496
-    MENU_BACK(MSG_TEMPERATURE);
3497
-    MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &lcd_preheat_fan_speed[material], 0, 255);
3498
-    #if TEMP_SENSOR_0 != 0
3499
-      MENU_ITEM_EDIT(int3, MSG_NOZZLE, &lcd_preheat_hotend_temp[material], MINTEMP_ALL, MAXTEMP_ALL - 15);
3500
-    #endif
3501
-    #if TEMP_SENSOR_BED != 0
3502
-      MENU_ITEM_EDIT(int3, MSG_BED, &lcd_preheat_bed_temp[material], BED_MINTEMP, BED_MAXTEMP - 15);
3503
-    #endif
3504
-    #if ENABLED(EEPROM_SETTINGS)
3505
-      MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
3477
+      //
3478
+      // Preheat Material 2 conf
3479
+      //
3480
+      MENU_ITEM(submenu, MSG_PREHEAT_2_SETTINGS, lcd_control_temperature_preheat_material2_settings_menu);
3506 3481
     #endif
3482
+
3507 3483
     END_MENU();
3508 3484
   }
3509 3485
 
3510
-  /**
3511
-   *
3512
-   * "Temperature" > "Preheat Material 1 conf" submenu
3513
-   *
3514
-   */
3515
-  void lcd_control_temperature_preheat_material1_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); }
3516
-
3517
-  /**
3518
-   *
3519
-   * "Temperature" > "Preheat Material 2 conf" submenu
3520
-   *
3521
-   */
3522
-  void lcd_control_temperature_preheat_material2_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); }
3523
-
3524
-
3525
-  /**
3526
-   *
3527
-   * "Control" > "Motion" submenu
3528
-   *
3529
-   */
3530
-
3531
-  void _reset_acceleration_rates() { planner.reset_acceleration_rates(); }
3532
-  #if ENABLED(DISTINCT_E_FACTORS)
3533
-    void _reset_e_acceleration_rate(const uint8_t e) { if (e == active_extruder) _reset_acceleration_rates(); }
3534
-    void _reset_e0_acceleration_rate() { _reset_e_acceleration_rate(0); }
3535
-    void _reset_e1_acceleration_rate() { _reset_e_acceleration_rate(1); }
3536
-    #if E_STEPPERS > 2
3537
-      void _reset_e2_acceleration_rate() { _reset_e_acceleration_rate(2); }
3538
-      #if E_STEPPERS > 3
3539
-        void _reset_e3_acceleration_rate() { _reset_e_acceleration_rate(3); }
3540
-        #if E_STEPPERS > 4
3541
-          void _reset_e4_acceleration_rate() { _reset_e_acceleration_rate(4); }
3542
-        #endif // E_STEPPERS > 4
3543
-      #endif // E_STEPPERS > 3
3544
-    #endif // E_STEPPERS > 2
3545
-  #endif
3546
-
3547
-  void _planner_refresh_positioning() { planner.refresh_positioning(); }
3548
-  #if ENABLED(DISTINCT_E_FACTORS)
3549
-    void _planner_refresh_e_positioning(const uint8_t e) {
3550
-      if (e == active_extruder)
3551
-        _planner_refresh_positioning();
3552
-      else
3553
-        planner.steps_to_mm[E_AXIS + e] = 1.0 / planner.axis_steps_per_mm[E_AXIS + e];
3554
-    }
3555
-    void _planner_refresh_e0_positioning() { _planner_refresh_e_positioning(0); }
3556
-    void _planner_refresh_e1_positioning() { _planner_refresh_e_positioning(1); }
3557
-    #if E_STEPPERS > 2
3558
-      void _planner_refresh_e2_positioning() { _planner_refresh_e_positioning(2); }
3559
-      #if E_STEPPERS > 3
3560
-        void _planner_refresh_e3_positioning() { _planner_refresh_e_positioning(3); }
3561
-        #if E_STEPPERS > 4
3562
-          void _planner_refresh_e4_positioning() { _planner_refresh_e_positioning(4); }
3563
-        #endif // E_STEPPERS > 4
3564
-      #endif // E_STEPPERS > 3
3565
-    #endif // E_STEPPERS > 2
3566
-  #endif
3486
+  #if DISABLED(SLIM_LCD_MENUS)
3487
+
3488
+    void _lcd_control_temperature_preheat_settings_menu(uint8_t material) {
3489
+      #if HOTENDS > 4
3490
+        #define MINTEMP_ALL MIN5(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP, HEATER_4_MINTEMP)
3491
+        #define MAXTEMP_ALL MAX5(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP)
3492
+      #elif HOTENDS > 3
3493
+        #define MINTEMP_ALL MIN4(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP)
3494
+        #define MAXTEMP_ALL MAX4(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP)
3495
+      #elif HOTENDS > 2
3496
+        #define MINTEMP_ALL MIN3(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP)
3497
+        #define MAXTEMP_ALL MAX3(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP)
3498
+      #elif HOTENDS > 1
3499
+        #define MINTEMP_ALL min(HEATER_0_MINTEMP, HEATER_1_MINTEMP)
3500
+        #define MAXTEMP_ALL max(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP)
3501
+      #else
3502
+        #define MINTEMP_ALL HEATER_0_MINTEMP
3503
+        #define MAXTEMP_ALL HEATER_0_MAXTEMP
3504
+      #endif
3505
+      START_MENU();
3506
+      MENU_BACK(MSG_TEMPERATURE);
3507
+      MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &lcd_preheat_fan_speed[material], 0, 255);
3508
+      #if TEMP_SENSOR_0 != 0
3509
+        MENU_ITEM_EDIT(int3, MSG_NOZZLE, &lcd_preheat_hotend_temp[material], MINTEMP_ALL, MAXTEMP_ALL - 15);
3510
+      #endif
3511
+      #if TEMP_SENSOR_BED != 0
3512
+        MENU_ITEM_EDIT(int3, MSG_BED, &lcd_preheat_bed_temp[material], BED_MINTEMP, BED_MAXTEMP - 15);
3513
+      #endif
3514
+      #if ENABLED(EEPROM_SETTINGS)
3515
+        MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
3516
+      #endif
3517
+      END_MENU();
3518
+    }
3567 3519
 
3568
-  // M203 / M205 Velocity options
3569
-  void lcd_control_motion_velocity_menu() {
3570
-    START_MENU();
3571
-    MENU_BACK(MSG_MOTION);
3520
+    /**
3521
+     *
3522
+     * "Temperature" > "Preheat Material 1 conf" submenu
3523
+     *
3524
+     */
3525
+    void lcd_control_temperature_preheat_material1_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); }
3572 3526
 
3573
-    // M203 Max Feedrate
3574
-    MENU_ITEM_EDIT(float3, MSG_VMAX MSG_X, &planner.max_feedrate_mm_s[X_AXIS], 1, 999);
3575
-    MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Y, &planner.max_feedrate_mm_s[Y_AXIS], 1, 999);
3576
-    MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Z, &planner.max_feedrate_mm_s[Z_AXIS], 1, 999);
3527
+    /**
3528
+     *
3529
+     * "Temperature" > "Preheat Material 2 conf" submenu
3530
+     *
3531
+     */
3532
+    void lcd_control_temperature_preheat_material2_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); }
3577 3533
 
3534
+    void _reset_acceleration_rates() { planner.reset_acceleration_rates(); }
3578 3535
     #if ENABLED(DISTINCT_E_FACTORS)
3579
-      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate_mm_s[E_AXIS + active_extruder], 1, 999);
3580
-      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E1, &planner.max_feedrate_mm_s[E_AXIS], 1, 999);
3581
-      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E2, &planner.max_feedrate_mm_s[E_AXIS + 1], 1, 999);
3536
+      void _reset_e_acceleration_rate(const uint8_t e) { if (e == active_extruder) _reset_acceleration_rates(); }
3537
+      void _reset_e0_acceleration_rate() { _reset_e_acceleration_rate(0); }
3538
+      void _reset_e1_acceleration_rate() { _reset_e_acceleration_rate(1); }
3582 3539
       #if E_STEPPERS > 2
3583
-        MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E3, &planner.max_feedrate_mm_s[E_AXIS + 2], 1, 999);
3540
+        void _reset_e2_acceleration_rate() { _reset_e_acceleration_rate(2); }
3584 3541
         #if E_STEPPERS > 3
3585
-          MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E4, &planner.max_feedrate_mm_s[E_AXIS + 3], 1, 999);
3542
+          void _reset_e3_acceleration_rate() { _reset_e_acceleration_rate(3); }
3586 3543
           #if E_STEPPERS > 4
3587
-            MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E5, &planner.max_feedrate_mm_s[E_AXIS + 4], 1, 999);
3544
+            void _reset_e4_acceleration_rate() { _reset_e_acceleration_rate(4); }
3588 3545
           #endif // E_STEPPERS > 4
3589 3546
         #endif // E_STEPPERS > 3
3590 3547
       #endif // E_STEPPERS > 2
3591
-    #else
3592
-      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate_mm_s[E_AXIS], 1, 999);
3593 3548
     #endif
3594 3549
 
3595
-    // M205 S Min Feedrate
3596
-    MENU_ITEM_EDIT(float3, MSG_VMIN, &planner.min_feedrate_mm_s, 0, 999);
3597
-
3598
-    // M205 T Min Travel Feedrate
3599
-    MENU_ITEM_EDIT(float3, MSG_VTRAV_MIN, &planner.min_travel_feedrate_mm_s, 0, 999);
3600
-
3601
-    END_MENU();
3602
-  }
3603
-
3604
-  // M201 / M204 Accelerations
3605
-  void lcd_control_motion_acceleration_menu() {
3606
-    START_MENU();
3607
-    MENU_BACK(MSG_MOTION);
3608
-
3609
-    // M204 P Acceleration
3610
-    MENU_ITEM_EDIT(float5, MSG_ACC, &planner.acceleration, 10, 99000);
3611
-
3612
-    // M204 R Retract Acceleration
3613
-    MENU_ITEM_EDIT(float5, MSG_A_RETRACT, &planner.retract_acceleration, 100, 99000);
3614
-
3615
-    // M204 T Travel Acceleration
3616
-    MENU_ITEM_EDIT(float5, MSG_A_TRAVEL, &planner.travel_acceleration, 100, 99000);
3617
-
3618
-    // M201 settings
3619
-    MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_X, &planner.max_acceleration_mm_per_s2[X_AXIS], 100, 99000, _reset_acceleration_rates);
3620
-    MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Y, &planner.max_acceleration_mm_per_s2[Y_AXIS], 100, 99000, _reset_acceleration_rates);
3621
-    MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &planner.max_acceleration_mm_per_s2[Z_AXIS], 10, 99000, _reset_acceleration_rates);
3622
-
3550
+    void _planner_refresh_positioning() { planner.refresh_positioning(); }
3623 3551
     #if ENABLED(DISTINCT_E_FACTORS)
3624
-      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_mm_per_s2[E_AXIS + active_extruder], 100, 99000, _reset_acceleration_rates);
3625
-      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E1, &planner.max_acceleration_mm_per_s2[E_AXIS], 100, 99000, _reset_e0_acceleration_rate);
3626
-      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E2, &planner.max_acceleration_mm_per_s2[E_AXIS + 1], 100, 99000, _reset_e1_acceleration_rate);
3552
+      void _planner_refresh_e_positioning(const uint8_t e) {
3553
+        if (e == active_extruder)
3554
+          _planner_refresh_positioning();
3555
+        else
3556
+          planner.steps_to_mm[E_AXIS + e] = 1.0 / planner.axis_steps_per_mm[E_AXIS + e];
3557
+      }
3558
+      void _planner_refresh_e0_positioning() { _planner_refresh_e_positioning(0); }
3559
+      void _planner_refresh_e1_positioning() { _planner_refresh_e_positioning(1); }
3627 3560
       #if E_STEPPERS > 2
3628
-        MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E3, &planner.max_acceleration_mm_per_s2[E_AXIS + 2], 100, 99000, _reset_e2_acceleration_rate);
3561
+        void _planner_refresh_e2_positioning() { _planner_refresh_e_positioning(2); }
3629 3562
         #if E_STEPPERS > 3
3630
-          MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E4, &planner.max_acceleration_mm_per_s2[E_AXIS + 3], 100, 99000, _reset_e3_acceleration_rate);
3563
+          void _planner_refresh_e3_positioning() { _planner_refresh_e_positioning(3); }
3631 3564
           #if E_STEPPERS > 4
3632
-            MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E5, &planner.max_acceleration_mm_per_s2[E_AXIS + 4], 100, 99000, _reset_e4_acceleration_rate);
3565
+            void _planner_refresh_e4_positioning() { _planner_refresh_e_positioning(4); }
3633 3566
           #endif // E_STEPPERS > 4
3634 3567
         #endif // E_STEPPERS > 3
3635 3568
       #endif // E_STEPPERS > 2
3636
-    #else
3637
-      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_mm_per_s2[E_AXIS], 100, 99000, _reset_acceleration_rates);
3638 3569
     #endif
3639 3570
 
3640
-    END_MENU();
3641
-  }
3571
+    // M203 / M205 Velocity options
3572
+    void lcd_control_motion_velocity_menu() {
3573
+      START_MENU();
3574
+      MENU_BACK(MSG_MOTION);
3575
+
3576
+      // M203 Max Feedrate
3577
+      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_X, &planner.max_feedrate_mm_s[X_AXIS], 1, 999);
3578
+      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Y, &planner.max_feedrate_mm_s[Y_AXIS], 1, 999);
3579
+      MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Z, &planner.max_feedrate_mm_s[Z_AXIS], 1, 999);
3580
+
3581
+      #if ENABLED(DISTINCT_E_FACTORS)
3582
+        MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate_mm_s[E_AXIS + active_extruder], 1, 999);
3583
+        MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E1, &planner.max_feedrate_mm_s[E_AXIS], 1, 999);
3584
+        MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E2, &planner.max_feedrate_mm_s[E_AXIS + 1], 1, 999);
3585
+        #if E_STEPPERS > 2
3586
+          MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E3, &planner.max_feedrate_mm_s[E_AXIS + 2], 1, 999);
3587
+          #if E_STEPPERS > 3
3588
+            MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E4, &planner.max_feedrate_mm_s[E_AXIS + 3], 1, 999);
3589
+            #if E_STEPPERS > 4
3590
+              MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E5, &planner.max_feedrate_mm_s[E_AXIS + 4], 1, 999);
3591
+            #endif // E_STEPPERS > 4
3592
+          #endif // E_STEPPERS > 3
3593
+        #endif // E_STEPPERS > 2
3594
+      #else
3595
+        MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate_mm_s[E_AXIS], 1, 999);
3596
+      #endif
3642 3597
 
3643
-  // M205 Jerk
3644
-  void lcd_control_motion_jerk_menu() {
3645
-    START_MENU();
3646
-    MENU_BACK(MSG_MOTION);
3598
+      // M205 S Min Feedrate
3599
+      MENU_ITEM_EDIT(float3, MSG_VMIN, &planner.min_feedrate_mm_s, 0, 999);
3647 3600
 
3648
-    MENU_ITEM_EDIT(float3, MSG_VX_JERK, &planner.max_jerk[X_AXIS], 1, 990);
3649
-    MENU_ITEM_EDIT(float3, MSG_VY_JERK, &planner.max_jerk[Y_AXIS], 1, 990);
3650
-    #if ENABLED(DELTA)
3651
-      MENU_ITEM_EDIT(float3, MSG_VZ_JERK, &planner.max_jerk[Z_AXIS], 1, 990);
3652
-    #else
3653
-      MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &planner.max_jerk[Z_AXIS], 0.1, 990);
3654
-    #endif
3655
-    MENU_ITEM_EDIT(float3, MSG_VE_JERK, &planner.max_jerk[E_AXIS], 1, 990);
3601
+      // M205 T Min Travel Feedrate
3602
+      MENU_ITEM_EDIT(float3, MSG_VTRAV_MIN, &planner.min_travel_feedrate_mm_s, 0, 999);
3656 3603
 
3657
-    END_MENU();
3658
-  }
3604
+      END_MENU();
3605
+    }
3659 3606
 
3660
-  // M92 Steps-per-mm
3661
-  void lcd_control_motion_steps_per_mm_menu() {
3662
-    START_MENU();
3663
-    MENU_BACK(MSG_MOTION);
3607
+    // M201 / M204 Accelerations
3608
+    void lcd_control_motion_acceleration_menu() {
3609
+      START_MENU();
3610
+      MENU_BACK(MSG_MOTION);
3611
+
3612
+      // M204 P Acceleration
3613
+      MENU_ITEM_EDIT(float5, MSG_ACC, &planner.acceleration, 10, 99000);
3614
+
3615
+      // M204 R Retract Acceleration
3616
+      MENU_ITEM_EDIT(float5, MSG_A_RETRACT, &planner.retract_acceleration, 100, 99000);
3617
+
3618
+      // M204 T Travel Acceleration
3619
+      MENU_ITEM_EDIT(float5, MSG_A_TRAVEL, &planner.travel_acceleration, 100, 99000);
3620
+
3621
+      // M201 settings
3622
+      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_X, &planner.max_acceleration_mm_per_s2[X_AXIS], 100, 99000, _reset_acceleration_rates);
3623
+      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Y, &planner.max_acceleration_mm_per_s2[Y_AXIS], 100, 99000, _reset_acceleration_rates);
3624
+      MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &planner.max_acceleration_mm_per_s2[Z_AXIS], 10, 99000, _reset_acceleration_rates);
3625
+
3626
+      #if ENABLED(DISTINCT_E_FACTORS)
3627
+        MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_mm_per_s2[E_AXIS + active_extruder], 100, 99000, _reset_acceleration_rates);
3628
+        MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E1, &planner.max_acceleration_mm_per_s2[E_AXIS], 100, 99000, _reset_e0_acceleration_rate);
3629
+        MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E2, &planner.max_acceleration_mm_per_s2[E_AXIS + 1], 100, 99000, _reset_e1_acceleration_rate);
3630
+        #if E_STEPPERS > 2
3631
+          MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E3, &planner.max_acceleration_mm_per_s2[E_AXIS + 2], 100, 99000, _reset_e2_acceleration_rate);
3632
+          #if E_STEPPERS > 3
3633
+            MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E4, &planner.max_acceleration_mm_per_s2[E_AXIS + 3], 100, 99000, _reset_e3_acceleration_rate);
3634
+            #if E_STEPPERS > 4
3635
+              MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E5, &planner.max_acceleration_mm_per_s2[E_AXIS + 4], 100, 99000, _reset_e4_acceleration_rate);
3636
+            #endif // E_STEPPERS > 4
3637
+          #endif // E_STEPPERS > 3
3638
+        #endif // E_STEPPERS > 2
3639
+      #else
3640
+        MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_mm_per_s2[E_AXIS], 100, 99000, _reset_acceleration_rates);
3641
+      #endif
3664 3642
 
3665
-    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning);
3666
-    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning);
3667
-    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning);
3643
+      END_MENU();
3644
+    }
3668 3645
 
3669
-    #if ENABLED(DISTINCT_E_FACTORS)
3670
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning);
3671
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E1STEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_e0_positioning);
3672
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E2STEPS, &planner.axis_steps_per_mm[E_AXIS + 1], 5, 9999, _planner_refresh_e1_positioning);
3673
-      #if E_STEPPERS > 2
3674
-        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning);
3675
-        #if E_STEPPERS > 3
3676
-          MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning);
3677
-          #if E_STEPPERS > 4
3678
-            MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning);
3679
-          #endif // E_STEPPERS > 4
3680
-        #endif // E_STEPPERS > 3
3681
-      #endif // E_STEPPERS > 2
3682
-    #else
3683
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
3684
-    #endif
3646
+    // M205 Jerk
3647
+    void lcd_control_motion_jerk_menu() {
3648
+      START_MENU();
3649
+      MENU_BACK(MSG_MOTION);
3685 3650
 
3686
-    END_MENU();
3687
-  }
3651
+      MENU_ITEM_EDIT(float3, MSG_VX_JERK, &planner.max_jerk[X_AXIS], 1, 990);
3652
+      MENU_ITEM_EDIT(float3, MSG_VY_JERK, &planner.max_jerk[Y_AXIS], 1, 990);
3653
+      #if ENABLED(DELTA)
3654
+        MENU_ITEM_EDIT(float3, MSG_VZ_JERK, &planner.max_jerk[Z_AXIS], 1, 990);
3655
+      #else
3656
+        MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &planner.max_jerk[Z_AXIS], 0.1, 990);
3657
+      #endif
3658
+      MENU_ITEM_EDIT(float3, MSG_VE_JERK, &planner.max_jerk[E_AXIS], 1, 990);
3659
+
3660
+      END_MENU();
3661
+    }
3662
+
3663
+    // M92 Steps-per-mm
3664
+    void lcd_control_motion_steps_per_mm_menu() {
3665
+      START_MENU();
3666
+      MENU_BACK(MSG_MOTION);
3667
+
3668
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning);
3669
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning);
3670
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning);
3671
+
3672
+      #if ENABLED(DISTINCT_E_FACTORS)
3673
+        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning);
3674
+        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E1STEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_e0_positioning);
3675
+        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E2STEPS, &planner.axis_steps_per_mm[E_AXIS + 1], 5, 9999, _planner_refresh_e1_positioning);
3676
+        #if E_STEPPERS > 2
3677
+          MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning);
3678
+          #if E_STEPPERS > 3
3679
+            MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning);
3680
+            #if E_STEPPERS > 4
3681
+              MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning);
3682
+            #endif // E_STEPPERS > 4
3683
+          #endif // E_STEPPERS > 3
3684
+        #endif // E_STEPPERS > 2
3685
+      #else
3686
+        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
3687
+      #endif
3688
+
3689
+      END_MENU();
3690
+    }
3691
+
3692
+  #endif // !SLIM_LCD_MENUS
3693
+
3694
+  /**
3695
+   *
3696
+   * "Control" > "Motion" submenu
3697
+   *
3698
+   */
3688 3699
 
3689 3700
   void lcd_control_motion_menu() {
3690 3701
     START_MENU();
@@ -3696,17 +3707,21 @@ void kill_screen(const char* lcd_msg) {
3696 3707
       MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
3697 3708
     #endif
3698 3709
 
3699
-    // M203 / M205 - Feedrate items
3700
-    MENU_ITEM(submenu, MSG_VELOCITY, lcd_control_motion_velocity_menu);
3710
+    #if DISABLED(SLIM_LCD_MENUS)
3711
+
3712
+      // M203 / M205 - Feedrate items
3713
+      MENU_ITEM(submenu, MSG_VELOCITY, lcd_control_motion_velocity_menu);
3714
+
3715
+      // M201 - Acceleration items
3716
+      MENU_ITEM(submenu, MSG_ACCELERATION, lcd_control_motion_acceleration_menu);
3701 3717
 
3702
-    // M201 - Acceleration items
3703
-    MENU_ITEM(submenu, MSG_ACCELERATION, lcd_control_motion_acceleration_menu);
3718
+      // M205 - Max Jerk
3719
+      MENU_ITEM(submenu, MSG_JERK, lcd_control_motion_jerk_menu);
3704 3720
 
3705
-    // M205 - Max Jerk
3706
-    MENU_ITEM(submenu, MSG_JERK, lcd_control_motion_jerk_menu);
3721
+      // M92 - Steps Per mm
3722
+      MENU_ITEM(submenu, MSG_STEPS_PER_MM, lcd_control_motion_steps_per_mm_menu);
3707 3723
 
3708
-    // M92 - Steps Per mm
3709
-    MENU_ITEM(submenu, MSG_STEPS_PER_MM, lcd_control_motion_steps_per_mm_menu);
3724
+    #endif // !SLIM_LCD_MENUS
3710 3725
 
3711 3726
     // M540 S - Abort on endstop hit when SD printing
3712 3727
     #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)

Loading…
Cancel
Save