Commit Graph

2106 Commits

Author SHA1 Message Date
Ian Chua
43a83397d4 fix: restore presets that were renamed based on errors logged by workflow 2026-07-01 18:53:36 +08:00
SoftFever
c2e91cb86c validator: detect ambiguous (duplicate) filament subtypes per printer (#14459)
* validator: detect duplicate filament subtype per printer (opt-in)

A filament is matched from the AMS by (filament_id + printer compatibility);
if two compatible filament presets for one printer share a filament_id, the
match is ambiguous and the runtime silently picks whichever loads first.

Add PresetBundle::check_duplicate_filament_subtypes(), gated behind a new
has_errors(check_duplicate_filament_subtypes) parameter and the validator's
-f/--check_filament_subtypes flag (off by default). For each system printer it
groups its vendor's compatible filament presets by filament_id and errors on
any group of 2+, reporting each preset as a clickable file:// URI with a single
"how to fix" hint. CI runs it for BBL only (-v BBL -f) until the other vendors'
profiles are cleaned up.

* profiles: fix ambiguous BBL filament matches

Resolve the duplicate-filament-subtype errors flagged by the validator:
- align compatible_printers with Bambu Studio where Orca over-claimed a nozzle
  that already has a dedicated preset (Bambu PLA Basic/Matte/ABS @BBL H2DP;
  Bambu ASA/PETG HF @BBL H2DP 0.6 nozzle; Fiberon PETG-ESD @BBL X1)
- fix a copy-pasted printer name in Overture Matte PLA @BBL A1M 0.2 nozzle
- fix a wrong inherits in Panchroma PLA Silk @BBL X1C 0.2 nozzle (was inheriting
  Panchroma PLA @base, giving it filament_id GFPM001 instead of GFPM004)

Bump BBL profile version.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-28 00:42:02 +08:00
SoftFever
8cb2e4e01e profiles: deterministic setting_id from vendor/type/name (#14432)
* profiles: enforce globally-unique, per-vendor-namespaced setting_id

Many non-Bambu vendors copied Bambu's generic setting_ids (GFSA04 alone
appeared in 1557 files), so setting_id was not globally unique. This
namespaces every vendor's ids and reserves Bambu/OrcaFilamentLibrary space.

- Reserve "G*" (Bambu) and "O*" (OrcaFilamentLibrary) id spaces.
- Assign each other vendor a 2-char prefix (first+last letter, collision
  resolved) and renumber every instantiated preset to <PREFIX><NNNN>.
- Strip setting_id from base profiles (instantiation:false) per Bambu's
  convention; assign one to instantiated presets that lacked it.
- Remove the pre-existing misspelled "settings_id" key (91 files).
- filament_id is left untouched (it is a per-material id).
- Add one-time migration script scripts/assign_vendor_setting_ids.py with a
  persisted registry resources/profiles/vendor_prefixes.json. Re-runs freeze
  existing ids; only new vendors/profiles get new ids.
- Bump version in each changed vendor index file.
- Extend scripts/orca_extra_profile_check.py with a CI guard: global
  uniqueness, in-namespace, no base setting_id, no gaps, no settings_id typo.

7425 profile files changed across 61 vendors; 0 cross-vendor collisions;
validator clean; migration idempotent. BBL and OrcaFilamentLibrary id spaces
untouched.

* profiles: add setting_id authoring guide for new vendors / profiles

* profiles: drop in-repo README; setting_id guide now lives in the wiki

* profiles: derive setting_id deterministically from vendor/type/name

* bump profile version
2026-06-27 20:11:25 +08:00
wujie
67645760f2 Add Elegoo Centauri 2 machine profiles (#14402)
* feat(profiles,elegoo): add Elegoo Centauri 2 machine profiles

* chore(profiles,elegoo): add type/from to Elegoo process presets
2026-06-25 22:08:27 +08:00
NM
6c7f3629bc fix(profiles): Snapmaker U1 — add bed dimensions to fdm_U1 for all nozzle variants (#14391)
fix(profiles): add printable_area to fdm_U1 so all nozzle variants inherit correct 270x270 bed

The 0.2/0.6/0.8 nozzle profiles inherit from fdm_U1 which had no
printable_area defined, causing them to fall back to a smaller default
bed size. The 0.4 profile was the only one that set it explicitly.

Move printable_area and printable_height to the shared parent (fdm_U1)
so all Snapmaker U1 nozzle variants get the correct 270x270mm bed.
Bump vendor version to trigger profile re-sync on existing installs.

Co-authored-by: ni4223 <ni4223@users.noreply.github.com>
2026-06-25 22:04:10 +08:00
SoftFever
0b77321d3a bump flashforge profile version 2026-06-24 19:16:15 +08:00
Indy Jones
ff83aa41ef Fix duplicate Flashforge filaments in system filament list (#14316)
The `@FF AD5M 0.25 nozzle` filament variants carried the base profile's
full printer list (AD5M/AD5M Pro/AD5X 0.4/0.6/0.8) instead of the 0.25
nozzle printers. Combined with base profiles that also listed the AD5X
0.4/0.6/0.8 printers already covered by dedicated `@FF AD5X` variants,
multiple presets with the same alias became compatible with the same
printer. The filament combobox keys presets by full name but displays
them by alias, so these surfaced as duplicate entries (e.g. "Flashforge
PLA Silk", "Flashforge ASA Basic" shown twice).

Fix the `compatible_printers` lists (data only, no settings changed):
- Repoint the 15 `@FF AD5M 0.25 nozzle` variants to the actual 0.25
  nozzle printers (Adventurer 5M 0.25 + Adventurer 5M Pro 0.25).
- Remove the redundant AD5X 0.4/0.6/0.8 entries from the base profiles
  where dedicated AD5X variants already exist.
- Bump Flashforge profile version to 02.04.00.02.

Each affected filament now resolves to exactly one preset per printer,
and the previously uncovered AD5M 0.25 nozzle printers gain coverage.
2026-06-24 14:20:11 +08:00
NM
91b712a237 feat(profiles): Snapmaker U1, add 0.2mm & 0.8mm nozzle profiles, complete 0.6mm process lineup (#14305)
* Snapmaker U1: add 0.2mm and 0.8mm nozzle profiles

Add machine and process profiles for the Snapmaker U1's 0.2mm and
0.8mm nozzles, and complete the 0.6mm process lineup. Follows the
same data-only pattern used to add the 0.6 / 0.4+0.6 nozzles in
commit afc3756.

The U1 ships with 0.4, 0.4+0.6 and 0.6 nozzle options today; the 0.2
and 0.8 nozzles are supported hardware but have no profiles, so they
cannot be selected. This adds them the Orca-native way: per-nozzle
machine presets plus a model-file dropdown entry, with their process
profiles filtered in via compatible_printers.

Machine (2): lean presets inheriting fdm_U1, mirroring the existing
SM_U1_06 (0.6) preset and overriding only the per-nozzle values;
setting_ids SM_U1_02 / SM_U1_08.

Process (21): 2 per-nozzle commons (fdm_process_U1_0.2_common,
_0.8_common) holding the nozzle line widths, plus 19 profiles
(0.2: 8, 0.6: 6, 0.8: 5) that inherit their per-nozzle common and
carry their own layer height, matching upstream's factoring. The two
0.24 Standard profiles that shared id GP029 are split into
GP029_06_024 / GP029_08_024.

Model dropdown: machine/Snapmaker U1.json nozzle_diameter
"0.4;0.4+0.6;0.6" -> "0.2;0.4;0.4+0.6;0.6;0.8".
Vendor index: register the new presets in Snapmaker.json.

The existing 0.4 / 0.6 / 0.4+0.6 presets resolve identically before
and after. scripts/orca_extra_profile_check.py and the profile
validator both pass.

* chore(profiles): bump Snapmaker vendor version to 02.04.00.04

Bump the Snapmaker vendor config_version so existing installs pick up the new 0.2mm and 0.8mm U1 nozzle profiles. PresetUpdater only re-imports a vendor bundle when the shipped version is strictly greater than the cached one.

---------

Co-authored-by: ni4223 <ni4223@users.noreply.github.com>
2026-06-24 14:18:38 +08:00
TheLegendTubaGuy
8491f87ddb Set Qidi X-Max 4 printer agent (#14334)
* Set Qidi X-Max 4 printer agent

* bump version

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-24 14:16:20 +08:00
Indy Jones
b8dd2d3ca8 Fix start G-code: wait for nozzle temperature before purge line (#14120)
Several Artillery and Flashforge machine profiles set the first-layer nozzle temperature with M104 (set, no wait) immediately before the purge/prime line. The purge then runs before the nozzle reaches temperature, so filament is extruded through a nozzle that is not yet hot enough to melt it. Changed M104 to M109 so the printer waits for the target temperature before purging.

Affected profiles:
- Artillery Sidewinder X3 Plus / X3 Pro / X4 Plus / X4 Pro (0.4 nozzle)
- Flashforge AD5X (0.25/0.4/0.6/0.8)
- Flashforge Adventurer 5M / 5M Pro (0.25/0.8 overrides + shared fdm_adventurer5m_common, which also covers the 0.4/0.6 variants via inheritance)

Refs #4337
2026-06-20 20:16:37 +08:00
SoftFever
9eeb73b68b feat: Support 3MF as g-code (use_3mf option) (#14238)
* feat: add support for 3MF file format in printer configurations and export options

* fix file extension

* enable 3mf for X Max 4

* disable use_3mf for X Plus 4

* Fixed an issue where `label_object_enabled` was not properly propagated to 3mf

* enable exclude object for Max 4

* remove hardcoded use 3mf for flashforge, move them to the new printer profiles config
2026-06-17 15:39:40 +08:00
hamham999
7ab3174f7c Fixing the volumetric speed setting for some Creality filaments (#14237) 2026-06-16 18:16:01 -03:00
hamham999
d07cb462a8 Creality K series printer updated start gcode (#14118)
* edit startgcode for K series printers

* Update Creality K1 (0.4 nozzle).json
2026-06-11 14:06:25 +08:00
wujie
3be36bdea4 Fix Elegoo CC2 layer stats G-code and missing Giga preset renamed_from (#14136)
* Sync Elegoo profiles from ElegooSlicer

Update vendor Elegoo.json, filament/machine/process trees, and OrcaFilamentLibrary
Elegoo entries. Align machine default material names with existing filament preset names.

* feat: expose filament_name for G-code export filename format

Derive from filament_settings_id for the first active extruder and strip the suffix after @, matching ElegooSlicer so filename_format can use {filament_name}.

* chore: reorder Elegoo entries in OrcaFilamentLibrary

Group Elegoo @base profiles and bump library version to 02.03.02.62.

* sync OrcaFilamentLibrary.json with Elegoo filament profiles

* fix: clean up Elegoo process renamed_from for profile validation

Add single renamed_from only where preset names changed from legacy Orca
names; remove duplicate Rapid @System library entries that conflicted with
ECC2 vendor presets.

* fix(profiles): add missing Elegoo renamed_from for profile validation

CI custom-preset tests still inherit legacy Orca preset names that no
longer exist after the Elegoo bundle update. Add renamed_from on process,
Neptune 4 machines, OrcaFilamentLibrary filaments, and Giga profiles so
inherits resolve again, without changing print parameters.

* fix(profiles,elegoo): resolve renamed presets and CC2 SET_PRINT_STATS_INFO G-code

Resolve legacy preset names through renamed_from when validating presets and loading external projects. Add missing renamed_from aliases for Elegoo Giga process and OrcaFilamentLibrary filaments. Combine TOTAL_LAYER and CURRENT_LAYER in one SET_PRINT_STATS_INFO command on Centauri Carbon 2 (ECC2), Centauri (EC), and Centauri Carbon (ECC) 0.4 nozzle profiles.

* chore(profiles): bump Elegoo and OrcaFilamentLibrary profile versions

Refresh installed profile bundles after renamed_from aliases, CC2 SET_PRINT_STATS_INFO G-code, and Preset.cpp renamed preset resolution fixes.
2026-06-10 21:38:39 +08:00
Ian Bassi
c1f3125f75 Qidi q2 start gcode Update (#14111)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-06-08 16:47:47 -03:00
SoftFever
8cc56a9e2a bump change vendor profiles version 2026-06-08 16:47:27 +08:00
Diego Casasnovas
b676fd32b2 Bambu Lab X2D 0.4 enable air filtration (#14090)
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-08 15:44:10 +08:00
Sam
d1c9eb4826 Fix SeeMeCNC Multicolor change (#14096)
* Fix SeeMeCNC Multicolor change

* Fixes for Support

Support fixes for .7 and 1.0 nozzles

* Fix Retractions

* FIX

* bump version

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-08 14:57:39 +08:00
Rodrigo Faselli
2f2ebfaf6e Fixing collisions during material changes on the Snapmaker U1 (#14097)
* Update Snapmaker U1 (0.4 nozzle).json

* geometric clearances fix and bump version

Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>

---------

Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
2026-06-08 14:51:17 +08:00
SoftFever
765b3eaf1c Fix an issue wipe_tower_filament is still set to 1 in some profiles 2026-06-08 14:23:28 +08:00
hamham999
1725a130fa Fixing process names and deleting old/duplicate processes of Creality Printers (#14085)
* Fixing process names and delete old/duplicate processes

* Update Creality CR-10 V3 0.6 nozzle.json

* naming fixes passes extra Profil valitadion
2026-06-07 22:57:57 +08:00
SoftFever
995facc3b7 bump profile versions for those have changes 2026-06-07 21:25:10 +08:00
SoftFever
10a1b17381 Feature/fix profile variants issus (#14084)
* add print variant validation

* fix one profile error

* fix more prifiles
2026-06-07 17:46:53 +08:00
Sam
9539dee052 Fixed speeds For SeeMeCNC 3D Printers (#14075)
* Fix speeds

* Fix

* Fix

* Wrong Syntax

* Fix Syntax

* Fix Jerk vals

* Speeds to accel fix

* Fix per nozzle size accel fix

* Create Z-Bolt.json

* seemecnc speeds fix
2026-06-07 13:33:18 +08:00
SoftFever
fcfadf0e8c Creality K-series support: LAN discovery + CFS filament sync + filament profiles (#13752)
## Summary

Adds end-to-end Creality K-series (K2 / K2 Plus / K2 Pro) host support
to OrcaSlicer in a single bundle, per [@SoftFever's request to
consolidate](https://github.com/OrcaSlicer/OrcaSlicer/pull/13752#issuecomment-4560837450)
the previously stacked PRs. Three logically separable features, all
gated on `host_type=crealityprint`:

1. **LAN auto-discovery** — `Browse...` in the Physical Printer dialog
now finds K-series printers on the local network via a DNS-SD
meta-browser (per-device-unique service names
`_Creality-<MAC>._udp.local.`). Other host types unchanged.
2. **CFS filament sync** — `CrealityPrintAgent` (inheriting
`MoonrakerPrinterAgent`) queries the K-series WebSocket on `:9999` for
`boxsInfo`, maps loaded CFS slots to Orca filament presets, and
populates the Sidebar via the standard `fetch_filament_info` →
`build_ams_payload` path. Matches the shape of `MoonrakerPrinterAgent` /
`QidiPrinterAgent` / `SnapmakerPrinterAgent` per [the earlier review
feedback](https://github.com/OrcaSlicer/OrcaSlicer/pull/13752#discussion_r3278574545).
3. **K-series filament profiles** — system profiles for CR-PLA / CR-PETG
/ CR-ABS / CR-Silk / CR-TPU / CR-Nylon / CR-Wood / Hyper PLA / etc. on
K2 / K2 Plus / K2 Pro nozzle sizes (imported from CrealityPrint v7.1.0+,
normalised to OrcaSlicer profile conventions).

The previous stack base (#13291, *CrealityPrint as host type*, by
@imammedo) is **also bundled into this PR** since it's currently
conflicting with main and not moving. Happy to extract it back out if
@imammedo's PR is preferred to land first for attribution — let me know.

## What this PR is *not*

- **No new UI surfaces.** All three features hook into existing UI
(Browse button, Sidebar sync icon, filament dropdowns).
- **No phone-home / telemetry.** No Hark Tech endpoints, no licence
checks, no opt-in dialogs. Pure upstream feature work.
- **No K-series-specific Device tab.** Embedded WebView falls back to
Fluidd/Mainsail on `:4408`, same shape as the existing Moonraker
integration.

## Screenshots

Captured against a K2 Combo (F021, firmware v1.1.260206) on the v4 test
build:

| | |
|---|---|
| ![Discovery
dialog](https://harktech.co.uk/tools/orca-k2/screenshots/orca-k2-discovery-dialog.png)
| **Discovery dialog** — `Browse...` flow on a `host_type=crealityprint`
printer. Click → ~5–10 s LAN scan → K2 found with model + hostname + IP.
|
| ![Filament sidebar populated from
CFS](https://harktech.co.uk/tools/orca-k2/screenshots/orca-k2-cfs-sync-filaments.png)
| **CFS filament sync** — Sidebar after clicking the sync icon: 4 slots
populate with the real loaded CFS spools (3× Hyper PLA + 1× CR-Silk). |
| ![Device tab showing
Mainsail](https://harktech.co.uk/tools/orca-k2/screenshots/orca-k2-device-tab-mainsail.png)
| **Device tab** — Mainsail loaded into the embedded WebView for
`host_type=crealityprint`, mid-print state visible. |

## What's added

### LAN discovery
- **`deps_src/mdns/`** — vendors
[mjansson/mdns](https://github.com/mjansson/mdns) (public domain) plus
Creality's `cxmdns` C++ wrapper from CrealityPrint v7.1.1 (AGPL-3.0,
compatible with OrcaSlicer's AGPL-3.0). Attribution in
`deps_src/mdns/NOTICE.md`.
- **`Utils/CrealityHostDiscovery.{hpp,cpp}`** — synchronous DNS-SD scan
+ per-host `GET /info` probe. Maps model codes `F008` / `F012` / `F021`
→ K2 Plus / K2 Pro / K2.
- **`GUI/CrealityDiscoveryDialog.{hpp,cpp}`** — modal `wxDialog` showing
Model / Hostname / IP for each discovered host.
- **`src/slic3r/CMakeLists.txt`** — adds `Iphlpapi.lib` and `Ws2_32.lib`
to `libslic3r_gui`'s MSVC link line (needed by `GetAdaptersAddresses` +
Winsock2 calls in vendored `mdns.c`).

### CFS filament sync
- **`Utils/CrealityPrintAgent.{hpp,cpp}`** — inherits
`MoonrakerPrinterAgent`, overrides `fetch_filament_info()` to query the
K-series WS protocol on `:9999`, build `AmsTrayData`, and call inherited
`build_ams_payload()`. No printer-specific code lives outside the agent.
- K2 Plus slot-state parser handles the three documented slot states
(`0` empty / `1` manually entered / `2` RFID-tagged) per [DaviBe92's
reverse-engineering docs](https://github.com/DaviBe92/k2-websocket-re).

### K-series filament profiles
- ~110 profile JSONs under `resources/profiles/Creality/filament/`
covering K2 / K2 Plus / K2 Pro × 0.2 / 0.4 / 0.6 / 0.8 nozzle combos ×
CR-PLA / CR-PETG / CR-ABS / CR-Silk / CR-TPU / CR-Nylon / CR-Wood /
Hyper PLA / Hyper PETG-GF / Hyper PLA-CF / etc.
- Imported from CrealityPrint v7.1.0; normalised to OrcaSlicer profile
conventions (tabs not spaces, no `{if !multicolor_method}` wrappers,
`filament_vendor: ["Creality"]` on Creality Generic profiles).

## Tester confirmations on the v4 test build

| Printer | Firmware | Result | Reporter |
|---|---|---|---|
| K2 Pro | v1.1.5.5 / CFS v1.4.2 |  LAN discovery on #13752 test build
|
[@Requiem-MH](https://github.com/OrcaSlicer/OrcaSlicer/pull/13752#issuecomment-4495235225)
|
| K2 Pro | v1.1.5.5 / CFS v1.4.2 |  CFS sync across 1-CFS, 2-CFS,
partial, full configurations |
[@Requiem-MH](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4495230061)
|
| K2 Plus | v1.1.5.2 / CFS v1.2.2 |  Slot-state fix resolves the
partial-sync regression |
[@DaviBe92](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4499425852)
|
| K2 Plus | v1.1.5.5 / CFS v1.4.2 |  All slots syncing correctly after
fix |
[@swilsonnc](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4503273127)
|
| K2 Plus | (Reddit u/TrainAss) |  Both PLA + PETG slots populated
correctly |
[@TrainAss](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4503401664)
|
| K1C | (latest stock) |  `boxsInfo` payload format compatible (4 slots
of generic PETG) |
[@JoveYu](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4519036448)
|

## Known follow-ups (out of scope)

- **Snapmaker U1 regression**
([@TrainAss](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4529350262)):
the v3 build also happened to sync filament from his U1; v4 regressed
this. The refactor only touches `htCrealityPrint`-gated code so this is
likely incidental — needs his config + logs to diagnose. Will follow up
in a separate issue once this lands.
- **Native Device tab for K-series**: deferred. Current Mainsail WebView
shim covers the common case.
- **#13581 (@hamham999) profile overlap**: confirmed minimal code
conflict (zero), profile-file overlap of ~204 files. Whichever PR lands
second rebases off the other.

## Test plan

- [x] Linux build clean on commit `<UPDATED AFTER BUILD>` (LXC 104, GCC
12, cmake)
- [x] MSVC link clean (manual VS 2026 / MSVC 14.51 build)
- [x] End-to-end on real hardware: K2 Combo, K2 Pro, K2 Plus, K1C
- [x] `host_type ≠ htCrealityPrint` paths unchanged — Bonjour fires for
OctoPrint, Flashforge picker fires for Flashforge, Moonraker / Qidi /
Snapmaker agents unchanged
- [x] Profile-validation CI green (was a separate Elegoo test-fixture
failure on main, not introduced by this PR)

Signed-off-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: grant0013 <grant@harktech.co.uk>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: hamham999 <hamham999@users.noreply.github.com>
Co-authored-by: Alys Andreollo <3528187+alysandreollo@users.noreply.github.com>
2026-06-07 13:16:50 +08:00
grant0013
e9cf3fa178 harktech: drop hardcoded personal print_host IP from SPARKX i7 presets
The SPARKX i7 machine presets shipped (via #13947) with a contributor's
LAN IP (http://10.10.1.39) hardcoded in print_host. Remove it to match
the K2/K2 Pro/K2 Plus presets, which carry no print_host key — LAN
discovery + the crealityprint agent populate the host at add-printer time.
2026-06-06 23:28:06 +00:00
Alys Andreollo
4f0213d2d7 feat(profiles/Creality): SPARKX i7 to also use new CrealityPrint agent
This updates the SPARKX i7 from a "regular" klipper printer to use the
new CrealityPrinter agent, that talks to it's "supervisor" webserver
instead, and can use the native Creality features: CFS, filament
querying, filament remapping, etc...
2026-06-06 23:27:38 +00:00
grant0013
4469f009c4 harktech: set host_type + printer_agent=crealityprint on K2/K2 Pro/K2 Plus presets
The CFS-aware filament sync resolves its agent via switch_printer_agent(),
which reads the preset's `printer_agent` field and falls back to "orca" when
unset -- so the K-series presets need printer_agent="crealityprint" (the id
registered by CrealityPrintAgent) in addition to host_type="crealityprint"
(classic PrintHost/LAN-discovery). Without printer_agent the Device-tab sync
defaults to the Orca agent and CFS sync doesn't engage. Set both on the
F008/F012/F021 models that supports_multi_color_print() covers (not K2 SE).
Both keys are in s_PhysicalPrinter_opts, so a new Physical Printer inherits
them from the preset.
2026-06-06 15:01:44 +00:00
hamham999
78eec3a72e Bug fix of Creality K2 Plus profiles start gcode (#14073) 2026-06-06 20:25:58 +08:00
hamham999
abe6f95aae Updated profiles for all Creality K-series printers (+CFS-c support) and Creality SparkX i7 support (#13947)
* v2 updated profiles and fixes

* Add files via upload

fixing timelaps error

* Add files via upload

fix timelapses

* syntax fix

* fixing profil errors

* Add files via upload

fixing

* Add files via upload

fixing errors

* fixing syntax errors

* Add files via upload

syntax fix

* Add files via upload

naming fix

* Update SPARKX startgcode

* Update SPARKX i7 startgcode

* Update SPARKX i7 startgcode

* Update SPARKX i7 startgcode

* delete old file dublicates

* SparkX gcode fix

* indentation fix

* name changes of printers and deleted 2025 versions

* syntax fix

* fixes

* fixes

* profil name fixes and syntax

* fixed naming restored old names, renamed Ender 3 S1 Sonic, fixed Creality.json - used original formating and fixed the printer list order

* syntax

* Add files via upload

syntax, formating

* differences fix

fixing deleted lines in creality.json

* differences fix in creality.json

* Update Creality CR-10 SE.json

* Update Creality CR-10 V3.json

* Update Creality CR-6 Max.json

* Update Creality CR-10 V3.json

* Update Creality CR-6 SE.json

* Update Creality Ender-3 Pro.json

* Update Creality Ender-3 S1 Plus.json

* Update Creality Ender-3 V3 KE.json

* Update Creality Ender-3.json

* Update Creality Ender-5 Pro (2019).json

* Update Creality K1 Max.json

* Update Creality K1.json

* Update Creality K1C.json

* Update Creality K2 Plus.json

* Update Creality K2 Pro.json

* Update Creality K2.json

* filament and process files formating and fixes form comments

* formating fixes

* 0 value fix

* combine filament profiles

* fix deleted filament

* machine files formatting

* machine files formatting

* Update Creality Hi.json change bed type

* Update bed type Creality Ender-5 Max.json

* chore(profiles/Creality): update SPARKX i7 process names

Update the profile names according to the existing ones, according to
layer height vs nozzle diameter:

- 0.10mm @ 0.2: "HighDetail"
- 0.08mm @ 0.4: "SuperDetail"
- 0.12mm @ 0.4: "Fine"
- 0.16mm @ 0.4: "Optimal"
- 0.20mm @ 0.4: "Standard" (maintained)
- 0.24mm @ 0.4: "Draft"
- 0.28mm @ 0.4: "SuperDraft"
- 0.30mm @ 0.6: "Standard" (maintained)
- 0.40mm @ 0.8: "Standard" (maintained)

This leaves the "HueForge" one untouched, that's it's own setting.

* chore(profiles/Creality): update machine with new process name

Matches the default process for the 0.2 nozzle to the renamed process.

* chore(profiles/Creality): update processes on `Creality.json`

Update the main `Creality.json` manifest with the updated process (file)
names.

* Update Creality K1 Max (0.4 nozzle).json

* Update Creality K1 Max (0.6 nozzle).json

* Update Creality K1 Max (0.8 nozzle).json

* delete cr30 and k1 se naming fix

* Update 0.20mm Standard @Creality K1 SE 0.4.json

* Update Creality.json delete duplicat entry

* fixed formatting

* split PR

* formatting fixes

* settings id instead of filament id delete

* Delete Creality.json in wrong location

* delete filament id

* Update Creality SPARKX i7 0.2 nozzle.json

* Update Creality SPARKX i7 0.4 nozzle.json

* Update Creality SPARKX i7 0.6 nozzle.json

* Update Creality SPARKX i7 0.8 nozzle.json

* delete ender 5 files

* delete ender 5 max files

* adding ender 5 max files

* Update Creality Hi 0.6 nozzle.json

* fixes from comments

* fixes from comments

* fixes from comments and adding filamentid back

* tabs formatting fixes

* fixes

* K1C fixes and printer_structure delete undefined

* formatting

* fixes from comments

* fixes from comments

* use original pictures

* naming fixes, Default Filament profile and Filaments fixed

* match order of key process files

* match order in Creality.json and fix Profile error

* order of printers in menu fix and max accel warning fixed

* revert back fixes for warnings

* fix duplicate keys from resolving merging conflicts

---------

Co-authored-by: Alys Andreollo <3528187+alysandreollo@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-06 17:36:12 +08:00
Kuzuri
94b13120d8 Update Snapmaker U1 (0.4 nozzle).json (#14066)
Made small performance, safety, and readability improvements.

Now the logic is only called to move the build plate lower than the tallest object if the print_sequence is, "by object".

More precise checks to not move the plate beyond the maximum build volume.
2026-06-06 13:49:10 +08:00
ArtytheSecond2nd
72f7b125c6 Add profiles for the Anycubic Kobra S1 Max (#14017)
* Add files via upload

* Delete resources/profiles/Anycubic.json

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Delete resources/profiles/Anycubic.json

* Add files via upload

* Update spacing

* Fix error

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-05 20:59:34 +08:00
Ian Bassi
ea35b9ce68 Divided filament for features (#14042)
* Implement legacy key handling to address possible profile issues following semantic change of per feature filaments

* Reimport base

* Fix inner wall

* Profiles update

---------

Co-authored-by: igiannakas <ioannis@my-spot.co.uk>
2026-06-05 20:45:43 +08:00
Ioannis Giannakas
081577fcfa Fix printer variant for voron 0.4 profiles (#14041) 2026-06-05 18:02:23 +08:00
Ian Bassi
19e8c24f14 Filament for features bump version (#14033) 2026-06-04 12:42:47 -03:00
TheLegendTubaGuy
e0a47c61a2 [FIX] Fix Elegoo process profiles (#14020)
* Bump Elegoo profile version to refresh installed bundle

Bumps the Elegoo vendor profile version so installed profile bundles are refreshed from bundled resources after the recent Elegoo profile sync.\n\nThe previous version stayed at 02.04.00.00 after the profile layout changed, so existing installs could keep loading stale system/Elegoo files. That stale bundle can abort during profile loading and cause user presets inheriting from Elegoo machines, such as OrangeStorm Giga and Neptune 3 Max, to report missing parents.\n\nValidation:\n- jq parsed resources/profiles/Elegoo.json\n- verified all Elegoo.json sub_path entries exist\n- git diff --check

* Fix Elegoo process profile manifest
2026-06-04 14:19:10 +08:00
gyarros
a3e479af4e Add FilAr filament vendor (PLA, PLA-mate, PETG) (#13977) 2026-06-04 14:15:28 +08:00
Bingo2023
d6a49ace15 Update Bambu Lab X2D 0.4 nozzle.json (#13985)
* Update Bambu Lab X2D 0.4 nozzle.json

corrected mistake from 31.5.2026
" is correct in machine code.

* Update Bambu Lab X2D 0.4 nozzle.json

fixed error with " -> \"

* Merge branch 'main' into patch-2
2026-06-01 22:15:34 +08:00
LH
7f7e7dff3a Update LH Stinger profile (#13865)
- Adding default speed for the new initial_layer_travel_acceleration
2026-06-01 00:13:35 +08:00
anjis
4d05ba0d02 Support GIGA multi-printhead configuration options (#13901)
* Support GIGA multi-printhead configuration options

* Removed unused G-code comments.

* Added parallel_printheads_count option to configure parallel printhead count.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-01 00:11:07 +08:00
Matias Fernandez
8362eba19d Remove redundant toolchange retraction/un-retraction during filament change in CC1 profile (#13456)
* Fix: Disable redundant toolchange retraction for Elegoo Centauri Carbon
Sets `retract_length_toolchange` to 0 in the Elegoo Centauri Carbon (ECC) machine profile.
This resolves an issue where a massive filament blob would form on the prime tower immediately after resuming a manual filament change (M600). The blob was caused by a conflict between OrcaSlicer's default toolchange logic and Elegoo's hardcoded firmware behavior:
- Elegoo's firmware (specifically the `cmd_PAUSE` and `cmd_RESUME` sequences) completely takes over pressure management during an M600. It performs its own initial 2mm retraction, a 120mm purge, and a silicone brush wipe, returning the print head to the prime tower perfectly primed.
- Previously, Slicer was unaware of the firmware's priming and would issue a redundant 2mm un-retract (`G1 E2`) upon resume. Forcing 2mm of filament out of an already-full nozzle created the blob.
By disabling the toolchange retraction (`0`), Slicer correctly hands off filament pressure management during an M600 entirely to the Elegoo firmware, preventing double-retractions and eliminating the blob.

* fix errors after merging main

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-31 20:35:35 +08:00
Bingo2023
c714935596 Update Bambu Lab X2D 0.4 nozzle.json - updade Maschine Startcode (#13944)
* Update Bambu Lab X2D 0.4 nozzle.json - updade Maschine Startcode

bump in changes from BBL

update:
===== 2026/05/08 =====

old:
===== 2026/03/26 =====

* Update Bambu Lab X2D 0.4 nozzle.json

corrected:
- " " -> ' '
- {Tab} -> deleted

* Update Bambu Lab X2D 0.4 nozzle.json

replaced " -> '
2026-05-31 18:46:46 +08:00
SoftFever
b78d5b94dc Add SeeMeCNC printer profiles (#13924)
* Add SeeMeCNC printer profiles

Adds machine, filament, and process profiles for SeeMeCNC printers:
Artemis, BOSSdelta 300, BOSSdelta 500 (0505/0510/0521), and
RostockMAX v3.2/v4 — covering 0.4mm, 0.5mm, 0.7mm, and 1.0mm nozzles.
Includes PLA, ABS, PETG, PETG-CF, PA-CF, and TPU filament profiles.

Co-authored-by: Sam <47287571+Sewbot@users.noreply.github.com>

* bump version

---------

Co-authored-by: Sam <47287571+Sewbot@users.noreply.github.com>
2026-05-30 22:06:54 +08:00
Jingxi-Polymaker
ee8bb54ca8 Add more Polymaker filament presets (#13858)
* add new presets

* fix inhernce

* fix rename

* update

* apply fix

* update index
2026-05-29 15:46:41 +08:00
Ian Bassi
3db37d004a Fix + Support 'Default' filament option (index 0) (#13887)
* Support 'Default' filament option (index 0)

Treat filament index 0 as the new "Default" (use active object/part filament) instead of using 1. Update config defaults and tooltips for wall/sparse/solid infill filament options (min/default -> 0, tooltip explains "Default"). Adjust normalization and propagation logic to respect explicit feature overrides and only apply base extruder when feature values are zero; only copy sparse->solid infill when sparse > 0. Introduce FeatureFilamentOverrideMask and clamp_feature_filament_to_valid to resolve and clamp feature filaments. Update UI lists and selection behavior to expose a "Default" entry and handle zero-based indices in PartPlate and Plater.

* enable_filament_for_features option

Co-Authored-By: LixNix <105106115+lixnix@users.noreply.github.com>

* \n

* Allow wipe_tower_filament to equal nozzle count

Relax the assertion in Print::extruders to permit wipe_tower_filament == config().nozzle_diameter.size(). The configuration value is 1-based and the code subtracts 1 when pushing the extruder index, so equality should be valid and selecting the last nozzle should not trigger an assertion.

* Revert "Allow wipe_tower_filament to equal nozzle count"

This reverts commit 2c976574327a8bcdc74a1b296bf1aaff7752a94e.

* Revert "enable_filament_for_features option"

This reverts commit 01c13baeddb8e26793f752deab788ee4d086975b.

* Migrate legacy feature filament defaults

Add migration logic to convert legacy feature filament selections from 1 to 0 for older 3mf files. Introduces a local migrate_legacy_feature_filament_defaults lambda in src/OrcaSlicer.cpp and src/slic3r/GUI/Plater.cpp that scans keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) on configs/objects/volumes, updates values, counts conversions and logs the result. Also adds a Semver check for "2.4.0-dev" in OrcaSlicer to trigger the migration for files older than that version. This preserves expected default filament selections when loading older project files.

* Update OrcaSlicer.cpp

* Extract migration helper to ConfigMigrations

Centralize legacy feature-filament default migration by moving the duplicated lambda into ConfigMigrations::migrate_legacy_feature_filament_defaults (src/libslic3r/Config.cpp) and declaring it in Config.hpp. Update OrcaSlicer.cpp and slic3r/GUI/Plater.cpp to call the new function instead of inline lambdas. The helper converts specific feature filament keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) from int 1 to 0 and returns the count of conversions to avoid duplicated migration logic.

* Remove DynamicFilamentList1Based and consolidate lists

Delete the specialized DynamicFilamentList1Based struct and its global instance. Update Choice registrations to use the single dynamic_filament_list for wall, sparse_infill and solid_infill filaments, and remove the extra update call for the removed instance. This consolidates filament choice handling and removes duplicated logic in Plater.cpp.

* move it

* fix objects

* Update Config.hpp

* Update profiles
2026-05-29 10:54:26 +08:00
TheLegendTubaGuy
d3b110ebf6 Remove hardcoded Qidi Max 4 input shaper (#13864) 2026-05-28 20:25:09 -03:00
TheLegendTubaGuy
d279e241f6 Fix Kobra 3 Max bed exclusion zones (#13879) 2026-05-29 00:26:34 +08:00
Mitchell Mashburn
7999bbd819 Fix naming of re:3D cover pictures to match printer model. (#13907)
* Fix naming of cover pictures to match printer model.

* Rename buildplate textures.
2026-05-29 00:25:47 +08:00
Mitchell Mashburn
6f79b63959 Update re:3D profiles. (#13750)
* Update/add re:3D profiles.

* Fix encoding issue with UTF-8 BOM

* Change spaces to tabs.

* Fix alignment-based space indentation issues.

* Test: rename_from property

* Test 2: rename_from property

* Test 3: use 'renamed' instead of 'rename'

* Add renamed property for each conflicting profile.

* Revert to optimized assets improved on [#13149](https://github.com/OrcaSlicer/OrcaSlicer/pull/13149)
2026-05-28 12:08:19 +08:00
wujie
5b071d5013 Sync Elegoo profiles (#13790)
* Sync Elegoo profiles from ElegooSlicer

Update vendor Elegoo.json, filament/machine/process trees, and OrcaFilamentLibrary
Elegoo entries. Align machine default material names with existing filament preset names.

* feat: expose filament_name for G-code export filename format

Derive from filament_settings_id for the first active extruder and strip the suffix after @, matching ElegooSlicer so filename_format can use {filament_name}.

* chore: reorder Elegoo entries in OrcaFilamentLibrary

Group Elegoo @base profiles and bump library version to 02.03.02.62.

* sync OrcaFilamentLibrary.json with Elegoo filament profiles

* fix: clean up Elegoo process renamed_from for profile validation

Add single renamed_from only where preset names changed from legacy Orca
names; remove duplicate Rapid @System library entries that conflicted with
ECC2 vendor presets.

* fix(profiles): add missing Elegoo renamed_from for profile validation

CI custom-preset tests still inherit legacy Orca preset names that no
longer exist after the Elegoo bundle update. Add renamed_from on process,
Neptune 4 machines, OrcaFilamentLibrary filaments, and Giga profiles so
inherits resolve again, without changing print parameters.
2026-05-27 22:58:39 +08:00