| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -298,7 +298,7 @@ const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					millis_t previous_cmd_ms = 0;
 | 
					 | 
					 | 
					 | 
					millis_t previous_cmd_ms = 0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static millis_t max_inactive_time = 0;
 | 
					 | 
					 | 
					 | 
					static millis_t max_inactive_time = 0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000L;
 | 
					 | 
					 | 
					 | 
					static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000L;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					stopwatch print_job_timer = stopwatch();
 | 
					 | 
					 | 
					 | 
					Stopwatch print_job_timer = Stopwatch();
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static uint8_t target_extruder;
 | 
					 | 
					 | 
					 | 
					static uint8_t target_extruder;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#if ENABLED(AUTO_BED_LEVELING_FEATURE)
 | 
					 | 
					 | 
					 | 
					#if ENABLED(AUTO_BED_LEVELING_FEATURE)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -4119,17 +4119,17 @@ inline void gcode_M104() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    #endif
 | 
					 | 
					 | 
					 | 
					    #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /**
 | 
					 | 
					 | 
					 | 
					    /**
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * We use halve EXTRUDE_MINTEMP here to allow nozzles to be put into hot
 | 
					 | 
					 | 
					 | 
					     * We use half EXTRUDE_MINTEMP here to allow nozzles to be put into hot
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * stand by mode, for instance in a dual extruder setup, without affecting
 | 
					 | 
					 | 
					 | 
					     * stand by mode, for instance in a dual extruder setup, without affecting
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * the running print timer.
 | 
					 | 
					 | 
					 | 
					     * the running print timer.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     */
 | 
					 | 
					 | 
					 | 
					     */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (temp <= (EXTRUDE_MINTEMP/2)) {
 | 
					 | 
					 | 
					 | 
					    if (temp <= (EXTRUDE_MINTEMP)/2) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      print_job_timer.stop();
 | 
					 | 
					 | 
					 | 
					      print_job_timer.stop();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      LCD_MESSAGEPGM(WELCOME_MSG);
 | 
					 | 
					 | 
					 | 
					      LCD_MESSAGEPGM(WELCOME_MSG);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /**
 | 
					 | 
					 | 
					 | 
					    /**
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * We do not check if the timer is already running because this check will
 | 
					 | 
					 | 
					 | 
					     * We do not check if the timer is already running because this check will
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * be done for us inside the stopwatch::start() method thus a running timer
 | 
					 | 
					 | 
					 | 
					     * be done for us inside the Stopwatch::start() method thus a running timer
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * will not restart.
 | 
					 | 
					 | 
					 | 
					     * will not restart.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     */
 | 
					 | 
					 | 
					 | 
					     */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    else print_job_timer.start();
 | 
					 | 
					 | 
					 | 
					    else print_job_timer.start();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -4273,17 +4273,17 @@ inline void gcode_M109() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    #endif
 | 
					 | 
					 | 
					 | 
					    #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /**
 | 
					 | 
					 | 
					 | 
					    /**
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * We use halve EXTRUDE_MINTEMP here to allow nozzles to be put into hot
 | 
					 | 
					 | 
					 | 
					     * We use half EXTRUDE_MINTEMP here to allow nozzles to be put into hot
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * stand by mode, for instance in a dual extruder setup, without affecting
 | 
					 | 
					 | 
					 | 
					     * stand by mode, for instance in a dual extruder setup, without affecting
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * the running print timer.
 | 
					 | 
					 | 
					 | 
					     * the running print timer.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     */
 | 
					 | 
					 | 
					 | 
					     */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (temp <= (EXTRUDE_MINTEMP/2)) {
 | 
					 | 
					 | 
					 | 
					    if (temp <= (EXTRUDE_MINTEMP)/2) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      print_job_timer.stop();
 | 
					 | 
					 | 
					 | 
					      print_job_timer.stop();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      LCD_MESSAGEPGM(WELCOME_MSG);
 | 
					 | 
					 | 
					 | 
					      LCD_MESSAGEPGM(WELCOME_MSG);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /**
 | 
					 | 
					 | 
					 | 
					    /**
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * We do not check if the timer is already running because this check will
 | 
					 | 
					 | 
					 | 
					     * We do not check if the timer is already running because this check will
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * be done for us inside the stopwatch::start() method thus a running timer
 | 
					 | 
					 | 
					 | 
					     * be done for us inside the Stopwatch::start() method thus a running timer
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * will not restart.
 | 
					 | 
					 | 
					 | 
					     * will not restart.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     */
 | 
					 | 
					 | 
					 | 
					     */
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    else print_job_timer.start();
 | 
					 | 
					 | 
					 | 
					    else print_job_timer.start();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |