Notes from a heavy K2 Pro user: seven things in Creality Print that cost me prints

Creality Print 7.2.2.5483 · K2 Pro with CFS · posted in the hope the Creality team reads it

I have been running a K2 Pro as my daily machine for a while now, mostly multi-material work with the CFS. I keep a written log of every failed print and what caused it, because I got tired of relearning the same lessons. Going back over that log, a pattern jumped out: most of my failures were not mechanical, and not my slicer settings being wrong. They were the software telling me one thing and doing another.

This is not a rant. Creality Print is a capable slicer and I have no intention of switching. But every issue below is silent — no warning, no error, nothing in a log — and silent failures are the expensive kind. I am writing them up with reproduction steps and real numbers in case they are useful to the team, and to other users who may be losing prints to the same causes without knowing it.


1. The CFS slot silently overrides what the project file says

This one cost me three consecutive print runs in a single day.

I prepare a project where each object is assigned to a specific extruder, and that extruder points at a filament preset I have calibrated myself. I save it. I reopen it. Creality Print reassigns the objects to whichever CFS slot is currently selected, and that slot brings its own preset with it.

The project file is not consulted. It is overwritten by the state of the physical slot.

The chain is four links long and the one that wins is not the first:

part on the plate → assigned extruder → CFS slot → preset → actual values
                                          ↑
                                    this is what wins

The result: my prints ran with bed at 50 °C instead of 60, max volumetric speed 16 instead of 18, and cooling settings from a completely different material. Nothing warned me. The project file still said the right thing.

Suggestion: when the slot’s preset differs from what the project specifies, say so. A one-line dialog — “This project requests preset X for slot 2, but slot 2 currently has preset Y. Use which?” — would have saved me three runs. Silently preferring the slot is a defensible design choice; doing it without telling anyone is not.

2. Saving a project restores settings from the system preset

I corrected a project’s layer height to 0.08 mm and its initial layer to 0.16 mm, verified the values were written correctly inside the 3MF, and handed the file over. It was opened, sliced, and saved. On reopening, layer height was back to 0.2 mm.

The cause is that print_settings_id pointed at a system preset. On load, the app resolves that preset and overwrites the loose values stored in the project. Anything that does not derive from a preset survived fine — per-layer filament changes and custom colours were untouched.

I understand why this happens. But the practical consequence is that a 3MF is not a reliable carrier for any value that comes from a preset, and nothing in the UI communicates that. Users reasonably assume a saved project saves what they see.

Suggestion: either mark project-level overrides as sticky, or warn on load that N values are being reset to preset defaults. Right now the file changes under your feet and you find out later.

3. The CR-PETG profile ships with the exhaust fan at 0 — and it caused a four-day outage

My most expensive failure. A two-hour PETG print aborted at 93 % complete (107.6 of 115 minutes) with “printing without extrusion”. The filament had softened and seized in the extruder. The machine was down for four days until I could strip and clean it properly.

The cause was heat creep, and behind it, the profile. Comparing the resolved JSON profiles for the K2 Pro 0.4 nozzle:

CR-PETG Hyper PETG Generic PETG
Exhaust fan during print 0 % 60 % 60 %
Max volumetric speed 18 23 16
Chamber temperature control on, 35 °C

CR-PETG is the only one of the four that turns the extraction off, and it enables chamber heating. After two hours my chamber read 35.8 °C with the heater off — pure accumulated heat. The air cooling the hotend heatsink was arriving already warm. The part I was printing had continuous retractions for two hours, which is the worst case for heat creep.

I do not think this profile is wrong for the part it was tuned for — a flat part that would warp. But it is a poor default for long prints, and the failure mode is not obvious.

Suggestion: at minimum, bring CR-PETG in line with the other three PETG profiles on extraction. More generally: a factory profile tuned for one part shape becomes a trap when it is the default for every part shape.

4. The build plate selector is cosmetic on the factory profile

High Temp Plate and Textured PEI Plate declare the same bed temperature — 50 °C. Cool Plate / soft PEI declares 0 °C.

Choosing the correct plate does not change the bed temperature. Worse, 50 °C happens to be the minimum of the recommended range for the PLA I use (45–60), so accepting the default puts you at the bottom of the window with no indication.

Suggestion: if the plate type does not affect temperature, it should not look like it does. If it should affect it, the values need revisiting.

5. Auto-arrange does not group parts by height

I let the auto-arrange button lay out 12 parts ranging from 5.75 to 13.33 mm tall. The print failed at layer 33 (Z 6.4 mm) — precisely the layer where the 6.39 mm parts finished, leaving the taller parts still going while the nozzle tracked back and forth over completed surfaces.

Mixing part heights on one plate means the nozzle crosses over finished parts for every remaining layer. That is a well-known cause of knocked-over parts and it is entirely predictable from the model bounding boxes, which the slicer already has.

Suggestion: make height a factor in auto-arrange, or at least warn when the range on a plate is large.

6. Search only looks inside the panel you have open

If I am in Process and search for “temperature” or “flow”, I get nothing — those live in the Filament panel. The search box gives no indication that it is scoped, so the honest conclusion a user draws is “this setting does not exist”.

Suggestion: search across all panels and show which panel each result belongs to.

7. The same fan has two different names in the Spanish UI

In Spanish, the post-print extraction fan is “Velocidad del ventilador de extracción una vez finalizada la impresión”. The during-print one is extractor de aire.

Same hardware, two different words. Searching for “ventilador” does not find the second one. Combined with issue 6 (they live in different panels), this setting is effectively undiscoverable unless you already know where it is.

Suggestion: consistent terminology for the same component across the UI.


What already works well, for balance

  • The 3MF format is clean and interoperable. I routinely open Creality Print projects in OrcaSlicer and back. The files are well-structured and editable when I need to script something.
  • Moonraker is exposed without authentication on the K2 Pro. This is genuinely excellent and I wish more vendors did it. When a print fails I can pull the exact layer and height it died at from record_power_loss_info, cross-reference against part heights, and get a real diagnosis instead of guessing at a photo. It has saved me hours.
  • Per-object extruder assignment works properly once the slot issue above is out of the way.

The common thread

Every issue here shares one shape: the interface asserts something the machine does not do. The preset name is displayed but a different one is applied. The project file says 0.08 but 0.2 is used. The plate selector implies a temperature it does not set.

I have ended up verifying my settings by reading the ~621-line settings block in the generated gcode, because that is the only place that cannot lie to me. That works, but it is not a reasonable thing to ask of users.

None of this requires a redesign. Most of it is a warning dialog, a consistent label, or a default brought in line with its siblings. If any of it is useful to the team, I am happy to provide the profile JSONs, gcode headers, and the Moonraker logs behind each case.

— Abdelkarim Mateos

almost all the bugs are the Filament in the hard coded CFS configurations, and i have a solution for it..use the Filament RFID app and create a profile for your filaments, and upload the Database with every correct data, so when the Printer select the value based on the Hard Coded CFS Scripts, it will load the correct.

Link to the app: https://play.google.com/store/apps/details?id=dngsoftware.filamentrfid&hl=pt_BR

1 Like