Added Menu Options to the Main-> Control->Temperature Submenu that allow the user to set new values for the ABS and PLA preheat function. EEPROM updated so that these settings can also be committed to EEPROM memory.
This commit is contained in:
@@ -528,17 +528,17 @@ void MainMenu::showPrepare()
|
||||
MENUITEM( lcdprintPGM(MSG_SET_ORIGIN) , BLOCK;enquecommand("G92 X0 Y0 Z0");beepshort(); ) ;
|
||||
break;
|
||||
case ItemP_preheat_pla:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_PLA) , BLOCK;setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP);setTargetBed(PLA_PREHEAT_HPB_TEMP);
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_PLA) , BLOCK;setTargetHotend0(plaPreheatHotendTemp);setTargetBed(plaPreheatHPBTemp);
|
||||
#if FAN_PIN > -1
|
||||
FanSpeed=PLA_PREHEAT_FAN_SPEED;
|
||||
FanSpeed = plaPreheatFanSpeed;
|
||||
analogWrite(FAN_PIN, FanSpeed);
|
||||
#endif
|
||||
beepshort(); );
|
||||
break;
|
||||
case ItemP_preheat_abs:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_ABS) , BLOCK;setTargetHotend0(ABS_PREHEAT_HOTEND_TEMP);setTargetBed(ABS_PREHEAT_HPB_TEMP);
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_ABS) , BLOCK;setTargetHotend0(absPreheatHotendTemp);setTargetBed(absPreheatHPBTemp);
|
||||
#if FAN_PIN > -1
|
||||
FanSpeed=ABS_PREHEAT_FAN_SPEED;
|
||||
FanSpeed = absPreheatFanSpeed;
|
||||
analogWrite(FAN_PIN, FanSpeed);
|
||||
#endif
|
||||
beepshort(); );
|
||||
@@ -789,7 +789,7 @@ void MainMenu::showTune()
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(intround(degTargetHotend0())));
|
||||
}
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
@@ -967,7 +967,9 @@ enum {
|
||||
ItemCT_bed,
|
||||
#endif
|
||||
ItemCT_fan,
|
||||
ItemCT_PID_P,ItemCT_PID_I,ItemCT_PID_D,ItemCT_PID_C
|
||||
ItemCT_PID_P,ItemCT_PID_I,ItemCT_PID_D,ItemCT_PID_C,
|
||||
ItemCT_PLA_PreHeat_Setting,
|
||||
ItemCT_ABS_PreHeat_Setting,
|
||||
};
|
||||
|
||||
void MainMenu::showControlTemp()
|
||||
@@ -1434,16 +1436,19 @@ void MainMenu::showControlTemp()
|
||||
#endif
|
||||
#endif
|
||||
break;
|
||||
case ItemCT_PLA_PreHeat_Setting:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_PLA_SETTINGS) , BLOCK;status=Sub_PreheatPLASettings;beepshort(); ) ;
|
||||
break;
|
||||
case ItemCT_ABS_PreHeat_Setting:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_ABS_SETTINGS) , BLOCK;status=Sub_PreheatABSSettings;beepshort(); ) ;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
line++;
|
||||
}
|
||||
#ifdef PID_ADD_EXTRUSION_RATE
|
||||
updateActiveLines(ItemCT_PID_C,encoderpos);
|
||||
#else
|
||||
updateActiveLines(ItemCT_PID_D,encoderpos);
|
||||
#endif
|
||||
|
||||
updateActiveLines(ItemCT_ABS_PreHeat_Setting,encoderpos);
|
||||
}
|
||||
|
||||
|
||||
@@ -2569,6 +2574,14 @@ void MainMenu::update()
|
||||
{
|
||||
showSD();
|
||||
}break;
|
||||
case Sub_PreheatPLASettings:
|
||||
{
|
||||
showPLAsettings();
|
||||
}break;
|
||||
case Sub_PreheatABSSettings:
|
||||
{
|
||||
showABSsettings();
|
||||
}break;
|
||||
}
|
||||
|
||||
if(timeoutToStatus<millis())
|
||||
@@ -2577,11 +2590,299 @@ void MainMenu::update()
|
||||
lastencoderpos=encoderpos;
|
||||
}
|
||||
|
||||
enum {
|
||||
ItemPLAPreHeat_Exit,
|
||||
ItemPLAPreHeat_set_PLA_FanSpeed,
|
||||
ItemPLAPreHeat_set_nozzle,
|
||||
ItemPLAPreHeat_set_HPB,
|
||||
ItemPLAPreHeat_Store_Eprom
|
||||
};
|
||||
|
||||
void MainMenu::showPLAsettings()
|
||||
{
|
||||
#ifdef ULTIPANEL
|
||||
uint8_t line=0;
|
||||
clearIfNecessary();
|
||||
for(int8_t i=lineoffset;i<lineoffset+LCD_HEIGHT;i++)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
|
||||
case ItemPLAPreHeat_Exit:
|
||||
MENUITEM( lcdprintPGM(MSG_TEMPERATURE_RTN) , BLOCK;status=Sub_TempControl;beepshort(); ) ;
|
||||
break;
|
||||
|
||||
case ItemPLAPreHeat_set_PLA_FanSpeed:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_FAN_SPEED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(plaPreheatFanSpeed));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=plaPreheatFanSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>255) encoderpos=255;
|
||||
plaPreheatFanSpeed=encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemPLAPreHeat_set_nozzle:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(plaPreheatHotendTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=plaPreheatHotendTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>260) encoderpos=260;
|
||||
plaPreheatHotendTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemPLAPreHeat_set_HPB:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_BED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(plaPreheatHPBTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=plaPreheatHPBTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>250) encoderpos=150;
|
||||
plaPreheatHPBTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
case ItemPLAPreHeat_Store_Eprom:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_STORE_EPROM);
|
||||
}
|
||||
if((activeline==line) && CLICKED)
|
||||
{
|
||||
//enquecommand("M84");
|
||||
beepshort();
|
||||
BLOCK;
|
||||
EEPROM_StoreSettings();
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
line++;
|
||||
}
|
||||
updateActiveLines(ItemPLAPreHeat_Store_Eprom,encoderpos);
|
||||
#endif
|
||||
}
|
||||
|
||||
enum {
|
||||
ItemABSPreHeat_Exit,
|
||||
ItemABSPreHeat_set_FanSpeed,
|
||||
ItemABSPreHeat_set_nozzle,
|
||||
ItemABSPreHeat_set_HPB,
|
||||
ItemABSPreHeat_Store_Eprom
|
||||
};
|
||||
|
||||
void MainMenu::showABSsettings()
|
||||
{
|
||||
#ifdef ULTIPANEL
|
||||
uint8_t line=0;
|
||||
clearIfNecessary();
|
||||
for(int8_t i=lineoffset;i<lineoffset+LCD_HEIGHT;i++)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
|
||||
case ItemABSPreHeat_Exit:
|
||||
MENUITEM( lcdprintPGM(MSG_TEMPERATURE_RTN) , BLOCK;status=Sub_TempControl;beepshort(); ) ;
|
||||
break;
|
||||
|
||||
case ItemABSPreHeat_set_FanSpeed:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_FAN_SPEED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(absPreheatFanSpeed));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=absPreheatFanSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>255) encoderpos=255;
|
||||
absPreheatFanSpeed=encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemABSPreHeat_set_nozzle:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(absPreheatHotendTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=absPreheatHotendTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>260) encoderpos=260;
|
||||
absPreheatHotendTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemABSPreHeat_set_HPB:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_BED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(absPreheatHPBTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=absPreheatHPBTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>250) encoderpos=150;
|
||||
absPreheatHPBTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
case ItemABSPreHeat_Store_Eprom:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_STORE_EPROM);
|
||||
}
|
||||
if((activeline==line) && CLICKED)
|
||||
{
|
||||
//enquecommand("M84");
|
||||
beepshort();
|
||||
BLOCK;
|
||||
EEPROM_StoreSettings();
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
line++;
|
||||
}
|
||||
updateActiveLines(ItemABSPreHeat_Store_Eprom,encoderpos);
|
||||
#endif
|
||||
}
|
||||
|
||||
//**********************************************************************************************************
|
||||
// convert float to string with +123.4 format
|
||||
char *ftostr3(const float &x)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user