3D Printing (General)

Cura settings for Klipper: the changes that actually matter

Cura works fine with Klipper once you fix the start gcode, hand the acceleration job back to Klipper, and let pressure advance do the work retraction used to do.

Published 2026-06-02

Cura was built around Marlin, so out of the box it sends a few things to your Klipper printer that either get ignored or actively make prints worse. The good news is you only need to change a handful of settings. Once those are sorted, Cura prints just as well as Orca or PrusaSlicer on a Klipper machine.

Here is what to change, why, and what to leave alone.

What changes when you move from Marlin to Klipper

Klipper does the motion planning on a Raspberry Pi (or similar host), not on the printer's mainboard. That means a few things the slicer used to control are now better handled in printer.cfg:

  • Acceleration and jerk limits.
  • Pressure advance (Klipper's version of linear advance).
  • Input shaping.
  • Bed mesh and Z offset.

Your slicer should hand those jobs over. If you leave Cura setting acceleration on every move, you fight Klipper's own limits and your tuned values stop mattering.

Fixing the start gcode

Cura's default start gcode assumes Marlin. Most of it works, but a few lines need swapping.

Replace the start gcode block under Printer Settings, Extruder 1, with something like this:

``` M140 S{material_bed_temperature_layer_0} M104 S{material_print_temperature_layer_0} G28 BED_MESH_CALIBRATE M190 S{material_bed_temperature_layer_0} M109 S{material_print_temperature_layer_0} G1 Z5 F3000 G92 E0 G1 X5 Y20 Z0.3 F5000 G1 X5 Y200 E15 F1500 G1 X5.4 Y200 Z0.3 F5000 G1 X5.4 Y20 E30 F1500 G92 E0 ```

If you already have a PRINT_START macro defined in Klipper (most Klipper installs do — Mainsail and Fluidd nudge you towards one), the cleaner version is:

``` PRINT_START BED={material_bed_temperature_layer_0} EXTRUDER={material_print_temperature_layer_0} ```

A single macro call. Everything else lives in printer.cfg where you can edit it without opening Cura.

For the end gcode, this is enough:

``` M104 S0 M140 S0 G91 G1 E-2 F2700 G1 X5 Y5 Z10 F3000 G90 G28 X Y M84 ```

Turn off Cura's acceleration control

In Cura's print settings, find Enable Acceleration Control and switch it off. Same for Enable Jerk Control.

If you leave those on, every move in the gcode gets an M204 command setting the acceleration. Klipper will obey it, which means your tuned max_accel in printer.cfg is overridden on every line. You did the input shaping calibration for a reason — let it work.

If you must set an acceleration ceiling per print (say you swap to a softer filament and want to slow down infill), do it with a SET_VELOCITY_LIMIT in your start gcode rather than letting Cura sprinkle M204 everywhere.

Pressure advance: stop fighting retraction

Pressure advance is the single biggest reason to use Klipper. Tune it once per filament with the standard TUNING_TOWER test, then put the value in your slicer or your PRINT_START.

In Cura, add this to your start gcode so it picks up the value per profile:

``` SET_PRESSURE_ADVANCE ADVANCE=0.04 ```

Replace 0.04 with whatever your tower run gave you. Typical values are 0.02 to 0.05 for direct drive, 0.04 to 0.08 for Bowden, but always tune.

Once pressure advance is dialled in, your retraction needs to come down. A lot of stringing problems people fight in Cura on a Klipper printer disappear when you drop retraction from 6 mm Bowden / 1 mm direct down to:

  • Direct drive: 0.4 to 0.8 mm.
  • Bowden: 2 to 3 mm.

Retraction speed 25 to 35 mm/s is fine for most setups.

Acceleration and speed in Cura

Leave Cura's speed settings sensible — print speed 100 to 150 mm/s for most jobs, outer wall slower (50 to 80 mm/s) for surface quality. Travel can go up to 300 to 500 mm/s on Klipper if your printer can move that fast without skipping.

Do not crank Print Acceleration in Cura. With Acceleration Control turned off, Cura will not send acceleration commands anyway, so the field does nothing. Set your real limit in printer.cfg:

``` [printer] max_accel: 5000 ```

If you have run input shaping calibration and your printer is mechanically tight, 5000 to 10000 mm/s squared is realistic. If you have not, stay around 2000 to 3000.

Input shaping is a printer-side job

A common confusion: people look for input shaping in Cura. It is not there. Klipper handles it via:

``` [input_shaper] shaper_freq_x: 45.6 shaper_type_x: mzv shaper_freq_y: 38.2 shaper_type_y: mzv ```

Those numbers come from running SHAPER_CALIBRATE with an accelerometer. Cura cannot do this for you.

Bed mesh and Z offset

Cura has a section called Build Plate Adhesion. Leave Z Offset there alone — set Z offset in Klipper with SAVE_VARIABLE or Z_OFFSET_APPLY_PROBE after a calibration. If you also offset in Cura you double-apply and crash the nozzle.

For bed mesh, call BED_MESH_CALIBRATE (or BED_MESH_PROFILE LOAD=default) in your PRINT_START macro, not via Cura.

Small Cura settings that matter

A few that catch people out:

  • Combing Mode: Set to All or Within Infill. With proper pressure advance the printhead does not need to retract over open air.
  • Coasting: Turn off. Pressure advance does the same job better.
  • Linear Advance Factor: Ignore. That is Marlin's name for pressure advance and it does nothing on Klipper.
  • Initial Layer Print Speed: 20 to 25 mm/s. Klipper or not, slow first layers stick better.
  • Wipe Nozzle: Off. The purge line in your start gcode handles it.

What about Slicer to Klipper gcode flavour

In Cura's Printer Settings, set G-code Flavour to Marlin. Yes, Marlin, not RepRap or anything else. Klipper interprets Marlin-style gcode by design, and changing the flavour can break things like M109 waiting for temperature.

When to mail it in

If you have worked through all of this and the prints still ring, string or skip layers, the problem is usually not the slicer. Loose belts, a worn nozzle, a sticking extruder gear or a flexing frame all look like slicer problems but live in the hardware. We service Klipper printers — Voron, Creality K1 / K2, Sovol, Sidewinder and other community machines — by mail-in across the UK. Drop us a line at /contact.html describing what you are seeing and we will give you an honest read on whether it needs the workbench or just another tuning pass.