I'm using a Prusa clone with Ramps 1.4, Marlin 1.1.5 and an inductive proximity sensor Z-probe. Due to the design of the printer, the X and Y end-stops and the Z-probe are not exactly aligned with the heated bed, so I must use Marlin's Home Offset feature to align the coordinate space to the print area, using the G-code command
M206 X-18.5 Y-2.5 Z1.1.
I am now attempting to use Marlin's Unified Bed Leveling feature to compensate for a slight but significant curvature of the bed.
Unfortunately, it appears that the Mesh Validation Pattern command (G26) is not taking the Home Offset into account when printing a test pattern. The printed pattern hangs off the left side of the bed and the center printed circle is clearly misaligned with the center of the print bed by the bed offset amount.
Does this suggest that my firmware is misconfigured? Or is there an alternative method for aligning the mesh validation test pattern with an offset print bed?
A Marlin developer confirmed that bed-leveling and probing are now performed entirely in the machine coordinate space.
To clarify further, if one has a non-zero home offset enabled, the following commands refer to different physical locations despite the supplied parameters being the same:
M206 X10 Y10 ; Set a home offset in X and Y G30 X100 Y100 ; Probe (100, 100) in machine space G0 X100 Y100 ; Move to (100, 100) in print space, ie. (90, 90) in machine coordinate space
I was able to correctly align the bed-leveling grid by altering header files in the source code. I defined the XY offset using two new macros
Configuraion.h and altered the following lines in
#define X_CENTER ((X_BED_SIZE) / 2) + BED_OFFSET_X #define Y_CENTER ((Y_BED_SIZE) / 2) + BED_OFFSET_Y
The mesh is now physically aligned with the bed and I have not observed any adverse effects.