OrcaSlicer for Creality CR-10 Series: Profiles and Setup Guide

TL;DR: OrcaSlicer ships profiles for only 4 of the 10+ CR-10 variants. The full setup guide covering V2, V3, Max, SE, plus manual donor cloning for the rest.

The first time I loaded a CR-10 V2 into OrcaSlicer I sat blinking at the printer wizard, because I had a stock 2017 CR-10 sitting next to it and OrcaSlicer just did not list it. I scrolled the Creality column twice, found V2, V3, Max, and SE, and that was the entire CR-10 row. No original CR-10, no CR-10S, no S Pro V2. If you’ve landed here with anything other than those four machines, you’re going to need a different starting move than the official printer wizard.

I’ve owned three CR-10 variants, kept one stock on Marlin, flashed BLTouch firmware onto another, and dragged a third over to Klipper with a Raspberry Pi and Moonraker. None of those journeys looked the same in OrcaSlicer. So this is the per-variant walkthrough I wish someone had handed me: which CR-10s OrcaSlicer ships profiles for, how to bolt on the ones it doesn’t, the start and end gcode that won’t crash your Z-axis, and where the real gotchas live.

What this guide covers

The CR-10 lineage at a glance

Before we touch a setting, you need to know which CR-10 you’re holding, because Creality stretched this line over seven years and the differences matter. The 2016 original was a Bowden, 8-bit Melzi, glass bed, 300 x 300 x 400 mm budget giant. The CR-10S added a second Z motor and a filament runout sensor on essentially the same board. In 2019 the CR-10 V2 brought TMC2208 silent drivers and a stiffer frame (still 8-bit), and 2020’s CR-10 V3 jumped to a 32-bit silent board with a genuine E3D Titan direct drive. The CR-10S Pro and Pro V2 added Creality’s matrix auto-level with a BLTouch in the box. The CR-10 Max became the 450 x 450 x 470 mm flagship in 2019. The 2022 Smart Pro brought PEI sheets and an all-metal direct-drive extruder. And the 2023 CR-10 SE ships with Klipper firmware, a Sprite extruder, and CR Touch from the factory.

clean infographic table of all CR-10 variants side by side
CR-10 lineage comparison table, variant, year, build volume, mainboard

If you’re not sure which variant you have, the easiest tells are build volume and extruder. A 300 x 300 mm bed with a Bowden tube and glass plate is almost certainly an original CR-10, a CR-10S, or a V2. A 300 x 300 mm bed with a black direct-drive block and a 32-bit board is a V3. A 450 x 450 mm bed is the Max. A 220 x 220 mm PEI sheet with a 4.3″ touchscreen is the SE. The S4 is 400 x 400 x 400 mm and the S5 is the 500 x 500 x 500 mm monster, both of which OrcaSlicer also does not ship a profile for.

Which CR-10s have a built-in OrcaSlicer profile

Here is the central, unavoidable fact of this article: OrcaSlicer’s main branch resources/profiles/Creality/machine directory contains machine JSON files for exactly four CR-10 variants. I’ve checked the directory listing directly against the SoftFever repo and there are no others. The shipped CR-10 profiles are:

  • Creality CR-10 V2. Default and 0.4 nozzle profiles.
  • Creality CR-10 V3. Default, 0.4 nozzle, and 0.6 nozzle profiles.
  • Creality CR-10 Max. Default and 0.4 nozzle profiles.
  • Creality CR-10 SE. Default plus 0.2, 0.4, 0.6, and 0.8 nozzle variants.

Every other CR-10 requires a manually added printer. That is the original CR-10, the CR-10S, the CR-10S Pro, the CR-10S Pro V2, the CR-10 S4, the CR-10 S5, the CR-10 Smart, and the CR-10 Smart Pro. It’s not a bug. The maintainers have declined to add several of these on grounds that ship-time tuning for every variant is more work than the project can absorb. Issue #6443 requesting CR-10 Smart support was closed as not planned in August 2024, and the CR-10S Pro V2 request was closed the same way in February 2024 with the reporter themselves noting that figuring out the right settings and speed limits for each new printer is genuinely hard.

So if you’re on a non-shipped variant, you’ll use OrcaSlicer’s custom printer wizard and clone the closest sibling. The original CR-10, CR-10S, and CR-10S Pro V2 all share the V2’s 300 x 300 x 400 mm build volume and Marlin firmware origin, so the CR-10 V2 profile is your donor. The S4 needs a custom 400 x 400 x 400 mm volume; the S5 needs 500 x 500 x 500 mm; the Smart Pro is a 300 x 300 x 400 mm machine with a Sprite-style direct drive that you’ll have to tune retraction on by hand. For a wider tour of how OrcaSlicer organizes presets, see the printer profiles hub.

screenshot of OrcaSlicer Add Printer dialog filtered to Creality with the CR-10 V2, V3, Max, and SE entries highlighted
OrcaSlicer printer selection wizard showing the four shipped CR-10 profiles V2, V3, Max, SE

Setting up the four supported profiles (V2, V3, Max, SE)

Each of the four shipped profiles has its own quirks, and getting them wrong is the fast lane to scraping your nozzle across a bed or printing 5 mm of air. Let’s walk through them.

Creality CR-10 V2

The V2 profile sets printable_area to 0x0, 300×0, 300×300, 0x300 and printable_height to 400. There’s no gcode_flavor field, which means OrcaSlicer treats it as default Marlin, lining up with the stock V2 shipping with Creality’s Marlin build on a TMC2208-driven 8-bit board. Pick the V2, leave the 0.4 mm nozzle if that’s what you have, and you’re slicing.

Creality CR-10 V3

The V3 profile is the one most people get wrong, because its printable area is set with a 5 mm inset on every side: corners at 5×5, 305×5, 305×305, 5×305. Effective print area is 300 x 300 mm, same as the V2, but if you slap a 305 x 305 mm part on the plate OrcaSlicer will accept it and your nozzle will crash into a frame rail. Don’t widen the printable area thinking it’s a bug. It’s a safety inset because the V3 carriage clears the rails differently from the V2. Height is the same 400 mm.

Creality CR-10 Max

The Max profile sets 0x0 to 450×450 with a 470 mm Z height, the full 450 x 450 x 470 mm box Creality advertises. There’s a stock BLTouch on the Max for sixteen-point fast leveling, so your start gcode should run G29 if you flashed the matching Creality firmware. The Max also has a documented filament-runout drag bug that’s firmware-side, not OrcaSlicer-side. More on that in the gotchas section.

Creality CR-10 SE

The SE is the odd one out. Build volume is 220 x 220 x 265 mm, not the 300 x 300 most people associate with the CR-10 name, because Creality basically used the CR-10 badge on a brand-new Klipper-native machine. Critically, the SE’s JSON sets "gcode_flavor": "klipper". That’s the only CR-10 profile shipped with Klipper flavoring. The start gcode uses Marlin-compatible Mxxx commands (M220, M221, M140, M190, M109) because Klipper accepts most of those, but if you paste Marlin-only macros like M420 S1 to load a mesh, they won’t work as expected. Use Klipper’s native macros (BED_MESH_PROFILE LOAD=default) instead.

screenshot of OrcaSlicer Printer Settings > Machine gcode showing the verbatim start sequence” class=”wp-image” loading=”lazy” /><figcaption>CR-10 V2 default start gcode pasted into OrcaSlicer Machine gcode tab</figcaption></figure>
</p>
<h2 id=Adding a manual profile for the original CR-10, CR-10S, S Pro, S4, S5, Smart, or Smart Pro

This is where most CR-10 owners actually live, because the original CR-10 alone outsold most of the variants OrcaSlicer ships profiles for. The flow: open OrcaSlicer, click the printer dropdown at top right, choose Add Printer, pick the closest shipped sibling, Save As with your variant’s name. Then go into Printer Settings and override the build volume, start gcode, and retraction settings. For a deeper walkthrough of every wizard tab, see adding a custom printer.

For donor selection, here’s what’s worked for me:

  • Original CR-10 and CR-10S. Clone the CR-10 V2 profile. Build volume is 300 x 300 x 400 mm, identical. The CR-10S has dual Z and a runout sensor the slicer doesn’t need to know about. Drop accelerations; V2 defaults assume TMC2208 stepping, and an original 8-bit Melzi CR-10 can’t always sustain that. I cap acceleration around 500 mm/s squared on my original CR-10.
  • CR-10S Pro and CR-10S Pro V2. Clone the CR-10 V2 profile, same 300 x 300 x 400 mm. Add G29 after G28 in start gcode if you’ve kept the stock BLTouch enabled.
  • CR-10 S4. Clone the V2, change printable_area to 0x0, 400×0, 400×400, 0x400. Height stays 400. Reduce print speeds; a 400 x 400 mm bed has more mass and the original gantry isn’t reinforced for fast moves.
  • CR-10 S5. Clone the V2, change corners to 500×500 and height to 500. Drop accelerations further. Push purge lines further out since you have the room.
  • CR-10 Smart and Smart Pro. Clone the V2 (300 x 300 x 400 mm). The Smart Pro’s all-metal direct drive needs lower retraction than the V2’s Bowden; start around 0.8 to 1.2 mm. You won’t get a Sprite-style profile out of this clone, since there’s no Sprite-retrofit OrcaSlicer profile shipped for any CR-10.

screenshot of OrcaSlicer's custom printer creation flow with build volume set to 300x300x400
Manually adding a CR-10S in the Add Printer wizard by cloning the CR-10 V2 profile

Start and end gcode for stock Creality Marlin firmware

The CR-10 V2 profile’s start and end gcode is the cleanest canonical reference for any stock Marlin CR-10, so I’ll quote it as the template and then point out where you’d modify for variants. Here’s the verbatim V2 start sequence pulled from the OrcaSlicer JSON:

G90 ; use absolute coordinates
M83 ; extruder relative mode
M104 S[nozzle_temperature_initial_layer] ; set extruder temp
M140 S[bed_temperature_initial_layer_single] ; set bed temp
M190 S[bed_temperature_initial_layer_single] ; wait for bed temp
M109 S[nozzle_temperature_initial_layer] ; wait for extruder temp
G28 ; home all
G1 Z2 F240
G1 X2 Y10 F3000
G1 Z0.28 F240
G92 E0
G1 Y190 E15 F1500 ; intro line
G1 X2.3 F5000
G92 E0
G1 Y10 E15 F1200 ; intro line
G92 E0

Block by block: absolute coordinates and relative extrusion mode go first so subsequent commands behave predictably. Heating commands fire next, with M104/M140 starting both heaters simultaneously, then M190 and M109 block until each has actually reached temperature. G28 homes all axes only after temps are stable (homing a cold nozzle can leave a blob hanging off the tip). Then a two-pass intro line wipes at Y10 to Y190 to prime the extruder.

The matching V2 end gcode does smart post-print management:

{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up
G1 X5 Y170 F{travel_speed*60} ; present print
{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up
M140 S0 ; turn off heatbed
M104 S0 ; turn off temperature
M107 ; turn off fan
M84 X Y E ; disable motors

The conditional Z lifts use OrcaSlicer’s expression syntax so you don’t slam the head into the Z-max endstop on tall prints. The print is presented at X5 Y170, and X/Y/E steppers disable while Z stays engaged so the bed doesn’t drop.

For a CR-10 S4 or S5, adjust the present position outward (Y370 on an S4, Y470 on an S5) so the print doesn’t land awkwardly near bed center. For the Max, Y420 makes more sense given the 450 mm Y travel. The CR-10 SE’s profile uses different start gcode entirely because it’s Klipper-flavored, with intro lines at X10.1 and Y20.

Adding a BLTouch or CR Touch to a CR-10 V2, V3, or Max

BLTouch is not stock on the V2 or V3. Creality’s own blog is explicit that the V2 has “reserved space for BL-Touch” but ships without one. The CR-10 Max does ship with a stock BLTouch, and the CR-10S Pro V2 also ships with a stock matrix-leveling probe. If you’ve added a probe to a V2 or V3 yourself, you’ll have installed it on the mainboard’s Z-min header and reflashed firmware that defines a BLTouch in Configuration.h (or equivalent in Klipper).

closeup photo of an installed BLTouch probe on a CR-10 V2 with the cable routed to the mainboard
BLTouch mounted on a CR-10 V2 hotend carriage

On the OrcaSlicer side, the only change is a G29 line after G28 in your start gcode. Per Creality’s own BLTouch install guide for the V2, you have to “add the G29 command to your start g-code so that the homing sequence for the probe actually runs at the start of every print.” So your edited V2 start block becomes:

...
G28 ; home all
G29 ; auto bed level
G1 Z2 F240
...

G29 only works if your installed firmware has ABL compiled in. OrcaSlicer isn’t generating the mesh, just emitting the gcode that tells the firmware to run its own ABL routine. Pro move: save the mesh with M500 after a successful G29, then replace G29 with M420 S1 in subsequent prints to skip re-probing. Knocks two to three minutes off your start cycle. On Klipper, the equivalent is BED_MESH_CALIBRATE once, then BED_MESH_PROFILE LOAD=default in start gcode.

Bed surfaces: glass vs textured PEI vs magnetic spring steel

CR-10s have shipped with three bed surfaces and each one wants different first-layer settings. The original CR-10 and CR-10S have borosilicate glass with the classic Creality binder-clip mount. The V2 and V3 ship with carborundum glass (Creality’s branded textured glass), the S Pro V2 has a similar carborundum surface, and the Smart Pro, SE, and most modern variants ship with magnetic PEI flexible spring steel.

The Z-offset numbers I run on each:

  • Plain glass. Around 0.1 to 0.15 mm gap, bed 60 to 70 C for PLA. Skirt or brim recommended. Glue stick or hairspray helps PETG.
  • Carborundum (textured) glass. Slightly more gap, 0.15 to 0.2 mm, bed 60 to 65 C for PLA. The texture grips PLA when warm and releases when cool. No glue needed.
  • Magnetic PEI spring steel. Closer first layer, 0.05 to 0.1 mm, bed 60 to 65 C for PLA, 80 to 90 C for PETG. PEI grips when hot and releases when fully cool. Let prints sit and pop, don’t pry.

For the CR-10 SE, the magnetic PEI sheet handles bed temps up to 110 C. The Sprite extruder sustains 300 C nozzle temps, so high-temp filaments are viable on a stock SE in a way they aren’t on a Bowden V2.

The Klipper conversion path and how OrcaSlicer talks to Moonraker

The CR-10 SE ships with Klipper from the factory. Every other variant has a community Klipper conversion path; Teaching Tech’s 8-bit CR-10 conversion video covers the original, the CR-10S, and the V2, and Klipper’s own repo ships canonical config templates including printer-creality-cr10-2017.cfg for the Melzi-board CR-10 and printer-creality-cr10-smart-pro-2022.cfg for the Smart Pro.

Why bother converting? You gain three things: input shaping (which lets the V2 and V3 push real speeds without ringing), pressure advance (a more accurate version of OrcaSlicer’s flow tuning), and direct OrcaSlicer-to-printer communication via Moonraker. Once Klipper is running, install Moonraker, point OrcaSlicer at it, and send sliced gcode straight to the printer without sneakernet-ing SD cards.

Moonraker’s default port is 7125, quoted verbatim from its docs: “port: 7125. The port the HTTP server will listen on. Default is 7125.” Mainsail and Fluidd (the web interfaces that sit on top of Moonraker) listen on their own ports. When configuring OrcaSlicer’s Device tab you want port 7125 for uploads.

In OrcaSlicer’s Printer Settings, the host type for Klipper machines is “Octo/Klipper”. Set that, enter your printer’s IP address, paste your Moonraker API key (from moonraker.conf under [authorization] or from Mainsail settings), click Test, and if you get a green response you’re connected. Discussion #450 on the OrcaSlicer repo walks through this for the Creality Sonic Pad, and the same flow works for a DIY Pi-on-Klipper conversion. For a deeper dive, see our full Klipper setup walkthrough.

screenshot of the OrcaSlicer Device tab showing a successful Octo/Klipper connection over port 7125
OrcaSlicer Device tab connected to Moonraker on a Klipper-converted CR-10

Calibration order for any CR-10 in OrcaSlicer

Once your printer is set up (shipped profile or manual clone), the calibration order I run on every CR-10 goes coarse to fine. Don’t skip ahead.

  1. Bed level and Z-offset. Paper-test on stock, G29 mesh with a probe, BED_MESH_CALIBRATE on Klipper. Get a clean first layer first.
  2. Flow rate. OrcaSlicer’s built-in flow calibration prints a varied-flow tower. Pick the cleanest top surface. On most stock CR-10 Bowden setups I end up around 0.95 to 0.98.
  3. Pressure advance (Klipper) or linear advance (Marlin LIN_ADVANCE). OrcaSlicer prints a pattern; read off the cleanest band. On a stock Bowden CR-10 V2 I land around 0.04 to 0.06 on Klipper.
  4. Max volumetric speed. The big one for CR-10 throughput. Print the max-flow tower and watch for the layer where extrusion starts skipping. On a Bowden CR-10 V2 with a brass 0.4 mm nozzle I cap at 10 to 12 mm cubed per second; on a direct-drive V3 closer to 14 to 16.
  5. Temperature tower. PLA from 220 to 190 in 5 C steps; pick the lowest temp that still bonds layers cleanly without stringing.

For the full breakdown of each test, see the calibration guide.

Common CR-10 plus OrcaSlicer gotchas

Four issues come up repeatedly enough that they deserve their own callout.

CR-10 Max filament runout drags the print. Issue #3029, opened December 2023 and closed as not planned because it’s firmware-side. When the Max runs out of filament mid-print, the firmware parks the head at Z=0 in the front-left corner. On resume, the head moves horizontally without lifting Z, dragging the nozzle through the print. The reporter themselves noted “the issue stems from printer behavior rather than OrcaSlicer itself.” Workaround: enable a paused-print Z-lift macro in firmware, or run without runout sensing on the Max. On Klipper, standard Mainsail runout macros handle the lift correctly.

CR-10 SE start gcode is Klipper-flavored. Don’t paste Marlin macros (M420, M500, etc.) into your SE start gcode without translating to Klipper equivalents. The gcode_flavor: klipper setting in the JSON is the canonical signal.

CR-10 V3 has a 5 mm bed inset. Printable area is 5×5 through 305×305 corners. Effective print area is 300 x 300 mm. Don’t widen this thinking it’s a bug.

CR-10S Pro V2 isn’t natively supported. Issue #3959 documents the request and not-planned closure. Use the CR-10 V2 as a manual donor, add G29 to start gcode if you’ve kept the stock BLTouch enabled.

If you hit a problem that’s not on this list, the troubleshooting master post linked at the end of this guide has a wider sweep of OrcaSlicer issues across printer brands.

action photo of a CR-10 SE mid-print with the Sprite direct drive visible
CR-10 SE printing with OrcaSlicer-sliced gcode showing the Sprite extruder in action

FAQ

Does OrcaSlicer support the original 2017 CR-10?

Not with a built-in profile. Clone the CR-10 V2 profile (which shares its 300 x 300 x 400 mm volume and Marlin origin), drop accelerations to what an 8-bit Melzi board can push, save as “CR-10 (Original)”.

Do I have to convert to Klipper to use OrcaSlicer?

No. OrcaSlicer slices gcode that any CR-10 running stock Creality Marlin will execute. You only need Klipper if you want input shaping, pressure advance, or direct printer-to-slicer communication via Moonraker.

Is the CR-10 SE profile Marlin or Klipper?

Klipper. The machine JSON sets "gcode_flavor": "klipper", matching the printer’s factory firmware. Mxxx commands work, but Marlin-specific macros like M420 S1 don’t. Use Klipper macros instead.

Where’s the profile for the CR-10 Smart Pro?

There isn’t one. CR-10 Smart support was closed as not planned in issue #6443. Clone the CR-10 V2 profile, keep 300 x 300 x 400 mm, tune retraction down to 0.8 to 1.2 mm for the direct-drive extruder.

Can I share a CR-10 V2 profile with my CR-10S?

Yes. The V2 and CR-10S share the same 300 x 300 x 400 mm volume and Marlin lineage. The V2 profile slices fine on a CR-10S as long as you drop accelerations to match what an 8-bit Melzi-era board can sustain.

Does M600 work on a stock CR-10?

It depends on the firmware build. Stock Creality Marlin builds historically don’t have ADVANCED_PAUSE_FEATURE compiled in, which means M600 either gets ignored or treated as a plain pause without proper purge and resume. For real M600 behavior, flash a community Marlin build or move to Klipper.

Can I download OrcaSlicer from this site?

I always link to the official source. Grab the latest from github.com/SoftFever/OrcaSlicer/releases.

Wrapping up

The CR-10 is genuinely ten printers wearing one name, and OrcaSlicer’s decision to ship profiles for only four of them (V2, V3, Max, SE) is the single biggest setup hurdle for everyone else. Once you internalize that and pick the right donor profile to clone, the rest of the workflow is the same as any printer: sane start gcode, BLTouch handling if you’ve added one, the standard calibration cascade, and an optional jump to Klipper if you want input shaping and network printing. If you hit issues outside this guide, the troubleshooting master post casts a wider net.

Related OrcaSlicer guides

Leave a Comment