The purpose of this project is to recognize when filament is no longer being fed through the extruder nozzle of common desktop 3D printers. When this error occurs, the nozzle still moves around the print according to its G-code, but with no material, leading to an unfinished print and wasted time. A sensor system should detect this error, stop the print, and give the user an idea of where in the G-code the error occurred. With such a system, the print can be continued, correctly, in a timely manner.
Requirements:
1. Detect an error.
For this specific project, an error is defined by filament being totally stopped from being extruded. For this malfunction, two possible reasons are explored.
-Filament Bending:
The first theory of malfunction is that the filament absorbs too much heat from the nozzle. As filament travels down into the nozzle, heat travels up, leading to a less rigid material. At this point, the filament bends around the motors and either clogs the system or does not create enough friction to be fed through the nozzle.
-Print time:
The second malfunction theory is simply an error that occurs with long prints. An obvious error is if the filament completely runs out. A less obvious error is the filament no longer being fed through the nozzle due to defects/imperfections in the spool of material and the motor not being powerful enough to overcome these.
2. Stop the print.
After the error is detected, the movement of the print head should stop, as to prevent moving further in the G-code with no actual printing being done.
3. Find approximate G-code line.
The line/location of the G-code, where the error occurred, should be approximated. This provides the user with an idea of where to start their print again, once the filament detection error is accounted for.
Ideas:
The following schematic shows a possibility for detecting the filament error. A rotational sensor connects to a wheel in contact with the filament (in a different position than the feeder) and another sensor connects to the extruder feeding motors. The signals from both sensors are compared and if one is not moving, some software identifies this as an error and sends a signal to the printing software to stop and recognize the current G-code line. The signals can be read using Arduino sensors and accompanying computer software. As for recognizing the line of G-code, software must be researched that provides the real time G-code. From there, we can setup a screenshot or video system that records the real time G-code and therefore catches the G-code line when the print stops.