|  |  |  | @ -323,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 | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |      | 
			
		
	
	
		
			
				
					|  |  |  | @ -357,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(tHotEnd0)); | 
			
		
	
		
			
				
					|  |  |  |  |       olddegHotEnd0=tHotEnd0; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     int ttHotEnd1=intround(degTargetHotend1()); | 
			
		
	
		
			
				
					|  |  |  |  |     if((ttHotEnd1!=oldtargetHotEnd0)||force_lcd_update) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |       lcd.setCursor(15,0); | 
			
		
	
		
			
				
					|  |  |  |  |       lcd.print(ftostr3(ttHotEnd1)); | 
			
		
	
		
			
				
					|  |  |  |  |       oldtargetHotEnd0=ttHotEnd1; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   #endif | 
			
		
	
		
			
				
					|  |  |  |  |   //starttime=2; | 
			
		
	
		
			
				
					|  |  |  |  |   static uint16_t oldtime=0; | 
			
		
	
	
		
			
				
					|  |  |  | @ -431,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()); | 
			
		
	
	
		
			
				
					|  |  |  | @ -521,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(); ) ; | 
			
		
	
	
		
			
				
					|  |  |  | @ -924,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, | 
			
		
	
	
		
			
				
					|  |  |  | @ -947,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) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -981,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) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1016,7 +1110,7 @@ void MainMenu::showControlTemp() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |          | 
			
		
	
		
			
				
					|  |  |  |  |       }break;   | 
			
		
	
		
			
				
					|  |  |  |  |       case ItemCT_autotempmax: | 
			
		
	
		
			
				
					|  |  |  |  |     case ItemCT_autotempmax: | 
			
		
	
		
			
				
					|  |  |  |  |       { | 
			
		
	
		
			
				
					|  |  |  |  |         if(force_lcd_update) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1050,7 +1144,7 @@ void MainMenu::showControlTemp() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |          | 
			
		
	
		
			
				
					|  |  |  |  |       }break;   | 
			
		
	
		
			
				
					|  |  |  |  |       case ItemCT_autotempfact: | 
			
		
	
		
			
				
					|  |  |  |  |     case ItemCT_autotempfact: | 
			
		
	
		
			
				
					|  |  |  |  |       { | 
			
		
	
		
			
				
					|  |  |  |  |         if(force_lcd_update) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1084,7 +1178,7 @@ void MainMenu::showControlTemp() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |          | 
			
		
	
		
			
				
					|  |  |  |  |       }break; | 
			
		
	
		
			
				
					|  |  |  |  |       case ItemCT_autotempactive: | 
			
		
	
		
			
				
					|  |  |  |  |     case ItemCT_autotempactive: | 
			
		
	
		
			
				
					|  |  |  |  |       { | 
			
		
	
		
			
				
					|  |  |  |  |         if(force_lcd_update) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1111,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) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1146,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) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1182,8 +1276,8 @@ void MainMenu::showControlTemp() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |          | 
			
		
	
		
			
				
					|  |  |  |  |       }break; | 
			
		
	
		
			
				
					|  |  |  |  |       	#ifdef PIDTEMP | 
			
		
	
		
			
				
					|  |  |  |  |       case ItemCT_PID_P:  | 
			
		
	
		
			
				
					|  |  |  |  |     #ifdef PIDTEMP | 
			
		
	
		
			
				
					|  |  |  |  |     case ItemCT_PID_P:  | 
			
		
	
		
			
				
					|  |  |  |  |       { | 
			
		
	
		
			
				
					|  |  |  |  |       if(force_lcd_update) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1253,7 +1347,7 @@ void MainMenu::showControlTemp() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |          | 
			
		
	
		
			
				
					|  |  |  |  |       }break; | 
			
		
	
		
			
				
					|  |  |  |  |       case ItemCT_PID_D:  | 
			
		
	
		
			
				
					|  |  |  |  |     case ItemCT_PID_D:  | 
			
		
	
		
			
				
					|  |  |  |  |       { | 
			
		
	
		
			
				
					|  |  |  |  |       if(force_lcd_update) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -1325,8 +1419,8 @@ void MainMenu::showControlTemp() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |          | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |       	#endif | 
			
		
	
		
			
				
					|  |  |  |  |       #endif | 
			
		
	
		
			
				
					|  |  |  |  |     #endif | 
			
		
	
		
			
				
					|  |  |  |  |       break; | 
			
		
	
		
			
				
					|  |  |  |  |     default:    | 
			
		
	
		
			
				
					|  |  |  |  |       break; | 
			
		
	
	
		
			
				
					|  |  |  | 
 |