What M73 means

M73 reports an estimate for a printer display or job interface; it does not measure how far the mechanism has physically progressed. A slicer can insert changing P and R values through the file. Those values describe the slicer's model of the job and may drift when heating, pauses, speed overrides, recovery, or firmware planning changes real elapsed time.

In Marlin, manual progress support is a configured feature: P is completion percentage, R is remaining minutes, and newer builds can use C for minutes until an interaction. RepRapFirmware uses R for slicer-reported time remaining, ignores P, and supports C from RRF 3.6.0. Klipper's documented built-in command list does not include M73; a printer configuration can still add that name as a custom gcode_macro, whose behavior is local to that machine.

Syntax and parameters

M73 [P<percent>] [R<minutes>] [C<minutes>]
M73
P

Slicer-estimated completion percentage. Marlin accepts 0–100; RepRapFirmware documents the field but does not use it.

R

Slicer-estimated remaining time in minutes on supporting firmware. It is not a measurement of real time left.

C

Minutes until the next expected user interaction on supporting versions: Marlin added the field in 2.1.2, and RepRapFirmware supports it from 3.6.0.

No parameters

On a Marlin build with M73_REPORT enabled, request the currently stored values; this form is not portable across dialects.

Practical examples

Report a slicer estimate

M73 P25 R43

For supporting Marlin configurations, the file says it is 25% complete with 43 minutes remaining. These numbers are supplied estimates, not sensor measurements.

Request stored values in Marlin

M73

This no-parameter report form requires Marlin's M73_REPORT option and must not be assumed on other firmware.

Firmware context

SystemStatusWhat changes
MarlinCommonCommon when SET_PROGRESS_MANUALLY (LCD_SET_PROGRESS_MANUALLY on older builds) is enabled. P sets 0–100% progress, R support was added in Marlin 2.0.0, C in 2.1.2, and the no-parameter report needs M73_REPORT.
KlipperCheck dialectM73 is not listed as a built-in command in the official command reference. A printer may define an M73 gcode_macro, so the actual parameters and result must be checked in that configuration.
RepRapFirmwareCheck dialectUses R as slicer-reported remaining minutes, does not use P, and accepts C for time to the next interaction in RRF 3.6.0 and later.
CNC controllersCheck dialectM73 is not a portable CNC progress command. The same number may be unavailable or controller-specific, so the target controller manual is authoritative.

What this viewer can show

Not simulated

The source viewer shows M73, but the current analyzer does not use P, R, or C for the displayed progress or time estimate and does not emulate a printer LCD. Motion and extrusion statistics continue to come from explicit file evidence and the viewer's own calculations.

Common mistakes

  • Do not treat P or R as measured machine progress; they are values written by the slicer or another producer.
  • Do not send M73 solely because a slicer profile names a familiar G-code flavor; confirm the printer firmware, version, configuration, or macro.
  • A remaining-time value can become inaccurate after heating, pauses, speed overrides, recovery, or other runtime events.

Primary sources

This page is an original explanation, reviewed against the firmware documentation below. Always confirm commands against the firmware and configuration on the machine that will execute them.