Making 3D printers smarter with MTouch, a low-cost automatic fault detection system

28 Mar, 2022

Making 3D printers smarter with MTouch, a low-cost automatic fault detection system

MTouch consists of an actuated contact probe and a software algorithm designed to automatically detect faults during 3D printing. Implemented on a Raspberry Pi via an Octoprint plug-in, MTouch has been shown to detect faults faster and more reliably than an AI-based algorithm.

This article is a part of  our University Technology Exposure Program. The program aims to recognize and reward innovation from engineering students and researchers across the globe.

Community voting is now live. Vote for your favorite submission by visiting: University Technology Exposure Program Community Vote.


Desktop fused filament fabrication (FFF) 3D printers have been growing in popularity among hobbyist and professional users as a prototyping and low-volume manufacturing tool. FFF 3D printers work by heating plastic filament and extruding it through a nozzle onto a bed. To manufacture an object, motion systems move the nozzle and bed to build up the desired part layer by layer. A hurdle in the further adoption is their failure rate of more than 20% with no ability to determine when a defect has occurred resulting in wasted time and material as the print continues. Several techniques have been proposed to detect such defects but many of these approaches are tailored to one specific failure mode, use expensive hardware, and/or use machine vision algorithms which can be sensitive to ambient conditions making them unreliable. [1] 

To catch issues early, printers are often watched by a user; however, this may not always be possible. Some prints may take overnight to complete, or a user may be busy tending to another task. Similarly, for large collections of printers, often called print farms, used for small scale production, watching numerous printers can become tiring and an operator may not notice one printer with an error among many others. 

To tackle this issue, our research group, Smart and Sustainable Automation Research Lab (S2A Lab) at the University of Michigan has developed MTouch: a low-cost automated fault detection system for FFF 3D printers capable of detecting multiple types of faults, and robust against external conditions. MTouch augments a 3D printer by attaching to its extruder and catches defects in a part by taking measurements at regular intervals during the printing process. If a fault is found, the print will be paused, and the user alerted to the potential issue. The print can then be reset and restarted saving additional time and material from being wasted.

How MTouch Detects Faults

MTouch determines if the object being printed has millimeter-scale geometric defects by checking for the present or absence of the print at specific locations and comparing to pre-computed expected results. The system starts by generating sample points and their expected results from a Gcode file and some user inputs. Sample points are created by iterating through the Gcode and generating sample points for the print’s layers at an interval specified by the user. 

Figure 1 shows some example sample points generated for layers of a test print. At locations like the shell of a print or an infill wall, the print should be detected. Similarly, at other locations, the print is not expected to be found such as slightly beyond the outer shell of a print or cavities within the print. If a fault were to occur during the printing process, the result of a sample point will not match its expected outcome. 

For example, if a filament runout fault were to occur, sample points tested after the filament has run out will return a “no print detected” result despite expecting the print to be detected.

A picture containing arrow 
Description automatically generatedFig. 1 Sample points generated for three different layers of a test print. Points where the print is expected to be detected are shown using circles; points where the print is not expected are shown using squares  

Sample points for each layer are generated using strategies that are picked and combined by the user. At first, a simple strategy of random placement was used where random points across the printed layer were generated. Three more advanced sampling strategies were then developed to optimize the location of sample points to detect certain types of faults. 

The first sampling strategy developed was the Inside-Outside strategy. This strategy aims to ensure sample points are generated along with the outer shell of the print by finding the convex hull of the cross section and generating points within a 0.1 mm threshold. The same number of points are then generated outside this threshold and within the convex hull to ensure the internal parts of the print are also sampled. 

Figure 2(a) shows sample points generated using the Inside-Outside strategy for a test print. This strategy ensures points along the convex hull are sampled where faults such as collapsed overhangs and misshapen shells are most likely to be since other parts of the print cannot provide support. 

The second sampling strategy developed was the Min-Max strategy. This process calculates points at the extremes of the X and Y axes. Figure 2(b) exhibits sample points output by Min-Max for a test print. By taking sample points at the extremes of the X and Y axes, faults that allow the print to move relative to the extruder, such as bed separation, will be reliably detected.

Description automatically generatedFig. 2 Sample points generated with each sampling strategy: (a) Inside-Outside; (b) Min-Max; (c) Layer Shifting Detection.

The final sampling strategy developed was the Layer Shift (LS) Detection strategy. As its name implies, this strategy is specifically targeted at determining when a layer shift fault has occurred. For this strategy, sample points just beyond the outer shell of the print and expecting the print to not be detected. Examples of such sample points can be seen in Figure 2(c). 

When a layer shift fault does occur, the post layer shift layers will be offset from the previous layers, causing the sample point to be shifted over the previous layers resulting in a “print detected” result. Figure 3 illustrates this process.

Description automatically generatedFig. 3 Illustration of layer shift detection sampling strategy

After the sample points are generated, the print is started and interrupted after a layer with generated sample points is completed. During the interruption, the presence or absence of the print is determined at each sample point location using a specially developed actuated contact sensor shown in Figure 4.

Diagram, schematic 
Description automatically generatedFig 4. Labeled CAD model of the MTouch actuated contact sensor.

The contact sensor determines the presence or absence of the print by actuating the solenoid and using the hall effect sensor to measure the position of the magnet. Images of the various states of the sensor during the measurement process can be seen in Figure 5. 

A picture containing timeline 
Description automatically generatedFig. 5 Three images representing the three states of the sensor during use: (a) The deployed position not in contact with the print; (b) The deployed position in contact with a print; (c) The stowed position.

The rightmost image in the figure shows the sensor in the stowed position above the intended sample point. In this position, the magnet is close enough to the hall sensor for the magnet to be detected (which can be seen by the red light). The middle image shows the sensor when the solenoid is actuated, and the probe contacts the print. The magnet moves away from the hall effect sensor, but the magnet can still be detected. The positive signal from the hall effect sensor indicates the probe contacted the print. The leftmost image shows the solenoid actuated and the probe not in contact with the print. 

Since the probe is not in contact with the print, the solenoid is able to fully extend, moving the magnet far enough away from the hall sensor, the magnet cannot be detected. This negative signal is an indication the probe did not contact the print. A video of the MTouch system in action can be seen below and a preprint of a paper going into even further detail can be found here.

MTouch Performance

To validate the MTouch system and methodology of detecting faults, tests were conducted where a fault would be deliberately introduced to a print with the fault detection system in operation. The print layer the fault was introduced and the layer the fault was detected were recorded as well as the time elapsed before detection. All tests were repeated three times to ensure consistent results. 

The faults tested were bed separation, filament runout/jam, and layer shifting. Images of a normal print as well as a print affected by each of these faults can be seen in Figure 6. As a point of comparison, the same tests were conducted with The Spaghetti Detective (TSD), a commercially available fault detection system from FFF 3D printers which uses cameras and a trained neural network to detect faults.

A picture containing shape 
Description automatically generatedFig. 6 Examples of all the faults tested in the fault detection validation tests: (a) Filament Runout/Jam (b) Y Axis Layer Shift (c) X Axis Layer Shift (d) Bed Separation (e) No Defects

The results, summarized in Table 1, show the MTouch system can detect all three faults, bed separation, filament runout/jam, and layer shifts. Compared to TSD, MTouch was able to catch the bed separation faults 154 seconds (or 44%) faster compared to TSD, as well as identify faults such as filament runout/jam and layer shifting which TSD cannot detect. 

Fault Detection System

Layer Fault was Detected

Elapsed Time [s]

Fault: Bed Separation







Fault: Filament Runout/Jam







Fault: Layer Shift X Axis (Y Axis)


N/A (N/A)

N/A (N/A)


32 (32)

197 (199)

Table 1.  Results of the fault detection tests for MTouch and TSD. All faults were introduced at layer 27

In addition to the faults tested, the MTouch system should also be able to detect faults such as collapsed overhangs and large-scale deformations as the printed part moves affecting the results of the contact sensor measurements. 

Since the MTouch system requires the print to be paused at times, it does increase the total time required to manufacture a part but in testing the increase in print time was only 8.5% on average or about 3.5 minutes for a 40 minute print. This does come with the benefit of being unaffected by changes in ambient conditions since the MTouch system makes making physical contact (or the lack thereof) with the print. 

The total cost of the system is also quite low. The cost of all these components including a Raspberry Pi used to control the printer and the actuated contact sensor is less than $60, significantly less than the industrial laser distance sensors, or multiple high-resolution cameras used in other fault detection systems.

Applications of MTouch

An MTouch system could be incredibly helpful to print farm operators and hobbyist 3D printers as a method to detect when a print has failed. Additionally, hobbyist users may benefit from the peace of mind as an MTouch system keeps watch over an overnight print. In either case, the MTouch system can help alleviate the need for constant direct human oversight of a 3D printer by stopping a print after a defect has occurred, saving time and/or material from being wasted. Researchers at the Smart and Sustainable Automation Lab at the University of Michigan are now working to use the MTouch system to train a machine learning algorithm to predict faults before they occur.


[1] This AI watches over your 3D Printers for you - The Spaghetti Detective Review!

About the University Technology Exposure Program 2022

Wevolver, in partnership with Mouser Electronics and Ansys, is excited to announce the launch of the University Technology Exposure Program 2022. The program aims to recognize and reward innovation from engineering students and researchers across the globe. Learn more about the program here.


More about Sam Aidala

Recent Graduate of University of Michigan where I worked with the Smart and Sustainable Automation Research Lab to develop a low-cost, automatic fault detection system for consumer grade FFF/FDM 3D printers.

Wevolver 2023