8282 #include " ../feature/host_actions.h" // for PROMPT_USER_CONTINUE
8383#endif
8484
85- #if HAS_Z_SERVO_PROBE
85+ #if HAS_Z_SERVO_PROBE || HAS_MAG_MOUNTED_SERVO_PROBE
8686 #include " servo.h"
8787#endif
8888
@@ -272,6 +272,13 @@ xyz_pos_t Probe::offset; // Initialized by settings.load
272272 typedef struct { float fr_mm_min; xyz_pos_t where; } mag_probe_move_t ;
273273
274274 inline void run_deploy_moves () {
275+ #ifdef MAG_MOUNTED_PRE_DEPLOY
276+ constexpr mag_probe_move_t pre_deploy = MAG_MOUNTED_PRE_DEPLOY;
277+ do_blocking_move_to (pre_deploy.where , MMM_TO_MMS (pre_deploy.fr_mm_min ));
278+ #endif
279+ #if HAS_MAG_MOUNTED_SERVO_PROBE
280+ servo[MAG_MOUNTED_PROBE_SERVO_NR].move (servo_angles[MAG_MOUNTED_PROBE_SERVO_NR][0 ]);
281+ #endif
275282 #ifdef MAG_MOUNTED_DEPLOY_1
276283 constexpr mag_probe_move_t deploy_1 = MAG_MOUNTED_DEPLOY_1;
277284 do_blocking_move_to (deploy_1.where , MMM_TO_MMS (deploy_1.fr_mm_min ));
@@ -292,9 +299,19 @@ xyz_pos_t Probe::offset; // Initialized by settings.load
292299 constexpr mag_probe_move_t deploy_5 = MAG_MOUNTED_DEPLOY_5;
293300 do_blocking_move_to (deploy_5.where , MMM_TO_MMS (deploy_5.fr_mm_min ));
294301 #endif
302+ #if HAS_MAG_MOUNTED_SERVO_PROBE
303+ servo[MAG_MOUNTED_PROBE_SERVO_NR].move (servo_angles[MAG_MOUNTED_PROBE_SERVO_NR][1 ]);
304+ #endif
295305 }
296306
297307 inline void run_stow_moves () {
308+ #ifdef MAG_MOUNTED_PRE_STOW
309+ constexpr mag_probe_move_t pre_stow = MAG_MOUNTED_PRE_STOW;
310+ do_blocking_move_to (pre_stow.where , MMM_TO_MMS (pre_stow.fr_mm_min ));
311+ #endif
312+ #if HAS_MAG_MOUNTED_SERVO_PROBE
313+ servo[MAG_MOUNTED_PROBE_SERVO_NR].move (servo_angles[MAG_MOUNTED_PROBE_SERVO_NR][0 ]);
314+ #endif
298315 #ifdef MAG_MOUNTED_STOW_1
299316 constexpr mag_probe_move_t stow_1 = MAG_MOUNTED_STOW_1;
300317 do_blocking_move_to (stow_1.where , MMM_TO_MMS (stow_1.fr_mm_min ));
@@ -315,6 +332,9 @@ xyz_pos_t Probe::offset; // Initialized by settings.load
315332 constexpr mag_probe_move_t stow_5 = MAG_MOUNTED_STOW_5;
316333 do_blocking_move_to (stow_5.where , MMM_TO_MMS (stow_5.fr_mm_min ));
317334 #endif
335+ #if HAS_MAG_MOUNTED_SERVO_PROBE
336+ servo[MAG_MOUNTED_PROBE_SERVO_NR].move (servo_angles[MAG_MOUNTED_PROBE_SERVO_NR][1 ]);
337+ #endif
318338 }
319339
320340#endif // MAG_MOUNTED_PROBE
@@ -541,7 +561,7 @@ bool Probe::set_deployed(const bool deploy, const bool no_return/*=false*/) {
541561 #if ENABLED(PROBE_TRIGGERED_WHEN_STOWED_TEST)
542562
543563 // Only deploy/stow if needed
544- if (PROBE_TRIGGERED () == deploy) {
564+ if (PROBE_TRIGGERED () == deploy || !deploy ) {
545565 if (!deploy) endstops.enable_z_probe (false ); // Switch off triggered when stowed probes early
546566 // otherwise an Allen-Key probe can't be stowed.
547567 probe_specific_action (deploy);
0 commit comments