Skip to content

How to set the home offsets

Miguel Risco-Castillo edited this page Jun 21, 2023 · 6 revisions

The current Professional firmware version has NO_WORKSPACE_OFFSETS enabled by default, so the Home Offsets menu and the G-code M206 have been disabled.

From marlin documentation:

"Use M206 to apply a persistent offset to the native home position and coordinate space. This effectively shifts the coordinate space in the negative direction."

Some tutorials for custom fan ducts advise changing the home offsets to restore the nozzle (0,0) position over the bed, effectively shifting the work area to ensure that the limits of XY axes movements are over the bed.

Home offsets work well when the physical settings are correctly applied allowing to shift the work area and leave the probing area without changes using some translation functions between the probing area and work area. But introduces some discrepancies between the probe positions, work area positions and axes indicators in the display.

Changing Home offsets is an easy way to fix the home position but it is not the optimum and also it carries some problems with the probing area and when the printing volume is customized, but maybe that method is preferred because not all firmware allows change the physical settings without recompile it, indeed, home offsets can reduce the printing area when it is misused.

The correct way to get the maximum printable area and a correct probing area is setting the X, Y, Z minimum and maximum axes positions (X_MIN_POS, X_MAX_POS, Y_MIN_POS, Y_MAX_POS, Z_MIN_POS, Z_MAX_POS). The professional firmware allows the user to set those values through the Advanced / Physical settings menu.

If the tutorial indicates that you must change the home offsets, set those values to XY Min position and change the Max position according to them:

Assume a printer with a total XY area of 230 mm x 230 mm and with these original settings:

X_MIN_POS = 0;
X_MAX_POS = 230;
Y_MIN_POS = 0;
Y_MAX_POS = 230;

If the tutorial indicates the X home offset is -30 and Y home offset is -20, So the correct way to set the axes limits is:

X_MIN_POS = -30;
X_MAX_POS = 200;  // (230 - 30)
Y_MIN_POS = -20;
Y_MAX_POS = 210;  // (230 - 20)