@ -3802,14 +3802,9 @@ inline void gcode_M104() {
 
			
		
	
		
			
				
					  } 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  M105 :  Read  hot  end  and  bed  temperature 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					inline  void  gcode_M105 ( )  {  
			
		
	
		
			
				
					  if  ( setTargetedHotend ( 105 ) )  return ; 
 
			
		
	
		
			
				
					# if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675)  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) 
 
			
		
	
		
			
				
					    SERIAL_PROTOCOLPGM ( MSG_OK ) ; 
 
			
		
	
		
			
				
					  void  print_heaterstates ( )  { 
 
			
		
	
		
			
				
					    # if HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675) 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOLPGM ( "  T: " ) ; 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOL_F ( degHotend ( target_extruder ) ,  1 ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -3822,6 +3817,7 @@ inline void gcode_M105() {
 
			
		
	
		
			
				
					      SERIAL_PROTOCOLPGM ( "  / " ) ; 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOL_F ( degTargetBed ( ) ,  1 ) ; 
 
			
		
	
		
			
				
					    # endif 
 
			
		
	
		
			
				
					    # if EXTRUDERS > 1 
 
			
		
	
		
			
				
					      for  ( int8_t  e  =  0 ;  e  <  EXTRUDERS ;  + + e )  { 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "  T " ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL ( e ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -3830,11 +3826,16 @@ inline void gcode_M105() {
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "  / " ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL_F ( degTargetHotend ( e ) ,  1 ) ; 
 
			
		
	
		
			
				
					      } 
 
			
		
	
		
			
				
					  # else  // !HAS_TEMP_0 && !HAS_TEMP_BED
 
 
			
		
	
		
			
				
					    SERIAL_ERROR_START ; 
 
			
		
	
		
			
				
					    SERIAL_ERRORLNPGM ( MSG_ERR_NO_THERMISTORS ) ; 
 
			
		
	
		
			
				
					    # endif 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # if HAS_TEMP_BED 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOLPGM ( "  B@: " ) ; 
 
			
		
	
		
			
				
					      # ifdef BED_WATTS 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL ( ( BED_WATTS  *  getHeaterPower ( - 1 ) )  /  127 ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLCHAR ( ' W ' ) ; 
 
			
		
	
		
			
				
					      # else 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL ( getHeaterPower ( - 1 ) ) ; 
 
			
		
	
		
			
				
					      # endif 
 
			
		
	
		
			
				
					    # endif 
 
			
		
	
		
			
				
					    SERIAL_PROTOCOLPGM ( "  @: " ) ; 
 
			
		
	
		
			
				
					    # ifdef EXTRUDER_WATTS 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOL ( ( EXTRUDER_WATTS  *  getHeaterPower ( target_extruder ) )  /  127 ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -3842,15 +3843,19 @@ inline void gcode_M105() {
 
			
		
	
		
			
				
					    # else 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOL ( getHeaterPower ( target_extruder ) ) ; 
 
			
		
	
		
			
				
					    # endif 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  SERIAL_PROTOCOLPGM ( "  B@: " ) ; 
 
			
		
	
		
			
				
					  # ifdef BED_WATTS 
 
			
		
	
		
			
				
					    SERIAL_PROTOCOL ( ( BED_WATTS  *  getHeaterPower ( - 1 ) )  /  127 ) ; 
 
			
		
	
		
			
				
					    # if EXTRUDERS > 1 
 
			
		
	
		
			
				
					      for  ( int8_t  e  =  0 ;  e  <  EXTRUDERS ;  + + e )  { 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "  @ " ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL ( e ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLCHAR ( ' : ' ) ; 
 
			
		
	
		
			
				
					        # ifdef EXTRUDER_WATTS 
 
			
		
	
		
			
				
					          SERIAL_PROTOCOL ( ( EXTRUDER_WATTS  *  getHeaterPower ( e ) )  /  127 ) ; 
 
			
		
	
		
			
				
					          SERIAL_PROTOCOLCHAR ( ' W ' ) ; 
 
			
		
	
		
			
				
					        # else 
 
			
		
	
		
			
				
					    SERIAL_PROTOCOL ( getHeaterPower ( - 1 ) ) ; 
 
			
		
	
		
			
				
					          SERIAL_PROTOCOL ( getHeaterPower ( e ) ) ; 
 
			
		
	
		
			
				
					        # endif 
 
			
		
	
		
			
				
					      } 
 
			
		
	
		
			
				
					    # endif 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # if ENABLED(SHOW_TEMP_ADC_VALUES) 
 
			
		
	
		
			
				
					      # if HAS_TEMP_BED 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "     ADC B: " ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -3867,6 +3872,22 @@ inline void gcode_M105() {
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL_F ( rawHotendTemp ( cur_extruder )  /  OVERSAMPLENR ,  0 ) ; 
 
			
		
	
		
			
				
					      } 
 
			
		
	
		
			
				
					    # endif 
 
			
		
	
		
			
				
					  } 
 
			
		
	
		
			
				
					# endif  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/**
  
			
		
	
		
			
				
					 *  M105 :  Read  hot  end  and  bed  temperature 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					inline  void  gcode_M105 ( )  {  
			
		
	
		
			
				
					  if  ( setTargetedHotend ( 105 ) )  return ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  # if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) 
 
			
		
	
		
			
				
					    SERIAL_PROTOCOLPGM ( MSG_OK ) ; 
 
			
		
	
		
			
				
					    print_heaterstates ( ) ; 
 
			
		
	
		
			
				
					  # else  // !HAS_TEMP_0 && !HAS_TEMP_BED
 
 
			
		
	
		
			
				
					    SERIAL_ERROR_START ; 
 
			
		
	
		
			
				
					    SERIAL_ERRORLNPGM ( MSG_ERR_NO_THERMISTORS ) ; 
 
			
		
	
		
			
				
					  # endif 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  SERIAL_EOL ; 
 
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -3932,10 +3953,9 @@ inline void gcode_M109() {
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  {  // while loop
 
 
			
		
	
		
			
				
					    if  ( millis ( )  >  temp_ms  +  1000UL )  {  //Print temp & remaining time every 1s while waiting
 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOLPGM ( " T: " ) ; 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOL_F ( degHotend ( target_extruder ) ,  1 ) ; 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOLPGM ( "  E: " ) ; 
 
			
		
	
		
			
				
					      SERIAL_PROTOCOL ( ( int ) target_extruder ) ; 
 
			
		
	
		
			
				
					      # if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) 
 
			
		
	
		
			
				
					        print_heaterstates ( ) ; 
 
			
		
	
		
			
				
					      # endif 
 
			
		
	
		
			
				
					      # ifdef TEMP_RESIDENCY_TIME 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "  W: " ) ; 
 
			
		
	
		
			
				
					        if  ( residency_start_ms  >  - 1 )  { 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -3996,13 +4016,10 @@ inline void gcode_M109() {
 
			
		
	
		
			
				
					      if  ( ms  >  temp_ms  +  1000UL )  {  //Print Temp Reading every 1 second while heating up.
 
 
			
		
	
		
			
				
					        temp_ms  =  ms ; 
 
			
		
	
		
			
				
					        float  tt  =  degHotend ( active_extruder ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( " T: " ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL ( tt ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "  E: " ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL ( ( int ) active_extruder ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOLPGM ( "  B: " ) ; 
 
			
		
	
		
			
				
					        SERIAL_PROTOCOL_F ( degBed ( ) ,  1 ) ; 
 
			
		
	
		
			
				
					        # if HAS_TEMP_0 || HAS_TEMP_BED || ENABLED(HEATER_0_USES_MAX6675) 
 
			
		
	
		
			
				
					          print_heaterstates ( ) ; 
 
			
		
	
		
			
				
					          SERIAL_EOL ; 
 
			
		
	
		
			
				
					        # endif 
 
			
		
	
		
			
				
					      } 
 
			
		
	
		
			
				
					      idle ( ) ; 
 
			
		
	
		
			
				
					    } 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -4915,6 +4932,9 @@ inline void gcode_M303() {
 
			
		
	
		
			
				
					  int  e  =  code_seen ( ' E ' )  ?  code_value_short ( )  :  0 ; 
 
			
		
	
		
			
				
					  int  c  =  code_seen ( ' C ' )  ?  code_value_short ( )  :  5 ; 
 
			
		
	
		
			
				
					  float  temp  =  code_seen ( ' S ' )  ?  code_value ( )  :  ( e  <  0  ?  70.0  :  150.0 ) ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  if  ( e  > = 0  & &  e  <  EXTRUDERS ) 
 
			
		
	
		
			
				
					    target_extruder  =  e ; 
 
			
		
	
		
			
				
					  PID_autotune ( temp ,  e ,  c ) ; 
 
			
		
	
		
			
				
					}