99p filament monitor



    • full disclosure: I paid £2.40 to source from the UK instead of China 😃

    M591 D0 Pulse-type filament monitor on endstop input 3, disabled, sensitivity 0.69mm/pulse, allowed movement 0% to 10%, check every 5.0mm, current position 0.0, measured sensitivity 0.689mm/pulse, measured minimum 97%, maximum 103% over 220.4mm

    0_1524661785250_filament_monitor_99p.JPG

    This is a(n) 'LM393 IR speed sensor' add-on for an Arduino. Conveniently it works with 3.3V and you can wire it straight to a Duet endstop connector to use as a pulse-type filament monitor.

    Various web pages (and postings on this forum) indicate that LM393 based encoder modules suffer from noisy edges, so I added a 0.01uF capacitor between the GND and D0 connections; this changed the measured sensitivity from +/-4% to +/-3%. Probably there's a better value cap to use? 0.01uF was the only one I could find locally which seemed reasonable.

    To use it you will need to make some sort of clamp-hob system similar to the design for the rotating magnet filament monitor to rotate the encoder wheel as the filament passes by. The photo shown is of an extruder I'm developing which uses the idler wheel for this purpose.

    The encoder wheel is here on Thingiverse, I used the 35 x 0.8 slits and wheel diameter exactly as in that file for my first try. It turns out that (my?) PETG filament is transparent to IR at this thickness (surprise! 😁) so you might test your own material before printing.

    A benefit of this design is that it should be possible to increase sensitivity/accuracy by making the encoder wheel larger with more slits (so more pulses per mm of filament). A similar design might work for the laser filament sensor (sensing the edge of a wheel as it turns); this would have direction information for the Duet and not be sensitive to individual filament characteristics.



  • FYI: basically this: https://www.aliexpress.com/wholesale?SearchText=HC-020K&opensearch=true

    I have one sitting on my bench, waiting to be installed!



  • or this is the FC-03 like the one I used



  • I made an even cheaper/simpler filament run-out sensor for a printer. It's just a printed plastic mount for a snap action switch- the same type used for endstops. Completely passive, just 2 wires. It's as reliable as the switch.

    It won't detect extruder slipping, only run-out, so it's best placed on the printer's frame so that when the filament runs out and the machine stops, there will be a tail of filament coming out of the extruder to make it easy to remove for filament change.



  • @mrehorstdmd yes - you built a run-out sensor.
    With the HC-02 and FC-03 we can actually detect nozzle clogs and extruder gear slip!


  • administrators

    Don't use a capacitor to remove the noise, add a resistor between the output and the non-inverting input of the LM393 instead. Last time someone had this problem I think I suggested about 47K and he ended up using 45K; but lower (e.g. 22k) should work too.



  • @resam Yes, and with the info from the M591 diagnostic calibrate filament (extrusion speed vs. temperature) without having to measure off segments as they move into the extruder.



  • This post is deleted!


  • @dc42 said in 99p filament monitor:

    Don't use a capacitor to remove the noise, add a resistor between the output and the non-inverting input of the LM393 instead. Last time someone had this problem I think I suggested about 47K and he ended up using 45K; but lower (e.g. 22k) should work too.

    with the 0.01 uF cap in place the best I got was 97% - 103%
    adding a 33k resistor I got to 99% - 102%
    removing the cap (testing resistor only) I got 98% - 104%

    so (a) probably both are of benefit, and (b) probably all of these measures are noisy and overlap.


  • administrators

    @robm said in 99p filament monitor:

    @dc42 said in 99p filament monitor:

    Don't use a capacitor to remove the noise, add a resistor between the output and the non-inverting input of the LM393 instead. Last time someone had this problem I think I suggested about 47K and he ended up using 45K; but lower (e.g. 22k) should work too.

    with the 0.01 uF cap in place the best I got was 97% - 103%
    adding a 33k resistor I got to 99% - 102%
    removing the cap (testing resistor only) I got 98% - 104%

    so (a) probably both are of benefit, and (b) probably all of these measures are noisy and overlap.

    The resistor is the technically correct solution. That board must have been designed by an amateur, because a professional electronics engineer would have included the resistor in the design.

    Lower value resistors will give more noise immunity, but if the resistor is too low then it won't respond at all.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.