---
tag: m0428
title: Home Offsets Here
brief: Set home offsets based on current position
author: thinkyhead

group: motion
requires: HAS_HOME_OFFSET

codes: [ M428 ]
related: [ M92, M206 ]

notes:
- Only the Z offset can be altered on `DELTA`.
- This G-code can be disabled with `NO_WORKSPACE_OFFSETS` to optimize movement.
- Changing the home offsets will not invalidate bed leveling or other saved data.
- If `EEPROM_SETTINGS` is enabled, the home offsets are saved with [`M500`](/docs/gcode/M500.html), loaded with [`M501`](/docs/gcode/M501.html), and reset with [`M502`](/docs/gcode/M502.html).
- Use [`M206`](/docs/gcode/M206.html) to set the home offsets directly.

examples:

- pre: What was X=10 becomes X=0. So the X home offset becomes -10.
  code:
  - G1 X10
  - M428

---

Use `M428` to set a persistent offset to the native home position and coordinate space by assigning the current position as the native home position. See the example below.

- The current position must be within 2cm from 0 or an endstop.
- The current position is set to the native home position.
- Any previous position shift from [`G92`](/docs/gcode/G092.html) is cleared.
- The home offset is persistent — added to the current position until changed.
- Some uses include fine adjustment of Z position (without moving endstops) and shifting the coordinate space to print on a different part of the bed.
