What G10 / G11 means
Firmware retraction stores retraction length, speed, extra recovery and optional Z lift in the printer rather than repeating those values as E moves throughout every file. G10 starts the configured retract; G11 reverses it before printing resumes. Marlin uses M207 and M208 for the underlying settings, while Klipper requires a firmware_retraction configuration section.
G10 is especially dialect-sensitive. RepRapFirmware treats parameterless G10 as retract but uses forms such as G10 P... for tool temperatures or offsets. LinuxCNC uses G10 to set coordinate-system or tool-table data. A parser must inspect parameters and target dialect instead of labelling every G10 as filament retraction.
Syntax and parameters
G10G10 S1 ; Marlin swap retractG11No parameterNormal firmware retract or recover on compatible 3D-printer firmware.
S1Marlin swap-retract request for a multi-extruder tool change, when enabled.
P / L / axesMay change G10 into a tool or coordinate-setting command in other dialects.
Practical examples
Retract around a travel
G10
G0 X120 Y80 F9000
G11Uses firmware-stored values instead of explicit negative and positive E moves.
Configure Marlin, then retract
M207 S0.8 F2400 Z0.2
M208 S0.05 F1800
G10Sets an illustrative retract and recover profile before calling it. The values are not universal recommendations.
Firmware context
| System | Status | What changes |
|---|---|---|
| Marlin | Common | Available when FWRETRACT is enabled; M207/M208 define retract and recover behavior. |
| Klipper | Check dialect | G10/G11 are available only when the firmware_retraction section is configured. |
| RepRapFirmware | Check dialect | Parameterless G10 retracts, while parameterized G10 can set tools, temperatures or offsets. |
| CNC controllers | Check dialect | G10 commonly changes coordinate or tool data; G11 is not a matching filament-recovery command. |
What this viewer can show
The viewer marks G10/G11 retract and prime events. It uses M207/M208 or slicer metadata when a length is available; otherwise the amount is explicitly shown as unavailable rather than guessed.
Common mistakes
- Do not send a printer-style G10 to a CNC controller without checking its meaning.
- A bare G10 file does not reveal retract length unless the setting appears in the file or slicer metadata.
- Repeated G10 commands may be ignored until a matching G11 occurs, depending on firmware state.
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.