---
tag: m0217
title: Filament swap parameters
brief: Set length and speed for filament swapping
author: thinkyhead

group: calibration
since: 2.0.0
requires: EXTRUDERS > 1
eeprom: true

codes: [ M217 ]

notes: These values are stored in EEPROM.

parameters:

- tag: Q
  type: flag
  optional: true
  description: Prime active tool using TOOLCHANGE_FILAMENT_SWAP settings

- tag: S
  optional: true
  description: Swap length
  values:
  - tag: linear
    type: float

- tag: B
  optional: true
  description: Extra resume
  values:
  - tag: linear
    type: float

- tag: E
  optional: true
  description: Extra Prime Length
  values:
  - tag: linear
    type: float

- tag: P
  optional: true
  description: Prime feedrate
  values:
  - tag: feedrate
    type: int

- tag: R
  optional: true
  description: Retract feedrate
  values:
  - tag: feedrate
    type: int

- tag: U
  optional: true
  description: Unretract feedrate
  values:
  - tag: linear
    type: int

- tag: F
  optional: true
  description: Fan speed (0-255)
  values:
  - tag: linear
    type: int

- tag: G
  optional: true
  description: Fan Time (seconds)
  values:
  - tag: linear
    type: int

- tag: A
  optional: true
  description: Migration Auto Mode. Requires `TOOLCHANGE_MIGRATION_FEATURE`.
  values:
  - tag: linear
    type: int

- tag: L
  optional: true
  description: Last Migration. Requires `TOOLCHANGE_MIGRATION_FEATURE`.
  values:
  - tag: linear
    type: int

- tag: W
  optional: true
  description: Enable Park Feature. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: int

- tag: X
  optional: true
  description: Park X position. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: Y
  optional: true
  description: Park Y position. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: V
  optional: true
  description: Enable First Prime on uninitialized Nozzles. Requires `TOOLCHANGE_FS_PRIME_FIRST_USED`.
  values:
  - tag: linear
    type: int

- tag: Z
  optional: true
  description: Z Raise.
  values:
  - tag: feedrate
    type: int

- tag: I
  optional: true
  description: Park position for axis 4. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: J
  optional: true
  description: Park position for axis 5. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: K
  optional: true
  description: Park position for axis 6. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: C
  optional: true
  description: Park position for axis 7. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: H
  optional: true
  description: Park position for axis 8. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

- tag: O
  optional: true
  description: Park position for axis 9. Requires `TOOLCHANGE_PARK` - was `SINGLENOZZLE_SWAP_PARK`.
  values:
  - tag: linear
    type: float

---

When changing tools on some setups, one filament may be retracted before the other is primed. This command sets the length and feedrates used for the filament swap retract and prime.

If no parameters are given this command reports the current filament swap parameters.
