Skip to content

Slicers & Firmware

The slicer turns a model into G-code; the firmware turns G-code into motion and heat. This page compares the main slicers, explains Klipper versus stock firmware, and gives a full calibration sequence and a way to keep profiles under control. For what the individual settings do, see Print Settings.

Slicer comparison

Slicer Licence Lineage Printers Calibration tools Networking
PrusaSlicer AGPL-3.0 Fork of Slic3r Prusa (FDM + resin) plus many bundled vendor profiles No calibration menu; Prusa printers run first-layer/self-tests on the machine, the rest is done with test models PrusaConnect, PrusaLink, OctoPrint and other "physical printer" hosts
Bambu Studio AGPL-3.0 (optional network plugin is closed-source) Fork of PrusaSlicer Bambu Lab first; profiles for some other brands Calibration menu: flow dynamics (pressure advance, auto on some models), flow rate, max volumetric speed and more Bambu cloud and LAN via the network plugin; SD card without it
OrcaSlicer AGPL-3.0 (optional Bambu network plugin) Fork of Bambu Studio, with features from PrusaSlicer, SuperSlicer and Cura Very wide: Bambu, Prusa, Creality, Voron, RatRig, Sovol and more The most complete set: temperature, max volumetric speed, pressure advance, flow ratio, retraction, cornering, input shaping, VFA, tolerance Klipper (Moonraker), PrusaLink, OctoPrint, Bambu (via plugin)
UltiMaker Cura LGPL-3.0 Independent (CuraEngine) UltiMaker plus a large community profile library Few built in; community plugins via the Marketplace UltiMaker Digital Factory; others via Marketplace plugins
graph LR
  A[Slic3r] --> B[PrusaSlicer]
  B --> C[SuperSlicer]
  B --> D[Bambu Studio]
  D --> E[OrcaSlicer]
  B -.ideas.-> E
  C -.ideas.-> E

Choosing

  • Own a Bambu? Bambu Studio (simplest) or OrcaSlicer (more tuning).
  • Own a Prusa? PrusaSlicer — profiles are tuned and maintained by Prusa.
  • Klipper or mixed fleet? OrcaSlicer — broadest printer list and built-in calibration prints.
  • UltiMaker / education fleet? Cura.

They're more alike than different

The three Slic3r-family slicers share most setting names, the .3mf project format and much of the slicing code, so skills transfer. Profiles mostly import between them, but always check temperatures and speeds after importing.

Slicer time estimates depend on the profile

A print-time estimate is only as good as the motion limits the slicer assumes. Acceleration, jerk/junction deviation and speed caps in the profile, the firmware's own limits, and whether the slicer's motion model matches the firmware (Klipper's planner differs from Marlin's) all change the answer — community reports of 10–30 % error are common. A custom or "quality" profile with slower outer walls, lower accelerations or more walls can take much longer than the stock-profile estimate. Compare estimates only within the same profile and printer, and if you need accuracy on Klipper, a tool such as klipper_estimator can rewrite the times using Klipper's own kinematics.

Firmware: stock vs Klipper

Firmware Where you'll find it Runs on Notes
Marlin Most older/budget bed-slingers (Ender-3 era) The printer's mainboard Open source. Linear Advance (M900 K…) for pressure; ZV input shaping since 2.1.2 (M593), more shapers via Fixed-Time Motion. Config changes usually mean recompiling and reflashing.
Prusa firmware Prusa printers Mainboard Open source. Current models (MK4/S, MK3.5/3.9, MINI, XL, CORE One) have input shaper and pressure advance; they need matching PrusaSlicer profiles.
Bambu firmware Bambu printers Mainboard Closed source. Automatic calibration (bed level, vibration compensation, and on X1/A1/H2D auto flow dynamics, i.e. pressure advance; P1 is manual).
Klipper Voron/RatRig and many kits; vendor forks on Creality K1/K2, Sovol SV08 and others Host computer (e.g. Raspberry Pi) + printer MCU(s) Open source. Plain-text config, no reflashing for setting changes. Input shaping, smooth pressure advance, macros, multiple MCUs.

How Klipper works

  • Host + MCU. The host (a Raspberry Pi or the printer's built-in Linux board) does the kinematics and schedules every step; the microcontroller just executes them on time. More CPU = more complex motion maths without slowing down.
  • printer.cfg. All settings live in a text file; edit, RESTART, done. Calibration results are written back with SAVE_CONFIG.
  • Input shaping ([input_shaper]) cancels frame resonance to reduce ringing, allowing higher acceleration. Tune with a ringing tower or an accelerometer (ADXL345 and similar).
  • Pressure advance compensates for nozzle pressure lag for sharper corners and less ooze — tune per filament.
  • Macros ([gcode_macro]) define new G-code commands with conditional logic: PRINT_START, M600 filament change (built on PAUSE/RESUME), purge lines, heat-soak routines.
  • Front ends. Moonraker is the API server that sits beside Klipper; Mainsail and Fluidd are browser UIs built on it (OctoPrint also works).

Vendor Klipper forks

Printers that "run Klipper" out of the box (e.g. Creality K1/K2, Sovol SV08) usually ship a vendor fork: older Klipper, custom macros and sometimes a locked-down UI. Root access and mainline-Klipper conversions exist (Creality added an official root option; community projects move the SV08 to mainline), but they can void the warranty and break vendor features. Read the vendor release notes and the community project's README before flashing.

Calibration sequence

This extends the short list in Print Settings → Calibration order. Do the machine steps once (and after hardware changes); repeat the filament steps for each new filament brand/type.

# Step Level Why / how
0 Mechanical check Machine Belts tensioned, eccentric nuts/rods snug, frame square. No calibration fixes loose hardware.
1 PID tune hotend and bed Machine Stable temperatures. Klipper: PID_CALIBRATE HEATER=extruder TARGET=… then SAVE_CONFIG; Marlin: M303.
2 E-steps / rotation distance Machine Extruder pushes what it's told. Mark filament, extrude a known length slowly, measure, scale. (Klipper: rotation_distance; Marlin: steps/mm.)
3 First layer / Z-offset Machine (+ bed sheet) Correct squish. See Basics → Bed adhesion.
4 Temperature Filament Temperature tower; everything later depends on viscosity.
5 Flow / extrusion multiplier Filament Walls and top surfaces the right thickness.
6 Pressure / linear advance Filament Sharp corners, even line ends.
7 Retraction Filament Stringing test, after flow and PA (both change nozzle pressure).
8 Max volumetric speed Filament + hotend Highest flow (mm³/s) before under-extrusion; caps all speeds safely.
9 Input shaping (+ max acceleration) Machine Ringing tower or accelerometer; pick the acceleration where ringing and smoothing are acceptable.
10 Tolerance / dimensional test Final check Peg-and-hole fit test; feeds the clearances in Design for Printing.

Sources disagree on the order

OrcaSlicer's guide runs temperature → max volumetric speed → pressure advance → flow ratio → retraction, then the advanced tests (cornering, input shaping, VFA, adaptive PA) and tolerance last — it puts PA before flow because a tuned PA makes the flow test easier to read. Ellis' guide also does PA before extrusion multiplier; Teaching Tech does flow first and linear advance near the end. Either works: if flow changes a lot, re-run a quick PA test. Many people also tune input shaping early on a new machine, since it is a machine property.

Let the printer do it where it can

Bambu printers and Prusa's current models calibrate several of these automatically (bed mesh, Z-offset, resonance, flow dynamics on supported models). Start from the stock profile and only hand-tune what the print shows is wrong — see Troubleshooting.

Profile management

Every Slic3r-family slicer splits settings into printer, filament and print (process) profiles.

  • System profiles ship with the slicer and are updated with it — read-only.
  • User profiles are your edited copies. Most inherit from a system profile and store only the differences, so slicer updates can change the inherited values underneath you. Detach (remove the parent link) if you need a profile frozen.
  • Exporting. PrusaSlicer: File → Export → Export Config / Config Bundle. OrcaSlicer: File → Export → Export Preset Bundle (printer bundle with its filament + process presets, or filament-only). Bundles flatten inheritance into complete profiles (each profile written out in full), so keep your own "master" copy if you rely on inheritance.

Bundles can contain secrets

PrusaSlicer's Export Config Bundle with Physical Printers includes printer API keys and IP addresses. Don't share it or commit it to a public repo.

Practical habits:

  • One filament profile per brand/line, named like Brand PETG – Black 2026 (colour matters for black/white/silk). Note drying status and the PA/flow values you measured. Material behaviour is covered in Filaments and Material Selection.
  • Back up the config folder. OrcaSlicer: Help → Show Configuration Folder (~/.config/OrcaSlicer/user/… on Linux, %APPDATA%\OrcaSlicer on Windows); user presets are JSON files in filament/, machine/ and process/. PrusaSlicer stores .ini files in its own config directory.
  • Version control the user folder (or exported bundles) with git: text diffs show exactly which setting changed between a good print and a bad one. Exclude anything holding API keys or access codes.
  • Cloud sync (Bambu Cloud, OrcaCloud) is convenient but is not a backup — keep a local copy too.

Sources & further reading