
Filament Runout Sensors: Setup and Why You Need One
Logan F.
Protect Your Long Prints
There are few more disheartening experiences in 3D printing than returning to a print after many hours to find it ran out of filament at 60% completion. The printer diligently continued to "print" air for hours, depositing nothing, while it wasted your time and the first 60% of the filament. A filament runout sensor eliminates this failure mode entirely: when the spool empties or the filament breaks, the sensor triggers an automatic pause, the printer moves to a safe position, and you receive notification (if configured) to load a new spool and resume.
For prints under 2 hours, a runout sensor is an optional quality of life feature. For prints over 4 hours or anything significant, it's essential equipment. Pairing a runout sensor with reliable remote monitoring (OctoPrint webcam or Klipper/Mainsail) makes it possible to safely run long prints with confidence.
Switch Sensors vs Motion Sensors
There are two main runout sensor types. Switch sensors are simple mechanical switches with a lever that the filament presses to complete a circuit. When filament runs out, the circuit opens and the sensor triggers. They're cheap ($3–10) and reliable for simple "is there filament present" detection. The limitation: they can't detect a jammed or slipping extruder, only the physical absence of filament. Motion sensors (optical sensors like the BTT Smart Filament Sensor) detect actual filament movement by measuring the rotation of a small wheel the filament contacts. They detect both runout (no filament) and grinding/jamming (filament present but not moving), a significantly more comprehensive safety net for unattended printing. Motion sensors are worth the slightly higher cost for anyone regularly running long unattended prints.
Installation and Configuration
Physical installation: mount the sensor between the spool holder and the extruder entry in a position where the filament passes through it freely. Wire to the dedicated runout sensor pin on your board; most modern boards (SKR, Spider, and Octopus series) have dedicated headers with pin documentation. In Marlin, enable FILAMENT_RUNOUT_SENSOR in Configuration.h and configure the pin and sensor behaviour. In Klipper: add a [filament_switch_sensor] or [filament_motion_sensor] block with pin assignments and a pause event callback. Write a FILAMENT_CHANGE macro (see our macros guide) that parks the toolhead gracefully and waits for user interaction. Test by manually triggering the sensor while printing a test piece.
Multi-Spool Continuity
On large prints where you expect to use more than one spool, the runout sensor enables seamless spool changes. When the first spool empties, the sensor pauses the print. Load the second spool of OzFDM filament (our consistent colour batches ensure minimal colour variation between spools of the same product), purge a short length to clear any colour inconsistency at the join, and resume. The join between spools is typically invisible in the finished print if you use the same filament product from the same colour batch. This enables multi day prints on a single design without manual monitoring for the filament transition.


Leave a comment
This site is protected by hCaptcha and the hCaptcha Privacy Policy and Terms of Service apply.