The 10 CR-PETG profiles added in 5612e120 (also from hamham999s PR
13581) inherit from fdm_filament_petg, but that base template did
not exist in the Creality profile set - only fdm_filament_pet. Result:
OrcaSlicer logged
can not find inherits fdm_filament_petg for CR-PETG @Creality K2...
and aborted the rest of the Creality filament load, leaving the
filament dropdown empty for K2 users.
Adds the base template (originally added in hamham999s PR 13581) and
registers it in Creality.json filament_list after fdm_filament_pet.
Reported-by: local testing on Hark Tech 2026-05-21 test build.
Co-Authored-By: hamham999 <hamham999@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two follow-ups from #13744 review:
1. K2 firmware payloads reference "CR-PETG" by name (per DaviBe92's
reverse-engineering work in k2-websocket-re, and a real Creality spool
seen by @swilsonnc), but the profile was missing from the Creality
filament set. Adds 10 K2-family variants:
- K2: 0.4, 0.6, 0.8 nozzles
- K2 Plus: 0.2, 0.4, 0.6, 0.8 nozzles
- K2 Pro: 0.4, 0.6, 0.8 nozzles
Profile values come from CrealityPrint v7.1.0 via @hamham999's
parallel work in OrcaSlicer/OrcaSlicer#13581. Files re-indented with
tabs and BOM stripped to match repo convention.
2. Creality HF Generic PLA and Creality HF Generic Speed PLA were missing
filament_vendor: ["Creality"] so they appeared under "General" rather
than "Creality" in the filament selector.
Reported-by: swilsonnc, DaviBe92 (CR-PETG missing)
Co-Authored-By: hamham999 <hamham999@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI flagged ~150 K2 profile files for using space indentation; repo convention
is tab indentation. Ran the upstream-provided fixer:
python3 scripts/orca_filament_lib.py -v Creality -p filament -f --force
Mechanical normalization:
- Spaces → tabs (1 tab per indent level)
- Field ordering normalized (name + type first)
- Single-value scalar fields converted to single-element arrays where the
schema expects arrays (filament_cost, filament_density,
temperature_vitrification, filament_max_volumetric_speed)
No semantic content changes. Pre-existing issue from the original K2
profile import; touching these files in the multicolor_method strip
brought them into the validator's PR-diff scope.
Two data-only fixes:
#1 Strip undefined {if !multicolor_method} wrapper from filament_start_gcode on 110 K2-Plus profiles. The placeholder is a CrealityPrint-ism that survived the profile port; Orca has no such variable, so slicing failed with a hard parser error (reported on Hyper PLA by u/Gullible-Price-4257). Inner per-layer temp logic now runs unconditionally, which is the correct default.
#4 Add filament_vendor: [Creality] to 50 Creality Generic profiles missing the field. Without it the UI grouped them under Generic instead of Creality (reported by u/mharrop94).
Import 191 brand-specific filament presets for the K2 family of
printers (K2, K2 Plus, K2 Pro), lifted from
CrealityOfficial/CrealityPrint v7.1.1 under AGPL-3.0 (compatible
with OrcaSlicer AGPL-3.0).
Brand coverage:
CR-series: CR-PLA, CR-PLA Matte, CR-PLA Fluo, CR-Silk,
CR-TPU, CR-ABS, CR-Nylon
Hyper-series: Hyper PLA, Hyper PLA-CF, Hyper ABS, Hyper PA-CF,
Hyper PA6-CF, Hyper PAHT-CF, Hyper PA612-CF,
Hyper PC, Hyper Marble, Hyper Stardust,
Hyper L-W PLA, Hyper PPA-CF
Third-party: eSUN PLA+ / PLA-HS / PLA-Matte / PLA-Silk /
PLA-CF / PLA-LW / PLA-Lite, PolySonic PLA /
PLA Pro, Panchroma PLA Matte / Satin, Soleyin
Ultra PLA, HP Ultra PLA, HP-ASA, HP-TPU
Ender PLA variants and CrealityPrint per-K2 Generic versions of
PLA, ABS, ASA, PA, PA-CF, PAHT-CF, PET, etc.
This closes the matching gap exposed by the CFS filament-sync
work. When the K2 reports spool brand Hyper PLA or CR-PLA, the
existing Creality vendor only had a generic Creality Generic PLA
@K2-all preset to fall back to, so per-brand temps / PA / cooling
tuning was lost on every sync.
Schema and naming are drop-in compatible -- CrealityPrint
references the K2/K2 Plus/K2 Pro machine names already present in
OrcaSlicer Creality vendor (Creality K2 0.4 nozzle, etc), so no
machine-side changes or compatible_printers rewrites are required.
K2 SE filaments and the PETG/PP/PPS/HIPS family are deferred. K2
SE machine profile is not yet in OrcaSlicer Creality vendor, and
the PETG/PP/PPS/HIPS family relies on fdm_filament_* base
templates that do not exist in Orca Creality vendor -- importing
those bases from CrealityPrint did not make them register as valid
parents at preset-load time. Coverage for the missing families
will land in a follow-up once the loader requirements for new
bases are understood.
Vendor version bumped to 02.03.02.75 to trigger the per-user
profile refresh on next launch. Source attribution captured in
resources/profiles/Creality/NOTICE.md.
* K2 Plus: add print area bounding box for adaptive bed mesh
The K2 firmware reads MINX/MINY/MAXX/MAXY gcode comments to
determine the adaptive bed mesh area. Without these, it falls
back to full bed mesh even when calibration is enabled.
K2 Pro also reads these comments (its profiles already had them).
Signed-off-by: Igor Mammedov <niallain@gmail.com>
* K2: add print area bounding box for adaptive bed mesh
Same change as K2 Plus — prepend MINX/MINY/MAXX/MAXY gcode comments
so firmware can determine the adaptive bed mesh area.
K2 Pro already had these.
Signed-off-by: Igor Mammedov <niallain@gmail.com>
* Creality: bump profile version to 02.03.02.72
Signed-off-by: Igor Mammedov <niallain@gmail.com>
---------
Signed-off-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Fix Ender-3 V3 KE nozzle switching by adding printer_variant
The four Creality Ender-3 V3 KE 0.X nozzle profiles were missing the
printer_variant key, so OrcaSlicer could not map a UI nozzle selection
to a specific profile and reverted every choice to 0.2mm. Add the
matching printer_variant to each, following the CR-10 SE / K1C pattern.
Reduce the size of current and new JSONs by standardising them with 1 tab indentation instead of 4 spaces.
This effectively reduces the size by almost 20 MB.
| Current | New |
|---|---|
| 85.2 Mib | 67 Mib |
Used [JQ](https://jqlang.org/) `--tab` to automatically format every current JSON.
> [!NOTE]
> Some profiles had the arrays on the same line, but those created by Orca were in the standard format (each object below the previous one). In some cases, this increases the number of tabs due to the new lines, but the increase is negligible, and this way both the base profiles and those created by Orca maintain the same style.
## Problem
Some Creality printers (e.g. Ender-3 V3 SE) rely on metadata comments in the first lines of G-code files to display print info on the screen (estimated time, filament usage, layer height). This follows a format originally used by Cura/Creality Print:
```
;FLAVOR:Marlin
;TIME:3708.97
;Filament used:6.21m
;Layer height:0.2
```
OrcaSlicer currently has no way to write content before the `HEADER_BLOCK` in the G-code output, and does not expose `print_time_sec` or `filament_length_m` as usable placeholders. As a result, these printers show zeroed-out print info on screen.
## Changes
### 1. New placeholders (post-processing)
Added two new G-code placeholders resolved during post-processing:
- `{print_time_sec}` — total estimated print time in seconds (double)
- `{filament_length_m}` — total filament length in meters (double)
These values are only available after G-code generation, so they use inline marker replacement (`@PRINT_TIME_SEC@`, `@FILAMENT_LENGTH_M@`) that `GCodeProcessor::run_post_process()` substitutes with actual computed values — the same pattern used by existing M73 and layer count placeholders.
### 2. New "File header G-code" option (`machine_top_gcode`)
Added a new G-code field in **Printer Settings > Machine G-code** that writes content at the very top of the output file, before `HEADER_BLOCK_START`. This allows users to add firmware-specific metadata that must appear in the first lines.
### 3. Creality Ender-3 V3 SE profile update
Pre-configured the Ender-3 V3 SE profiles (all 4 nozzle variants) with a default `machine_top_gcode` value matching the Cura-compatible header format, so print info displays correctly out of the box.
# Screenshots
| Before (current OrcaSlicer) | After (this PR) |
|---|---|
|  |  |
## Tests
- Sliced test model with Ender-3 V3 SE profile
- Verified G-code output contains correct values in first lines:
- `;TIME:` with actual print time in seconds
- `;Filament used:` with filament length in meters
- `;Layer height:` with correct layer height
- Verified `{print_time_sec}` and `{filament_length_m}` work in both Machine Start G-code and File header G-code fields
- Verified empty `machine_top_gcode` produces no extra output
- Built and tested on macOS (arm64)
* Profiles for Creality K2 Pro printer
Added printer profiles for Creality K2 Pro based on existing K2 Plus profile and Creality Print modifications.
* Fixed filament start g-code for K2 series
K2 Plus filament profiles have additional move for filament start g-code on some filaments. This causes unnecessary moves and make filament profiles non-working on K2 series printers.
As these moves are already mirrored on printer profile and not used in rest of the K2 series they should be removed.
* Update Creality K2 Pro profiles for improved print quality
Added adaptive probing comments to machine start gcode for all nozzle sizes. Adjusted process profiles for various layer heights and nozzle sizes, including changes to bridge speeds, acceleration, wall generator and support line widths according to Creality profiles s to optimize print quality and reliability.
* Revert "Update Creality K2 Pro profiles for improved print quality"
This reverts commit ac84058c33.
* Update Creality K2 Pro profiles for improved slicing
Adjusted speeds, accelerations, line widths, and other slicing parameters for better print quality and compatibility. Updated machine start g-code to include print area comments for adaptive probing (Creality K2 Pro uses these comments to define adaptive probing area)
Updated multiple filament profiles to convert fields such as filament_cost, filament_density, and filament_max_volumetric_speed from single values to arrays for consistency. Removed unnecessary fields from filament profiles to streamline data structure. This change enhances compatibility with the updated profile handling logic in the orca_filament_lib.py script.
* Change ironing angle setting to be an offset angle from the top surface angle rather offset from the layer 0 angle that changes on each layer.
* Change Ironing angle offset range from [-1,359] to [0,359].
-1 is redundant because it is the same behavior as 0 offset.
* Change ironing_angle new default value to 0.
* Update existing print profiles' hardcoded ironing_angles from -1 to 0 to reflect new default value.
* Add migration for old -1 ironing_angle settings. Remove logic for -1 ironing_angle.
* Add u8 prefix for degree symbol string
* Use solid_infill_direction instead of infill_direction for top surface infill direction. Use calculate_infill_rotation_angle to add offset to solid_infill_rotate_template if used.
* Update quality settings wiki for Ironing
* Set f->is_using_template_angle when making ironing filler objects
* Update quality_settings_ironing link from #angle to #angle-offset
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* feat: expand Creality Ender-3 V3 KE profile with multiple nozzle diameters and new machine configurations
* Merge branch 'main' into main
* Merge branch 'main' into main
* Update Creality K2 Plus 0.8 nozzle.json
* Update Creality K2 Plus 0.6 nozzle.json
* Update Creality K2 Plus 0.4 nozzle.json
* Update Creality K2 Plus 0.2 nozzle.json
* Increase PEI bed temp to 100C from 60C for ASA
* Merge branch 'main' into creality-patch
* add creality ender-5 max
* add filament profiles for ender-5 max
* update creality manifest
* fix references
* put creality.json at 4 space indent
* remove invalid parameters
* fix thumb format
* Merge branch 'main' into feature/ender-5-max
The default build plate model for Creality K2 Plus is heavy (516kB) and has a lot of visible artefacts - like diagonal "stairs". I found this a bit annoying. So I redrew the file - to a simple flat stl - 16kb.
* added change g-code
* adjusted change_filament_gcode for all k2 profiles
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* removed extra space on new line characters. to exeactly match creality print
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* disabled filamanet ramming and cleared Single Extruder Paramaters
* Merge branch '7607-k2plus-filament-change-gcode' of https://github.com/brandonfhall/OrcaSlicer into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
* Merge branch 'main' into 7607-k2plus-filament-change-gcode
Using my Ender 3 V3 SE I noticed weird printing behaviour. Searching for
the cause, I found that the default layer height for a 0.2mm nozzle for
the printer was set to 0.08mm min and 0.32mm max, which are the default
20%/80% values for a 0.4mm nozzle. This commit changes the values for
all Creality printer which had not a reasonable default value for 0.2mm,
0.6mm and 0.8mm nozzles to 20% min and 80% max.
Co-authored-by: SoftFever <softfeverever@gmail.com>