@@ -143,6 +143,11 @@ void GcodeSuite::G34() {
143143
144144 probe.use_probing_tool ();
145145
146+ #ifdef EVENT_GCODE_BEFORE_G34
147+ if (DEBUGGING (LEVELING )) DEBUG_ECHOLNPGM (" Before G34 G-code: " , F (EVENT_GCODE_BEFORE_G34 ));
148+ gcode.process_subcommands_now (F (EVENT_GCODE_BEFORE_G34 ));
149+ #endif
150+
146151 TERN_ (HAS_DUPLICATION_MODE , set_duplication_enabled (false ));
147152
148153 // Compute a worst-case clearance height to probe from. After the first
@@ -214,19 +219,20 @@ void GcodeSuite::G34() {
214219 // Probing sanity check is disabled, as it would trigger even in normal cases because
215220 // current_position.z has been manually altered in the "dirty trick" above.
216221
217- if (DEBUGGING (LEVELING ))
218- DEBUG_ECHOLNPGM (
219- " Z_PROBE_LOW_POINT: " , p_float_t (Z_PROBE_LOW_POINT , 2 ),
220- " z_probe: " , p_float_t (z_probe, 2 ),
221- " Probe Tgt: " , p_float_t ((Z_PROBE_LOW_POINT ) - z_probe * 0 .5f , 2 )
222- );
222+ const float minz = (Z_PROBE_LOW_POINT ) - (z_probe * 0 .5f );
223+
224+ if (DEBUGGING (LEVELING )) {
225+ DEBUG_ECHOPGM (" Z_PROBE_LOW_POINT: " STRINGIFY (Z_PROBE_LOW_POINT ));
226+ DEBUG_ECHOLNPGM (" z_probe: " , p_float_t (z_probe, 3 ),
227+ " Probe Tgt: " , p_float_t (minz, 3 ));
228+ }
223229
224230 const float z_probed_height = probe.probe_at_point (
225231 DIFF_TERN (HAS_HOME_OFFSET , ppos, xy_pos_t (home_offset)), // xy
226232 raise_after, // raise_after
227233 (DEBUGGING (LEVELING ) || DEBUGGING (INFO )) ? 3 : 0 , // verbose_level
228234 true , false , // probe_relative, sanity_check
229- ( Z_PROBE_LOW_POINT ) - (z_probe * 0 . 5f ), // z_min_point
235+ minz, // z_min_point
230236 Z_TWEEN_SAFE_CLEARANCE // z_clearance
231237 );
232238
@@ -303,7 +309,7 @@ void GcodeSuite::G34() {
303309
304310 SERIAL_EOL ();
305311
306- SString<15 + TERN0 (TRIPLE_Z , 30 ) + TERN0 (QUAD_Z , 45 )> msg (F (" 1:2 =" ), p_float_t (ABS (z_measured[1 ] - z_measured[0 ]), 3 ));
312+ SString<15 + TERN0 (TRIPLE_Z , 30 ) + TERN0 (QUAD_Z , 45 )> msg (F (" 2-1 =" ), p_float_t (ABS (z_measured[1 ] - z_measured[0 ]), 3 ));
307313 #if TRIPLE_Z
308314 msg.append (F (" 3-2=" ), p_float_t (ABS (z_measured[2 ] - z_measured[1 ]), 3 ))
309315 .append (F (" 3-1=" ), p_float_t (ABS (z_measured[2 ] - z_measured[0 ]), 3 ));
@@ -414,7 +420,7 @@ void GcodeSuite::G34() {
414420 SERIAL_ECHOLNPGM (" G34 aborted." );
415421 else {
416422 SERIAL_ECHOLNPGM (" Did " , iteration + (iteration != z_auto_align_iterations), " of " , z_auto_align_iterations);
417- SERIAL_ECHOLNPGM (" Accuracy: " , p_float_t (z_maxdiff, 2 ));
423+ SERIAL_ECHOLNPGM (" Accuracy: " , p_float_t (z_maxdiff, 3 ));
418424 }
419425
420426 // Stow the probe because the last call to probe.probe_at_point(...)
@@ -430,16 +436,22 @@ void GcodeSuite::G34() {
430436 // Ideally, this would be equal to the 'z_probe * 0.5f' which was added earlier.
431437 if (DEBUGGING (LEVELING ))
432438 DEBUG_ECHOLNPGM (
433- " z_measured_min: " , p_float_t (z_measured_min, 2 ),
434- " Z_TWEEN_SAFE_CLEARANCE: " , p_float_t (Z_TWEEN_SAFE_CLEARANCE , 2 ),
435- " zoffs: " , p_float_t (zoffs, 2 )
439+ " z_measured_min: " , p_float_t (z_measured_min, 3 ),
440+ " Z_TWEEN_SAFE_CLEARANCE: " , p_float_t (Z_TWEEN_SAFE_CLEARANCE , 3 ),
441+ " zoffs: " , p_float_t (zoffs, 3 )
436442 );
437443
438444 if (!err_break)
439445 current_position.z -= z_measured_min - (Z_TWEEN_SAFE_CLEARANCE + zoffs); // We shouldn't want to subtract the clearance from here right? (Depends if we added it further up)
440446 sync_plan_position ();
441447 #endif
442448
449+ #ifdef EVENT_GCODE_AFTER_G34
450+ if (DEBUGGING (LEVELING )) DEBUG_ECHOLNPGM (" After G34 G-code: " , F (EVENT_GCODE_AFTER_G34 ));
451+ planner.synchronize ();
452+ process_subcommands_now (F (EVENT_GCODE_AFTER_G34 ));
453+ #endif
454+
443455 probe.use_probing_tool (false );
444456
445457 #if ALL(HAS_LEVELING, RESTORE_LEVELING_AFTER_G34)
0 commit comments