|  | @@ -2894,9 +2894,9 @@ void process_commands()
 | 
												
													
														
															|  |  			repeatcommand_front(); // repeat G80 with all its parameters
 |  |  			repeatcommand_front(); // repeat G80 with all its parameters
 | 
												
													
														
															|  |  			enquecommand_front_P((PSTR("G28 W0")));
 |  |  			enquecommand_front_P((PSTR("G28 W0")));
 | 
												
													
														
															|  |  			break;
 |  |  			break;
 | 
												
													
														
															|  | -		}
 |  | 
 | 
												
													
														
															|  | 
 |  | +		} 
 | 
												
													
														
															|  |  		
 |  |  		
 | 
												
													
														
															|  | -		if (run == false) {
 |  | 
 | 
												
													
														
															|  | 
 |  | +		if (run == false && card.sdprinting == true) {
 | 
												
													
														
															|  |  			temp_compensation_start();
 |  |  			temp_compensation_start();
 | 
												
													
														
															|  |  			run = true;
 |  |  			run = true;
 | 
												
													
														
															|  |  			repeatcommand_front(); // repeat G80 with all its parameters
 |  |  			repeatcommand_front(); // repeat G80 with all its parameters
 | 
												
											
												
													
														
															|  | @@ -3108,6 +3108,11 @@ void process_commands()
 | 
												
													
														
															|  |  		SERIAL_ECHOLNPGM("Mesh bed leveling activated");
 |  |  		SERIAL_ECHOLNPGM("Mesh bed leveling activated");
 | 
												
													
														
															|  |  		go_home_with_z_lift();
 |  |  		go_home_with_z_lift();
 | 
												
													
														
															|  |  		SERIAL_ECHOLNPGM("Go home finished");
 |  |  		SERIAL_ECHOLNPGM("Go home finished");
 | 
												
													
														
															|  | 
 |  | +		//unretract (after PINDA preheat retraction)
 | 
												
													
														
															|  | 
 |  | +		if (card.sdprinting == true && degHotend(active_extruder) > EXTRUDE_MINTEMP) {
 | 
												
													
														
															|  | 
 |  | +			current_position[E_AXIS] += DEFAULT_RETRACTION;
 | 
												
													
														
															|  | 
 |  | +			plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
 | 
												
													
														
															|  | 
 |  | +		}
 | 
												
													
														
															|  |  		// Restore custom message state
 |  |  		// Restore custom message state
 | 
												
													
														
															|  |  		custom_message = custom_message_old;
 |  |  		custom_message = custom_message_old;
 | 
												
													
														
															|  |  		custom_message_type = custom_message_type_old;
 |  |  		custom_message_type = custom_message_type_old;
 | 
												
											
												
													
														
															|  | @@ -6208,6 +6213,9 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
 | 
												
													
														
															|  |  #endif
 |  |  #endif
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |  void temp_compensation_start() {
 |  |  void temp_compensation_start() {
 | 
												
													
														
															|  | 
 |  | +	if (degHotend(active_extruder)>EXTRUDE_MINTEMP) current_position[E_AXIS] -= DEFAULT_RETRACTION;
 | 
												
													
														
															|  | 
 |  | +	plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
 | 
												
													
														
															|  | 
 |  | +	
 | 
												
													
														
															|  |  	current_position[X_AXIS] = PINDA_PREHEAT_X;
 |  |  	current_position[X_AXIS] = PINDA_PREHEAT_X;
 | 
												
													
														
															|  |  	current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 |  |  	current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 | 
												
													
														
															|  |  	current_position[Z_AXIS] = 0;
 |  |  	current_position[Z_AXIS] = 0;
 | 
												
											
												
													
														
															|  | @@ -6217,8 +6225,6 @@ void temp_compensation_start() {
 | 
												
													
														
															|  |  	while (fabs(degBed() - target_temperature_bed) > 3) delay_keep_alive(1000);
 |  |  	while (fabs(degBed() - target_temperature_bed) > 3) delay_keep_alive(1000);
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |  	for(int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000);
 |  |  	for(int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000);
 | 
												
													
														
															|  | -	
 |  | 
 | 
												
													
														
															|  | -
 |  | 
 | 
												
													
														
															|  |  }
 |  |  }
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |  void temp_compensation_apply() {
 |  |  void temp_compensation_apply() {
 |