|
|
@ -1754,15 +1754,16 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* Step 1: Bed Level entry-point |
|
|
|
* - Cancel |
|
|
|
* - Auto Home (if homing needed) |
|
|
|
* - Leveling On/Off (if data exists, and homed) |
|
|
|
* - Level Bed > |
|
|
|
* - 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) |
|
|
|
* - Load Settings (Req: EEPROM_SETTINGS) |
|
|
|
* - Save Settings (Req: EEPROM_SETTINGS) |
|
|
|
* |
|
|
|
* << Prepare |
|
|
|
* Auto Home (if homing needed) |
|
|
|
* Leveling On/Off (if data exists, and homed) |
|
|
|
* Level Bed |
|
|
|
* 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) |
|
|
|
* Load Settings (Req: EEPROM_SETTINGS) |
|
|
|
* Save Settings (Req: EEPROM_SETTINGS) |
|
|
|
*/ |
|
|
|
void lcd_bed_leveling() { |
|
|
|
START_MENU(); |
|
|
@ -1833,6 +1834,11 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Custom Mesh submenu |
|
|
|
* |
|
|
|
* << Build Mesh |
|
|
|
* Hotend Temp: --- |
|
|
|
* Bed Temp: --- |
|
|
|
* Build Custom Mesh |
|
|
|
*/ |
|
|
|
void _lcd_ubl_custom_mesh() { |
|
|
|
START_MENU(); |
|
|
@ -1858,6 +1864,11 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Adjust Mesh Height submenu |
|
|
|
* |
|
|
|
* << Edit Mesh |
|
|
|
* Height Amount: --- |
|
|
|
* Adjust Mesh Height |
|
|
|
* << Info Screen |
|
|
|
*/ |
|
|
|
void _lcd_ubl_height_adjust_menu() { |
|
|
|
START_MENU(); |
|
|
@ -1870,6 +1881,12 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Edit Mesh submenu |
|
|
|
* |
|
|
|
* << UBL Tools |
|
|
|
* Fine Tune All |
|
|
|
* Fine Tune Closest |
|
|
|
* - Adjust Mesh Height >> |
|
|
|
* << Info Screen |
|
|
|
*/ |
|
|
|
void _lcd_ubl_edit_mesh() { |
|
|
|
START_MENU(); |
|
|
@ -1899,6 +1916,12 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Validate Mesh submenu |
|
|
|
* |
|
|
|
* << UBL Tools |
|
|
|
* PLA Mesh Validation |
|
|
|
* ABS Mesh Validation |
|
|
|
* Validate Custom Mesh |
|
|
|
* << Info Screen |
|
|
|
*/ |
|
|
|
void _lcd_ubl_validate_mesh() { |
|
|
|
START_MENU(); |
|
|
@ -1926,6 +1949,10 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Grid Leveling submenu |
|
|
|
* |
|
|
|
* << UBL Tools |
|
|
|
* Side points: --- |
|
|
|
* Level Mesh |
|
|
|
*/ |
|
|
|
void _lcd_ubl_grid_level() { |
|
|
|
START_MENU(); |
|
|
@ -1937,6 +1964,11 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Mesh Leveling submenu |
|
|
|
* |
|
|
|
* << UBL Tools |
|
|
|
* 3-Point Mesh Leveling |
|
|
|
* - Grid Mesh Leveling >> |
|
|
|
* << Info Screen |
|
|
|
*/ |
|
|
|
void _lcd_ubl_mesh_leveling() { |
|
|
|
START_MENU(); |
|
|
@ -1967,6 +1999,13 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Fill-in Mesh submenu |
|
|
|
* |
|
|
|
* << Build Mesh |
|
|
|
* Fill-in Amount: --- |
|
|
|
* Fill-in Mesh |
|
|
|
* Smart Fill-in |
|
|
|
* Manual Fill-in |
|
|
|
* << Info Screen |
|
|
|
*/ |
|
|
|
void _lcd_ubl_fillin_menu() { |
|
|
|
START_MENU(); |
|
|
@ -1986,6 +2025,17 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Build Mesh submenu |
|
|
|
* |
|
|
|
* << UBL Tools |
|
|
|
* Build PLA Mesh |
|
|
|
* Build ABS Mesh |
|
|
|
* - Build Custom Mesh >> |
|
|
|
* Build Cold Mesh |
|
|
|
* - Fill-in Mesh >> |
|
|
|
* Continue Bed Mesh |
|
|
|
* Invalidate All |
|
|
|
* Invalidate Closest |
|
|
|
* << Info Screen |
|
|
|
*/ |
|
|
|
void _lcd_ubl_build_mesh() { |
|
|
|
START_MENU(); |
|
|
@ -2051,6 +2101,11 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Mesh Storage submenu |
|
|
|
* |
|
|
|
* << Unified Bed Leveling |
|
|
|
* Memory Slot: --- |
|
|
|
* Load Bed Mesh |
|
|
|
* Save Bed Mesh |
|
|
|
*/ |
|
|
|
void _lcd_ubl_storage_mesh() { |
|
|
|
START_MENU(); |
|
|
@ -2278,6 +2333,12 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Output map submenu |
|
|
|
* |
|
|
|
* << Unified Bed Leveling |
|
|
|
* Output for Host |
|
|
|
* Output for CSV |
|
|
|
* Off Printer Backup |
|
|
|
* Output Mesh Map |
|
|
|
*/ |
|
|
|
void _lcd_ubl_output_map() { |
|
|
|
START_MENU(); |
|
|
@ -2291,6 +2352,12 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Tools submenu |
|
|
|
* |
|
|
|
* << Unified Bed Leveling |
|
|
|
* - Build Mesh >> |
|
|
|
* - Validate Mesh >> |
|
|
|
* - Edit Mesh >> |
|
|
|
* - Mesh Leveling >> |
|
|
|
*/ |
|
|
|
void _lcd_ubl_tools_menu() { |
|
|
|
START_MENU(); |
|
|
@ -2302,63 +2369,43 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
END_MENU(); |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Step-By-Step submenu |
|
|
|
* |
|
|
|
* << Unified Bed Leveling |
|
|
|
* 1 Build Cold Mesh |
|
|
|
* 2 Smart Fill-in |
|
|
|
* - 3 Validate Mesh >> |
|
|
|
* 4 Fine Tune All |
|
|
|
* - 5 Validate Mesh >> |
|
|
|
* 6 Fine Tune All |
|
|
|
* 7 Save Bed Mesh |
|
|
|
*/ |
|
|
|
void _lcd_ubl_step_by_step() { |
|
|
|
START_MENU(); |
|
|
|
MENU_BACK(MSG_UBL_LEVEL_BED); |
|
|
|
MENU_ITEM(gcode, "1 " MSG_UBL_BUILD_COLD_MESH, PSTR("G28\nG29 P1")); |
|
|
|
MENU_ITEM(function, "2 " MSG_UBL_SMART_FILLIN, _lcd_ubl_smart_fillin_cmd); |
|
|
|
MENU_ITEM(submenu, "3 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); |
|
|
|
MENU_ITEM(gcode, "4 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); |
|
|
|
MENU_ITEM(submenu, "5 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); |
|
|
|
MENU_ITEM(gcode, "6 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); |
|
|
|
MENU_ITEM(function, "7 " MSG_UBL_SAVE_MESH, _lcd_ubl_save_mesh_cmd); |
|
|
|
END_MENU(); |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL System submenu |
|
|
|
* |
|
|
|
* Prepare |
|
|
|
* - Unified Bed Leveling |
|
|
|
* - Manually Build Mesh |
|
|
|
* - Activate UBL |
|
|
|
* - Deactivate UBL |
|
|
|
* - Mesh Storage |
|
|
|
* Memory Slot: |
|
|
|
* Load Bed Mesh |
|
|
|
* Save Bed Mesh |
|
|
|
* - Output Map |
|
|
|
* Topography to Host |
|
|
|
* CSV for Spreadsheet |
|
|
|
* Mesh Output Backup |
|
|
|
* Output to LCD Grid |
|
|
|
* - UBL Tools |
|
|
|
* - Build Mesh |
|
|
|
* Build PLA Mesh |
|
|
|
* Build ABS Mesh |
|
|
|
* - Build Custom Mesh |
|
|
|
* Hotend Temp: |
|
|
|
* Bed Temp: |
|
|
|
* Build Custom Mesh |
|
|
|
* Info Screen |
|
|
|
* - Build Cold Mesh |
|
|
|
* - Fill-in Mesh |
|
|
|
* Fill-in Mesh |
|
|
|
* Smart Fill-in |
|
|
|
* Manual Fill-in |
|
|
|
* Info Screen |
|
|
|
* Continue Bed Mesh |
|
|
|
* Invalidate All |
|
|
|
* Invalidate Closest |
|
|
|
* - Validate Mesh |
|
|
|
* PLA Mesh Validation |
|
|
|
* ABS Mesh Validation |
|
|
|
* - Custom Mesh Validation |
|
|
|
* Hotend Temp: |
|
|
|
* Bed Temp: |
|
|
|
* Validate Mesh |
|
|
|
* Info Screen |
|
|
|
* - Edit Mesh |
|
|
|
* Fine Tune All |
|
|
|
* Fine Tune Closest |
|
|
|
* - Adjust Mesh Height |
|
|
|
* Height Amount: |
|
|
|
* Adjust Mesh Height |
|
|
|
* Info Screen |
|
|
|
* - Mesh Leveling |
|
|
|
* 3-Point Mesh Leveling |
|
|
|
* - Grid Mesh Leveling |
|
|
|
* Side points: |
|
|
|
* Level Mesh |
|
|
|
* Info Screen |
|
|
|
* - Output UBL Info |
|
|
|
* << Prepare |
|
|
|
* - Manually Build Mesh >> |
|
|
|
* - Activate UBL >> |
|
|
|
* - Deactivate UBL >> |
|
|
|
* - Step-By-Step UBL >> |
|
|
|
* - Mesh Storage >> |
|
|
|
* - Output Map >> |
|
|
|
* - UBL Tools >> |
|
|
|
* - Output UBL Info >> |
|
|
|
*/ |
|
|
|
|
|
|
|
void _lcd_ubl_level_bed() { |
|
|
@ -2367,6 +2414,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
MENU_ITEM(gcode, MSG_UBL_MANUAL_MESH, PSTR("G29 I999\nG29 P2 B T0")); |
|
|
|
MENU_ITEM(gcode, MSG_UBL_ACTIVATE_MESH, PSTR("G29 A")); |
|
|
|
MENU_ITEM(gcode, MSG_UBL_DEACTIVATE_MESH, PSTR("G29 D")); |
|
|
|
MENU_ITEM(submenu, MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step); |
|
|
|
MENU_ITEM(submenu, MSG_UBL_STORAGE_MESH_MENU, _lcd_ubl_storage_mesh); |
|
|
|
MENU_ITEM(submenu, MSG_UBL_OUTPUT_MAP, _lcd_ubl_output_map); |
|
|
|
MENU_ITEM(submenu, MSG_UBL_TOOLS, _lcd_ubl_tools_menu); |
|
|
@ -3263,25 +3311,25 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
START_MENU(); |
|
|
|
MENU_BACK(MSG_MOTION); |
|
|
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS) |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_E1STEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_e0_positioning); |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_E2STEPS, &planner.axis_steps_per_mm[E_AXIS + 1], 5, 9999, _planner_refresh_e1_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E1STEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_e0_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E2STEPS, &planner.axis_steps_per_mm[E_AXIS + 1], 5, 9999, _planner_refresh_e1_positioning); |
|
|
|
#if E_STEPPERS > 2 |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning); |
|
|
|
#if E_STEPPERS > 3 |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning); |
|
|
|
#if E_STEPPERS > 4 |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning); |
|
|
|
#endif // E_STEPPERS > 4
|
|
|
|
#endif // E_STEPPERS > 3
|
|
|
|
#endif // E_STEPPERS > 2
|
|
|
|
#else |
|
|
|
MENU_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning); |
|
|
|
#endif |
|
|
|
|
|
|
|
END_MENU(); |
|
|
|