|
|
|
@ -136,11 +136,11 @@ uint16_t max_display_update_time = 0;
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int3, itostr3);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(uint8_t, int8, i8tostr3);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float3, ftostr3);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float32, ftostr32);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float52, ftostr52);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float43, ftostr43sign);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float5, ftostr5rj);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float51, ftostr51sign);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float52, ftostr52sign);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float52sign, ftostr52sign);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float62, ftostr62rj);
|
|
|
|
|
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(uint32_t, long5, ftostr5rj);
|
|
|
|
|
#define lcd_implementation_drawmenu_setting_edit_bool(sel, row, pstr, pstr2, data) DRAW_BOOL_SETTING(sel, row, pstr, data)
|
|
|
|
@ -264,11 +264,11 @@ uint16_t max_display_update_time = 0;
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(int16_t, int3);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(uint8_t, int8);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float3);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float32);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float52);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float43);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float5);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float51);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float52);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float52sign);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(float, float62);
|
|
|
|
|
DECLARE_MENU_EDIT_TYPE(uint32_t, long5);
|
|
|
|
|
|
|
|
|
@ -1404,13 +1404,20 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
//
|
|
|
|
|
MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_percentage, 10, 999);
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Manual bed leveling, Bed Z:
|
|
|
|
|
//
|
|
|
|
|
#if ENABLED(MESH_BED_LEVELING) && ENABLED(LCD_BED_LEVELING)
|
|
|
|
|
MENU_ITEM_EDIT(float43, MSG_BED_Z, &mbl.z_offset, -1, 1);
|
|
|
|
|
#endif
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Leveling Fade Height
|
|
|
|
|
//
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(SLIM_LCD_MENUS)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_Z_FADE_HEIGHT, &new_z_fade_height, 0.0, 100.0, _lcd_set_z_fade_height);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Nozzle:
|
|
|
|
|
// Nozzle [1-4]:
|
|
|
|
@ -1883,7 +1890,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
|
|
|
|
|
#endif // LEVEL_BED_CORNERS
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LCD_BED_LEVELING)
|
|
|
|
|
#if ENABLED(LCD_BED_LEVELING) && (ENABLED(PROBE_MANUALLY) || ENABLED(MESH_BED_LEVELING))
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
@ -2045,76 +2052,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
enqueue_and_echo_commands_P(PSTR("G28"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static bool new_level_state;
|
|
|
|
|
void _lcd_toggle_bed_leveling() { set_bed_leveling_enabled(new_level_state); }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Step 1: Bed Level entry-point
|
|
|
|
|
*
|
|
|
|
|
* << Prepare
|
|
|
|
|
* Auto Home (if homing needed)
|
|
|
|
|
* Leveling On/Off (if data exists, and homed)
|
|
|
|
|
* Fade Height: --- (Req: ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
* Mesh Z Offset: --- (Req: MESH_BED_LEVELING)
|
|
|
|
|
* Z Probe Offset: --- (Req: HAS_BED_PROBE, Opt: BABYSTEP_ZPROBE_OFFSET)
|
|
|
|
|
* Level Bed >
|
|
|
|
|
* Level Corners > (if homed)
|
|
|
|
|
* Load Settings (Req: EEPROM_SETTINGS)
|
|
|
|
|
* Save Settings (Req: EEPROM_SETTINGS)
|
|
|
|
|
*/
|
|
|
|
|
void lcd_bed_leveling() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_PREPARE);
|
|
|
|
|
|
|
|
|
|
#if DISABLED(MESH_BED_LEVELING)
|
|
|
|
|
if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]))
|
|
|
|
|
MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
|
|
|
|
|
else
|
|
|
|
|
#endif
|
|
|
|
|
if (leveling_is_valid()) {
|
|
|
|
|
new_level_state = planner.leveling_active;
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_BED_LEVELING, &new_level_state, _lcd_toggle_bed_leveling);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_Z_FADE_HEIGHT, &new_z_fade_height, 0.0, 100.0, _lcd_set_z_fade_height);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// MBL Z Offset
|
|
|
|
|
//
|
|
|
|
|
#if ENABLED(MESH_BED_LEVELING)
|
|
|
|
|
MENU_ITEM_EDIT(float43, MSG_BED_Z, &mbl.z_offset, -1, 1);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
|
|
|
|
MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
|
|
|
|
|
#elif HAS_BED_PROBE
|
|
|
|
|
MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_LEVEL_BED, _lcd_level_bed_continue);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LEVEL_BED_CORNERS)
|
|
|
|
|
// Move to the next corner for leveling
|
|
|
|
|
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
|
|
|
|
|
MENU_ITEM(submenu, MSG_LEVEL_CORNERS, _lcd_level_bed_corners);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(EEPROM_SETTINGS)
|
|
|
|
|
MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
|
|
|
|
|
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
|
|
|
|
|
#endif
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
void _lcd_goto_bed_leveling() {
|
|
|
|
|
lcd_goto_screen(lcd_bed_leveling);
|
|
|
|
|
new_z_fade_height = planner.z_fade_height;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
|
|
|
|
|
|
|
|
|
void _lcd_ubl_level_bed();
|
|
|
|
@ -2647,6 +2584,93 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
|
|
|
|
|
#endif // AUTO_BED_LEVELING_UBL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LCD_BED_LEVELING) || (PLANNER_LEVELING && DISABLED(SLIM_LCD_MENUS))
|
|
|
|
|
void _lcd_toggle_bed_leveling() { set_bed_leveling_enabled(!planner.leveling_active); }
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LCD_BED_LEVELING)
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Step 1: Bed Level entry-point
|
|
|
|
|
*
|
|
|
|
|
* << Prepare
|
|
|
|
|
* Auto Home (if homing needed)
|
|
|
|
|
* Leveling On/Off (if data exists, and homed)
|
|
|
|
|
* Fade Height: --- (Req: ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
* Mesh Z Offset: --- (Req: MESH_BED_LEVELING)
|
|
|
|
|
* Z Probe Offset: --- (Req: HAS_BED_PROBE, Opt: BABYSTEP_ZPROBE_OFFSET)
|
|
|
|
|
* Level Bed >
|
|
|
|
|
* Level Corners > (if homed)
|
|
|
|
|
* Load Settings (Req: EEPROM_SETTINGS)
|
|
|
|
|
* Save Settings (Req: EEPROM_SETTINGS)
|
|
|
|
|
*/
|
|
|
|
|
void lcd_bed_leveling() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_PREPARE);
|
|
|
|
|
|
|
|
|
|
const bool is_homed = axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS];
|
|
|
|
|
|
|
|
|
|
// Auto Home if not using manual probing
|
|
|
|
|
#if DISABLED(PROBE_MANUALLY) && DISABLED(MESH_BED_LEVELING)
|
|
|
|
|
if (!is_homed) MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// Level Bed
|
|
|
|
|
#if ENABLED(PROBE_MANUALLY) || ENABLED(MESH_BED_LEVELING)
|
|
|
|
|
// Manual leveling uses a guided procedure
|
|
|
|
|
MENU_ITEM(submenu, MSG_LEVEL_BED, _lcd_level_bed_continue);
|
|
|
|
|
#else
|
|
|
|
|
// Automatic leveling can just run the G-code
|
|
|
|
|
MENU_ITEM(gcode, MSG_LEVEL_BED, is_homed ? PSTR("G29") : PSTR("G28\nG29"));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// Homed and leveling is valid? Then leveling can be toggled.
|
|
|
|
|
if (is_homed && leveling_is_valid()) {
|
|
|
|
|
bool new_level_state = planner.leveling_active;
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_BED_LEVELING, &new_level_state, _lcd_toggle_bed_leveling);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Z Fade Height
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_Z_FADE_HEIGHT, &new_z_fade_height, 0.0, 100.0, _lcd_set_z_fade_height);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// MBL Z Offset
|
|
|
|
|
//
|
|
|
|
|
#if ENABLED(MESH_BED_LEVELING)
|
|
|
|
|
MENU_ITEM_EDIT(float43, MSG_BED_Z, &mbl.z_offset, -1, 1);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
|
|
|
|
MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
|
|
|
|
|
#elif HAS_BED_PROBE
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LEVEL_BED_CORNERS)
|
|
|
|
|
// Move to the next corner for leveling
|
|
|
|
|
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
|
|
|
|
|
MENU_ITEM(submenu, MSG_LEVEL_CORNERS, _lcd_level_bed_corners);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(EEPROM_SETTINGS)
|
|
|
|
|
MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
|
|
|
|
|
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
|
|
|
|
|
#endif
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
void _lcd_goto_bed_leveling() {
|
|
|
|
|
lcd_goto_screen(lcd_bed_leveling);
|
|
|
|
|
new_z_fade_height = planner.z_fade_height;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif // LCD_BED_LEVELING
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* "Prepare" submenu
|
|
|
|
@ -2683,26 +2707,44 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
// Level Bed
|
|
|
|
|
//
|
|
|
|
|
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
|
|
|
|
MENU_ITEM(submenu, MSG_UBL_LEVEL_BED,
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
_lcd_goto_ubl_level_bed
|
|
|
|
|
#else
|
|
|
|
|
_lcd_ubl_level_bed
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_UBL_LEVEL_BED, (
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
_lcd_goto_ubl_level_bed
|
|
|
|
|
#else
|
|
|
|
|
_lcd_ubl_level_bed
|
|
|
|
|
#endif
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
#elif ENABLED(LCD_BED_LEVELING)
|
|
|
|
|
|
|
|
|
|
#if ENABLED(PROBE_MANUALLY)
|
|
|
|
|
if (!g29_in_progress)
|
|
|
|
|
#endif
|
|
|
|
|
MENU_ITEM(submenu, MSG_BED_LEVELING,
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
_lcd_goto_bed_leveling
|
|
|
|
|
#else
|
|
|
|
|
lcd_bed_leveling
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_BED_LEVELING, (
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
_lcd_goto_bed_leveling
|
|
|
|
|
#else
|
|
|
|
|
lcd_bed_leveling
|
|
|
|
|
#endif
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
#elif PLANNER_LEVELING && DISABLED(PROBE_MANUALLY) && DISABLED(SLIM_LCD_MENUS)
|
|
|
|
|
MENU_ITEM(gcode, MSG_BED_LEVELING, PSTR("G28\nG29"));
|
|
|
|
|
|
|
|
|
|
#elif PLANNER_LEVELING && DISABLED(SLIM_LCD_MENUS)
|
|
|
|
|
|
|
|
|
|
#if DISABLED(PROBE_MANUALLY)
|
|
|
|
|
MENU_ITEM(gcode, MSG_LEVEL_BED, PSTR("G28\nG29"));
|
|
|
|
|
#endif
|
|
|
|
|
if (leveling_is_valid()) {
|
|
|
|
|
bool new_level_state = planner.leveling_active;
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_BED_LEVELING, &new_level_state, _lcd_toggle_bed_leveling);
|
|
|
|
|
}
|
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_Z_FADE_HEIGHT, &new_z_fade_height, 0.0, 100.0, _lcd_set_z_fade_height);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LEVEL_BED_CORNERS) && DISABLED(LCD_BED_LEVELING)
|
|
|
|
@ -2864,15 +2906,15 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
void lcd_delta_settings() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_DELTA_CALIBRATE);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10.0, delta_height + 10.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10.0, delta_height + 10.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, "Ex", &delta_endstop_adj[A_AXIS], -5.0, 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, "Ey", &delta_endstop_adj[B_AXIS], -5.0, 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, "Ez", &delta_endstop_adj[C_AXIS], -5.0, 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5.0, delta_radius + 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5.0, delta_radius + 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, "Tx", &delta_tower_angle_trim[A_AXIS], -5.0, 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, "Ty", &delta_tower_angle_trim[B_AXIS], -5.0, 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, "Tz", &delta_tower_angle_trim[C_AXIS], -5.0, 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5.0, delta_diagonal_rod + 5.0, _recalc_delta_settings);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5.0, delta_diagonal_rod + 5.0, _recalc_delta_settings);
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3315,7 +3357,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
#if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
|
|
|
|
|
MENU_ITEM(submenu, MSG_FILAMENT, lcd_control_filament_menu);
|
|
|
|
|
#elif ENABLED(LIN_ADVANCE)
|
|
|
|
|
MENU_ITEM_EDIT(float32, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if HAS_LCD_CONTRAST
|
|
|
|
@ -3500,7 +3542,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, HEATER_0_MAXTEMP - 15);
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, HEATER_0_MAXTEMP - 15);
|
|
|
|
|
MENU_ITEM_EDIT(float32, MSG_FACTOR, &planner.autotemp_factor, 0.0, 1.0);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0.0, 1.0);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -3516,9 +3558,9 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
#define _PID_BASE_MENU_ITEMS(ELABEL, eindex) \
|
|
|
|
|
raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \
|
|
|
|
|
raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I ELABEL, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E ## eindex); \
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E ## eindex); \
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
|
|
|
|
|
|
|
|
|
|
#if ENABLED(PID_EXTRUSION_SCALING)
|
|
|
|
|
#define _PID_MENU_ITEMS(ELABEL, eindex) \
|
|
|
|
@ -3739,7 +3781,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_VC_JERK, &planner.max_jerk[C_AXIS], 1, 990);
|
|
|
|
|
#else
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_VC_JERK, &planner.max_jerk[C_AXIS], 0.1, 990);
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_VC_JERK, &planner.max_jerk[C_AXIS], 0.1, 990);
|
|
|
|
|
#endif
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_VE_JERK, &planner.max_jerk[E_AXIS], 1, 990);
|
|
|
|
|
|
|
|
|
@ -3790,7 +3832,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
|
|
|
|
MENU_ITEM(submenu, MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
|
|
|
|
|
#elif HAS_BED_PROBE
|
|
|
|
|
MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if DISABLED(SLIM_LCD_MENUS)
|
|
|
|
@ -3828,7 +3870,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
MENU_BACK(MSG_CONTROL);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LIN_ADVANCE)
|
|
|
|
|
MENU_ITEM_EDIT(float32, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K, 0, 999);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if DISABLED(NO_VOLUMETRICS)
|
|
|
|
@ -3913,15 +3955,15 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_CONTROL);
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_AUTORETRACT, &fwretract.autoretract_enabled, fwretract.refresh_autoretract);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_CONTROL_RETRACT, &fwretract.retract_length, 0, 100);
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT, &fwretract.retract_length, 0, 100);
|
|
|
|
|
#if EXTRUDERS > 1
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_CONTROL_RETRACT_SWAP, &fwretract.swap_retract_length, 0, 100);
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_SWAP, &fwretract.swap_retract_length, 0, 100);
|
|
|
|
|
#endif
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACTF, &fwretract.retract_feedrate_mm_s, 1, 999);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_CONTROL_RETRACT_ZLIFT, &fwretract.retract_zlift, 0, 999);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_CONTROL_RETRACT_RECOVER, &fwretract.retract_recover_length, -100, 100);
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_ZLIFT, &fwretract.retract_zlift, 0, 999);
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER, &fwretract.retract_recover_length, -100, 100);
|
|
|
|
|
#if EXTRUDERS > 1
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_CONTROL_RETRACT_RECOVER_SWAP, &fwretract.swap_retract_recover_length, -100, 100);
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER_SWAP, &fwretract.swap_retract_recover_length, -100, 100);
|
|
|
|
|
#endif
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACT_RECOVERF, &fwretract.retract_recover_feedrate_mm_s, 1, 999);
|
|
|
|
|
#if EXTRUDERS > 1
|
|
|
|
@ -4829,11 +4871,11 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(int16_t, int3, itostr3, 1);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(uint8_t, int8, i8tostr3, 1);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float3, ftostr3, 1.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float32, ftostr32, 100.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float52, ftostr52, 100.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float43, ftostr43sign, 1000.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float5, ftostr5rj, 0.01);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float51, ftostr51sign, 10.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float52, ftostr52sign, 100.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float52sign, ftostr52sign, 100.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(float, float62, ftostr62rj, 100.0);
|
|
|
|
|
DEFINE_MENU_EDIT_TYPE(uint32_t, long5, ftostr5rj, 0.01);
|
|
|
|
|
|
|
|
|
|