Filament Jamming Detection

From RepRap
Revision as of 11:47, 21 September 2016 by RafaelEstevam (talk | contribs) (Yet more minor edits)
Jump to: navigation, search


The intent of this document is to show one way of detect filament jamming/stopping using various methods or some variations. One priority of the method is keep the costs as low as possible and with less change in procediments and firmware as possible.

The detection method uses information of the filament itself and do not uses any of extruder moving parts to take its actions and can detect either end of filament, filament jamming inside nozzle, extruder slipping, knot in the spool and more.

The basic detection system reads filament motion using a little friction with the filament and using this to drive a encoder wheel. If for any reason the filament stop moving the encoder will stop turn and the firmware can detect the problem and take some action.

As the intention is keep all changes at minimum to the actual hardware software the detector is designed to be modular and independent despite of be possible an integration with the extruder mechanism for space optimization.

I will separate the mechanism in three parts: mechanical detection of movement, sensor read of the data and firmware interpretation of this data.

Mechanical detection of moving

Mechanical detection uses some friction with the filament to detect its movement. This friction must be as low as possible to do not require more torque from the extrusion mechanism and do not change any other characteristics of the actual build of the printer.

The core function is based on a friction wheel using teeths or some plastic/rubber material which will be forced to move with the filament. This movement is transferred to an encoder wheel with or without a gear system and then read using either an optical or mechanical endstop. Also, any system which can read movement of an encoder wheel can be used.

IMAGE 01 Image 1 - Illustration of one possible approach

In above example I used an gear touching the filament in same way many extruders work and using a bearing to keep the correct pressure and then read the gear movement using an optical endstop which trigger with each gear teeth passing by it.

There are many other possible approaches such as but not limited to use a rubber or other similar material to move the wheel along with the filament and/or use gears to translate the wheel move to an encoder or yet use other methods as mechanical endstop to trigger the encoder movement.

Sensing the Movement

The second part is to use the mechanical data to get some electrical signal to the firmware. This can be achieved either using an optical detector, mechanical detector or electric effect sensor, such as hall effect or electrical resistance (potentiometer/trimpot) attached to the wheel, which trigger an electrical signal to the control board.

See below various ways of detect:

  • Use an optical endstop to read the gears or the encoder wheel;
  • Use an mechanical endstop to read the gears or de encoder wheel;
  • Use hall effect sensor to detect the movement of the gear or wheel by sensing electrical current change in detriment of the wheel movement or position;
  • Use electrical voltage variation to detect the actual position or movement of the wheel (as much like some servo motors work)
  • Use position variant readers to detect physical linear position (see image 2)

IMAGE 02 Image 2 - Example of use of linear position detection

After the movement have been detect this signal must be send to the control board or its movement control section/chip/controller. This board or section will be called as “board” in the rest of this document to keep it simple to read.

Firmware interpretation of Data

After the signal arrives the control board the firmware must manipulate this data despite of the format of the signal, which can be either digital or analogic.

In firmware there are two possible ways to track the position. The easy way is simple compare the movement of the extruder axis with the feedback and check if they are reasonably compatible but not necessary identical. Other way is count each step of the input format and keep precise feedback control. At this point all above problems can be detected and actions be taken. Despite of different nature of all above mention problems not necessary all them are distinguishable and the firmware must consider this fact.

The first and immediate problem that can be detected is the filament stop, which can be either the end of filament, the extruder jamming, the extruder slipping or knot in the spool. This cases the print can be paused and the user can fix the problem avoiding the loss of what has been printed so far. A second problem is the extruder motor skipping steps. In that case, the precise read of the position can be used to compensate this and temporarily fix the problem and avoid the lose of what was already print. Each firmware “has” to be studied to avail the possibility of this implementation as long as its requirements and necessary considerations.

Work to be done

I can not upload images yet, so I will publish them in other place for now (there are visible in the original version of this document, link bellow)


This document

This document is double licensed and is also licensed under Creative Commons Attribution for RafaelEstevam and was first written in September of 2016 by RafaelEstevam. The original version can be found here: [1]