|
@@ -1824,12 +1824,42 @@ bool bFilamentPreheatState;
|
|
|
bool bFilamentAction=false;
|
|
|
static bool bFilamentWaitingFlag=false;
|
|
|
|
|
|
+bool shouldPreheatOnlyNozzle() {
|
|
|
+ uint8_t eeprom_setting = eeprom_read_byte((uint8_t*)EEPROM_HEAT_BED_ON_LOAD_FILAMENT);
|
|
|
+ if (eeprom_setting != 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ switch(eFilamentAction) {
|
|
|
+ case FilamentAction::Load:
|
|
|
+ case FilamentAction::AutoLoad:
|
|
|
+ case FilamentAction::UnLoad:
|
|
|
+ case FilamentAction::MmuLoad:
|
|
|
+ case FilamentAction::MmuUnLoad:
|
|
|
+ case FilamentAction::MmuEject:
|
|
|
+ case FilamentAction::MmuCut:
|
|
|
+ return true;
|
|
|
+ default:
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void lcd_print_target_temps_first_line(){
|
|
|
+ lcd_set_cursor(0, 0);
|
|
|
+ lcdui_print_temp(LCD_STR_THERMOMETER[0], (int) degHotend(0), (int) degTargetHotend(0));
|
|
|
+ lcd_set_cursor(10, 0);
|
|
|
+ int targetBedTemp = (int) degTargetBed();
|
|
|
+ if (targetBedTemp) {
|
|
|
+ lcdui_print_temp(LCD_STR_BEDTEMP[0], (int) degBed(), targetBedTemp);
|
|
|
+ } else {
|
|
|
+ lcd_space(10);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static void mFilamentPrompt()
|
|
|
{
|
|
|
uint8_t nLevel;
|
|
|
|
|
|
-lcd_set_cursor(0,0);
|
|
|
-lcdui_print_temp(LCD_STR_THERMOMETER[0],(int)degHotend(0),(int)degTargetHotend(0));
|
|
|
+lcd_print_target_temps_first_line();
|
|
|
lcd_puts_at_P(0,1, _i("Press the knob")); ////MSG_PRESS_KNOB c=20
|
|
|
lcd_set_cursor(0,2);
|
|
|
switch(eFilamentAction)
|
|
@@ -1891,14 +1921,10 @@ switch(eFilamentAction)
|
|
|
|
|
|
void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
|
|
{
|
|
|
- static int nTargetOld;
|
|
|
- static int nTargetBedOld;
|
|
|
uint8_t nLevel;
|
|
|
|
|
|
- nTargetOld = target_temperature[0];
|
|
|
- nTargetBedOld = target_temperature_bed;
|
|
|
- setTargetHotend0((float )nTemp);
|
|
|
- setTargetBed((float) nTempBed);
|
|
|
+ setTargetHotend0((float)nTemp);
|
|
|
+ if (!shouldPreheatOnlyNozzle()) setTargetBed((float)nTempBed);
|
|
|
|
|
|
{
|
|
|
const FilamentAction action = eFilamentAction;
|
|
@@ -2033,8 +2059,7 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
|
|
}
|
|
|
|
|
|
if (bFilamentWaitingFlag) {
|
|
|
- lcd_set_cursor(0, 0);
|
|
|
- lcdui_print_temp(LCD_STR_THERMOMETER[0], (int) degHotend(0), (int) degTargetHotend(0));
|
|
|
+ lcd_print_target_temps_first_line();
|
|
|
}
|
|
|
|
|
|
if (lcd_clicked())
|
|
@@ -2043,14 +2068,9 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
|
|
if (!bFilamentPreheatState)
|
|
|
{
|
|
|
setTargetHotend0(0.0);
|
|
|
- setTargetBed(0.0);
|
|
|
+ if (!isPrintPaused) setTargetBed(0.0);
|
|
|
menu_back();
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- setTargetHotend0((float )nTargetOld);
|
|
|
- setTargetBed((float) nTargetBedOld);
|
|
|
- }
|
|
|
menu_back();
|
|
|
if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad
|
|
|
}
|
|
@@ -2155,16 +2175,17 @@ void lcd_generic_preheat_menu()
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("PC - " STRINGIFY(PC_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PC_PREHEAT_HPB_TEMP)),mFilamentItem_PC);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("PVB - " STRINGIFY(PVB_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PVB_PREHEAT_HPB_TEMP)),mFilamentItem_PVB);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("PA - " STRINGIFY(PA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PA_PREHEAT_HPB_TEMP)),mFilamentItem_PA);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP);
|
|
|
- MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX);
|
|
|
+ bool bPreheatOnlyNozzle = shouldPreheatOnlyNozzle();
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP)) : PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)) , mFilamentItem_PLA);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP)) : PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)) , mFilamentItem_PET);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP)) : PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)) , mFilamentItem_ASA);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("PC - " STRINGIFY(PC_PREHEAT_HOTEND_TEMP)) : PSTR("PC - " STRINGIFY(PC_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PC_PREHEAT_HPB_TEMP)) , mFilamentItem_PC);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("PVB - " STRINGIFY(PVB_PREHEAT_HOTEND_TEMP)) : PSTR("PVB - " STRINGIFY(PVB_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PVB_PREHEAT_HPB_TEMP)) , mFilamentItem_PVB);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("PA - " STRINGIFY(PA_PREHEAT_HOTEND_TEMP)) : PSTR("PA - " STRINGIFY(PA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PA_PREHEAT_HPB_TEMP)) , mFilamentItem_PA);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP)) : PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)) , mFilamentItem_ABS);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP)): PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)), mFilamentItem_HIPS);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP)) : PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)) , mFilamentItem_PP);
|
|
|
+ MENU_ITEM_SUBMENU_P(bPreheatOnlyNozzle ? PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP)): PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)), mFilamentItem_FLEX);
|
|
|
}
|
|
|
if (!eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) && eFilamentAction == FilamentAction::Preheat) MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown);
|
|
|
MENU_END();
|
|
@@ -4731,6 +4752,9 @@ static void lcd_settings_menu()
|
|
|
}
|
|
|
#endif //LCD_BL_PIN
|
|
|
|
|
|
+ //! Enables/disables the bed heating while heating the nozzle for loading/unloading filament
|
|
|
+ MENU_ITEM_TOGGLE_P(_N("HeatBedOnLoad"), eeprom_read_byte((uint8_t *)EEPROM_HEAT_BED_ON_LOAD_FILAMENT) ? _T(MSG_YES) : _T(MSG_NO), lcd_heat_bed_on_load_toggle);
|
|
|
+
|
|
|
if (farm_mode)
|
|
|
{
|
|
|
MENU_ITEM_FUNCTION_P(PSTR("Disable farm mode"), lcd_disable_farm_mode);
|
|
@@ -7766,3 +7790,13 @@ void lcd_pinda_temp_compensation_toggle()
|
|
|
SERIAL_ECHOLN(pinda_temp_compensation);
|
|
|
}
|
|
|
#endif //PINDA_TEMP_COMP
|
|
|
+
|
|
|
+void lcd_heat_bed_on_load_toggle()
|
|
|
+{
|
|
|
+ uint8_t value = eeprom_read_byte((uint8_t*)EEPROM_HEAT_BED_ON_LOAD_FILAMENT);
|
|
|
+ if (value > 1)
|
|
|
+ value = 1;
|
|
|
+ else
|
|
|
+ value = !value;
|
|
|
+ eeprom_update_byte((uint8_t*)EEPROM_HEAT_BED_ON_LOAD_FILAMENT, value);
|
|
|
+}
|