Skip to content

Multi-Material

Fluidd supports multi-extruder setups and integrates with Spoolman for filament spool tracking.

Multiple Extruders

Fluidd supports single extruder, multiple extruder, and multiple extruder stepper configurations. Pressure Advance values can be set for all configurations.

Multiple extruder controls with per-extruder Pressure Advance settings

For multiple extruder stepper setups, Fluidd shows a section for each stepper where you can enable or disable it, associate it with an extruder, and set Pressure Advance values.

Multiple extruder stepper panel with enable, extruder, and Pressure Advance controls

Spool Management (Spoolman)

Fluidd integrates with Spoolman for filament spool tracking.

Live updates

Fluidd connects to Spoolman in two different ways: through Moonraker, for loading spool data, and directly from your browser, for live updates (spool weight, filament, and vendor changes). Only the direct browser connection is subject to your browser's cross-origin rules.

Spoolman 0.26 and newer reject that direct connection unless Fluidd's origin is explicitly allowed, which breaks live updates while everything else (spool selection, sanity checks) keeps working normally. If your spool weight stops updating during a print after upgrading Spoolman, add the SPOOLMAN_CORS_ORIGIN environment variable to your Spoolman host and restart it:

.env
SPOOLMAN_CORS_ORIGIN=http://fluidd.local,http://192.168.1.50

Each entry is the scheme, host, and port shown in your browser's address bar when you access Fluidd (no path), separated by commas if you use more than one address.

Avoid the wildcard

SPOOLMAN_CORS_ORIGIN=* allows every origin and turns off Spoolman's origin checks entirely. Only use it on a trusted network.

See the .env.example file in the Spoolman repository for more examples.

On print start, Fluidd shows a modal asking you to select a spool. You can pick one from the list or scan an associated QR code using an attached webcam. This modal can be disabled in Fluidd settings.

Spoolman spool selection modal with a QR code scanner

Dashboard card

The currently selected spool and its metadata are shown in the Spoolman dashboard card. Use the "Change Spool" button to switch spools mid-print.

Spoolman dashboard card showing the active spool details with filament info

Sanity checks

When starting a print or changing spools, Fluidd automatically checks:

  1. A spool is selected.
  2. The spool has enough filament to finish the job.
  3. The spool's filament type matches the one selected in the slicer.

Toolchanger support

For toolchange macros to appear in the "Change Spool" dropdown, add a spool_id variable to your gcode_macro with a default value of None, and call SET_ACTIVE_SPOOL in your toolchange macro:

printer.cfg
[gcode_macro T0]
variable_spool_id: None
gcode:
  ...
  SET_ACTIVE_SPOOL ID={ printer['gcode_macro T0'].spool_id }
  ...

Spoolman multi-tool panel with per-toolchange-macro spool assignment

Remembering spools across restarts

If Fluidd detects a [save_variables] section in your configuration, it will automatically save the selected spool on each change. Use this macro to restore the selection after a restart:

printer.cfg
[delayed_gcode RESTORE_SELECTED_SPOOLS]
initial_duration: 0.1
gcode:
  {% set svv = printer.save_variables.variables %}
  {% for object in printer %}
    {% if object.startswith('gcode_macro ') and printer[object].spool_id is defined %}
      {% set macro = object.replace('gcode_macro ', '') %}
      {% set var = (macro + '__SPOOL_ID')|lower %}
      {% if svv[var] is defined %}
        SET_GCODE_VARIABLE MACRO={macro} VARIABLE=spool_id VALUE={svv[var]}
      {% endif %}
    {% endif %}
  {% endfor %}