Quote Originally Posted by systemslave View Post
My weekend project was updating my Makerfarm i3v12 with Marlin and ABL. G28 and G29 work great from the terminal, but when I tried to run my bed leveling gcode from the sd card the printer tries to probe the Z at X0, Y0. I have Z_SAFE_HOMING set as follows, so I am confused. Can you give me a quick pointer where I have gone astray?

#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
// When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.

#ifdef Z_SAFE_HOMING

#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)

#endif
I have seen situations where the current draw of the probe servo causes the Ardunio to reset. This could get you different results between the host program and the SD card because the SD interpretation would stop, but the host would keep going once the firmware rebooted.

You could try putting the servo on a separate 5V supply, or even just unplug the servo and extend the probe manually to see if it makes a difference.