FDM 3D printers are notorius at failing during big prints, and there is nothing worse than printing for 10+ hours just having to start over. So i started thinking about solutions to fix this problem.
The most common problems is fillament getting stuck in the spool, and blocking in the extruder. So i had to come up with a solution to remedy those two problems.
Make the fillament go trough a gear that rotates with teeth activating a optical endstop. The signal from the endstop would then be read by a microcontroller that will then “sense” when the fillament stops moving. And when this happens i want an arm on a servo to push pause, so that i can fix the problem and continue with the print.
The endstop was clearly marked where to connect vss, ground and signal. I didnt know what voltage it recuired so i had to test with a bench powersupply. Turned out to be 3.3V.
When the optical sensor is blocket, the green LED is lit and send 3.3V out the signal connector. I will use this to program the microcontroller.
Sadly this did not work. The printed parts did not create enough friction to turn the gear. I tried using my hot glue gun to create the friction i needed but the surface got too uneven to work. So rev1 got tossed.
I then realized i only use one of the extruders on my Makerbot Replicator Dual, so i could find a way to use the fillament drive from the extruder i didnt use.
So i went back to the drawing-board for rev 2:
Now this worked seemingly perfect, until i printed something bigger then a 20mm test cube. Everytime the extruder went to the side of the platform the fillament was under such strain that the printer stopped extruding for about a second. This ofcourse resulted in a bad quality print as shown below:
In order to fix this problem i had to find a different solution.
I then started on rev3 (the last one).
I knew i had to mount the sensor mechanism on top of the extruder itself. A look trough the gallery on the top of the page shows what i came up with.
Now that the “sensor” worked, i had to make the arm, and the bracket for the arm. This was pretty straight forward.
When that was done, i started with the “brains” of the project.
Programming the microcontroller:
The sensor “emits” either a 3.3V or 0V, all depending on a tooth on the gear is blocking the sensor or not. I then made a timer for both states, so that each time the signal is HIGH (3.3v) the timer starts counting, and the same for when its LOW (0v)
Now i programmed it so that everytime one of the timers got to 5 seconds the servo should move the arm to push the pause button.
Download files to make this here: