Get back to home after z_SAFE_HOMING

I truly hope this is the correct place.

I was given an old bfb3000 to play with as my Partner knows how I enjoy bringing dead things back to usefulness. Its old Control board is gone, replaced by ramps 1.4. It also has a v6 clone hotend. Ive been chewing my novice way through the firmware and have got pretty close to happy with it all apart from 1 issue. When I home it ,it never returns to the home position and the nozzles is always touching the bed.

The hotend is also my z probe , my probe offset M581 is 0,0,0 and I use z_Safe_homing. My homing calibration points are x0, y-30 , z2 but the head always stays at x120 y120 z0, I have told it that max x is 280 max y is 250 and to home to x0 y0 z2. I most likley doing somthing wrong and any help would be massivley appreciatet. I can never ever get good first layer out of it but it can print a fantastic spiral vase. Lol

  • Enable this option for a probe connected to the Z-MIN pin.

  • The probe replaces the Z-MIN endstop and is used for Z homing.

  • (Automatically enables USE_PROBE_FOR_Z_HOMING.)



// Force the use of the probe for Z-axis homing


// Specify here all the endstop connectors that are connected to any endstop or probe.

// Almost all printers will be using one per axis. Probes will use one or more of the

// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.




// Mechanical endstop with COM to ground and NC to Signal uses “false” here (most common setup).

#define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.

#define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.

#define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.

#define NOZZLE_TO_PROBE_OFFSET { 0, 0, 0 }

// Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions.

#define X_MIN_POS 0

#define Y_MIN_POS 0

#define Z_MIN_POS 2

#define X_MAX_POS 280

#define Y_MAX_POS 250

#define Z_MAX_POS 190

// Manually set the home position. Leave these undefined for automatic settings.

// For DELTA this is the top-center of the Cartesian print volume.


#define MANUAL_Y_HOME_POS -30


  • Use “Z Safe Homing” to avoid homing with a Z probe outside the bed area.
    • Moves the Z probe (or nozzle) to a defined XY point before Z homing.
    • Allows Z homing only when XY positions are known and trusted.
    • If stepper drivers sleep, XY homing may be required again before Z homing.
      #define Z_SAFE_HOMING

#define Z_SAFE_HOMING_X_POINT 120 // X point for Z homing
#define Z_SAFE_HOMING_Y_POINT 120 // Y point for Z homing

// Homing speeds (linear=mm/min, rotational=°/min)
#define HOMING_FEEDRATE_MM_M { (4060), (4060), (6*60) }

// Validate that endstops are triggered on homing moves

I hope this can shed some light as I am lost.

All th e best to you all


I know nothing about these printers, or that type of mainboard.

Your best bet might be the Marlin discord chat: Marlin Firmware