Filament Detector Results

Once our filament detector design was completed and installed on the Lulzbot Taz5 printer (Figure 1), it was time to start a print and read the values the sensor outputted. We started the print and simultaneously the Arduino software which would start outputting values every second, based on the amount of red light the sensor was observing.

Figure 1. The completed and installed detector design.
Figure 1. The completed and installed detector design.

As you can see from Figure 1, the wheel had many thin strips of color to be read by the sensor. At this stage in the project, we included 16 strips of red tape on the wheel. We stopped the print after a few minutes and added all the outputted sensor values to an excel file. Since a sensor value was produced each second, it was easy to plot the sensor values against a 1 second incremental x scale. Figure 2 shows a graph of the data from the trial print, using 16 strips. The high points are where mostly red was directly in front of the sensor and therefore read the most, producing higher values. The graph drops when the white portion of the wheel is showing.

Figure 2. Graph of sensor readings on wheel with 16 red strips
Figure 2. Graph of sensor readings on wheel with 16 red strips

To find out which number of red marks would produce the most accurate data, we decided to test different numbers of red marks on the wheel. For instance, we thought if we had too many red marks, the sensor would not be able to read the white marks and provide inaccurate readings on whether the wheel moves or not. On the other hand, too few readings would have the same effect. Figure 3 shows the data from a trial print where the wheel had 24 thin markings.

Figure 3. Graph of sensor readings on wheel with 24 red strips
Figure 3. Graph of sensor readings on wheel with 24 red strips

The 24 thin strips was obviously too much for the sensor to have accurate readings. As you can see, Figure 3 has much more erratic data and an even smaller range of sensor readings, showing us that the range of the sensor needed thicker red and white spaces to produce accurate results. Our next trial print was with only 8 red marks. The data for this file is shown in Figure 4, but it still does not produce the same results as the very first run with 16 red marks.

Figure 4. Graph of sensor readings on wheel with 8 red strips

The data with only 8 marks show less frequent changes in the data. The data is almost too smooth and has such a wide range of sensor values, showing that it would not read slight changes in the wheel. For example, if a print was stopped and the wheel did in fact stop spinning, the sensor could still have the same amount of white or red light in its range and not report a difference in the sensor value. After looking at the data for each three runs, it was apparent that our first trial print, using 16 red marks would produce the most reliable results of a failure in a print.

Now, with the filament detector reading accurate sensor values, our project is a success. A print is prepared with the MatterControl software. The standard Cura software for the Lulzbot cannot be used since it does not have a G-code terminal where the G-code can be displayed in real time. Once the G-code terminal is up in MatterControl, simultaneously begin the print, start the Auto Screen Capture program, and turn on the sensor. Now, at any time a print malfunction occurs, the sensor values will no longer oscillate, but continue in a straight line. This means there is no color change and thus no filament being fed to rotate the wheel. The moment this malfunction occurs can easily be seen in the sensor value data, as it outputs a value every second. Knowing the time this malfunction occurs then allows the user to look up the same time in the Auto Screen Capture video, which provides the line of G-code where the malfunction occurred.

With the working filament detector, we then decided to print until we observed a failure. The purpose of this project was to of course build the sensor to detect a failure, but also discover the mode of failure. Once we reached a print failure, we observed the printhead to see what had gone wrong. Figures 5 and 6 show that the filament actually degraded inside the print head. Between the heating of the filament softening the material and sharp teeth of the gears feeding the filament, small pieces of the filament were ripped off and clogged the print head.

Figure 5. Print head of Lulzbot Taz5 during print error.
Figure 5. Print head of Lulzbot Taz5 during print error.
Figure 6. Degraded Filament Clogging Gears in Print head.
Figure 6. Degraded Filament Clogging Gears in Print head.

Once we realized this was the error, we removed the filament (Figure 7) and saw the degree to which it had been deformed from being fed into the nozzle.

Figure 7. Degraded Filament deformed by feeder gears.
Figure 7. Degraded Filament deformed by feeder gears.

To solve this issue or suggest future work on this issue, we think adding a cleaning mechanism inside the gears would prevent the buildup of the ripped filament. Adding a part such as a pipe cleaner (Figure 8) inside the print head would clean the gears as they rotate and prevent malfunctions such as the one we noticed.

Figure 8. Possible cleaning mechanism to remove chipped filament in print head.
Figure 8. Possible cleaning mechanism to remove chipped filament in print head.