|
@@ -118,8 +118,8 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
118
|
118
|
void lcd_move_menu();
|
119
|
119
|
void lcd_control_menu();
|
120
|
120
|
void lcd_control_temperature_menu();
|
121
|
|
- void lcd_control_temperature_preheat_pla_settings_menu();
|
122
|
|
- void lcd_control_temperature_preheat_abs_settings_menu();
|
|
121
|
+ void lcd_control_temperature_preheat_material1_settings_menu();
|
|
122
|
+ void lcd_control_temperature_preheat_material2_settings_menu();
|
123
|
123
|
void lcd_control_motion_menu();
|
124
|
124
|
void lcd_control_volumetric_menu();
|
125
|
125
|
|
|
@@ -898,13 +898,15 @@ void kill_screen(const char* lcd_msg) {
|
898
|
898
|
}
|
899
|
899
|
#endif
|
900
|
900
|
|
|
901
|
+ constexpr int heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP);
|
|
902
|
+
|
901
|
903
|
/**
|
902
|
904
|
*
|
903
|
905
|
* "Prepare" submenu items
|
904
|
906
|
*
|
905
|
907
|
*/
|
906
|
908
|
void _lcd_preheat(int endnum, const float temph, const float tempb, const int fan) {
|
907
|
|
- if (temph > 0) thermalManager.setTargetHotend(temph, endnum);
|
|
909
|
+ if (temph > 0) thermalManager.setTargetHotend(min(heater_maxtemp[endnum], temph), endnum);
|
908
|
910
|
#if TEMP_SENSOR_BED != 0
|
909
|
911
|
thermalManager.setTargetBed(tempb);
|
910
|
912
|
#else
|
|
@@ -923,23 +925,23 @@ void kill_screen(const char* lcd_msg) {
|
923
|
925
|
}
|
924
|
926
|
|
925
|
927
|
#if TEMP_SENSOR_0 != 0
|
926
|
|
- void lcd_preheat_pla0() { _lcd_preheat(0, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
927
|
|
- void lcd_preheat_abs0() { _lcd_preheat(0, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
|
928
|
+ void lcd_preheat_material1_hotend0() { _lcd_preheat(0, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
|
929
|
+ void lcd_preheat_material2_hotend0() { _lcd_preheat(0, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
928
|
930
|
#endif
|
929
|
931
|
|
930
|
932
|
#if HOTENDS > 1
|
931
|
|
- void lcd_preheat_pla1() { _lcd_preheat(1, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
932
|
|
- void lcd_preheat_abs1() { _lcd_preheat(1, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
|
933
|
+ void lcd_preheat_material1_hotend1() { _lcd_preheat(1, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
|
934
|
+ void lcd_preheat_material2_hotend1() { _lcd_preheat(1, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
933
|
935
|
#if HOTENDS > 2
|
934
|
|
- void lcd_preheat_pla2() { _lcd_preheat(2, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
935
|
|
- void lcd_preheat_abs2() { _lcd_preheat(2, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
|
936
|
+ void lcd_preheat_material1_hotend2() { _lcd_preheat(2, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
|
937
|
+ void lcd_preheat_material2_hotend2() { _lcd_preheat(2, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
936
|
938
|
#if HOTENDS > 3
|
937
|
|
- void lcd_preheat_pla3() { _lcd_preheat(3, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
938
|
|
- void lcd_preheat_abs3() { _lcd_preheat(3, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
|
939
|
+ void lcd_preheat_material1_hotend3() { _lcd_preheat(3, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
|
940
|
+ void lcd_preheat_material2_hotend3() { _lcd_preheat(3, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
939
|
941
|
#endif
|
940
|
942
|
#endif
|
941
|
943
|
|
942
|
|
- void lcd_preheat_pla0123() {
|
|
944
|
+ void lcd_preheat_material1_hotend0123() {
|
943
|
945
|
#if HOTENDS > 1
|
944
|
946
|
thermalManager.setTargetHotend(lcd_preheat_hotend_temp[0], 1);
|
945
|
947
|
#if HOTENDS > 2
|
|
@@ -949,9 +951,9 @@ void kill_screen(const char* lcd_msg) {
|
949
|
951
|
#endif
|
950
|
952
|
#endif
|
951
|
953
|
#endif
|
952
|
|
- lcd_preheat_pla0();
|
|
954
|
+ lcd_preheat_material1_hotend0();
|
953
|
955
|
}
|
954
|
|
- void lcd_preheat_abs0123() {
|
|
956
|
+ void lcd_preheat_material2_hotend0123() {
|
955
|
957
|
#if HOTENDS > 1
|
956
|
958
|
thermalManager.setTargetHotend(lcd_preheat_hotend_temp[1], 1);
|
957
|
959
|
#if HOTENDS > 2
|
|
@@ -961,58 +963,58 @@ void kill_screen(const char* lcd_msg) {
|
961
|
963
|
#endif
|
962
|
964
|
#endif
|
963
|
965
|
#endif
|
964
|
|
- lcd_preheat_abs0();
|
|
966
|
+ lcd_preheat_material2_hotend0();
|
965
|
967
|
}
|
966
|
968
|
|
967
|
969
|
#endif // HOTENDS > 1
|
968
|
970
|
|
969
|
971
|
#if TEMP_SENSOR_BED != 0
|
970
|
|
- void lcd_preheat_pla_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
971
|
|
- void lcd_preheat_abs_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
|
972
|
+ void lcd_preheat_material1_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
|
|
973
|
+ void lcd_preheat_material2_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
|
972
|
974
|
#endif
|
973
|
975
|
|
974
|
976
|
#if TEMP_SENSOR_0 != 0 && (TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0)
|
975
|
977
|
|
976
|
|
- void lcd_preheat_pla_menu() {
|
|
978
|
+ void lcd_preheat_material1_menu() {
|
977
|
979
|
START_MENU();
|
978
|
980
|
MENU_BACK(MSG_PREPARE);
|
979
|
981
|
#if HOTENDS == 1
|
980
|
|
- MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_pla0);
|
|
982
|
+ MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_material1_hotend0);
|
981
|
983
|
#else
|
982
|
|
- MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H1, lcd_preheat_pla0);
|
983
|
|
- MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H2, lcd_preheat_pla1);
|
|
984
|
+ MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H1, lcd_preheat_material1_hotend0);
|
|
985
|
+ MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H2, lcd_preheat_material1_hotend1);
|
984
|
986
|
#if HOTENDS > 2
|
985
|
|
- MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H3, lcd_preheat_pla2);
|
|
987
|
+ MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H3, lcd_preheat_material1_hotend2);
|
986
|
988
|
#if HOTENDS > 3
|
987
|
|
- MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H4, lcd_preheat_pla3);
|
|
989
|
+ MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H4, lcd_preheat_material1_hotend3);
|
988
|
990
|
#endif
|
989
|
991
|
#endif
|
990
|
|
- MENU_ITEM(function, MSG_PREHEAT_1_ALL, lcd_preheat_pla0123);
|
|
992
|
+ MENU_ITEM(function, MSG_PREHEAT_1_ALL, lcd_preheat_material1_hotend0123);
|
991
|
993
|
#endif
|
992
|
994
|
#if TEMP_SENSOR_BED != 0
|
993
|
|
- MENU_ITEM(function, MSG_PREHEAT_1_BEDONLY, lcd_preheat_pla_bedonly);
|
|
995
|
+ MENU_ITEM(function, MSG_PREHEAT_1_BEDONLY, lcd_preheat_material1_bedonly);
|
994
|
996
|
#endif
|
995
|
997
|
END_MENU();
|
996
|
998
|
}
|
997
|
999
|
|
998
|
|
- void lcd_preheat_abs_menu() {
|
|
1000
|
+ void lcd_preheat_material2_menu() {
|
999
|
1001
|
START_MENU();
|
1000
|
1002
|
MENU_BACK(MSG_PREPARE);
|
1001
|
1003
|
#if HOTENDS == 1
|
1002
|
|
- MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_abs0);
|
|
1004
|
+ MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_material2_hotend0);
|
1003
|
1005
|
#else
|
1004
|
|
- MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H1, lcd_preheat_abs0);
|
1005
|
|
- MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H2, lcd_preheat_abs1);
|
|
1006
|
+ MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H1, lcd_preheat_material2_hotend0);
|
|
1007
|
+ MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H2, lcd_preheat_material2_hotend1);
|
1006
|
1008
|
#if HOTENDS > 2
|
1007
|
|
- MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H3, lcd_preheat_abs2);
|
|
1009
|
+ MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H3, lcd_preheat_material2_hotend2);
|
1008
|
1010
|
#if HOTENDS > 3
|
1009
|
|
- MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H4, lcd_preheat_abs3);
|
|
1011
|
+ MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H4, lcd_preheat_material2_hotend3);
|
1010
|
1012
|
#endif
|
1011
|
1013
|
#endif
|
1012
|
|
- MENU_ITEM(function, MSG_PREHEAT_2_ALL, lcd_preheat_abs0123);
|
|
1014
|
+ MENU_ITEM(function, MSG_PREHEAT_2_ALL, lcd_preheat_material2_hotend0123);
|
1013
|
1015
|
#endif
|
1014
|
1016
|
#if TEMP_SENSOR_BED != 0
|
1015
|
|
- MENU_ITEM(function, MSG_PREHEAT_2_BEDONLY, lcd_preheat_abs_bedonly);
|
|
1017
|
+ MENU_ITEM(function, MSG_PREHEAT_2_BEDONLY, lcd_preheat_material2_bedonly);
|
1016
|
1018
|
#endif
|
1017
|
1019
|
END_MENU();
|
1018
|
1020
|
}
|
|
@@ -1288,11 +1290,11 @@ void kill_screen(const char* lcd_msg) {
|
1288
|
1290
|
//
|
1289
|
1291
|
#if TEMP_SENSOR_0 != 0
|
1290
|
1292
|
#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0
|
1291
|
|
- MENU_ITEM(submenu, MSG_PREHEAT_1, lcd_preheat_pla_menu);
|
1292
|
|
- MENU_ITEM(submenu, MSG_PREHEAT_2, lcd_preheat_abs_menu);
|
|
1293
|
+ MENU_ITEM(submenu, MSG_PREHEAT_1, lcd_preheat_material1_menu);
|
|
1294
|
+ MENU_ITEM(submenu, MSG_PREHEAT_2, lcd_preheat_material2_menu);
|
1293
|
1295
|
#else
|
1294
|
|
- MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_pla0);
|
1295
|
|
- MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_abs0);
|
|
1296
|
+ MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_material1_hotend0);
|
|
1297
|
+ MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_material2_hotend0);
|
1296
|
1298
|
#endif
|
1297
|
1299
|
#endif
|
1298
|
1300
|
|
|
@@ -1598,7 +1600,6 @@ void kill_screen(const char* lcd_msg) {
|
1598
|
1600
|
|
1599
|
1601
|
#if ENABLED(PIDTEMP)
|
1600
|
1602
|
int autotune_temp[HOTENDS] = ARRAY_BY_HOTENDS1(150);
|
1601
|
|
- const int heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP);
|
1602
|
1603
|
#endif
|
1603
|
1604
|
|
1604
|
1605
|
#if ENABLED(PIDTEMPBED)
|
|
@@ -1791,23 +1792,36 @@ void kill_screen(const char* lcd_msg) {
|
1791
|
1792
|
#endif //PIDTEMP
|
1792
|
1793
|
|
1793
|
1794
|
//
|
1794
|
|
- // Preheat PLA conf
|
|
1795
|
+ // Preheat Material 1 conf
|
1795
|
1796
|
//
|
1796
|
|
- MENU_ITEM(submenu, MSG_PREHEAT_1_SETTINGS, lcd_control_temperature_preheat_pla_settings_menu);
|
|
1797
|
+ MENU_ITEM(submenu, MSG_PREHEAT_1_SETTINGS, lcd_control_temperature_preheat_material1_settings_menu);
|
1797
|
1798
|
|
1798
|
1799
|
//
|
1799
|
|
- // Preheat ABS conf
|
|
1800
|
+ // Preheat Material 2 conf
|
1800
|
1801
|
//
|
1801
|
|
- MENU_ITEM(submenu, MSG_PREHEAT_2_SETTINGS, lcd_control_temperature_preheat_abs_settings_menu);
|
|
1802
|
+ MENU_ITEM(submenu, MSG_PREHEAT_2_SETTINGS, lcd_control_temperature_preheat_material2_settings_menu);
|
1802
|
1803
|
END_MENU();
|
1803
|
1804
|
}
|
1804
|
1805
|
|
1805
|
1806
|
void _lcd_control_temperature_preheat_settings_menu(uint8_t material) {
|
|
1807
|
+ #if HOTENDS > 3
|
|
1808
|
+ #define MINTEMP_ALL MIN4(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP, HEATER_3_MINTEMP)
|
|
1809
|
+ #define MAXTEMP_ALL MAX4(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP)
|
|
1810
|
+ #elif HOTENDS > 2
|
|
1811
|
+ #define MINTEMP_ALL MIN3(HEATER_0_MINTEMP, HEATER_1_MINTEMP, HEATER_2_MINTEMP)
|
|
1812
|
+ #define MAXTEMP_ALL MAX3(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP)
|
|
1813
|
+ #elif HOTENDS > 1
|
|
1814
|
+ #define MINTEMP_ALL min(HEATER_0_MINTEMP, HEATER_1_MINTEMP)
|
|
1815
|
+ #define MAXTEMP_ALL max(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP)
|
|
1816
|
+ #else
|
|
1817
|
+ #define MINTEMP_ALL HEATER_0_MINTEMP
|
|
1818
|
+ #define MAXTEMP_ALL HEATER_0_MAXTEMP
|
|
1819
|
+ #endif
|
1806
|
1820
|
START_MENU();
|
1807
|
1821
|
MENU_BACK(MSG_TEMPERATURE);
|
1808
|
1822
|
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &lcd_preheat_fan_speed[material], 0, 255);
|
1809
|
1823
|
#if TEMP_SENSOR_0 != 0
|
1810
|
|
- MENU_ITEM_EDIT(int3, MSG_NOZZLE, &lcd_preheat_hotend_temp[material], HEATER_0_MINTEMP, HEATER_0_MAXTEMP - 15);
|
|
1824
|
+ MENU_ITEM_EDIT(int3, MSG_NOZZLE, &lcd_preheat_hotend_temp[material], MINTEMP_ALL, MAXTEMP_ALL - 15);
|
1811
|
1825
|
#endif
|
1812
|
1826
|
#if TEMP_SENSOR_BED != 0
|
1813
|
1827
|
MENU_ITEM_EDIT(int3, MSG_BED, &lcd_preheat_bed_temp[material], BED_MINTEMP, BED_MAXTEMP - 15);
|
|
@@ -1820,17 +1834,17 @@ void kill_screen(const char* lcd_msg) {
|
1820
|
1834
|
|
1821
|
1835
|
/**
|
1822
|
1836
|
*
|
1823
|
|
- * "Temperature" > "Preheat PLA conf" submenu
|
|
1837
|
+ * "Temperature" > "Preheat Material 1 conf" submenu
|
1824
|
1838
|
*
|
1825
|
1839
|
*/
|
1826
|
|
- void lcd_control_temperature_preheat_pla_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); }
|
|
1840
|
+ void lcd_control_temperature_preheat_material1_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); }
|
1827
|
1841
|
|
1828
|
1842
|
/**
|
1829
|
1843
|
*
|
1830
|
|
- * "Temperature" > "Preheat ABS conf" submenu
|
|
1844
|
+ * "Temperature" > "Preheat Material 2 conf" submenu
|
1831
|
1845
|
*
|
1832
|
1846
|
*/
|
1833
|
|
- void lcd_control_temperature_preheat_abs_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); }
|
|
1847
|
+ void lcd_control_temperature_preheat_material2_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); }
|
1834
|
1848
|
|
1835
|
1849
|
void _reset_acceleration_rates() { planner.reset_acceleration_rates(); }
|
1836
|
1850
|
void _planner_refresh_positioning() { planner.refresh_positioning(); }
|