|
@@ -1754,15 +1754,16 @@ void kill_screen(const char* lcd_msg) {
|
1754
|
1754
|
|
1755
|
1755
|
/**
|
1756
|
1756
|
* Step 1: Bed Level entry-point
|
1757
|
|
- * - Cancel
|
1758
|
|
- * - Auto Home (if homing needed)
|
1759
|
|
- * - Leveling On/Off (if data exists, and homed)
|
1760
|
|
- * - Level Bed >
|
1761
|
|
- * - Fade Height (Req: ENABLE_LEVELING_FADE_HEIGHT)
|
1762
|
|
- * - Mesh Z Offset (Req: MESH_BED_LEVELING)
|
1763
|
|
- * - Z Probe Offset (Req: HAS_BED_PROBE, Opt: BABYSTEP_ZPROBE_OFFSET)
|
1764
|
|
- * - Load Settings (Req: EEPROM_SETTINGS)
|
1765
|
|
- * - Save Settings (Req: EEPROM_SETTINGS)
|
|
1757
|
+ *
|
|
1758
|
+ * << Prepare
|
|
1759
|
+ * Auto Home (if homing needed)
|
|
1760
|
+ * Leveling On/Off (if data exists, and homed)
|
|
1761
|
+ * Level Bed
|
|
1762
|
+ * Fade Height: --- (Req: ENABLE_LEVELING_FADE_HEIGHT)
|
|
1763
|
+ * Mesh Z Offset: --- (Req: MESH_BED_LEVELING)
|
|
1764
|
+ * Z Probe Offset: --- (Req: HAS_BED_PROBE, Opt: BABYSTEP_ZPROBE_OFFSET)
|
|
1765
|
+ * Load Settings (Req: EEPROM_SETTINGS)
|
|
1766
|
+ * Save Settings (Req: EEPROM_SETTINGS)
|
1766
|
1767
|
*/
|
1767
|
1768
|
void lcd_bed_leveling() {
|
1768
|
1769
|
START_MENU();
|
|
@@ -1833,6 +1834,11 @@ void kill_screen(const char* lcd_msg) {
|
1833
|
1834
|
|
1834
|
1835
|
/**
|
1835
|
1836
|
* UBL Custom Mesh submenu
|
|
1837
|
+ *
|
|
1838
|
+ * << Build Mesh
|
|
1839
|
+ * Hotend Temp: ---
|
|
1840
|
+ * Bed Temp: ---
|
|
1841
|
+ * Build Custom Mesh
|
1836
|
1842
|
*/
|
1837
|
1843
|
void _lcd_ubl_custom_mesh() {
|
1838
|
1844
|
START_MENU();
|
|
@@ -1858,6 +1864,11 @@ void kill_screen(const char* lcd_msg) {
|
1858
|
1864
|
|
1859
|
1865
|
/**
|
1860
|
1866
|
* UBL Adjust Mesh Height submenu
|
|
1867
|
+ *
|
|
1868
|
+ * << Edit Mesh
|
|
1869
|
+ * Height Amount: ---
|
|
1870
|
+ * Adjust Mesh Height
|
|
1871
|
+ * << Info Screen
|
1861
|
1872
|
*/
|
1862
|
1873
|
void _lcd_ubl_height_adjust_menu() {
|
1863
|
1874
|
START_MENU();
|
|
@@ -1870,6 +1881,12 @@ void kill_screen(const char* lcd_msg) {
|
1870
|
1881
|
|
1871
|
1882
|
/**
|
1872
|
1883
|
* UBL Edit Mesh submenu
|
|
1884
|
+ *
|
|
1885
|
+ * << UBL Tools
|
|
1886
|
+ * Fine Tune All
|
|
1887
|
+ * Fine Tune Closest
|
|
1888
|
+ * - Adjust Mesh Height >>
|
|
1889
|
+ * << Info Screen
|
1873
|
1890
|
*/
|
1874
|
1891
|
void _lcd_ubl_edit_mesh() {
|
1875
|
1892
|
START_MENU();
|
|
@@ -1899,6 +1916,12 @@ void kill_screen(const char* lcd_msg) {
|
1899
|
1916
|
|
1900
|
1917
|
/**
|
1901
|
1918
|
* UBL Validate Mesh submenu
|
|
1919
|
+ *
|
|
1920
|
+ * << UBL Tools
|
|
1921
|
+ * PLA Mesh Validation
|
|
1922
|
+ * ABS Mesh Validation
|
|
1923
|
+ * Validate Custom Mesh
|
|
1924
|
+ * << Info Screen
|
1902
|
1925
|
*/
|
1903
|
1926
|
void _lcd_ubl_validate_mesh() {
|
1904
|
1927
|
START_MENU();
|
|
@@ -1926,6 +1949,10 @@ void kill_screen(const char* lcd_msg) {
|
1926
|
1949
|
|
1927
|
1950
|
/**
|
1928
|
1951
|
* UBL Grid Leveling submenu
|
|
1952
|
+ *
|
|
1953
|
+ * << UBL Tools
|
|
1954
|
+ * Side points: ---
|
|
1955
|
+ * Level Mesh
|
1929
|
1956
|
*/
|
1930
|
1957
|
void _lcd_ubl_grid_level() {
|
1931
|
1958
|
START_MENU();
|
|
@@ -1937,6 +1964,11 @@ void kill_screen(const char* lcd_msg) {
|
1937
|
1964
|
|
1938
|
1965
|
/**
|
1939
|
1966
|
* UBL Mesh Leveling submenu
|
|
1967
|
+ *
|
|
1968
|
+ * << UBL Tools
|
|
1969
|
+ * 3-Point Mesh Leveling
|
|
1970
|
+ * - Grid Mesh Leveling >>
|
|
1971
|
+ * << Info Screen
|
1940
|
1972
|
*/
|
1941
|
1973
|
void _lcd_ubl_mesh_leveling() {
|
1942
|
1974
|
START_MENU();
|
|
@@ -1967,6 +1999,13 @@ void kill_screen(const char* lcd_msg) {
|
1967
|
1999
|
|
1968
|
2000
|
/**
|
1969
|
2001
|
* UBL Fill-in Mesh submenu
|
|
2002
|
+ *
|
|
2003
|
+ * << Build Mesh
|
|
2004
|
+ * Fill-in Amount: ---
|
|
2005
|
+ * Fill-in Mesh
|
|
2006
|
+ * Smart Fill-in
|
|
2007
|
+ * Manual Fill-in
|
|
2008
|
+ * << Info Screen
|
1970
|
2009
|
*/
|
1971
|
2010
|
void _lcd_ubl_fillin_menu() {
|
1972
|
2011
|
START_MENU();
|
|
@@ -1986,6 +2025,17 @@ void kill_screen(const char* lcd_msg) {
|
1986
|
2025
|
|
1987
|
2026
|
/**
|
1988
|
2027
|
* UBL Build Mesh submenu
|
|
2028
|
+ *
|
|
2029
|
+ * << UBL Tools
|
|
2030
|
+ * Build PLA Mesh
|
|
2031
|
+ * Build ABS Mesh
|
|
2032
|
+ * - Build Custom Mesh >>
|
|
2033
|
+ * Build Cold Mesh
|
|
2034
|
+ * - Fill-in Mesh >>
|
|
2035
|
+ * Continue Bed Mesh
|
|
2036
|
+ * Invalidate All
|
|
2037
|
+ * Invalidate Closest
|
|
2038
|
+ * << Info Screen
|
1989
|
2039
|
*/
|
1990
|
2040
|
void _lcd_ubl_build_mesh() {
|
1991
|
2041
|
START_MENU();
|
|
@@ -2051,6 +2101,11 @@ void kill_screen(const char* lcd_msg) {
|
2051
|
2101
|
|
2052
|
2102
|
/**
|
2053
|
2103
|
* UBL Mesh Storage submenu
|
|
2104
|
+ *
|
|
2105
|
+ * << Unified Bed Leveling
|
|
2106
|
+ * Memory Slot: ---
|
|
2107
|
+ * Load Bed Mesh
|
|
2108
|
+ * Save Bed Mesh
|
2054
|
2109
|
*/
|
2055
|
2110
|
void _lcd_ubl_storage_mesh() {
|
2056
|
2111
|
START_MENU();
|
|
@@ -2278,6 +2333,12 @@ void kill_screen(const char* lcd_msg) {
|
2278
|
2333
|
|
2279
|
2334
|
/**
|
2280
|
2335
|
* UBL Output map submenu
|
|
2336
|
+ *
|
|
2337
|
+ * << Unified Bed Leveling
|
|
2338
|
+ * Output for Host
|
|
2339
|
+ * Output for CSV
|
|
2340
|
+ * Off Printer Backup
|
|
2341
|
+ * Output Mesh Map
|
2281
|
2342
|
*/
|
2282
|
2343
|
void _lcd_ubl_output_map() {
|
2283
|
2344
|
START_MENU();
|
|
@@ -2291,6 +2352,12 @@ void kill_screen(const char* lcd_msg) {
|
2291
|
2352
|
|
2292
|
2353
|
/**
|
2293
|
2354
|
* UBL Tools submenu
|
|
2355
|
+ *
|
|
2356
|
+ * << Unified Bed Leveling
|
|
2357
|
+ * - Build Mesh >>
|
|
2358
|
+ * - Validate Mesh >>
|
|
2359
|
+ * - Edit Mesh >>
|
|
2360
|
+ * - Mesh Leveling >>
|
2294
|
2361
|
*/
|
2295
|
2362
|
void _lcd_ubl_tools_menu() {
|
2296
|
2363
|
START_MENU();
|
|
@@ -2303,62 +2370,42 @@ void kill_screen(const char* lcd_msg) {
|
2303
|
2370
|
}
|
2304
|
2371
|
|
2305
|
2372
|
/**
|
|
2373
|
+ * UBL Step-By-Step submenu
|
|
2374
|
+ *
|
|
2375
|
+ * << Unified Bed Leveling
|
|
2376
|
+ * 1 Build Cold Mesh
|
|
2377
|
+ * 2 Smart Fill-in
|
|
2378
|
+ * - 3 Validate Mesh >>
|
|
2379
|
+ * 4 Fine Tune All
|
|
2380
|
+ * - 5 Validate Mesh >>
|
|
2381
|
+ * 6 Fine Tune All
|
|
2382
|
+ * 7 Save Bed Mesh
|
|
2383
|
+ */
|
|
2384
|
+ void _lcd_ubl_step_by_step() {
|
|
2385
|
+ START_MENU();
|
|
2386
|
+ MENU_BACK(MSG_UBL_LEVEL_BED);
|
|
2387
|
+ MENU_ITEM(gcode, "1 " MSG_UBL_BUILD_COLD_MESH, PSTR("G28\nG29 P1"));
|
|
2388
|
+ MENU_ITEM(function, "2 " MSG_UBL_SMART_FILLIN, _lcd_ubl_smart_fillin_cmd);
|
|
2389
|
+ MENU_ITEM(submenu, "3 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
|
2390
|
+ MENU_ITEM(gcode, "4 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
|
|
2391
|
+ MENU_ITEM(submenu, "5 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
|
2392
|
+ MENU_ITEM(gcode, "6 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
|
|
2393
|
+ MENU_ITEM(function, "7 " MSG_UBL_SAVE_MESH, _lcd_ubl_save_mesh_cmd);
|
|
2394
|
+ END_MENU();
|
|
2395
|
+ }
|
|
2396
|
+
|
|
2397
|
+ /**
|
2306
|
2398
|
* UBL System submenu
|
2307
|
2399
|
*
|
2308
|
|
- * Prepare
|
2309
|
|
- * - Unified Bed Leveling
|
2310
|
|
- * - Manually Build Mesh
|
2311
|
|
- * - Activate UBL
|
2312
|
|
- * - Deactivate UBL
|
2313
|
|
- * - Mesh Storage
|
2314
|
|
- * Memory Slot:
|
2315
|
|
- * Load Bed Mesh
|
2316
|
|
- * Save Bed Mesh
|
2317
|
|
- * - Output Map
|
2318
|
|
- * Topography to Host
|
2319
|
|
- * CSV for Spreadsheet
|
2320
|
|
- * Mesh Output Backup
|
2321
|
|
- * Output to LCD Grid
|
2322
|
|
- * - UBL Tools
|
2323
|
|
- * - Build Mesh
|
2324
|
|
- * Build PLA Mesh
|
2325
|
|
- * Build ABS Mesh
|
2326
|
|
- * - Build Custom Mesh
|
2327
|
|
- * Hotend Temp:
|
2328
|
|
- * Bed Temp:
|
2329
|
|
- * Build Custom Mesh
|
2330
|
|
- * Info Screen
|
2331
|
|
- * - Build Cold Mesh
|
2332
|
|
- * - Fill-in Mesh
|
2333
|
|
- * Fill-in Mesh
|
2334
|
|
- * Smart Fill-in
|
2335
|
|
- * Manual Fill-in
|
2336
|
|
- * Info Screen
|
2337
|
|
- * Continue Bed Mesh
|
2338
|
|
- * Invalidate All
|
2339
|
|
- * Invalidate Closest
|
2340
|
|
- * - Validate Mesh
|
2341
|
|
- * PLA Mesh Validation
|
2342
|
|
- * ABS Mesh Validation
|
2343
|
|
- * - Custom Mesh Validation
|
2344
|
|
- * Hotend Temp:
|
2345
|
|
- * Bed Temp:
|
2346
|
|
- * Validate Mesh
|
2347
|
|
- * Info Screen
|
2348
|
|
- * - Edit Mesh
|
2349
|
|
- * Fine Tune All
|
2350
|
|
- * Fine Tune Closest
|
2351
|
|
- * - Adjust Mesh Height
|
2352
|
|
- * Height Amount:
|
2353
|
|
- * Adjust Mesh Height
|
2354
|
|
- * Info Screen
|
2355
|
|
- * - Mesh Leveling
|
2356
|
|
- * 3-Point Mesh Leveling
|
2357
|
|
- * - Grid Mesh Leveling
|
2358
|
|
- * Side points:
|
2359
|
|
- * Level Mesh
|
2360
|
|
- * Info Screen
|
2361
|
|
- * - Output UBL Info
|
|
2400
|
+ * << Prepare
|
|
2401
|
+ * - Manually Build Mesh >>
|
|
2402
|
+ * - Activate UBL >>
|
|
2403
|
+ * - Deactivate UBL >>
|
|
2404
|
+ * - Step-By-Step UBL >>
|
|
2405
|
+ * - Mesh Storage >>
|
|
2406
|
+ * - Output Map >>
|
|
2407
|
+ * - UBL Tools >>
|
|
2408
|
+ * - Output UBL Info >>
|
2362
|
2409
|
*/
|
2363
|
2410
|
|
2364
|
2411
|
void _lcd_ubl_level_bed() {
|
|
@@ -2367,6 +2414,7 @@ void kill_screen(const char* lcd_msg) {
|
2367
|
2414
|
MENU_ITEM(gcode, MSG_UBL_MANUAL_MESH, PSTR("G29 I999\nG29 P2 B T0"));
|
2368
|
2415
|
MENU_ITEM(gcode, MSG_UBL_ACTIVATE_MESH, PSTR("G29 A"));
|
2369
|
2416
|
MENU_ITEM(gcode, MSG_UBL_DEACTIVATE_MESH, PSTR("G29 D"));
|
|
2417
|
+ MENU_ITEM(submenu, MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step);
|
2370
|
2418
|
MENU_ITEM(submenu, MSG_UBL_STORAGE_MESH_MENU, _lcd_ubl_storage_mesh);
|
2371
|
2419
|
MENU_ITEM(submenu, MSG_UBL_OUTPUT_MAP, _lcd_ubl_output_map);
|
2372
|
2420
|
MENU_ITEM(submenu, MSG_UBL_TOOLS, _lcd_ubl_tools_menu);
|
|
@@ -3263,25 +3311,25 @@ void kill_screen(const char* lcd_msg) {
|
3263
|
3311
|
START_MENU();
|
3264
|
3312
|
MENU_BACK(MSG_MOTION);
|
3265
|
3313
|
|
3266
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning);
|
3267
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning);
|
3268
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning);
|
|
3314
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning);
|
|
3315
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning);
|
|
3316
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning);
|
3269
|
3317
|
|
3270
|
3318
|
#if ENABLED(DISTINCT_E_FACTORS)
|
3271
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning);
|
3272
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_E1STEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_e0_positioning);
|
3273
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_E2STEPS, &planner.axis_steps_per_mm[E_AXIS + 1], 5, 9999, _planner_refresh_e1_positioning);
|
|
3319
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning);
|
|
3320
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E1STEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_e0_positioning);
|
|
3321
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E2STEPS, &planner.axis_steps_per_mm[E_AXIS + 1], 5, 9999, _planner_refresh_e1_positioning);
|
3274
|
3322
|
#if E_STEPPERS > 2
|
3275
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning);
|
|
3323
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning);
|
3276
|
3324
|
#if E_STEPPERS > 3
|
3277
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning);
|
|
3325
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning);
|
3278
|
3326
|
#if E_STEPPERS > 4
|
3279
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning);
|
|
3327
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning);
|
3280
|
3328
|
#endif // E_STEPPERS > 4
|
3281
|
3329
|
#endif // E_STEPPERS > 3
|
3282
|
3330
|
#endif // E_STEPPERS > 2
|
3283
|
3331
|
#else
|
3284
|
|
- MENU_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
|
3332
|
+ MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
3285
|
3333
|
#endif
|
3286
|
3334
|
|
3287
|
3335
|
END_MENU();
|