|  | @@ -297,6 +297,17 @@ byte b[2];
 | 
	
		
			
				|  |  |  int value;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +//used for PINDA temp calibration and pause print
 | 
	
		
			
				|  |  | +#define DEFAULT_RETRACTION    1
 | 
	
		
			
				|  |  | +#define DEFAULT_RETRACTION_MM 4 //MM
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifdef SNMM_V2
 | 
	
		
			
				|  |  | +float default_retraction = DEFAULT_RETRACTION;
 | 
	
		
			
				|  |  | +#else //SNMM_V2
 | 
	
		
			
				|  |  | +float default_retraction = DEFAULT_RETRACTION_MM;
 | 
	
		
			
				|  |  | +#endif //SNMM_V2
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  float homing_feedrate[] = HOMING_FEEDRATE;
 | 
	
		
			
				|  |  |  // Currently only the extruder axis may be switched to a relative mode.
 | 
	
		
			
				|  |  |  // Other axes are always absolute or relative based on the common relative_mode flag.
 | 
	
	
		
			
				|  | @@ -672,12 +683,12 @@ void crashdet_disable()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void crashdet_stop_and_save_print()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	stop_and_save_print_to_ram(10, -DEFAULT_RETRACTION); //XY - no change, Z 10mm up, E -1mm retract
 | 
	
		
			
				|  |  | +	stop_and_save_print_to_ram(10, -default_retraction); //XY - no change, Z 10mm up, E -1mm retract
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void crashdet_restore_print_and_continue()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	restore_print_from_ram_and_continue(DEFAULT_RETRACTION); //XYZ = orig, E +1mm unretract
 | 
	
		
			
				|  |  | +	restore_print_from_ram_and_continue(default_retraction); //XYZ = orig, E +1mm unretract
 | 
	
		
			
				|  |  |  //	babystep_apply();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4611,7 +4622,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 | 
	
		
			
				|  |  |  //		SERIAL_ECHOLNPGM("Go home finished");
 | 
	
		
			
				|  |  |  		//unretract (after PINDA preheat retraction)
 | 
	
		
			
				|  |  |  		if (degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
 | 
	
		
			
				|  |  | -			current_position[E_AXIS] += DEFAULT_RETRACTION;
 | 
	
		
			
				|  |  | +			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);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		KEEPALIVE_STATE(NOT_BUSY);
 | 
	
	
		
			
				|  | @@ -7980,7 +7991,7 @@ void temp_compensation_start() {
 | 
	
		
			
				|  |  |  	custom_message_state = PINDA_HEAT_T + 1;
 | 
	
		
			
				|  |  |  	lcd_update(2);
 | 
	
		
			
				|  |  |  	if (degHotend(active_extruder) > EXTRUDE_MINTEMP) {
 | 
	
		
			
				|  |  | -		current_position[E_AXIS] -= DEFAULT_RETRACTION;
 | 
	
		
			
				|  |  | +		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);
 | 
	
		
			
				|  |  |  	
 | 
	
	
		
			
				|  | @@ -8119,7 +8130,7 @@ void long_pause() //long pause print
 | 
	
		
			
				|  |  |  	pause_lastpos[E_AXIS] = current_position[E_AXIS];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	//retract
 | 
	
		
			
				|  |  | -	current_position[E_AXIS] -= DEFAULT_RETRACTION;
 | 
	
		
			
				|  |  | +	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);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	//lift z
 | 
	
	
		
			
				|  | @@ -8218,7 +8229,7 @@ void uvlo_()
 | 
	
		
			
				|  |  |        current_position[X_AXIS], 
 | 
	
		
			
				|  |  |        current_position[Y_AXIS], 
 | 
	
		
			
				|  |  |        current_position[Z_AXIS], 
 | 
	
		
			
				|  |  | -      current_position[E_AXIS] - DEFAULT_RETRACTION,
 | 
	
		
			
				|  |  | +      current_position[E_AXIS] - default_retraction,
 | 
	
		
			
				|  |  |        95, active_extruder);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |          st_synchronize();
 | 
	
	
		
			
				|  | @@ -8228,7 +8239,7 @@ void uvlo_()
 | 
	
		
			
				|  |  |        current_position[X_AXIS], 
 | 
	
		
			
				|  |  |        current_position[Y_AXIS], 
 | 
	
		
			
				|  |  |        current_position[Z_AXIS] + UVLO_Z_AXIS_SHIFT + float((1024 - z_microsteps + 7) >> 4) / axis_steps_per_unit[Z_AXIS], 
 | 
	
		
			
				|  |  | -      current_position[E_AXIS] - DEFAULT_RETRACTION,
 | 
	
		
			
				|  |  | +      current_position[E_AXIS] - default_retraction,
 | 
	
		
			
				|  |  |        40, active_extruder);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      st_synchronize();
 | 
	
	
		
			
				|  | @@ -8238,7 +8249,7 @@ void uvlo_()
 | 
	
		
			
				|  |  |                       current_position[X_AXIS],
 | 
	
		
			
				|  |  |                       current_position[Y_AXIS],
 | 
	
		
			
				|  |  |                       current_position[Z_AXIS] + UVLO_Z_AXIS_SHIFT + float((1024 - z_microsteps + 7) >> 4) / axis_steps_per_unit[Z_AXIS],
 | 
	
		
			
				|  |  | -                     current_position[E_AXIS] - DEFAULT_RETRACTION,
 | 
	
		
			
				|  |  | +                     current_position[E_AXIS] - default_retraction,
 | 
	
		
			
				|  |  |                       40, active_extruder);
 | 
	
		
			
				|  |  |      st_synchronize();
 | 
	
		
			
				|  |  |      disable_e0();
 | 
	
	
		
			
				|  | @@ -8432,7 +8443,7 @@ void recover_print(uint8_t automatic) {
 | 
	
		
			
				|  |  |      if(automatic == 0){ 
 | 
	
		
			
				|  |  |          enquecommand_P(PSTR("G1 E5 F120")); //Extrude some filament to stabilize pessure 
 | 
	
		
			
				|  |  |      } 
 | 
	
		
			
				|  |  | -	enquecommand_P(PSTR("G1 E"  STRINGIFY(-DEFAULT_RETRACTION)" F480"));
 | 
	
		
			
				|  |  | +	enquecommand_P(PSTR("G1 E"  STRINGIFY(-default_retraction)" F480"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	printf_P(_N("After waiting for temp:\nCurrent pos X_AXIS:%.3f\nCurrent pos Y_AXIS:%.3f\n"), current_position[X_AXIS], current_position[Y_AXIS]);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -8570,7 +8581,7 @@ void restore_print_from_eeprom() {
 | 
	
		
			
				|  |  |  	strcpy_P(cmd, PSTR("G1 Z")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_Z))));
 | 
	
		
			
				|  |  |  	enquecommand(cmd);
 | 
	
		
			
				|  |  |    // Unretract.
 | 
	
		
			
				|  |  | -	enquecommand_P(PSTR("G1 E"  STRINGIFY(2*DEFAULT_RETRACTION)" F480"));
 | 
	
		
			
				|  |  | +	enquecommand_P(PSTR("G1 E"  STRINGIFY(2*default_retraction)" F480"));
 | 
	
		
			
				|  |  |    // Set the feedrate saved at the power panic.
 | 
	
		
			
				|  |  |  	sprintf_P(cmd, PSTR("G1 F%d"), feedrate_rec);
 | 
	
		
			
				|  |  |  	enquecommand(cmd);
 |