@ -443,7 +443,7 @@ Possible status screens:
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					20 x4    | 01234567 890123456789 |  
			
		
	
		
			
				
					       | T000 / 000 D  B000 / 000 D  | 
 
			
		
	
		
			
				
					       | X + 0. 0 Y + .0  Z + | 
 
			
		
	
		
			
				
					       | X 000   Y 000    Z 0000 0| 
 
			
		
	
		
			
				
					       | F100 %   SD100 %  T - - : - - | 
 
			
		
	
		
			
				
					       | Status  line . . . . . . . . . | 
 
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -453,18 +453,19 @@ Possible status screens:
 
			
		
	
		
			
				
					       | F100 %   SD100 %  T - - : - - | 
 
			
		
	
		
			
				
					       | Status  line . . . . . . . . . | 
 
			
		
	
		
			
				
					*/  
			
		
	
		
			
				
					static  void  lcd_implementation_status_screen ( )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					static  void  lcd_implementation_status_screen ( )  {  
			
		
	
		
			
				
					  int  tHotend  =  int ( degHotend ( 0 )  +  0.5 ) ; 
 
			
		
	
		
			
				
					  int  tTarget  =  int ( degTargetHotend ( 0 )  +  0.5 ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # if LCD_WIDTH < 20 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    lcd . setCursor ( 0 ,  0 ) ; 
 
			
		
	
		
			
				
					    lcd . print ( itostr3 ( tHotend ) ) ; 
 
			
		
	
		
			
				
					    lcd . print ( ' / ' ) ; 
 
			
		
	
		
			
				
					    lcd . print ( itostr3left ( tTarget ) ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # if EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      // If we have an 2nd extruder or heated bed, show that in the top right corner
 
 
			
		
	
		
			
				
					      lcd . setCursor ( 8 ,  0 ) ; 
 
			
		
	
		
			
				
					      # if EXTRUDERS > 1 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -479,17 +480,18 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					      lcd . print ( itostr3 ( tHotend ) ) ; 
 
			
		
	
		
			
				
					      lcd . print ( ' / ' ) ; 
 
			
		
	
		
			
				
					      lcd . print ( itostr3left ( tTarget ) ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # endif  // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # else  // LCD_WIDTH > 19
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    lcd . setCursor ( 0 ,  0 ) ; 
 
			
		
	
		
			
				
					    lcd . print ( LCD_STR_THERMOMETER [ 0 ] ) ; 
 
			
		
	
		
			
				
					    lcd . print ( itostr3 ( tHotend ) ) ; 
 
			
		
	
		
			
				
					    lcd . print ( ' / ' ) ; 
 
			
		
	
		
			
				
					    lcd . print ( itostr3left ( tTarget ) ) ; 
 
			
		
	
		
			
				
					    lcd_printPGM ( PSTR ( LCD_STR_DEGREE  "   " ) ) ; 
 
			
		
	
		
			
				
					    if  ( tTarget  <  10 ) 
 
			
		
	
		
			
				
					        lcd . print ( '   ' ) ; 
 
			
		
	
		
			
				
					    if  ( tTarget  <  10 )  lcd . print ( '   ' ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # if EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 
 
			
		
	
		
			
				
					      // If we have an 2nd extruder or heated bed, show that in the top right corner
 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -507,9 +509,10 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					      lcd . print ( ' / ' ) ; 
 
			
		
	
		
			
				
					      lcd . print ( itostr3left ( tTarget ) ) ; 
 
			
		
	
		
			
				
					      lcd_printPGM ( PSTR ( LCD_STR_DEGREE  "   " ) ) ; 
 
			
		
	
		
			
				
					    if  ( tTarget  <  10 ) 
 
			
		
	
		
			
				
					        lcd . print ( '   ' ) ;   
			
		
	
		
			
				
					       if  ( tTarget  <  10 )  lcd . print ( '   ' ) ;  
 
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					    # endif   // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # endif  // LCD_WIDTH > 19
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # if LCD_HEIGHT > 2 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -524,7 +527,9 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					          lcd_printPGM ( PSTR ( " --- " ) ) ; 
 
			
		
	
		
			
				
					          lcd . print ( ' % ' ) ; 
 
			
		
	
		
			
				
					      # endif  // SDSUPPORT
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # else  // LCD_WIDTH > 19
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      # if EXTRUDERS > 1 && TEMP_SENSOR_BED != 0 
 
			
		
	
		
			
				
					        // If we both have a 2nd extruder and a heated bed, show the heated bed temp on the 2nd line on the left, as the first line is filled with extruder temps
 
 
			
		
	
		
			
				
					        tHotend  =  int ( degBed ( )  +  0.5 ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -536,8 +541,7 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					        lcd . print ( ' / ' ) ; 
 
			
		
	
		
			
				
					        lcd . print ( itostr3left ( tTarget ) ) ; 
 
			
		
	
		
			
				
					        lcd_printPGM ( PSTR ( LCD_STR_DEGREE  "   " ) ) ; 
 
			
		
	
		
			
				
					    if  ( tTarget  <  10 ) 
 
			
		
	
		
			
				
					        lcd . print ( '   ' ) ; 
 
			
		
	
		
			
				
					        if  ( tTarget  <  10 )  lcd . print ( '   ' ) ; 
 
			
		
	
		
			
				
					      # else 
 
			
		
	
		
			
				
					        lcd . setCursor ( 0 , 1 ) ; 
 
			
		
	
		
			
				
					        lcd . print ( ' X ' ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -545,19 +549,24 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					        lcd_printPGM ( PSTR ( "   Y " ) ) ; 
 
			
		
	
		
			
				
					        lcd . print ( ftostr3 ( current_position [ Y_AXIS ] ) ) ; 
 
			
		
	
		
			
				
					      # endif  // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # endif  // LCD_WIDTH > 19
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    lcd . setCursor ( LCD_WIDTH  -  8 ,  1 ) ; 
 
			
		
	
		
			
				
					    lcd . print ( ' Z ' ) ; 
 
			
		
	
		
			
				
					    lcd . print ( ftostr32sp ( current_position [ Z_AXIS ]  +  0.00001 ) ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # endif  // LCD_HEIGHT > 2
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # if LCD_HEIGHT > 3 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    lcd . setCursor ( 0 ,  2 ) ; 
 
			
		
	
		
			
				
					    lcd . print ( LCD_STR_FEEDRATE [ 0 ] ) ; 
 
			
		
	
		
			
				
					    lcd . print ( itostr3 ( feedmultiply ) ) ; 
 
			
		
	
		
			
				
					    lcd . print ( ' % ' ) ; 
 
			
		
	
		
			
				
					#  if LCD_WIDTH > 19  
			
		
	
		
			
				
					#   ifdef SDSUPPORT  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # if LCD_WIDTH > 19 && defined(SDSUPPORT) 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      lcd . setCursor ( 7 ,  2 ) ; 
 
			
		
	
		
			
				
					      lcd_printPGM ( PSTR ( " SD " ) ) ; 
 
			
		
	
		
			
				
					      if  ( IS_SD_PRINTING ) 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -565,29 +574,33 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					      else 
 
			
		
	
		
			
				
					        lcd_printPGM ( PSTR ( " --- " ) ) ; 
 
			
		
	
		
			
				
					      lcd . print ( ' % ' ) ; 
 
			
		
	
		
			
				
					#   endif //SDSUPPORT
  
			
		
	
		
			
				
					#  endif //LCD_WIDTH > 19
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # endif  // LCD_WIDTH > 19 && SDSUPPORT
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    lcd . setCursor ( LCD_WIDTH  -  6 ,  2 ) ; 
 
			
		
	
		
			
				
					    lcd . print ( LCD_STR_CLOCK [ 0 ] ) ; 
 
			
		
	
		
			
				
					    if ( starttime  ! =  0 ) 
 
			
		
	
		
			
				
					    { 
 
			
		
	
		
			
				
					    if  ( starttime  ! =  0 )  { 
 
			
		
	
		
			
				
					      uint16_t  time  =  millis ( ) / 60000  -  starttime / 60000 ; 
 
			
		
	
		
			
				
					      lcd . print ( itostr2 ( time / 60 ) ) ; 
 
			
		
	
		
			
				
					      lcd . print ( ' : ' ) ; 
 
			
		
	
		
			
				
					      lcd . print ( itostr2 ( time % 60 ) ) ; 
 
			
		
	
		
			
				
					    } else { 
 
			
		
	
		
			
				
					    } 
 
			
		
	
		
			
				
					    else  { 
 
			
		
	
		
			
				
					      lcd_printPGM ( PSTR ( " --:-- " ) ) ; 
 
			
		
	
		
			
				
					    } 
 
			
		
	
		
			
				
					# endif  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  // Status message line at the bottom
 
 
			
		
	
		
			
				
					  # endif  // LCD_HEIGHT > 3
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  /**
 
 
			
		
	
		
			
				
					   *  Display  Progress  Bar ,  Filament  display ,  and / or  Status  Message  on  the  last  line 
 
			
		
	
		
			
				
					   */ 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  lcd . setCursor ( 0 ,  LCD_HEIGHT  -  1 ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # ifdef LCD_PROGRESS_BAR 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( card . isFileOpen ( ) )  { 
 
			
		
	
		
			
				
					      uint16_t  mil  =  millis ( ) ,  diff  =  mil  -  progressBarTick ; 
 
			
		
	
		
			
				
					      if  ( diff  > =  PROGRESS_BAR_MSG_TIME  | |  ! lcd_status_message [ 0 ] )  { 
 
			
		
	
		
			
				
					      if  ( millis ( )  > =  progressBarTick  +  PROGRESS_BAR_MSG_TIME  | |  ! lcd_status_message [ 0 ] )  { 
 
			
		
	
		
			
				
					        // draw the progress bar
 
 
			
		
	
		
			
				
					        int  tix  =  ( int ) ( card . percentDone ( )  *  LCD_WIDTH  *  3 )  /  100 , 
 
			
		
	
		
			
				
					          cel  =  tix  /  3 ,  rem  =  tix  %  3 ,  i  =  LCD_WIDTH ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -605,11 +618,11 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					      } 
 
			
		
	
		
			
				
					    }  //card.isFileOpen
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # e ndif //LCD_PROGRESS_BAR
  
 
			
		
	
		
			
				
					  # e lif defined(FILAMENT_LCD_DISPLAY) 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  //Display both Status message line and Filament display on the last line 
 
			
		
	
		
			
				
					  # ifdef FILAMENT_LCD_DISPLAY 
 
			
		
	
		
			
				
					    if  ( message_millis  +  5000  < =  millis ( )  )  {   //display any status for the first 5 sec after screen is initiated
  
 
			
		
	
		
			
				
					    // Show Filament Diameter and Volumetric Multiplier %  
 
			
		
	
		
			
				
					    // After allowing lcd_status_message to show for 5 seconds
  
 
			
		
	
		
			
				
					    if  ( millis ( )  > =  message_millis  +  5000 )  { 
 
			
		
	
		
			
				
					      lcd_printPGM ( PSTR ( " Dia  " ) ) ; 
 
			
		
	
		
			
				
					      lcd . print ( ftostr12ns ( filament_width_meas ) ) ; 
 
			
		
	
		
			
				
					      lcd_printPGM ( PSTR ( "  V " ) ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -617,6 +630,7 @@ static void lcd_implementation_status_screen()
 
			
		
	
		
			
				
					  	  lcd . print ( ' % ' ) ; 
 
			
		
	
		
			
				
					  	  return ; 
 
			
		
	
		
			
				
					    } 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # endif  // FILAMENT_LCD_DISPLAY
 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  lcd_print ( lcd_status_message ) ;