All Klipper G-Code and extended commands โ standard motion codes, temperature, Klipper-specific macros, pressure advance, input shaper, and SAVE_CONFIG. Updated May 2026.
Quick Answer: Klipper supports all standard G-Code commands (G0, G1, G28, M104, M109, etc.) but adds powerful extensions: GCODE_MACRO for custom commands, SET_PRESSURE_ADVANCE for elasticity compensation, RESONANCE_TESTER for input shaping, and SAVE_CONFIG instead of M500 for persistent settings.
| Feature | Klipper | Marlin |
|---|---|---|
| Processing | Raspberry Pi (host) + MCU motion | Arduino/32-bit MCU only |
| Config file | printer.cfg (text) | Configuration.h (compile) |
| EEPROM save | SAVE_CONFIG | M500 |
| Pressure advance | Built-in, per-extruder | Linear advance (M900) |
| Input shaper | Built-in with ADXL345 | Not standard |
| Macros | Python-based GCODE_MACRO | G-Code only M600/scripts |
| Max speed | 500+ mm/s (motion handled on host) | Typically 200โ300 mm/s |
| Update method | Git pull + restart | Flash firmware |
Klipper supports all RS-274 standard commands. Key ones:
DUMP_CONFIG instead.SAVE_CONFIG instead.SET_PRESSURE_ADVANCE ADVANCE=0.05 ; Set pressure advance value
SET_PRESSURE_ADVANCE ADVANCE=0.05 SMOOTH_TIME=0.04 ; With smooth time
Pressure advance compensates for filament elasticity. Calibrate by printing a PA tower or line and measuring corner sharpness. Typical values: 0.02โ0.08 for direct drive, 0.3โ0.8 for Bowden.
MEASURE_AXES_NOISE ; Check accelerometer noise floor
SHAPER_CALIBRATE ; Auto-calibrate resonances (ADXL345 required)
SET_INPUT_SHAPER SHAPER_FREQ_X=50 SHAPER_FREQ_Y=48 ; Manual set
SAVE_CONFIG ; Save to printer.cfg
SAVE_CONFIG ; Write all pending calibration values to printer.cfg
; Klipper restarts after this command
[gcode_macro START_PRINT]
gcode:
G28
BED_MESH_CALIBRATE
G1 Z5 F3000
M109 S{printer.extruder.target}
G92 E0
BED_MESH_CALIBRATE ; Probe bed and build mesh
BED_MESH_PROFILE SAVE=default ; Save mesh profile
BED_MESH_PROFILE LOAD=default ; Load saved mesh
PID_CALIBRATE HEATER=extruder TARGET=210 ; Auto-tune hotend
PID_CALIBRATE HEATER=heater_bed TARGET=60 ; Auto-tune bed
SAVE_CONFIG ; Save results
STEPPER_BUZZ STEPPER=stepper_x ; Test individual stepper
SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 ; Disable extruder motor
G28 ; Home all axes
BED_MESH_PROFILE LOAD=default ; Load saved bed mesh
G1 Z5 F3000 ; Safe height
M190 S60 ; Wait for bed temp
M109 S215 ; Wait for hotend temp
G92 E0 ; Reset extruder
G1 X5 Y10 F3000 ; Move to purge position
G1 X70 E8 F900 ; Purge line
G92 E0 ; Reset after purge