Made my own filament sensor using an optical endstop, for pausing the print when filament runs out, or extruder is clogged.
I am using it on my custom made 3D printer (400mm cube print area) with a Duet WiFi board.
I uploaded the SketchUp 2017 file, if you want to make modifications.
Things you need:
1 x Optical Endstop
1 x Teflon tube about 10 cm long (or more). Cut a V shape (see pictures) in the middle of the tube. If you put a filament through the tube, the filament should be exposed at the V cut.
1 x M3 35mm long screw (or longer)
2 x M3 10mm screw
6 x M3 washers
4 x M3 Nylon Lock Nuts
2 x 693zz Metal bearings - 3x8x4
Small zip ties
Install the optical switch first, see image how to use an allen key to tighten the M3 screw.
On the M3 35mm screw:
Nylon Lock Nut
insert the long screw in the 3D printed block while you
insert the optical encoder wheel
Nylon Lock Nut - use Long Nose Pliers to hold the nut while you tighten the nut
another Nylon Lock Nut at ~8 mm after the previous lock nut
Nylon Lock Nut
Insert the Teflon tube with the V cut. The V cut opening is intersecting the M3 screw.
Use the zip ties to tighten the whole thing by the bearings
When you insert the filament through the teflon tube, make sure the encoder wheel spins, you might have to move the teflon tube around. Also make sure the encoder wheel is not touching the optical endstop while it's spinning.
I connected the optical endstop to my Duet WiFi on the CONN_LCD port, at pins
pin 1 - +3.3V
pin 2 - GND
pin 3 - Stop 10 (ENC_B)
To configure filament sensing, this is what I have in my config.g:
M591 D0 P7 C10 S1 R60:140 L0.305 E5
Here's the sensor in action:
Note: in the video I was using an older version of the encoder wheel. The encoder wheel I uploaded here makes the sensor more responsive.
Please post your makes :)