if((echange<-MIN_RETRACT&&!retracted) ||(echange>MIN_RETRACT&&retracted)){//move appears to be an attempt to retract or recover
if((echange<-MIN_RETRACT&&!retracted[active_extruder]) ||(echange>MIN_RETRACT&&retracted[active_extruder])){//move appears to be an attempt to retract or recover
current_position[E_AXIS]=destination[E_AXIS];//hide the slicer-generated retract/recover from calculations
current_position[E_AXIS]=destination[E_AXIS];//hide the slicer-generated retract/recover from calculations
plan_set_e_position(current_position[E_AXIS]);//AND from the planner
plan_set_e_position(current_position[E_AXIS]);//AND from the planner
retract(!retracted);
retract(!retracted[active_extruder]);
return;
return;
}
}
}
}
@ -2865,15 +2863,13 @@ Sigma_Exit:
#if defined(PS_ON_PIN) && PS_ON_PIN > -1
#if defined(PS_ON_PIN) && PS_ON_PIN > -1
case80:// M80 - Turn on Power Supply
case80:// M80 - Turn on Power Supply
SET_OUTPUT(PS_ON_PIN);//GND
OUT_WRITE(PS_ON_PIN,PS_ON_AWAKE);// GND
WRITE(PS_ON_PIN,PS_ON_AWAKE);
// If you have a switch on suicide pin, this is useful
// If you have a switch on suicide pin, this is useful
// if you want to start another print with suicide feature after
// if you want to start another print with suicide feature after
if((out_bits&(1<<X_AXIS))!=0)// stepping along -X axis
if((out_bits&(1<<X_AXIS))!=0)// stepping along -X axis (regular cartesians bot)
#else
#else
if(!((current_block->steps_x==current_block->steps_y)&&((out_bits&(1<<X_AXIS))>>X_AXIS!=(out_bits&(1<<Y_AXIS))>>Y_AXIS)))// AlexBorro: If DeltaX == -DeltaY, the movement is only in Y axis
if((out_bits&(1<<X_HEAD))!=0)//AlexBorro: Head direction in -X axis for CoreXY bots.
if((out_bits&(1<<X_HEAD))!=0)//AlexBorro: Head direction in -X axis for CoreXY bots.
#endif
#endif
{
{// -direction
CHECK_ENDSTOPS
{
#ifdef DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
if(!((current_block->steps_x==current_block->steps_y)&&((out_bits&(1<<X_AXIS))>>X_AXIS==(out_bits&(1<<Y_AXIS))>>Y_AXIS)))// AlexBorro: If DeltaX == DeltaY, the movement is only in X axis
if((out_bits&(1<<Y_HEAD))!=0)//AlexBorro: Head direction in -Y axis for CoreXY bots.
if((out_bits&(1<<Y_HEAD))!=0)//AlexBorro: Head direction in -Y axis for CoreXY bots.