Do your prints fail because filament gets tangled or because filament runs out?

by Melvin Cruz,  Jon Schull  and  Skip Meetze

In a recent video blog 5 ways to ruin your filament (and how to fix it)! Tom Sanladerer  listed “filament tangled on the spool” as the number one problem causing failed prints in 3D printing.  We would also add “running out of filament” as being right up there for causing failed prints in our lab.   We mentioned such an incident in a previous blog post.   Some new printers have built-in features to deal with these problems (like the Prusa i3 MK3 which shows the Filament sensor as the first in it’s list of new features).  Well, we can’t all get new printers, so this Octoprint based system may be the solution for you.

Here’s the good news:

Once you have Octoprint set up, we have a simple solution for you to detect both the out of filament and tangled filament FAULT conditions.  It turns out that Octoprint is not that difficult to set up on a Raspberry Pi, and making the detector with this open-source design is easy!  When the FAULT is detected, then the printer will “Pause” itself, and you can replace or untangle the filament and then “Resume” the printer to complete the job! 

A few months ago, Chris Riley posted an easy way to set up Octoprint on a Raspberry Pi and to deal with out of filament by using a 3D printed holder for a limit switch.        

With his Octoprint setup and our design for a switch holder, you can also detect tangled filament problems and save yourself lots of failed prints! 

As with Chris’ missing filament sensor, we use a microswitch that changes state when the filament goes missing.  In addition, we have configured a hinged lever in the system that is held in place by a small rubber band.  With this design, a tangled filament jam pulls the lever away from the switch, causing it to change state.  Missing filament causes the same switch action, and Octoprint does the rest! 

How to do it:

For detailed instructions on setting up Octoprint and making the sensor,  go to: 

Skip Meetze

In the Rochester e-NABLE Lab at Rochester. NY.  Mentor of students in rapid prototyping and iterative design, Collaborator with other e-NABLE volunteer designers around the world, Advancing the technology of assistive devices and the evolution of open-source hardware.


Jason · October 23, 2017 at 9:30 pm

The mk3 uses a high resolution mouse laser to track movement and if it’s there or not…. maybe next generation, you are using a pi and octoprint, can’t it be a plugin …. just asking…. i desighn and build but im not very good with the programing end so alot of my designing is held back by my programing lack…

    Skip Meetze · October 24, 2017 at 9:01 am

    The sensor we use is a simple microswitch to detect (1) that filament is present and (2) that the filament is not being pulled away from the switch when it is stuck on the spool and the extruder is pulling. This simple sensor does not require programming to compare the actual movement of the filament with the expected movement. It requires only a digital I/O port and programming to “pause” the printer when the state of the input signal changes.

    As you say, some new generation printers have some Octoprint functions built in, but do not work with Octoprint and the Raspberry Pi. Such printers can still use our sensor connected to an I/O port, but programming the “pause” may be unique to each type of printer controller. We are investigating how to do this with our Ultimaker3 Extended and we will provide an update when we work it out.

    We welcome help from anyone who cares to work this out. We suggest that you post your solution on YouMagine and reference it as a remix of our Filament FAULT Detector design.

Leave a Reply

Your email address will not be published. Required fields are marked *