---
tag: m0114
title: Get Current Position
brief: Report the current tool position to the host.
author: thinkyhead

group: hosts

codes: [ M114 ]
related: [ M154 ]

notes:
- Hosts should respond to the output of `M114` by updating their current position.
- G-code [`M154`](/docs/gcode/M154.html) can be used to to auto-report positions to the host, reducing serial traffic.

parameters:

- tag: D
  optional: true
  requires: M114_DETAIL
  description: Report detailed information
  values:
  - type: flag

- tag: E
  optional: true
  requires: M114_DETAIL
  description: Report E stepper position
  values:
  - type: flag

- tag: R
  optional: true
  requires: M114_REALTIME
  description: Report real position information
  values:
  - type: flag

example:

- pre: Get the _projected_ current position
  code: |
    > M114
    X:0.00 Y:127.00 Z:145.00 E:0.00 Count X: 0 Y:10160 Z:116000
    ok

---

Get the "current position" of the active tool. Stepper values are included.

If `M114_LEGACY` is enabled the planner will be synchronized before reporting so that the reported position is not be ahead of the actual planner position.

Normally `M114` reports the "projected position" which is the last position Marlin was instructed to move to.

With the `M114_REALTIME` option you can send `R` to get the "real" current position at the moment that the request was processed. This position comes directly from the steppers in the midst of motion, so when the printer is moving you can consider this the "recent position."

For debugging it can be useful to enable `M114_DETAIL` which adds `D` and `E` parameters to get extra details.
