Skip to content

Filament runout sensor #28347

@Serhiy-PROfeshional

Description

@Serhiy-PROfeshional

Is your feature request related to a problem? Please describe.

Yes. Current filament runout logic for dual-signal sensors (like BTT SFS 2.0) does not differentiate between a clog/jam and an empty spool.
When a clog occurs (filament is present but not moving), the printer should stop immediately to prevent nozzle damage or "chewing" the filament.
When the filament actually ends (switch triggers), the printer currently stops immediately, leaving a long piece of filament (20-50cm) between the sensor and the extruder gears. This is wasteful and makes reloading difficult.

Are you looking for hardware support?

No response

Describe the feature you want

I would like a differentiated logic for sensors that have both a Motion Encoder and a Presence Switch:
Scenario A (Clog): Switch is HIGH (Filament present) + Encoder is STOPPED.
Action: Immediate Emergency Pause.
Reason: High risk of print failure or hardware damage.
Scenario B (Runout): Switch is LOW (Filament ended).
Action: Ignore encoder pulses and allow the extruder to continue for a user-defined distance (RUNOUT_BUFFER_DISTANCE) before triggering M600.
Reason: Utilizes remaining filament and brings the "tail" closer to the extruder for easier swapping.

Additional context

Easier Reloading: By allowing the filament to reach the extruder gears, the user can simply "push" the new filament behind the old one. The extruder will grab it immediately without the user having to feed 40cm of filament through a tube manually.

Better Diagnostics: The printer can display different messages: "Filament Jammed" vs "Filament Ended".

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions