|
|
@ -95,6 +95,7 @@ FORCE_INLINE void clear() |
|
|
|
void lcd_init() |
|
|
|
{ |
|
|
|
//beep(); |
|
|
|
|
|
|
|
byte Degree[8] = |
|
|
|
{ |
|
|
|
B01100, |
|
|
@ -322,6 +323,8 @@ void MainMenu::showStatus() |
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002---/---\001 "); |
|
|
|
#if defined BED_USES_THERMISTOR || defined BED_USES_AD595 |
|
|
|
lcd.setCursor(10,0);lcdprintPGM("B---/---\001 "); |
|
|
|
#elif EXTRUDERS > 1 |
|
|
|
lcd.setCursor(10,0);lcdprintPGM("\002---/---\001 "); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
@ -356,6 +359,23 @@ void MainMenu::showStatus() |
|
|
|
lcd.print(ftostr3(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 |
|
|
|
//starttime=2; |
|
|
|
static uint16_t oldtime=0; |
|
|
@ -430,10 +450,7 @@ void MainMenu::showStatus() |
|
|
|
if(force_lcd_update) //initial display of content |
|
|
|
{ |
|
|
|
encoderpos=feedmultiply; |
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002123/567\001 "); |
|
|
|
#if defined BED_USES_THERMISTOR || defined BED_USES_AD595 |
|
|
|
lcd.setCursor(10,0);lcdprintPGM("B123/567\001 "); |
|
|
|
#endif |
|
|
|
lcd.setCursor(0,0);lcdprintPGM("\002---/---\001 "); |
|
|
|
} |
|
|
|
|
|
|
|
int tHotEnd0=intround(degHotend0()); |
|
|
@ -520,7 +537,7 @@ void MainMenu::showPrepare() |
|
|
|
beepshort(); ); |
|
|
|
break; |
|
|
|
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; |
|
|
|
// case ItemP_extrude: |
|
|
|
// MENUITEM( lcdprintPGM(" Extrude") , BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E50");beepshort(); ) ; |
|
|
@ -923,12 +940,18 @@ void MainMenu::showTune() |
|
|
|
// |
|
|
|
|
|
|
|
enum { |
|
|
|
ItemCT_exit,ItemCT_nozzle, |
|
|
|
ItemCT_exit,ItemCT_nozzle0, |
|
|
|
#ifdef AUTOTEMP |
|
|
|
ItemCT_autotempactive, |
|
|
|
ItemCT_autotempmin,ItemCT_autotempmax,ItemCT_autotempfact, |
|
|
|
#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, |
|
|
|
#endif |
|
|
|
ItemCT_fan, |
|
|
@ -946,7 +969,7 @@ void MainMenu::showControlTemp() |
|
|
|
case ItemCT_exit: |
|
|
|
MENUITEM( lcdprintPGM(MSG_CONTROL) , BLOCK;status=Main_Control;beepshort(); ) ; |
|
|
|
break; |
|
|
|
case ItemCT_nozzle: |
|
|
|
case ItemCT_nozzle0: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -980,8 +1003,80 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
#ifdef AUTOTEMP |
|
|
|
case ItemCT_autotempmin: |
|
|
|
#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 |
|
|
|
case ItemCT_autotempmin: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1015,7 +1110,7 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
case ItemCT_autotempmax: |
|
|
|
case ItemCT_autotempmax: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1049,7 +1144,7 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
case ItemCT_autotempfact: |
|
|
|
case ItemCT_autotempfact: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1083,7 +1178,7 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
case ItemCT_autotempactive: |
|
|
|
case ItemCT_autotempactive: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1110,9 +1205,9 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
#endif //autotemp |
|
|
|
#if (HEATER_BED_PIN > -1) |
|
|
|
case ItemCT_bed: |
|
|
|
#endif //autotemp |
|
|
|
#if defined BED_USES_THERMISTOR || BED_USES_AD595 |
|
|
|
case ItemCT_bed: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1145,8 +1240,8 @@ void MainMenu::showControlTemp() |
|
|
|
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos)); |
|
|
|
} |
|
|
|
}break; |
|
|
|
#endif |
|
|
|
case ItemCT_fan: |
|
|
|
#endif |
|
|
|
case ItemCT_fan: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1181,8 +1276,8 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
#ifdef PIDTEMP |
|
|
|
case ItemCT_PID_P: |
|
|
|
#ifdef PIDTEMP |
|
|
|
case ItemCT_PID_P: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1252,7 +1347,7 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
}break; |
|
|
|
case ItemCT_PID_D: |
|
|
|
case ItemCT_PID_D: |
|
|
|
{ |
|
|
|
if(force_lcd_update) |
|
|
|
{ |
|
|
@ -1324,8 +1419,8 @@ void MainMenu::showControlTemp() |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
@ -2080,6 +2175,7 @@ void MainMenu::update() |
|
|
|
{ |
|
|
|
force_lcd_update=true; |
|
|
|
oldcardstatus=CARDINSERTED; |
|
|
|
lcd_init(); // to maybe revive the lcd if static electricty killed it. |
|
|
|
//Serial.println("echo: SD CHANGE"); |
|
|
|
if(CARDINSERTED) |
|
|
|
{ |
|
|
@ -2282,4 +2378,4 @@ char *ftostr52(const float &x) |
|
|
|
|
|
|
|
#endif //ULTRA_LCD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|