Skip to content

Supply Systems

jiyang1018 edited this page Aug 25, 2026 · 1 revision

Supply Systems (multiACE)

New in v2.3.2-fos.8.6.0. FOrcaSlicer can be told that a multi-material supply system feeds the printer, can ask that system what is fitted, and can send a sliced file straight to it. The first supported system is multiACE; Sidecar is listed in the dropdown but not implemented yet.

This page assumes you have read Filament to Nozzle Map - a supply system is what turns the map from a settings selector into a real routing tool.


What a Supply System Changes

On a plain U1, Filament 3 is always extruded by the third head. The filament to nozzle map can only decide which nozzle's settings Filament 3 is sliced with, and the slicer refuses a map that would push a filament through a head of a different diameter.

With a supply system in the path, that limit lifts. The supply system reads the nozzle diameter each filament was sliced for from the G-code header, and loads the filament onto a head that actually carries that diameter. So the same 0.2 mm nozzle can serve several filaments in one print, a filament can be mapped to any nozzle whose diameter matches the job, and the number of filaments is no longer tied to the number of heads.

FOrcaSlicer's side of that contract is:

  • Slice every filament for the nozzle it is mapped to - line width, speed and flow.
  • Write the physical nozzle diameters into the G-code header (fos_physical_nozzle_diameter), always, so the supply system can compare what the file demands against what the machine has fitted.
  • Refuse to slice when the map demands a diameter the machine does not have, or more filaments of one diameter than the supply wiring can load at once.

Settings: Printer Settings -> Machine -> Accessory

Everything lives under Printer settings -> Basic information -> Accessory -> Multi-material supply.

Supply system settings under Machine > Accessory

Setting What it does
Supply system None, multiACE, or Sidecar (listed, not implemented). Selecting a system enables the fields below and adds Send to multiACE to the print dropdown.
Printer LAN IP:port The address of the machine running the supply system, e.g. 192.168.1.50:7126. Used by Read from printer and Send to multiACE.
Mode normal, multi or head - multiACE's own vocabulary, so the same word means the same thing in both applications. See below.
Supply units In multi mode: how many units are connected.
Toolheads with a unit In head mode: which toolheads have a unit attached.
Read from printer Asks the machine for its current mode, unit count, unit-driven toolheads and fitted nozzles, shows you the full picture, and fills the fields in only after you confirm.

These settings are part of the printer preset, so save the preset after changing them. They are slicing inputs, not send-time options: the mode decides how many filaments can be loaded per nozzle, and the guard that checks it runs when you press Slice.

The three modes

Mode Wiring What one head can reach
normal No unit. Each head is fed by its own spool. 1 filament
multi Units wired in parallel: slot k of every unit feeds head k. 1 filament per unit - as many as there are units
head Each unit serves one toolhead; heads without a unit are fed directly. 4 filaments for a head with a unit, 1 for a head without

In normal mode the capacity checks stay inert - the machine behaves like a plain U1 with the map in play. In multi mode with the unit count left at 0, the capacity check is also inert, because the slicer does not know how many spools each head can reach.

Read from printer

Read from printer never overwrites your nozzle diameters. It shows what the machine reports next to what the preset says; if the two disagree, it says so and leaves the decision to you. Confirm, and the mode, unit count and toolhead checkboxes are filled in.

This is different from Snapmaker Orca's Synchronize nozzle information button, which Before You Print tells you not to use. Read from printer is FOrcaSlicer's own query to the supply system and does not touch your mixed-nozzle setup unless you say so.

Read from printer - what the machine reported, before anything is applied

In the example above the machine reports multi mode with three units seen, and its fitted nozzles (0.2 / 0.4 / 0.6 / 0.8) differ from the profile's - the dialog says so and offers to apply only the mode and unit count. A unit with no identified spool is not counted, so correct the quantity afterwards if more units are connected than were seen.


The Map With a Supply System

The map window with unit and slot pin labels

With a supply system configured, each nozzle in the map shows the system's name and mode under its diameter, and grows one pin per filament it can hold. A pin is always one slot - one spool position on one unit - and every pin is labelled Un Sn, unit number and slot number, so you can see exactly which spool position it is. What differs between the modes is which slots a nozzle's pins are: in head mode the four pins on Nozzle 1 are the four slots of the one unit attached to that head (U1 S1 - U1 S4);

head mode with two units: Nozzle 1 and Nozzle 4 each carry U1 S1 - S4 and U2 S1 - S4, Nozzle 2 and 3 are direct feed

in multi mode they are the same slot number on each of the connected units (U1 S1, U2 S1, U3 S1, ...), because slot 1 of every unit feeds head 1.

multi mode with two units: every nozzle carries its own slot number on each unit, U1 Sk and U2 Sk

Wire filaments to pins exactly as on a plain machine: drag, or right-click and Assign to nozzle, which now offers Slot entries under each nozzle.

Two behaviors worth knowing:

Assignments that no longer fit the wiring are kept and drawn in red as N/A

  • A stored assignment that no longer fits the current wiring is kept, not discarded. Switch the mode or the unit count and a filament that was on a pin that no longer exists is drawn in red as N/A. Re-wire it or remove it; nothing is silently dropped.
  • The tool number in the G-code stays the filament number. Slot addressing is applied by the supply system when the file is sent, not baked into the file. The map window's banner says the same.

Sending to multiACE

With a supply system selected, the print dropdown gains Send to multiACE. It uploads the sliced file straight to the machine's inbox.

Send to multiACE

The Verify nozzle sizes guardrail still applies - the sliced nozzle arrangement must match what is fitted before the dropdown is released, exactly as for a direct print. See First Launch for the slice-and-verify flow.

A send failure with curl: URL using bad/illegal format means the LAN IP field holds a malformed value. Retype it once. This is the known carry-over from 8.5.7-beta.2 described in Upgrade notes on Download and Install.


The Capacity Guard

The Filament to Nozzle Map page lists the guards that apply everywhere. With a supply system the second guard tightens in two steps.

Slicing refused: a filament used by the print is not assigned to any nozzle

Wiring not declared (normal, or multi with 0 units): every diameter a filament was sliced for must exist on some nozzle. The message reads These filaments were sliced for a nozzle diameter that no nozzle on this printer carries, so no supply system can place them and names each filament with the diameter it was sliced for. The first guard - a used filament with no nozzle at all - fires before either capacity check, on any profile:

Slicing refused: four filaments demand a 0.2 mm nozzle but the supply layout can only load two

Wiring declared (multi with a unit count, or head): additionally, the number of filaments demanding one diameter may not exceed what the wiring can physically load at once - the number of heads carrying that diameter times the spool positions each of those heads can reach.

This is the useful case: four filaments sliced for a single 0.2 mm nozzle with only two units connected are refused before the print wastes your time, with the counts spelled out.


Upgrading From 8.5.7-beta.2

If you configured a supply system in 8.5.7-beta.2, re-enter the printer LAN IP once. The address was stored per extruder in the beta and carries over as one joined string (127.0.0.1:7126,127.0.0.1:7126,...). It looks plausible in the field but fails at send. Retyping it clears the stored value. The Supply system dropdown also resets to None on upgrade - re-select it.


Limitations

  • Only multiACE is implemented. Sidecar is a placeholder in the dropdown.
  • Filament arrangement is not optimized for you. FOrcaSlicer tells you when a map cannot work; choosing which filament goes on which nozzle for the fewest filament changes is still yours to make. Automatic arrangement is planned.
  • Only the U1 has been exercised on hardware. Printers with 5 and 8 toolheads are verified in software only.
  • The rest of the mixed-nozzle limitations - shared layer height above all - still apply. See Known Limitations.

Related Pages

Clone this wiki locally