Commit Graph
2204 Commits
Author SHA1 Message Date
b0ee2cbbef Add PlastAR (PLA) and Printalot (ABS) filament vendors (#14825)
* Add PlastAR and Printalot filament vendors

Two Argentine brands from Printalot: PlastAR (budget PLA) and Printalot
(ABS). Each has a tuned @base plus per-color presets covering the
manufacturer's color lineup.

PlastAR PLA: flow 0.98, 1.75 mm, nozzle 220 C (190-230), bed 60 C; 14 colors.
Printalot ABS: flow 0.94, density 1.05, retraction 0.2 mm, max volumetric
18 mm3/s, nozzle 250 C (240-270), bed 100 C; 14 colors.

Per-color presets inherit their @base (no per-color parameter changes).
Passes scripts/orca_extra_profile_check.py.

* Ship PlastAR and Printalot as a single Printalot filament vendor

Place both Argentine lines in one OrcaFilamentLibrary/Printalot bundle and follow the library's brand shape: a non-selectable @base plus one all-printer @System per product, which is where a library preset meant for every printer belongs. The former per-color presets are dropped, leaving PlastAR PLA and Printalot ABS with their PLA and 250 C ABS material values. setting_ids are minted by the tooling; filament_ids resolve through the @base roots.

---------

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 14:15:34 +08:00
55a0b51ae2 Add Polymaker PLA Pro filament profile (#15046)
* Add Polymaker PLA Pro filament profile

Polymaker PLA Pro is present in the tree only as printer-scoped variants
under Snapmaker U1 and Anycubic Kobra S1, so it is invisible to every other
printer. This adds it to the Orca Filament Library as OGFPM020 so it is
selectable generally.

Values are taken from the manufacturer's published print settings and
cross-checked against the two existing vendor profiles:

  density 1.23 g/cm3       both existing profiles agree
  softening 55 C           both existing profiles agree
  nozzle 220 C (210-230)   manufacturer's stated range
  max volumetric speed 15  Snapmaker 15, Anycubic 16

Flow ratio is set to 0.96, matching the Snapmaker profile. Worth noting for
review: the two existing profiles disagree here -- Snapmaker 0.96, Anycubic
0.85 -- because flow ratio depends on the extruder as much as the filament.
Any single value in a vendor-neutral preset is a starting point users should
calibrate; 0.96 is closer to the generic PLA baseline than 0.85 is.

setting_id assigned by scripts/assign_vendor_setting_ids.py.
OrcaFilamentLibrary version bumped 02.04.00.03 -> 02.04.00.04.

* fix errors

---------

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 13:42:01 +08:00
Tim Schneiderandyw4z b6bb1b92c9 Add Meltingplot vendor profiles (CHX 350 + MBL series) (#14756)
* Add Meltingplot vendor profiles (CHX 350 + MBL series)

Adds the Meltingplot vendor bundle with 5 printer models:
- CHX 350 (880x422x943, RepRapFirmware/Duet)
- MBL 133/136/308/480 (RepRapFirmware/Duet)

Each model ships 0.4/0.6/0.8/1.0/1.2 nozzle variants. Layer height
presets span 40-60% of the nozzle diameter and deliberately avoid
heights that divide the Z screw lead evenly (CHX: 1204 ball screw,
4 mm lead; MBL: TR4x2 trapezoidal screw, 8 mm lead) so periodic
screw error does not repeat as banding.

All printers use 2.85 mm filament, so the bundle carries its own
filament library (PLA, StoneFil, ABS, TitanX, ASA, PETG, PA6 CF HT,
STYX 12, PP 9-2, PET-CF15, Extrudr PLA NX2 Matt, Igus iglidur J260)
with the 2.85 mm diameter pinned once in the vendor-local
fdm_filament_common base.

Machine limits mirror the printers' firmware configuration; machine
limit emission is disabled so the values only feed the time estimator.

* Add per-nozzle volumetric flow limits and nozzle size in filename

Cap filament volumetric speed per nozzle (0.4: 14, 0.6: 20, 0.8: 26,
1.0: 30, 1.2: 40 mm3/s). Filaments whose limit exceeds a nozzle's
capability get a nozzle-scoped child profile that only lowers
filament_max_volumetric_speed; filament_id is inherited so all nozzle
variants remain the same material.

Also include layer height and nozzle diameter in the g-code filename.

* Set CHX 350 machine time cost to 5 EUR/h

* Inherit Meltingplot filaments from OrcaFilamentLibrary generics

Per the profile creation guide, vendor filament profiles now inherit
from Generic * @System instead of vendor-local fdm_filament_* copies.
Each profile carries only Meltingplot-specific deviations plus the
2.85 mm filament diameter; the seven local fdm_filament_* base files
are removed.

Deliberate pins where the library default would change tuned behavior:
- PLA/ABS/TitanX keep filament_max_volumetric_speed 20 (0.6 nozzle cap)
- ABS/PET-CF15 keep close_fan_the_first_x_layers 1
- STYX 12 sets required_nozzle_HRC 0 (unfilled PA12, density 1.02)

* Remove Meltingplot StoneFil filament profile

* Meltingplot ABS: use library fan settings

* Meltingplot TitanX/ABS: use library fan and nozzle temperature settings

* Remove STYX 12, PP 9-2 and Igus iglidur J260 filament profiles

* Meltingplot ASA: use library fan_max_speed

* Derive per-nozzle volumetric speed caps from physical limit formula

Caps now follow V = 34*d * m / S: the 34*d limit line calibrated on
Micro Swiss Volcano plated copper at 2.85 mm, material factor m from
the OrcaFilamentLibrary generic ratios (PLA/ABS/ASA 1.0, PETG 10/12,
PETG-CF 11.5/12, PA-CF 8/12, PLA Matte 11/12), safety factor S = 1.25
covering batch/moisture/wear/diameter tolerances.

Each material base now serves the 1.2 nozzle at its maximum cap;
children @0.4-@1.0 lower the cap per nozzle. Machine variant
default_filament_profile entries point at the matching preset.

* Scale slow_down_layer_time per nozzle from bead cross-section

Minimum layer time follows the derived cooling rule: heat per layer
scales with bead cross-section (layer height x line width), so the
0.8-nozzle-tuned values are scaled by q(d)/q(0.8) using each nozzle's
standard preset geometry. Bases carry the 1.2 value, children @0.4-@1.0
their nozzle-specific value.

* Meltingplot: lift Z above the print before the end macro

Add a G90 / G1 Z{min(max_layer_z + 5, printable_height)} F600 move at the
start of machine_end_gcode, before M98 print_end shuts the printer down and
parks it. Besides clearing the part, the explicit Z coordinate lets the Duet
file-info parser pick up the object height.

* Meltingplot: cap default layer height at 40% of outer wall width

A 45 deg slope shifts each bead outward by exactly one layer height. With
the Slic3r bead model (rectangle (w-h) x h plus half-circles of diameter h)
the flat contact band to the layer below is w - 2h, so the maximum
self-supporting angle is atan((w-h)/h). Support cannot compensate: the
stair tread at 45 deg is only h wide, far below one support line width, so
no support line ever fits underneath a single step.

All ten machine variants defaulted to h/w = 0.455..0.524, i.e. at or past
the h/w = 0.5 point where the flat contact vanishes. The 0.8 nozzle default
(0.44 mm at w = 0.84) reached atan(0.4/0.44) = 42.3 deg and failed on 45 deg
slopes even with support.

Default presets now satisfy h <= 0.40 * outer_wall_line_width, which leaves
one third of the bead's flat underside in contact at 45 deg and puts the
geometric limit at 56.3 deg. To keep the defaults on sensible ladder rungs,
outer wall width is widened where it was the binding constraint:
chx_small 110 -> 115%, chx_large 105 -> 110%, mbl_04 105 -> 115%.

Ladders are unchanged; the thicker rungs stay available for parts without
steep overhangs.

* Meltingplot PLA: raise slow_down_layer_time by calibration factor 1.5

Print feedback on CHX 350 with a 0.8 nozzle at 0.44 mm layer height showed
curling at the retraction points with the derived value of 25 s. There is no
cooling headroom left to trade: fdm_filament_pla pins fan_min_speed =
fan_max_speed = 100, and additional_cooling_fan_speed is inert because no
Meltingplot machine enables auxiliary_fan. Minimum layer time is the only
remaining lever; 35 s prints cleanly at that geometry.

The cross-section rule only fixes the ratios between nozzle sizes, so this
is a calibration of the PLA anchor itself: both PLA ladders are scaled by
1.5 (Extrudr 9/20/38/56/83 s, Meltingplot PLA 8/17/30/45/66 s for
0.4/0.6/0.8/1.0/1.2). The Extrudr base fan_cooling_layer_time goes 60 -> 100
so the 1.2-nozzle value stays below it.

Other materials are left unchanged - only the PLA anchor has a real
counter-example so far.

* Meltingplot: drop layer heights that cannot print 45 degree walls

A preset whose layer height exceeds ~45% of the outer wall line width has
less than ~6 degrees of reserve on a 45 degree wall (max self-supporting
angle atan((w-h)/h)), and support cannot compensate because the 45 degree
stair tread is only h wide - far below one support line. Those presets are
not usable in practice, so shipping them only invites failed prints.

Removes the 22 rungs above h/w = 0.45 and prunes them from the vendor
index. What remains per nozzle (default first):

  CHX 350   0.4: 0.18 | 0.6: 0.24 0.28 | 0.8: 0.32 0.36
            1.0: 0.44 0.48 | 1.2: 0.48 0.56
  MBL       0.4: 0.18 | 0.6: 0.24 0.28 | 0.8: 0.36 0.34
            1.0: 0.44 0.48 | 1.2: 0.48 0.56

The 0.4 nozzle keeps a single rung: 0.20 mm would qualify (h/w = 0.435) but
divides both screw leads evenly (4/0.20, 8/0.20) and stays excluded by the
Z-artifact rule, and 0.22 is already at 0.478.

Also corrects the MBL 0.8 default to 0.36 mm, which at w = 0.92 sits at
h/w = 0.391 and therefore still satisfies the stricter 40% default rule.

* Meltingplot: require 5 degrees of reserve on 45 degree walls

Replaces the two separate thresholds (h <= 0.40 * outer wall width for
defaults, 0.45 for ladder rungs) with a single requirement stated on the
design constraint itself: every shipped preset must reach

  a_max = atan((w - h) / h) >= 50 deg

i.e. 5 degrees of reserve on a 45 degree wall, equivalent to
h <= 0.456 * outer_wall_line_width. The default is simply the thickest rung
that passes.

The 11 degrees the 40% rule produced were more margin than the failure mode
warrants, and cost throughput for no return. For calibration: across 940
machine defaults from 60 vendor bundles in this repo, the median reserve is
+1.8 deg, 71% ship less than 5 deg, and 8% cannot geometrically produce a
45 deg wall at all.

Adds the rungs the relaxed threshold makes available - 0.30 (0.6 nozzle,
both series) and 0.38 (0.8 nozzle, both series) - and restores the 0.30 mm
MBL preset removed in 5b4862b3 with its original setting_id. 0.20 mm on the
0.4 nozzle and 0.50 mm on the 1.0 nozzle would also qualify but stay
excluded because they divide both screw leads evenly.

Defaults are now (0.4/0.6/0.8/1.0/1.2) 0.18/0.30/0.38/0.48/0.56 for both
series, at 50.2 to 57.3 deg. The 1.2 nozzle deliberately keeps 0.56 rather
than the 0.60 the rule would allow: solidification time scales with h^2 and
bead weight with h*w, so the largest nozzle is the one that should not sit
on the minimum.

* Meltingplot: disable precise wall by default

Precise wall was inheriting OrcaSlicer's global default of true. Disable it
bundle-wide in the vendor process root so it applies to CHX 350 and all MBL
models. Note it was already ignored on the CHX small-nozzle branch, which
uses the inner-outer-inner wall sequence.

* Meltingplot CHX: raise max extruding acceleration to 6000

The 4000 limit silently clamped the profiles' 6000 values for default and
inner wall acceleration, since GCodeWriter caps print acceleration against
machine_max_acceleration_extruding regardless of emit_machine_limits_to_gcode.
Raising it to 6000 matches the X/Y limits so the configured values are emitted
as-is. The firmware's own M201 still governs what is actually driven.

* Meltingplot PA6 CF HT: raise part cooling floor to 40%

Sharp 90 degree corners were washing out layer by layer while straight walls
and overhangs printed cleanly. Overhangs are fine because overhang_fan_speed
forces 100% regardless of layer time; everything else fell back to
fan_min_speed, since at the layer times seen in practice neither branch of the
layer-time fan interpolation applies.

Raise fan_min_speed to 40% and set reduce_fan_stop_start_freq so that floor is
actually applied instead of dropping to zero. Also lower the auxiliary fan to
40% and raise the overhang cooling threshold to 95%, matching the values
validated on the print.

* Meltingplot: re-mint filament ids with orca_id_tool

Upstream now requires every filament_id to be a minted "OF" id derived
from the (filament_vendor, filament_type, name) triple and recorded in
scripts/filament_id_snapshot.json. The hand-made ids this bundle shipped
with (MPFPLA0, EXTNX2M, ...) were rejected by orca_extra_profile_check.

Regenerate them with "orca_id_tool.py --generate --vendor Meltingplot"
and record the result with --update-snapshot. No setting_id changed, and
the ids were never released, so no existing project file refers to them.

* Meltingplot: normalize bundle for updated profile checks

Drop obsolete keys (silent_mode, adaptive_layer_height, tree_support_with_infill) and rebuild the vendor index in canonical order, as orca_profile_tool.py normalize / update-index write them.

* Meltingplot: list per-nozzle filaments in default_materials

The unsuffixed filament presets only cover the 1.2 mm variants, so the 0.4-1.0 mm printer presets had no compatible entry in their model's default_materials. The validator's check_printer_default_materials rejects that, and load_installed_filaments would auto-install no filament for those variants on first run. Name the @0.4/0.6/0.8/1.0 nozzle presets alongside the base ones for PLA, PETG, ABS and ASA.

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-22 00:14:33 +08:00
61dbe5572f Add Flashforge Adventurer A5 printer profiles (#14733)
* Add Flashforge Adventurer A5 printer profiles

Adds system profiles for the Flashforge Adventurer A5 to the existing
Flashforge vendor: the machine model with 0.25/0.4/0.6/0.8 mm nozzle variants,
14 process presets, and 43 filament presets, plus the printer cover image.

All presets inherit from existing Flashforge bases already in-tree
(Adventurer 5M Pro nozzle profiles, AD5M Pro process/filament presets,
Flashforge generics); no new base assets are introduced (the A5 reuses the
existing 5M-series bed/hotend models and buildplate texture). Every inherits
reference and sub_path was validated to resolve.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Assign setting_id to Adventurer A5 presets (fix profile check)

The new A5 filament and process presets were missing the deterministic
setting_id required by OrcaSlicer's profile validator. Generated via
scripts/assign_vendor_setting_ids.py (61 instantiated presets). Verified with
scripts/orca_extra_profile_check.py: 0 errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fix Flashforge Adventurer A5 profiles so the bundle loads and validates

The new A5 presets were not in canonical form, several filaments resolved
no or the wrong filament_id, and the model and machines pointed at
non-existent or AD5M Pro defaults. Run the standard profile tooling
(normalize, update-index, generate-id), give the branded filaments the ids
of their existing Flashforge products, and repoint the defaults at
A5-compatible filaments and processes. Bump the Flashforge bundle version.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-21 23:19:41 +08:00
2adb631d6f RH3D new printer and print profiles update (#14707)
* Update 0.25mm Standard @E3NG v1.2S.json

* Create 0.20mm Fast @Virtu E3.json

* Update 0.20mm Fast Virtu E3.json

* Create 0.20mm SLOW Virtu E3.json

* Update and rename 0.20mm Fast @Virtu E3.json to 0.20mm FAST @Virtu E3.json

* Update and rename 0.20mm Fast @E3NG v1.2S.json to 0.20mm FAST @E3NG v1.2S.json

* Update and rename 0.20mm Slow @E3NG v1.2S.json to 0.20mm SLOW @E3NG v1.2S.json

* Update and rename 0.20mm Standard @E3NG v1.2S.json to 0.20mm STANDARD @E3NG v1.2S.json

* Create 0.20mm STANDARD @VIRTU E3

* Update and rename 0.20mm FAST Virtu E3.json to 0.20mm FAST VIRTU E3.json

* Rename 0.20mm SLOW Virtu E3.json to 0.20mm SLOW VIRTU E3.json

* Update 0.20mm STANDARD @VIRTU E3

* Update 0.20mm STANDARD VIRTU E3

* Update and rename 0.25mm Fast @E3NG v1.2S.json to 0.25mm FAST @E3NG v1.2S.json

* Create 0.25mm FAST VIRTU E3

* Update and rename 0.15mm Standard @E3NG v1.2S.json to 0.15mm STANDARD @E3NG v1.2S.json

* Update and rename 0.10mm Standard @E3NG v1.2S.json to 0.10mm STANDARD @E3NG v1.2S.json

* Create 0.15mm STANDARD VIRTU E3

* Create 0.10mm STANDARD VIRTU E3.json

* Rename 0.15mm STANDARD @VIRTU E3 to 0.15mm STANDARD @VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3

* Update and rename 0.25mm FAST VIRTU E3 to 0.25mm FAST VIRTU E3.json

* Rename 0.20mm STANDARD VIRTU E3 to 0.20mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update and rename 0.25mm Standard @E3NG v1.2S.json to 0.25mm STANDARD @E3NG v1.2S.json

* Create 0.25mm STANDARD VIRTU E3.json

* Create process_common_VIRTU E3.json

* Create process_FAST_VIRTU E3.json

* Update 0.20mm FAST VIRTU E3.json

* Update 0.25mm FAST VIRTU E3.json

* Create process_SLOW_VIRTU E3.json

* Update 0.20mm SLOW @VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update and rename process_common_VIRTU E3.json to process_STANDARD_VIRTU E3.json

* Update 0.10mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3.json

* Update 0.25mm STANDARD @VIRTU E3.json

* Update process_STANDARD_VIRTU E3.json

* Update 0.25mm STANDARD VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD @VIRTU E3.json

* Update 0.10mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update RH3D.json

* Update RH3D.json

* Create VIRTU E3 - 0.2 nozzle.json

* Create VIRTU E3 - 0.3 nozzle.json

* Create VIRTU E3 - 0.4 nozzle.json

* Create VIRTU E3 - 0.5 nozzle.json

* Create VIRTU E3 - 0.6 nozzle.json

* Create VIRTU E3,json

* Update fdm_common_E3NG v1.2S.json

* Update fdm_machine_common.json

* Create fdm_common_VIRTU E3.json

* Create Generic ABS VIRTU E3.json

* Create Generic ASA @VIRTU E3.json

* Update Generic ASA VIRTU E3.json

* Create Generic PCCF VIRTU E3.json

* Create Generic PETG @VIRTU E3.json

* Create Generic PLA VIRTU E3.json

* Create Generic TPU VIRTU E3.json

* Update Generic ASA VIRTU E3.json

* Update Generic PETG VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Rename VIRTU E3,json to VIRTU E3.json

* Add files via upload

* Update VIRTU E3 - 0.2 nozzle.json

* Update E3NG v1.2S - 0.2 nozzle.json

* Update E3NG v1.2S - 0.3 nozzle.json

* Update E3NG v1.2S - 0.4 nozzle.json

* Update E3NG v1.2S - 0.5 nozzle.json

* Update E3NG v1.2S - 0.6 nozzle.json

* Update 0.10mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @E3NG v1.2S.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.25mm STANDARD @E3NG v1.2S.json

* Delete resources/profiles/RH3D/VIRTU-bed.stl

* Update fdm_common_VIRTU E3.json

* Add files via upload

* Delete resources/profiles/RH3D/E3NG-bed-texture.svg

* Add files via upload

* Delete resources/profiles/RH3D/VIRTU E3_cover.png

* Add files via upload

* Add files via upload

* Create process_STANDARD_E3NG.json

* Create process_SLOW_E3NG.json

* Update and rename process_STANDARD_E3NG.json to process_STANDARD_E3NG v1.2S.json

* Update and rename process_SLOW_E3NG.json to process_SLOW_E3NG v1.2S.json

* Create process_FAST_E3NG v1.2S.json

* Update 0.25mm STANDARD @E3NG v1.2S.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @E3NG v1.2S.json

* Update 0.10mm STANDARD @E3NG v1.2S.json

* Update 0.20mm SLOW @E3NG v1.2S.json

* Update 0.20mm FAST @E3NG v1.2S.json

* Update 0.25mm FAST @E3NG v1.2S.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.20mm STANDARD VIRTU E3.json

* Delete resources/profiles/RH3D/process/process_common_E3NG v1.2S.json

* Update RH3D.json

* Update fdm_process_common.json

* Update fdm_filament_common.json

* Update fdm_filament_abs.json

* Update fdm_filament_abs.json

* Update fdm_filament_asa.json

* Update fdm_filament_pccf.json

* Update fdm_filament_petg.json

* Update fdm_filament_pla.json

* Update fdm_process_common.json

* Update fdm_common_VIRTU E3.json

update speeds

* Update fdm_common_E3NG v1.2S.json

update speeds

* Update fdm_process_common.json

fix accel_to_decel

* Update fdm_machine_common.json

fix speed profile output

* Create 0.10mm SLOW @E3NG v1.2S.json

* Create 0.10mm FAST @E3NG v1.2S.json

* Create 0.15mm FAST @E3NG v1.2S.json

* Create 0.15mm SLOW @E3NG v1.2S.json

* Create 0.25mm SLOW @E3NG v1.2S.json

* Create 0.10mm SLOW VIRTU E3.json

* Create 0.10mm FAST VIRTU E3.json

* Create 0.15mm SLOW VIRTU E3.json

* Create 0.15mm FAST VIRTU E3.json

* Create 0.25mm SLOW VIRTU E3.json

* Update RH3D.json

add more slow and fast profiles

* Update 0.20mm FAST @E3NG v1.2S.json

* Update 0.20mm SLOW @E3NG v1.2S.json

* Update 0.20mm FAST @VIRTU E3.json

* Update 0.20mm SLOW @VIRTU E3.json

* Update fdm_process_common.json

* Update fdm_process_common.json

* Update Generic ABS @VIRTU E3.json

* Update Generic ABS VIRTU E3.json

* Update Generic PCCF VIRTU E3.json

* Update Generic PETG VIRTU E3.json

* Update Generic PLA VIRTU E3.json

* Update Generic ASA VIRTU E3.json

* Update Generic TPU VIRTU E3.json

* Update 0.20mm SLOW @E3NG v1.2S.json

* Update 0.25mm SLOW @E3NG v1.2S.json

* Update 0.15mm FAST @VIRTU E3.json

* Update 0.20mm FAST VIRTU E3.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.15mm SLOW @E3NG v1.2S.json

* Update 0.25mm STANDARD @VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3.json

* Update 0.20mm FAST @E3NG v1.2S.json

* Update 0.25mm FAST VIRTU E3.json

* Update 0.10mm FAST VIRTU E3.json

* Update 0.10mm SLOW VIRTU E3.json

* Update 0.15mm SLOW VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update 0.25mm FAST @E3NG v1.2S.json

* Update 0.10mm SLOW @E3NG v1.2S.json

* Update 0.10mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @VIRTU E3.json

* Update 0.25mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @E3NG v1.2S.json

* Update 0.25mm SLOW @VIRTU E3.json

* Update 0.10mm STANDARD VIRTU E3.json

* Update 0.15mm FAST @E3NG v1.2S.json

* Update 0.10mm FAST @E3NG v1.2S.json

* Update VIRTU E3 - 0.4 nozzle.json

* Update VIRTU E3 - 0.5 nozzle.json

* Update VIRTU E3 - 0.6 nozzle.json

* Update VIRTU E3 - 0.3 nozzle.json

* Update VIRTU E3 - 0.2 nozzle.json

* Replace cover PNGs for edge to edge images

* Update 0.10mm STANDARD @E3NG v1.2S.json

added alias with previous name

* Update 0.10mm STANDARD @E3NG v1.2S.json

update aliases

* Update and rename 0.10mm STANDARD @E3NG v1.2S.json to 0.10mm Standard @E3NG v1.2S.json

* Update RH3D.json

update naming

* Update and rename 0.10mm FAST @E3NG v1.2S.json to 0.10mm Fast @E3NG v1.2S.json

* Update and rename 0.10mm FAST VIRTU E3.json to 0.10mm Fast VIRTU E3.json

* Update and rename 0.15mm FAST @E3NG v1.2S.json to 0.15mm Fast @E3NG v1.2S.json

* Update and rename 0.15mm FAST VIRTU E3.json to 0.15mm Fast VIRTU E3.json

* Update and rename 0.20mm FAST @E3NG v1.2S.json to 0.20mm Fast @E3NG v1.2S.json

* Update and rename 0.20mm FAST VIRTU E3.json to 0.20mm Fast VIRTU E3.json

* Update and rename 0.25mm FAST @E3NG v1.2S.json to 0.25mm Fast @E3NG v1.2S.json

* Update and rename 0.25mm FAST @VIRTU E3.json to 0.25mm Fast @VIRTU E3.json

* Update and rename process_FAST_E3NG v1.2S.json to process_Fast_E3NG v1.2S.json

* Update and rename process_FAST_VIRTU E3.json to process_Fast_VIRTU E3.json

* Update and rename 0.10mm SLOW @E3NG v1.2S.json to 0.10mm Slow @E3NG v1.2S.json

* Update and rename 0.10mm SLOW @VIRTU E3.json to 0.10mm Slow @VIRTU E3.json

* Update and rename 0.15mm SLOW @E3NG v1.2S.json to 0.15mm Slow @E3NG v1.2S.json

* Update and rename 0.20mm SLOW @E3NG v1.2S.json to 0.20mm Slow @E3NG v1.2S.json

* Update and rename 0.15mm SLOW VIRTU E3.json to 0.15mm Slow VIRTU E3.json

* Update and rename 0.20mm SLOW @VIRTU E3.json to 0.20mm Slow @VIRTU E3.json

* Update and rename 0.25mm SLOW @E3NG v1.2S.json to 0.25mm Slow @E3NG v1.2S.json

* Update and rename 0.25mm SLOW @VIRTU E3.json to 0.25mm Slow @VIRTU E3.json

* Update and rename process_SLOW_E3NG v1.2S.json to process_Slow_E3NG v1.2S.json

* Update and rename process_SLOW_VIRTU E3.json to process_Slow_VIRTU E3.json

* Update and rename 0.10mm STANDARD @VIRTU E3.json to 0.10mm Standard @VIRTU E3.json

* Update and rename 0.15mm STANDARD @E3NG v1.2S.json to 0.15mm Standard @E3NG v1.2S.json

* Update and rename 0.20mm STANDARD @E3NG v1.2S.json to 0.20mm Standard @E3NG v1.2S.json

* Update and rename 0.15mm STANDARD @VIRTU E3.json to 0.15mm Standard @VIRTU E3.json

* Update and rename 0.20mm STANDARD @VIRTU E3.json to 0.20mm Standard @VIRTU E3.json

* Update and rename 0.25mm STANDARD @E3NG v1.2S.json to 0.25mm Standard @E3NG v1.2S.json

* Update and rename 0.25mm STANDARD VIRTU E3.json to 0.25mm Standard VIRTU E3.json

* Update and rename process_STANDARD_E3NG v1.2S.json to process_Standard_E3NG v1.2S.json

* Update and rename process_STANDARD_VIRTU E3.json to process_Standard_VIRTU E3.json

* Update E3NG v1.2S - 0.2 nozzle.json

* Update E3NG v1.2S - 0.3 nozzle.json

* Update E3NG v1.2S - 0.4 nozzle.json

* Update E3NG v1.2S - 0.5 nozzle.json

* Update E3NG v1.2S - 0.6 nozzle.json

* Update VIRTU E3 - 0.2 nozzle.json

* Update VIRTU E3 - 0.3 nozzle.json

* Update VIRTU E3 - 0.4 nozzle.json

* Update VIRTU E3 - 0.5 nozzle.json

* Update VIRTU E3 - 0.6 nozzle.json

* Update 0.15mm Slow @E3NG v1.2S.json

* Update 0.10mm Fast VIRTU E3.json

* Update 0.20mm Slow VIRTU E3.json

* Update 0.10mm Standard @E3NG v1.2S.json

* Update 0.10mm Fast @E3NG v1.2S.json

* Update 0.25mm Standard @E3NG v1.2S.json

* Update 0.15mm Standard @E3NG v1.2S.json

* Update 0.15mm Standard VIRTU E3.json

* Update 0.20mm Standard VIRTU E3.json

* Update 0.20mm Standard @E3NG v1.2S.json

* Update 0.25mm Slow VIRTU E3.json

* Update 0.25mm Fast @E3NG v1.2S.json

* Update 0.20mm Slow @E3NG v1.2S.json

* Update 0.10mm Slow VIRTU E3.json

* Update 0.25mm Slow @E3NG v1.2S.json

* Update 0.25mm Standard VIRTU E3.json

* Update 0.10mm Standard VIRTU E3.json

* Update 0.20mm Fast @E3NG v1.2S.json

* Update 0.10mm Slow @E3NG v1.2S.json

* Update 0.15mm Fast @E3NG v1.2S.json

* Update 0.15mm Fast VIRTU E3.json

* Update 0.15mm Slow VIRTU E3.json

* Update 0.20mm Fast VIRTU E3.json

* Update 0.25mm Fast VIRTU E3.json

* Update fdm_machine_common.json

* Profile verification/fix

Fixing profiles with orca_profile_tool.py

* bump version

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-21 22:02:31 +08:00
barmanr cdcef47e3d test: bump OrcaArena profile version for OTA retry (#15798)
Merged by /bot merge on behalf of @barmanr (id 281100727).
Grants: resources/profiles/OrcaArena, resources/profiles/OrcaArena.json
Head: 32113de7fd
2026-09-21 11:10:10 +00:00
Byeon Ho cheol. 162cf7fd4c Update Cubicon profiles: filament/process tuning and xCeler-Mini compatibility (#14660) 2026-09-21 18:18:57 +08:00
barmanr 64cad00569 fix: update OrcaArena product URL (#15796)
Merged by /bot merge on behalf of @barmanr (id 281100727).
Grants: resources/profiles/OrcaArena, resources/profiles/OrcaArena.json
Head: 794db5d30d
2026-09-21 09:53:13 +00:00
dremc c8bfd2ad3e Fix instantiation on DREMC Filament (#14659) 2026-09-21 16:53:16 +08:00
Alexander Haibl 3eae4c6997 fix-start-gcode for many creality printers (#14652) 2026-09-21 16:22:32 +08:00
gyarros 83eaf3bcfc FilAr PLA-mate: lower bed temperature to 50 C (#14489) 2026-09-21 16:07:49 +08:00
Davide Garberi 454ef1571b Update generic filament profiles for Creality SPARKX i7 (#14388) 2026-09-21 16:01:14 +08:00
Grant Harkness a5d3aaefd3 Creality K1-family CFS support (K1 SE) — follow-up to #13752 (#14089) 2026-09-21 11:37:50 +08:00
Bilal7828 b8f4aa782e Adds M3D D8500 Enabler Pro(Improved Profile + Printings Process Presets)+ Enabler D7500 Support + M3D Enabler PLA Profile (#11973) 2026-09-21 10:41:24 +08:00
Matias Alejandro Yocca abf76490e4 feature: Add granular print time placeholders for days, hours, minutes, and seconds (#13063) 2026-09-21 10:40:08 +08:00
Drew WingfieldandSoftFever 6e4be42a04 UltiMaker S5 Profile + Local API Support (#14062)
* Add Ultimaker S5 Profile - WIP

* Add Ultimaker physical printer base

* Ultimaker API WIP for base update.

* Fix undefined reference error.

* Add UMS5 profile, add placeholders for testAuth stuff.

* Fix non-const func definitions, make func names align with style guide.

* Localization stuff? IDK if this does anything or is required.

* Add cover image

* Auth code cleanup, add UI button for auth cred generation, implement various auth checks and tests.

* Fix auth stuff

* Clean up code

* Get upload code sort-of working, fix typo

* Update printer settings and start/end gcodes

* Add makeGriffinCompatible preprocessor script to prevent machine crash, update machine profile.

* Fix buildplate size, fix time missing bug, add S5 buildplate model

* Correct capitalization to UltiMaker

* Fix display bug, fix capitalization bug

* Implement credential generation button and logic

* Fix generate auth creds button, add todos, fix capitalization.

* Actually fix generate auth credentials.

* Fix generate auth creds message.

* Update UM S5 machine limits

* Revert accidental commit.

* Fix postprocessor, clean up code.

* Update presets for multi-extruder printing.

* Add Single Extruder and Fast profiles.

* Code cleanup

* Register and validate the UltiMaker S5 presets

* Show the Generate API Key button only for UltiMaker print hosts

The PR added it to the Physical Printer dialog for every host type, where pressing it runs an ordinary connection test and reports "API Key created". Gate it on the selected host type instead.

* Drop unused lambda captures in the UltiMaker host code

clang promotes -Wunused-lambda-capture to an error under the project's -Werror, so the file failed to build on macOS; the five callbacks do not touch this.

* Fix the Windows build of the UltiMaker print host

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-21 01:00:55 +08:00
hamham999 2cd52edb33 Added and updated legacy and ender printer variants (#13948) 2026-09-20 21:23:00 +08:00
inslogic3d 9bd4432f27 Add INSLOGIC filament profiles to OrcaFilamentLibrary (#15398)
Merged by /bot merge on behalf of @inslogic3d (id 321604763).
Grants: resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC, resources/profiles/OrcaFilamentLibrary.json
Head: 22a51b32f0
2026-09-18 15:43:33 +00:00
JAYO3D-Official 52a6ff1764 Add official JAYO filament profiles for Bambu Lab and Creality printers (#15481)
Merged by /bot merge on behalf of @JAYO3D-Official (id 320896770).
Grants: resources/profiles/OrcaFilamentLibrary/filament/JAYO, resources/profiles/OrcaFilamentLibrary.json
Head: fb9a6d70a0
2026-09-18 06:05:03 +00:00
Valerii Bokhan 52f4c68c41 addnorth filament profiles: H2C and A2L support (#14764) 2026-09-17 17:50:30 -03:00
SoftFever f520e9221f Repair shipped default materials and obsolete settings, and validate them (#15741)
* add orca profile skill

* add default material check

Improve validation for default materials and filament profiles

* Fix default materials and obsolete keys

* clarifying orca-profiles skill
2026-09-18 00:39:46 +08:00
SoftFever ade9e77b6b Run every profile maintenance job from one tool (#15726)
* Run every profile maintenance job from one tool

orca_id_tool.py becomes orca_profile_tool.py, and orca_extra_profile_check.py
and orca_filament_lib.py fold into it as subcommands: check, generate-id, fix,
trim, update-index and update-snapshot. The three scripts already overlapped --
the checker imported half of its rules from the id tool, which in turn kept a
copy-pasted set of output helpers to avoid the resulting import cycle -- while
disagreeing on how a vendor is enumerated, how a JSON file is read and what the
exit code means. One file settles all three.

check, normalize, trim and update-index reproduce their predecessors exactly; normalize and
update-index were diffed byte-for-byte against the old scripts over a copy of
the whole tree. Deliberate changes: the compatible-printers check no longer
switches itself off when --check-materials is passed, an error exits 1 rather
than -1, update-index honours --profile-type and reports a profile it cannot
place instead of dropping it from the index, fix and update-index gained
--dry-run, trim keeps an unindexed file some surviving profile still inherits
from, and vendors are enumerated as directories with an index -- which is why
blacklist.json, a data file that an unscoped index rebuild once wrote four empty
list sections into, loses them here and will not collect them again. The dead
rename_filament_system() helper is gone.

The suite under scripts/tests now covers the maintenance commands too, and CI
runs it; nothing there ran in CI before. No shipped profile data changes apart
from those four keys.

* update vendor index files with "python3 ./scripts/orca_profile_tool.py update-index" and "python3 ./scripts/orca_profile_tool.py normalize"
2026-09-16 19:53:23 +08:00
Noprazandyw4z 5496883493 fix(profiles): Snapmaker U1 — cap ABS/ASA/PPS bed temps at 100 °C (#15483)
The U1's heated bed tops out at 100 °C, but these profiles requested
105-110 °C, which leads to print errors unless the user modifies the
printer's firmware configuration.

Affected profiles:
- Snapmaker ABS @U1 base (110/105 → 100)
- Snapmaker ASA @U1 base (110 → 100)
- Fiberon ASA-CF08 @Snapmaker U1 base (105 → 100)
- Fiberon PPS-GF20 @Snapmaker U1 base (105 → 100)

Bumps Snapmaker.json to 02.04.00.10.

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-14 20:44:15 +03:00
mschfhandyw4z 0a3724ed2f fix(profiles): set PETG SuperTack temperatures to 60°C (#15189)
Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-11 12:05:17 +03:00
TheLegendTubaGuyandyw4z 613dbcb21b Add Flashforge Creator 5 and Creator 5 Pro 0.25 mm nozzle profiles (#15282)
* Add Creator 5 0.25 mm nozzle profiles

* Fix Creator 5 process profile load order

* Bump Flashforge profile version

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-11 12:03:14 +03:00
TheLegendTubaGuyandyw4z 4ad3d11c7a Fix Qidi X-Plus 5 chamber heating profiles (#15556)
* Fix Qidi X-Plus 5 chamber heating profiles

* Restore Qidi ABS Odorless chamber temperature

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-11 11:52:37 +03:00
HanifKoh c61d2fe5d1 Fix the Folgertech i3 0.6 nozzle printable area (#15577)
The bed was declared as 0x0, 20x0, 200x200, 0x200 - a triangle - where the
0.4 nozzle profile and the printer have the 200 x 200 square. Found by the
profile validator once it placed the prime tower beside the test cube:
no tower fits inside that outline.
2026-09-08 11:11:54 +08:00
SoftFever b394ca891f Retire the superseded Snapmaker PLA-CF preset for the U1 0.4 nozzle
"Snapmaker PLA-CF @U1" and "Snapmaker PLA-CF @U1 0.4 nozzle" are the same
product on the same printer: both pin "Snapmaker U1 (0.4 nozzle)", and only a
filament_id salt split kept them apart. The first came with the original U1
profiles (#10225); the second with the tool-changer rework (#15039), which
added the 0.4/0.6/0.8 nozzle variants and left the older preset behind.

Drop the older one and re-mint the 0.4 variant onto OFhQf8ou, the id its 0.6
and 0.8 siblings already carry, so the product holds one id across the three
nozzles; renamed_from redirects the retired name. Users of the retired preset
get the #15039 tuning - 39 keys differ, including nozzle 230 -> 240 C, plate
55 -> 65 C and vitrification 150 -> 45 C - which is what the 0.6 and 0.8
variants already ship.

"Snapmaker PLA-CF @U1 base" stays. #15039 orphaned it by having the nozzle
variants inherit fdm_filament_pla directly, so it is unreferenced, but it is a
base in the vendor's own convention - 10 of the 14 @U1 families with nozzle
variants wire them to one - and it holds U1 loading and cooling values the
variants never set. Wiring them to it would change slicing output, which is
Snapmaker's call to make, not this PR's.

Claude-Session: https://claude.ai/code/session_01Q3zm9HuyskkSb4hynviV99
2026-09-07 17:29:38 +08:00
SoftFever eec4ae1e87 Retire the untuned re3D umbrella presets superseded by the nozzle variants
"Update re:3D profiles" (#13750) added the tuned "@0.4/@0.8 nozzle" and
"@0.8/@1.75 nozzle" variants but kept the five original un-suffixed presets,
trimming each to a stub that overrides only filament_vendor while still
claiming every printer of both nozzles. On any re3D printer the stub was
selectable alongside the ~50-key variant that actually tunes the material,
which is what forced five filament_id salt splits to keep the pair apart.

Drop the stubs. The variants already carry the products' ids, so nothing is
re-minted; renamed_from redirects each retired name to the smaller-nozzle
variant, and "re3D rPETG @0.8 nozzle" additionally takes over the
"re3D Greengate rPETG" mapping that lived on the deleted umbrella. Each
printer model's default_materials now lists the variants for its own
nozzles rather than the stub.
2026-09-07 15:45:34 +08:00
SoftFever 6943b6ddc3 Make Cubicon's "@base" filament presets true base profiles
Cubicon's nine "@base" presets were the only instantiated ones of the 196
"@base" filament presets in the library; the other 187 are instantiation:false.
Being selectable, and claiming xCeler-I and xCeler-Plus, they put two presets of
one product on those two printers - which is what forced the nine filament_id
salt splits: one product deliberately kept on two ids so AMS matching stayed
unambiguous.

Flip them to instantiation:false and drop the compatible_printers, setting_id
and filament_settings_id that a base has no use for, matching what the other
150 bases carry. The three "@Cubicon xCeler-{I,Mini,Plus} 0.4 nozzle" variants
keep one printer each, so every printer still sees exactly one preset per
product and they converge on its single id; the nine salted ids retire.

A base is not added to the preset collection, so user presets that inherited
the selectable "@base" - the v2.3.2-v2.4.2 fixtures have one per material -
would lose their parent. renamed_from on the xCeler-I variant, the first model
the base ever claimed, redirects them; a preset built on "@base" while printing
on an xCeler-Plus narrows to the xCeler-I.

The six default_materials / default_filament_profile fields named
"Cubicon PLA @Cubicon xCeler-<model>", dropping the " 0.4 nozzle" the presets
actually carry, so none of them ever resolved; each model now names its own
variant.

Claude-Session: https://claude.ai/code/session_01Q3zm9HuyskkSb4hynviV99
2026-09-07 15:45:29 +08:00
SoftFever 06e665fca7 Merge branch 'main' into feature/filament_id 2026-09-06 22:34:06 +08:00
SoftFever bf20b041e2 Make a filament's id depend only on the filament itself
A filament_id is now exactly what the preset's own filament_vendor,
filament_type and filament name mint, wherever it inherits from. Inheriting
settings no longer limits what a preset may claim, so the checks that policed
inheritance are gone, and so are the four grandfather lists that held thousands
of presets as permanent exceptions. The snapshot records sanctioned state rather
than excuses: one entry per id, carrying the product it names beside the presets
claiming it.

Profiles that disagreed are corrected instead of excused. The Elegoo TPU and
PAHT roots were named for a different product than all of their variants and
become TPU 95A and PAHT-CF; Elegoo PET-CF gains the filament_type its variants
already set; the Snapmaker breakaway support presets get an id of their own
rather than riding the PVA chain; and a BBL preset name carrying a doubled space
is fixed behind renamed_from. Their ids re-mint from the corrected identities.
The tooling and the design note also drop the word "family", which invited
reading a brand's Lite and Pro spools as one id.

No change to slicing output — only filament_id values, three preset names, the
inherits lines following those renames and the vendor indexes move.
2026-09-06 20:53:11 +08:00
SoftFever ec207e67a3 Mint content-addressed ids for the Bambu bundle 2026-09-04 15:01:58 +08:00
TheLegendTubaGuyandRodrigo Faselli 7acea3ed09 Honor symbolic default bed types for new printers (#15273)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-09-03 19:42:31 -03:00
SoftFever a4382ce3b3 reanme 2026-09-04 01:06:04 +08:00
SoftFever df101ead91 fix more issues 2026-09-04 00:29:52 +08:00
SoftFever 7c9b38ba04 remove retired_filament_ids.json 2026-09-03 21:03:42 +08:00
SoftFever fdc0ee18f1 fix vendor version 2026-09-03 17:47:29 +08:00
SoftFever e2b251c145 Fix generic PLA and default filaments on the Creality Hi 2026-09-03 12:14:14 +08:00
SoftFever 44a617a40d more fixes 2026-09-02 02:42:30 +08:00
SoftFever afa806da18 Update Dremel and Ratrig filament profiles; remove deprecated entries and adjust versioning 2026-09-01 23:45:55 +08:00
SoftFever bee0df825e fix filament_vendor 2026-09-01 18:36:44 +08:00
SoftFever ab21af6b08 fix filament names 2026-09-01 17:44:12 +08:00
SoftFever 6ec904074b Give generic filaments one name and one identity across every vendor 2026-09-01 17:26:57 +08:00
SoftFever ea0242feda Merge branch 'main' into feature/filament_id 2026-08-30 20:54:33 +08:00
TheLegendTubaGuy 07b81cfdc9 Fix Qidi X-Max 4 chamber heating profiles (#15244) 2026-08-23 13:10:41 -03:00
SoftFever f23e5875d5 filament_id v4.2b: re-mint the Qidi QD_* island (plan v4 SS4)
All 264 QD_* declarations re-derive from their family triples via
--remint Qidi. Only 8 family ids are new: most QIDI-brand products already
carried v3.2-minted ids on older printer series, so the QD-series
declarations converge onto them (QD_0..4_1_1 -> OFKIQO2W "QIDI PLA
Rapido"), and the six Generic families converge onto the shared generic
ids (Generic PLA -> OFDSrzZ8 etc.) by triple math -- no inherits or
compatible_printers changes anywhere.

--update-snapshot retires all 204 QD_* ids with mode-rule successors.
Audit: 204/204 non-null successors, every chain ends at a live id; the
four ids hardcoded in QidiPrinterAgent's non-numeric-series fallback
resolve to the OFL generics (QD_1_0_1 -> OFDSrzZ8, ...). The v4.1 agent
hook translates device-composed QD_* ids through these entries at
runtime, so box behavior is preserved on updated clients.

Known accepted residue (plan v4 SS4): three case/spelling family splits
keep distinct ids for one product line each -- QIDI PC-ABS-FR (series
1-2) vs QIDI PC/ABS-FR (series 3-4) vs Qidi PC-ABS-FR (X-Plus 4), and
QIDI TPU 95A-HF vs Qidi TPU 95A-HF. Renames are ruled out; the ledger's
per-series successors keep each device slot resolving to the right
presets, and a future upstream name unification self-heals through
content addressing.

The code<->ledger lockstep test is now active (un-skipped).

Gates: --check 0; orca_extra_profile_check 0/0; 117 script tests OK
(0 skipped); validator base, -f tree-wide, -v Qidi all exit 0;
libslic3r_tests green; Qidi profile diff is filament_id-value-only.
Qidi.json version bumped.
2026-08-21 18:36:28 +08:00
SoftFever 58d1a3b093 filament_id v4.0: re-converge post-merge drift (Qidi/Snapmaker/re3D)
The 2026-08 main merge brought upstream vendor updates in pre-v3 style;
assign_filament_ids.py --check reported 243 errors. Re-converged per plan
v4 SS1(A)/SS4:

- Qidi X5: 12 brand presets had copied BBL catalog ids (GFB99/GFG99/GFL99);
  re-minted to their product triples (PolyLite PLA converges onto OF5CgdDq).
- Snapmaker U1: fixed empty/lowercase/wrong filament_vendor on 5 bases
  (triple inputs, W3-style); re-minted 24 declarations, resurrecting no
  retired ids (11813638720/141703112701/1417031127011/OGFL99 all re-minted
  away; base2 duplicates converge onto their families' v3.2 ids).
- re3D: rPETG had copied GFG01 (BBL space); re-minted to OFmCOW2Y. The
  GreenGate3D bundle was removed upstream with its product relocated here;
  retired OFSTCno1 -> OFmCOW2Y so shipped references keep resolving.
- validator -f: resolved 34 AMS-match ambiguities using the v3 mechanisms:
  salt-1 ids on the 5 re3D root presets and Snapmaker PLA-CF @U1 0.4
  (duplicate presets of one product; deletion forbidden), own minted ids
  for the 4 cross-family riders (Polymaker General/Silk/Tough PLA Family,
  Snapmaker PLA Full Spectrum).
- Snapshot re-sanctioned (+92 ids incl. 44 new QD_4_* island ids and BBL
  addnorth GF_AN*); ledger +1 entry (OFSTCno1).

Gates: --check 0; orca_extra_profile_check 0/0; 116 script tests OK;
validator base + -f exit 0. Vendor versions bumped (Qidi, Snapmaker, re3D).
2026-08-21 18:13:18 +08:00
SoftFever f3fa3a34bd Merge branch 'main' into feature/filament_id 2026-08-21 17:30:12 +08:00
TheLegendTubaGuy c5aedd1cea Enable Snapmaker U1 bed type selector (#15174) 2026-08-13 18:25:52 -03:00