---
tag: m0290
title: Babystep
brief: Babystep one or more axes
author: thinkyhead

group: calibration
since: 1.1.7
requires: BABYSTEPPING

codes: [ M290 ]

notes: Requires `BABYSTEP_XY` to do babystepping on the XY axes.

parameters:

- tag: X
  optional: true
  description: A distance on the X axis
  values:
  - tag: pos
    type: float

- tag: Y
  optional: true
  description: A distance on the Y axis
  values:
  - tag: pos
    type: float

- tag: Z
  optional: true
  description: A distance on the Z axis
  values:
  - tag: pos
    type: float

- tag: S
  optional: true
  description: Alias for Z
  values:
  - tag: pos
    type: float

- tag: P
  optional: true
  requires: BABYSTEP_ZPROBE_OFFSET
  description: Use `P0` to leave the Probe Z Offset unaffected.
  values:
  - type: bool

example:
- pre: Babystep the Z axis by 0.25mm (in mm units mode)
  code: M290 Z0.25 ; move up 0.25mm on the Z axis

---

Apply babysteps to one or more axes using current units. Offsets applied with `M290` aren't added to the current coordinates, but are intended for making small adjustments, especially in the Z axis, at the start of a print.

Note that when `BABYSTEP_ZPROBE_OFFSET` is enabled, `M290` also modifies the Probe Z Offset (with no immediate effects). The new Z offset applies to successive probing operations, and can be saved with [`M500`](/docs/gcode/M500.html). This behavior is means to coincide with the LCD Menu replacing "Z Babystepping" with "Babystep Z Probe Offset." To avoid this side-effect, use `M290 P0` or leave `BABYSTEP_ZPROBE_OFFSET` disabled.
