---
tag: m0423
title: X Twist Compensation
brief: Modify, reset, and report X-Axis Twist Compensation data
author: thinkyhead

group: calibration
since: 2.0.9.4
requires: X_AXIS_TWIST_COMPENSATION

codes: [ M423 ]
related: [ G29 ]

parameters:

- tag: R
  optional: true
  description: Reset the Twist Compensation array to the configured default values.
  values:
  - type: flag

- tag: A
  optional: true
  description: Set the X-Axis Twist Compensation starting X position.
  values:
  - tag: linear
    type: float
    
- tag: E
  optional: true
  description: Set the X-Axis Twist Compensation ending X position.
  values:
  - tag: linear
    type: float
    
- tag: I
  optional: true
  description: Set the X-Axis Twist Compensation X-spacing.
  values:
  - tag: linear
    type: float

- tag: X
  optional: true
  description: Zero-based index into the Twist Compensation array. Requires a `Z` value.
  values:
  - tag: index
    type: int

- tag: Z
  optional: true
  description: A Z-offset value to set in the Twist Compensation array. Requires an `X` index.
  values:
  - tag: linear
    type: float

examples:
- pre: Report the current X-twist data to the host console.
  code: M423
- pre: Reset X-twist data to the configured defaults.
  code: M423 R
- pre: Set the 5th value in the Twist Compensation array to -0.03.
  code: M423 X4 Z-0.03
- pre: Set the X-start position to 0 and the X-spacing distance to 50.
  code: M423 X0 I50

---

Use `M423` to reset, modify, or report X-Twist Compensation data.

X-Twist Compensation is applied to the mesh on [`G29`](/docs/gcode/G029.html) to correct for a twisted X gantry. Meaningful X-Twist Compensation data is generated using a guided procedure in the LCD menu that compares measurements taken by the bed probe to readings taken manually at the nozzle. Since manual measurements are prone to inaccuracy, a metal feeler gauge is recommended over a paper test. If the first layer is still imperfect, `M423` can then be used to correct for small errors.
