Welcome! Log In Create A New Profile

Advanced

SKEW_CORRECTION checks for coordinates, even if SW-endstops are disabled

Posted by uwedamm 
SKEW_CORRECTION checks for coordinates, even if SW-endstops are disabled
November 01, 2021 03:55AM
I am using MARLIN FW with a self-build mill.
When trying to correct the geometry by SW, as per SKEW_CORRECTION, I realized, that the
coordinates before/after SKEW_CORRECTION must be within the bed (In planner.h, skew() checks for COORDINATE_OKAY(), which
is active, if any of the HW-endstops is available).

#if ANY(USE_XMIN_PLUG, USE_YMIN_PLUG, USE_ZMIN_PLUG, USE_XMAX_PLUG, USE_YMAX_PLUG, USE_ZMAX_PLUG)
  #define HAS_ENDSTOPS 1
  #define COORDINATE_OKAY(N,L,H) WITHIN(N,L,H)
#else
  #define COORDINATE_OKAY(N,L,H) true
#endif

What is the rationale for this check in the case of SKEW_CORRECTION?
I would expect, that this check should only be applied, if SW_ENDSTOPS are available and enabled. How can I find out the connection to HW endstops:

Example g-code to reproduce the behavior:
G92 X0 Y0 Z0
M852 I0.5
G1 Y100

This code should control the mill to drive to -50,100,0 coordinate, but runs to 0,100,0 (as without SKEW_CORRECTION).
Re: SKEW_CORRECTION checks for coordinates, even if SW-endstops are disabled
November 12, 2021 02:49AM
Seems, that I am the only user of marlin for mills (who wants to calibrate his mill by SW)...
But if this is not true, here is my workaround (I know, this is trivial, but for me it took some time to realize that):
Within Configuration.h I configured:
// The size of the print bed
#define X_BED_SIZE 20000
#define Y_BED_SIZE 20000

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -10000
#define Y_MIN_POS -10000
#define Z_MIN_POS -10000
#define X_MAX_POS 10000
#define Y_MAX_POS 10000
#define Z_MAX_POS 10000
Sorry, only registered users may post in this forum.

Click here to login