why are you trying to move past 0, that should be the edge of your printable area
take a picture of your machine, where are you endstops in relation to 0,0
you have very big offsets in the homing position ie
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -40
#define Y_MIN_POS -48
If you really must do this...
see
/**
* Software Endstops
*
* - Prevent moves outside the set machine bounds.
* - Individual axes can be disabled, if desired.
* - X and Y only apply to Cartesian robots.
* - Use 'M211' to set software endstops on/off or report current state
*/
// Min software endstops curtail movement below minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#endif
either comment out #define MIN_SOFTWARE_ENDSTOPS or the individual MIN_SOFTWARE_ENDSTOP
take a picture of your machine, where are you endstops in relation to 0,0
you have very big offsets in the homing position ie
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -40
#define Y_MIN_POS -48
If you really must do this...
see
/**
* Software Endstops
*
* - Prevent moves outside the set machine bounds.
* - Individual axes can be disabled, if desired.
* - X and Y only apply to Cartesian robots.
* - Use 'M211' to set software endstops on/off or report current state
*/
// Min software endstops curtail movement below minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#endif
either comment out #define MIN_SOFTWARE_ENDSTOPS or the individual MIN_SOFTWARE_ENDSTOP