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
- Which CR-10s have a built-in OrcaSlicer profile
- Setting up the four supported profiles (V2, V3, Max, SE)
- Adding a manual profile for everything else
- Start and end gcode for stock Creality Marlin
- Adding a BLTouch or CR Touch to a CR-10 V2, V3, or Max
- Bed surfaces: glass, textured PEI, and magnetic spring steel
- The Klipper conversion path and Moonraker port 7125
- Calibration order for any CR-10 in OrcaSlicer
- Common CR-10 plus OrcaSlicer gotchas
- FAQ
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.

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.

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.
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: 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: 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: 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. 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 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: 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 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: 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 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 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 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. For the full breakdown of each test, see the calibration guide. 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 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. 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)”. 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. Klipper. The machine JSON sets 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. 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. It depends on the firmware build. Stock Creality Marlin builds historically don’t have I always link to the official source. Grab the latest from github.com/SoftFever/OrcaSlicer/releases. 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.
Adding a manual profile for the original CR-10, CR-10S, S Pro, S4, S5, Smart, or Smart Pro
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.
Start and end gcode for stock Creality Marlin firmware
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{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 motorsAdding a BLTouch or CR Touch to a CR-10 V2, V3, or Max
Configuration.h (or equivalent in Klipper).
...
G28 ; home all
G29 ; auto bed level
G1 Z2 F240
...BED_MESH_CALIBRATE once, then BED_MESH_PROFILE LOAD=default in start gcode.Bed surfaces: glass vs textured PEI vs magnetic spring steel
The Klipper conversion path and how OrcaSlicer talks to Moonraker
printer-creality-cr10-2017.cfg for the Melzi-board CR-10 and printer-creality-cr10-smart-pro-2022.cfg for the Smart Pro.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.
Calibration order for any CR-10 in OrcaSlicer
Common CR-10 plus OrcaSlicer gotchas
gcode_flavor: klipper setting in the JSON is the canonical signal.
FAQ
Does OrcaSlicer support the original 2017 CR-10?
Do I have to convert to Klipper to use OrcaSlicer?
Is the CR-10 SE profile Marlin or Klipper?
"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?
Can I share a CR-10 V2 profile with my CR-10S?
Does M600 work on a stock CR-10?
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?
Wrapping up
Related OrcaSlicer guides