I recently installed a SKR 1.3 Board with a 3DTouch-Probe on my Creality Ender 3 Pro. The probe works, G29 does its magic, but:

If i issue a plain G28, the hotend first homes X and Y like before the Z-probe. The probe is now next to, not above, the bed. As the next step, the printer is supposed to home the Z-axis. The probe deploys and Z starts to lower until it smashes into the bed, because the probe misses the bed (if I don't stop it, that is).

I configured X/Y offsets for the probe, but they don't seem to be honored when performing the G28 code.

If I home X/Y "manually" with G28 X Y, move the hotend with like G1 X45 Y10, then home Z with G28 Z it works fine.

What did I miss? Is this intended behaviour & the user has to take care never to issue a plain G28?!


2 Answers 2


You need to enable the constant Z_SAFE_HOMING (like: #define Z_SAFE_HOMING) in your printer configuration file (if you're using Marlin firmware that is). This will move the nozzle to the middle of the plate prior to lowering the nozzle by default:

  #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
  #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).

Use Z Safe Homing to avoid homing with a Z probe outside the bed area

According to Marlin firmware with this feature enabled:

  • Allow Z homing only after X and Y homing AND stepper drivers still enabled.
  • If stepper drivers time out, it will need X and Y homing again before Z homing.
  • Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
  • Prevent Z homing when the Z probe is outside the bed area.

To Enable Z SAFE HOMING, In the configuration.h file search (Ctrl+F) for #define Z_SAFE_HOMING. By default, it will be disabled to enable it just uncomment the line

enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .