|
|
@ -95,6 +95,7 @@ FORCE_INLINE void clear()
|
|
|
|
void lcd_init()
|
|
|
|
void lcd_init()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//beep();
|
|
|
|
//beep();
|
|
|
|
|
|
|
|
|
|
|
|
byte Degree[8] =
|
|
|
|
byte Degree[8] =
|
|
|
|
{
|
|
|
|
{
|
|
|
|
B01100,
|
|
|
|
B01100,
|
|
|
@ -322,6 +323,8 @@ void MainMenu::showStatus()
|
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002---/---\001 ");
|
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002---/---\001 ");
|
|
|
|
#if defined BED_USES_THERMISTOR || defined BED_USES_AD595
|
|
|
|
#if defined BED_USES_THERMISTOR || defined BED_USES_AD595
|
|
|
|
lcd.setCursor(10,0);lcdprintPGM("B---/---\001 ");
|
|
|
|
lcd.setCursor(10,0);lcdprintPGM("B---/---\001 ");
|
|
|
|
|
|
|
|
#elif EXTRUDERS > 1
|
|
|
|
|
|
|
|
lcd.setCursor(10,0);lcdprintPGM("\002---/---\001 ");
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -356,6 +359,23 @@ void MainMenu::showStatus()
|
|
|
|
lcd.print(ftostr3(targetBed));
|
|
|
|
lcd.print(ftostr3(targetBed));
|
|
|
|
oldtargetBed=targetBed;
|
|
|
|
oldtargetBed=targetBed;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#elif EXTRUDERS > 1
|
|
|
|
|
|
|
|
static int olddegHotEnd1=-1;
|
|
|
|
|
|
|
|
static int oldtargetHotEnd1=-1;
|
|
|
|
|
|
|
|
int tHotEnd1=intround(degHotend1());
|
|
|
|
|
|
|
|
if((tHotEnd1!=olddegHotEnd1)||force_lcd_update)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
lcd.setCursor(11,0);
|
|
|
|
|
|
|
|
lcd.print(ftostr3(tHotEnd1));
|
|
|
|
|
|
|
|
olddegHotEnd1=tHotEnd1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int ttHotEnd1=intround(degTargetHotend1());
|
|
|
|
|
|
|
|
if((ttHotEnd1!=oldtargetHotEnd1)||force_lcd_update)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
lcd.setCursor(15,0);
|
|
|
|
|
|
|
|
lcd.print(ftostr3(ttHotEnd1));
|
|
|
|
|
|
|
|
oldtargetHotEnd1=ttHotEnd1;
|
|
|
|
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
//starttime=2;
|
|
|
|
//starttime=2;
|
|
|
|
static uint16_t oldtime=0;
|
|
|
|
static uint16_t oldtime=0;
|
|
|
@ -430,10 +450,7 @@ void MainMenu::showStatus()
|
|
|
|
if(force_lcd_update) //initial display of content
|
|
|
|
if(force_lcd_update) //initial display of content
|
|
|
|
{
|
|
|
|
{
|
|
|
|
encoderpos=feedmultiply;
|
|
|
|
encoderpos=feedmultiply;
|
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002123/567\001 ");
|
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002---/---\001 ");
|
|
|
|
#if defined BED_USES_THERMISTOR || defined BED_USES_AD595
|
|
|
|
|
|
|
|
lcd.setCursor(10,0);lcdprintPGM("B123/567\001 ");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int tHotEnd0=intround(degHotend0());
|
|
|
|
int tHotEnd0=intround(degHotend0());
|
|
|
@ -520,7 +537,7 @@ void MainMenu::showPrepare()
|
|
|
|
beepshort(); );
|
|
|
|
beepshort(); );
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case ItemP_cooldown:
|
|
|
|
case ItemP_cooldown:
|
|
|
|
MENUITEM( lcdprintPGM(MSG_COOLDOWN) , BLOCK;setTargetHotend0(0);setTargetBed(0);beepshort(); ) ;
|
|
|
|
MENUITEM( lcdprintPGM(MSG_COOLDOWN) , BLOCK;setTargetHotend0(0);setTargetHotend1(0);setTargetHotend2(0);setTargetBed(0);beepshort(); ) ;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
// case ItemP_extrude:
|
|
|
|
// case ItemP_extrude:
|
|
|
|
// MENUITEM( lcdprintPGM(" Extrude") , BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E50");beepshort(); ) ;
|
|
|
|
// MENUITEM( lcdprintPGM(" Extrude") , BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E50");beepshort(); ) ;
|
|
|
@ -923,12 +940,18 @@ void MainMenu::showTune()
|
|
|
|
//
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
enum {
|
|
|
|
ItemCT_exit,ItemCT_nozzle,
|
|
|
|
ItemCT_exit,ItemCT_nozzle0,
|
|
|
|
#ifdef AUTOTEMP
|
|
|
|
#ifdef AUTOTEMP
|
|
|
|
ItemCT_autotempactive,
|
|
|
|
ItemCT_autotempactive,
|
|
|
|
ItemCT_autotempmin,ItemCT_autotempmax,ItemCT_autotempfact,
|
|
|
|
ItemCT_autotempmin,ItemCT_autotempmax,ItemCT_autotempfact,
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if (HEATER_BED_PIN > -1)
|
|
|
|
#if EXTRUDERS > 1
|
|
|
|
|
|
|
|
ItemCT_nozzle1,
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
|
|
|
|
ItemCT_nozzle2,
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined BED_USES_THERMISTOR || BED_USES_AD595
|
|
|
|
ItemCT_bed,
|
|
|
|
ItemCT_bed,
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
ItemCT_fan,
|
|
|
|
ItemCT_fan,
|
|
|
@ -946,7 +969,7 @@ void MainMenu::showControlTemp()
|
|
|
|
case ItemCT_exit:
|
|
|
|
case ItemCT_exit:
|
|
|
|
MENUITEM( lcdprintPGM(MSG_CONTROL) , BLOCK;status=Main_Control;beepshort(); ) ;
|
|
|
|
MENUITEM( lcdprintPGM(MSG_CONTROL) , BLOCK;status=Main_Control;beepshort(); ) ;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case ItemCT_nozzle:
|
|
|
|
case ItemCT_nozzle0:
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(force_lcd_update)
|
|
|
|
if(force_lcd_update)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -980,6 +1003,78 @@ void MainMenu::showControlTemp()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}break;
|
|
|
|
}break;
|
|
|
|
|
|
|
|
#if EXTRUDERS > 1
|
|
|
|
|
|
|
|
case ItemCT_nozzle1:
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(force_lcd_update)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE1);
|
|
|
|
|
|
|
|
lcd.setCursor(13,line);lcd.print(ftostr3(intround(degTargetHotend1())));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if((activeline!=line) )
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(CLICKED)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
linechanging=!linechanging;
|
|
|
|
|
|
|
|
if(linechanging)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
encoderpos=intround(degTargetHotend1());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
setTargetHotend1(encoderpos);
|
|
|
|
|
|
|
|
encoderpos=activeline*lcdslow;
|
|
|
|
|
|
|
|
beepshort();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
BLOCK;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(linechanging)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(encoderpos<0) encoderpos=0;
|
|
|
|
|
|
|
|
if(encoderpos>260) encoderpos=260;
|
|
|
|
|
|
|
|
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}break;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
|
|
|
|
case ItemCT_nozzle2:
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(force_lcd_update)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE2);
|
|
|
|
|
|
|
|
lcd.setCursor(13,line);lcd.print(ftostr3(intround(degTargetHotend2())));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if((activeline!=line) )
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(CLICKED)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
linechanging=!linechanging;
|
|
|
|
|
|
|
|
if(linechanging)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
encoderpos=intround(degTargetHotend2());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
setTargetHotend1(encoderpos);
|
|
|
|
|
|
|
|
encoderpos=activeline*lcdslow;
|
|
|
|
|
|
|
|
beepshort();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
BLOCK;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(linechanging)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(encoderpos<0) encoderpos=0;
|
|
|
|
|
|
|
|
if(encoderpos>260) encoderpos=260;
|
|
|
|
|
|
|
|
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}break;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#ifdef AUTOTEMP
|
|
|
|
#ifdef AUTOTEMP
|
|
|
|
case ItemCT_autotempmin:
|
|
|
|
case ItemCT_autotempmin:
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1111,7 +1206,7 @@ void MainMenu::showControlTemp()
|
|
|
|
|
|
|
|
|
|
|
|
}break;
|
|
|
|
}break;
|
|
|
|
#endif //autotemp
|
|
|
|
#endif //autotemp
|
|
|
|
#if (HEATER_BED_PIN > -1)
|
|
|
|
#if defined BED_USES_THERMISTOR || BED_USES_AD595
|
|
|
|
case ItemCT_bed:
|
|
|
|
case ItemCT_bed:
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(force_lcd_update)
|
|
|
|
if(force_lcd_update)
|
|
|
@ -2080,6 +2175,7 @@ void MainMenu::update()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
force_lcd_update=true;
|
|
|
|
force_lcd_update=true;
|
|
|
|
oldcardstatus=CARDINSERTED;
|
|
|
|
oldcardstatus=CARDINSERTED;
|
|
|
|
|
|
|
|
lcd_init(); // to maybe revive the lcd if static electricty killed it.
|
|
|
|
//Serial.println("echo: SD CHANGE");
|
|
|
|
//Serial.println("echo: SD CHANGE");
|
|
|
|
if(CARDINSERTED)
|
|
|
|
if(CARDINSERTED)
|
|
|
|
{
|
|
|
|
{
|
|
|
|