Filament Runout Sensors: Setup and Why You Need One
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, whilst your time and the first 60% of the filament were both wasted. 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 optional quality-of-life. For prints over 4 hours — 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 physical absence of filament. Motion sensors (optical sensors like the BTT Smart Filament Sensor) detect actual filament movement by measuring 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, Octopus series) have dedicated headers with pin documentation. In Marlin: enable FILAMENT_RUNOUT_SENSOR in Configuration.h, configure the pin and sensor behaviour. In Klipper: add a [filament_switch_sensor] or [filament_motion_sensor] block with pin assignment 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 whilst 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.