Connecting and configuring filament-out sensors
If your printer knows when it has run out of filament, it can abort the job, or it can pause while you load new filament. To do this the printer needs to have a filament-out sensor attached. These come in two types: simple switches that detect the presence of filament, or sensors that detect the motion of the filament.
Firmware 1.19 and later ¶
The Duet firmware has beta support for motion detection sensors in version 1.19, see Gcode M591 for configuration. There are two beta implementations:
Later firmware versions also support simple filament presence switches, and filament monitors that generate pulses as the filament moves.
Firmware 1.18 and earlier ¶
You can arrange for a simple switch to trigger user-defined actions:
The first step is to connect the switch to an unused endstop connector on the Duet WiFi. Note that the Duet uses a separate connector for Z probes, and it has five endstop connectors (X, Y, Z, E0, and E1).
To make the firmware run a script when the filament runs out, use M581 to associate the endstop you chose with a "trigger". Trigger 0 is an emergency stop (probably not what you want), trigger 1 pauses the print (running pause.g), and otherwise trigger n runs the file triggern.g., which you can write yourself.
Finally, the trigger only happens when the endstop changes state. If you try to start a print with the filament out, the trigger won't happen. So add M582 to the start of your prints to check the filament state and run the trigger if there's no filament.