@ -1296,32 +1296,73 @@ static void setup_for_endstop_move() {
}
# elif defined(Z_PROBE_ALLEN_KEY)
feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE ;
feedrate = homing_feedrate [ X_AXIS ] ;
// If endstop is already false, the probe is deployed
# ifdef Z_PROBE_ENDSTOP
bool z_probe_endstop = ( READ ( Z_PROBE_PIN ) ! = Z_PROBE_ENDSTOP_INVERTING ) ;
if ( z_probe_endstop )
# else
bool z_min_endstop = ( READ ( Z_MIN_PIN ) ! = Z_MIN_ENDSTOP_INVERTING ) ;
if ( z_min_endstop )
# endif
{
// Move to the start position to initiate deployment
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_X ;
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_Y ;
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_Z ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
// Move to the start position to initiate deployment
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_1 _X ;
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_1 _Y ;
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_1 _Z ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
// Home X to touch the belt
feedrate = homing_feedrate [ X_AXIS ] / 10 ;
destination [ X_AXIS ] = 0 ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
// Home Y for safety
feedrate = homing_feedrate [ X_AXIS ] / 2 ;
destination [ Y_AXIS ] = 0 ;
// Move to engage deployment
if ( Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE ! = Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE ) {
feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE ;
}
if ( Z_PROBE_ALLEN_KEY_DEPLOY_2_X ! = Z_PROBE_ALLEN_KEY_DEPLOY_1_X ) {
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_2_X ;
}
if ( Z_PROBE_ALLEN_KEY_DEPLOY_2_Y ! = Z_PROBE_ALLEN_KEY_DEPLOY_1_Y ) {
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_2_Y ;
}
if ( Z_PROBE_ALLEN_KEY_DEPLOY_2_Z ! = Z_PROBE_ALLEN_KEY_DEPLOY_1_Z ) {
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_2_Z ;
}
prepare_move_raw ( ) ;
# ifdef Z_PROBE_ALLEN_KEY_DEPLOY_3_X
if ( Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE ! = Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE ) {
feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE ;
}
// Move to trigger deployment
if ( Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE ! = Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE ) {
feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE ;
}
if ( Z_PROBE_ALLEN_KEY_DEPLOY_3_X ! = Z_PROBE_ALLEN_KEY_DEPLOY_2_X ) {
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_3_X ;
}
if ( Z_PROBE_ALLEN_KEY_DEPLOY_3_Y ! = Z_PROBE_ALLEN_KEY_DEPLOY_2_Y ) {
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_3_Y ;
}
if ( Z_PROBE_ALLEN_KEY_DEPLOY_3_Z ! = Z_PROBE_ALLEN_KEY_DEPLOY_2_Z ) {
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_DEPLOY_3_Z ;
}
prepare_move_raw ( ) ;
# endif
}
// Partially Home X,Y for safety
destination [ X_AXIS ] = destination [ X_AXIS ] * 0.75 ;
destination [ Y_AXIS ] = destination [ Y_AXIS ] * 0.75 ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
st_synchronize ( ) ;
# ifdef Z_PROBE_ENDSTOP
bool z_probe_endstop = ( READ ( Z_PROBE_PIN ) ! = Z_PROBE_ENDSTOP_INVERTING ) ;
z_probe_endstop = ( READ ( Z_PROBE_PIN ) ! = Z_PROBE_ENDSTOP_INVERTING ) ;
if ( z_probe_endstop )
# else
bool z_min_endstop = ( READ ( Z_MIN_PIN ) ! = Z_MIN_ENDSTOP_INVERTING ) ;
z_min_endstop = ( READ ( Z_MIN_PIN ) ! = Z_MIN_ENDSTOP_INVERTING ) ;
if ( z_min_endstop )
# endif
{
@ -1366,25 +1407,41 @@ static void setup_for_endstop_move() {
# elif defined(Z_PROBE_ALLEN_KEY)
// Move up for safety
feedrate = homing_feedrate [ X_AXIS ] ;
feedrate = Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE ;
destination [ Z_AXIS ] = current_position [ Z_AXIS ] + Z_RAISE_AFTER_PROBING ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
// Move to the start position to initiate retraction
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_X ;
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_Y ;
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_Z ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_1_ X ;
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_1_ Y ;
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_1_ Z ;
prepare_move_raw ( ) ;
// Move the nozzle down to push the probe into retracted position
feedrate = homing_feedrate [ Z_AXIS ] / 10 ;
destination [ Z_AXIS ] = current_position [ Z_AXIS ] - Z_PROBE_ALLEN_KEY_STOW_DEPTH ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
if ( Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE ! = Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE ) {
feedrate = Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE ;
}
if ( Z_PROBE_ALLEN_KEY_STOW_2_X ! = Z_PROBE_ALLEN_KEY_STOW_1_X ) {
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_2_X ;
}
if ( Z_PROBE_ALLEN_KEY_STOW_2_Y ! = Z_PROBE_ALLEN_KEY_STOW_1_Y ) {
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_2_Y ;
}
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_2_Z ;
prepare_move_raw ( ) ;
// Move up for safety
feedrate = homing_feedrate [ Z_AXIS ] / 2 ;
destination [ Z_AXIS ] = current_position [ Z_AXIS ] + Z_PROBE_ALLEN_KEY_STOW_DEPTH * 2 ;
prepare_move_raw ( ) ; // this will also set_current_to_destination
if ( Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE ! = Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE ) {
feedrate = Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE ;
}
if ( Z_PROBE_ALLEN_KEY_STOW_3_X ! = Z_PROBE_ALLEN_KEY_STOW_2_X ) {
destination [ X_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_3_X ;
}
if ( Z_PROBE_ALLEN_KEY_STOW_3_Y ! = Z_PROBE_ALLEN_KEY_STOW_2_Y ) {
destination [ Y_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_3_Y ;
}
destination [ Z_AXIS ] = Z_PROBE_ALLEN_KEY_STOW_3_Z ;
prepare_move_raw ( ) ;
// Home XY for safety
feedrate = homing_feedrate [ X_AXIS ] / 2 ;