Skip to content

feat: add 'Use other AMS slot' button to filament runout dialog#10874

Open
BenJule wants to merge 1 commit into
bambulab:masterfrom
BenJule:upstream/feat-ams-slot-on-runout
Open

feat: add 'Use other AMS slot' button to filament runout dialog#10874
BenJule wants to merge 1 commit into
bambulab:masterfrom
BenJule:upstream/feat-ams-slot-on-runout

Conversation

@BenJule
Copy link
Copy Markdown

@BenJule BenJule commented May 22, 2026

Summary

Closes #10870

When the printer pauses with filament ran out (stage 6) and an AMS is connected, the error dialog now shows an additional "Use other AMS slot" button alongside the existing options.

How it works

  1. User sees the filament-runout error dialog as usual
  2. If an AMS with at least one loaded slot is detected, the new button appears
  3. Clicking it opens a slot picker listing all AMS slots that currently have filament loaded (name, slot number, filament type)
  4. After confirming a slot the slicer sends M620 P{tray_id} to select the tray and resumes the print via command_hms_resume
  5. The printer then performs its normal filament-change sequence to load the chosen spool and continues

If no AMS slots have filament the button is hidden (the button injection checks HasAms() and the picker validates is_exists on each tray). Cancelling the picker keeps the error dialog open.

Changes

File Change
src/slic3r/GUI/DeviceErrorDialog.hpp New USE_OTHER_AMS_SLOT = 60 enum value
src/slic3r/GUI/DeviceErrorDialog.cpp Button init, handler with slot picker, injection into show_error_code() when stage_curr == 6

Before / After

Before After
Filament ran out → only "Resume (problem solved)" / "Check Assistant" Filament ran out + AMS connected → additionally "Use other AMS slot" button
User must manually trick AMS by assigning the same filament to another slot User picks any loaded slot directly from the error dialog

When the printer pauses with stage 6 (filament ran out) and an AMS is
connected, a new 'Use other AMS slot' button is shown in the error
dialog. Clicking it opens a slot picker listing all AMS slots that
currently have filament loaded. After the user picks a slot the slicer
sends the corresponding tray-select command and resumes the print.

Implements bambulab#10870.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

select filament on empty

1 participant