---
tag: m0209
title: Set Auto Retract
brief: Enable / disable auto-retraction.
author: thinkyhead

requires: FWRETRACT
group: motion

codes: [ M209 ]

notes:
  - Requires `FWRETRACT`.
  - Most slicers today can generate [`G10`](/docs/gcode/G010.html)/[`G11`](/docs/gcode/G011.html). But this option is useful for older G-code.
  - Though not currently very popular, both volumetric extrusion and firmware-based retraction (and/or [`M209`](/docs/gcode/M209.html)) make G-code more immune to changes from one machine to another, and permit changing the hardware without needing to re-slice.
  - See related codes [`G10`](/docs/gcode/G010.html), [`G11`](/docs/gcode/G010.html), [`M207`](/docs/gcode/M207.html), and [`M208`](/docs/gcode/M208.html).

parameters:
  -
    tag: S
    optional: false
    description: Set Auto-Retract on/off
    values:
      -
        tag: flag
        type: bool

examples:

---

Enable or disable automatic retraction. This option is meant to help slicers that don't support [`G10`](/docs/gcode/G010.html)/[`G11`](/docs/gcode/G011.html). But it can be used to override retraction in any G-code.

When auto-retract is enabled, all reversed E-only moves are treated as retraction. (Recover moves are also automatically overridden.) When disabled, E retraction derives from G-code.
