CoreOne INDX 8T and 4T: welcome to earth, MMU3 fixes (#15903)

* Add opt-in printer overrides for filament tool-change settings

Allow printer presets to define uniform ramming, loading, unloading,
cooling, purge, filament scripts and pressure-advance enable settings
without duplicating material presets. Apply overrides during preset
composition and FDM normalization, and expose the switch in Multimaterial.

Keep the feature disabled by default. Omitted or empty override vectors
preserve material settings; a single value applies to every filament,
including an explicitly empty script. Reject multi-value overrides.

Preserve empty float vectors across project serialization and initialize
empty nullable filament overrides before resizing them, preventing preset
cache generation from accessing an empty vector.

Include focused override tests and document the configuration semantics,
Prusa MMU3 integration and INDX tool-change behavior.

Co-authored-by: Codex <codex@openai.com>

* Add Prusa MMU3 and CORE One INDX profiles with shared material tuning

Add MK4 MMU3 and four-tool/eight-tool CORE One INDX printer definitions,
process presets and printer resources. Reuse ordinary MK4 and CORE One
printer/process inheritance while retaining device-specific startup,
shutdown, tool-change and wipe-tower behavior.

Move uniform MMU3 tip forming and INDX handling into machine filament
overrides. Keep MMU3 pressure advance and purge material-specific, retain
INDX material tuning, and share surviving materials with migration aliases
for retired MMU3 and XL tool-change copies.

Preserve unrelated Prusa filament identities, scalar value formats and
inheritance rather than applying broad profile cleanup.

Validation: Prusa profile checks and all 69 printer smoke slices passed.
The final cleanup preserved emitted commands with identical filament
selections.

Co-authored-by: Codex <codex@openai.com>

* Refresh filament controls after loading printer presets

Synchronize the plater filament controls after preset loading, even when the internal filament list already matches the nozzle count.

Co-authored-by: Codex <codex@openai.com>

* Fix nullable Z-hop overrides in Prusa filament variants

Represent empty overrides as nil for each inherited extruder variant so
the native profile loader preserves machine Z-hop settings.

Validation: full profile checks, native loading, and 1,115-printer slicing
sweep passed.

Co-authored-by: Codex <codex@openai.com>

* Separate Prusa profiles from machine-owned filament overrides

Retain profile tuning without unsupported machine override keys. Move supporting code, tests and override documentation into a separate feature change.

Co-authored-by: Codex <codex@openai.com>

* Default INDX tools to hardened high-flow nozzles

Use the High Flow variant for every INDX tool and its dedicated filament presets. Raise Generic PLA throughput to 28 mm3/s.

Co-authored-by: codex <codex@openai.com>

* Use normal filament-change lifts for INDX and MMU3

Avoid duplicate INDX retraction and account for its 12.5-second dock swap in print estimates.

Co-authored-by: codex <codex@openai.com>

* Set z_hop_types for the machine too

* Fix profile check failures in the Prusa CORE One filament presets

---------

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
Eric McCann
2026-10-04 23:52:56 +08:00
committed by GitHub
co-authored by Codex SoftFever SoftFever
parent 78a4f2867c
commit 000f8abc6d
142 changed files with 4184 additions and 2599 deletions
+54
View File
@@ -0,0 +1,54 @@
# Prusa CORE One INDX profiles
The Prusa bundle provides separate four-tool and eight-tool CORE One INDX models
with 0.4 mm high-flow nozzles and a 248 x 205 x 270 mm printable volume. These are
independent-tool printers, not single-extruder MMU3 machines. Both inherit
`fdm_machine_common_coreone_indx`, which inherits the ordinary CORE One HF
printer; the concrete printer presets supply their tool-count-dependent arrays. The bed and wizard resources come from Prusa.
The source configuration is PrusaResearch 2.5.10 from
[Prusa's profile repository](https://github.com/prusa3d/PrusaSlicer-settings-prusa-fff/blob/65c5c8f1e1c3836f306119c49d717759cbc368db/PrusaResearch/2.5.10.ini).
Its printer, process and filament settings are translated to Orca option names.
The supplied process presets cover 0.10, 0.15, 0.20 and 0.25 mm layers. Their
shared `fdm_process_coreone_indx` base inherits the ordinary CORE One HF SPEED
process, with explicit INDX differences and layer-specific child settings.
Material presets are shared with the ordinary CORE One family.
## Tool changes and extrusion state
The start script initializes a persistent `tool_init` vector, counts the tools
used by the job, homes and probes using a loaded tool, calibrates the used tools,
and primes the initial tool at the cleaning station. The change script preserves
Prusa's `G27`, `P0`, `T`, `G12`, `G750` and `M906` sequences. It updates
`e_retracted` so Orca's subsequent unretraction agrees with the script's extrusion.
Per-tool temperature commands are guarded by `is_extruder_used`.
The off-bed purge station is the default. With a prime tower enabled, a newly
used tool still receives its initial station purge, while an initialized tool
uses the source's wipe-tower preparation path. `tool_init` persists across these
changes; treating every tool selection as first use would change the purge and
deretraction sequence.
Purge volume uses the filament's minimal purge setting. Orca's optional flush
volumetric speed is divided by filament cross-sectional area before it is used
as a linear extrusion-speed override. Prusa's separate `filament_flush_volume`
override is not available in these profiles. The source's `EXCLUDE_E_START` and
`EXCLUDE_E_END` internal markers become comments rather than printer commands.
Pressure-advance restoration and automatic pressure-advance emission use the
selected filament preset's settings. These profiles do not impose machine-owned
filament overrides. Dock-fan control retains the source's material and layer
conditions; shutdown parks the tool and turns off the used heaters and dock fan.
## Configuration boundaries
The scripts use Orca's temperature, retraction, fan and speed option names. The
nozzle-check high-flow flag is fixed because these presets describe HF nozzles;
the abrasive-material flag is derived from the filament's required nozzle HRC.
An unset idle temperature uses Orca's zero sentinel. ABS's source XY shrinkage
compensation is represented using Orca's retained-size percentage.
Prusa's consistent-surface cooling strategy and filament-specific infill crossing
speed limits have no direct Orca profile equivalent. These presets use Orca's
native layer-time cooling and material volumetric limits. They do not add slicer
features or change existing Prusa printer profiles.