Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Indirect (bearing) laser filament monitor concept

    Scheduled Pinned Locked Moved
    Filament Monitor
    26
    109
    14.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Adrian52undefined
      Adrian52 @3dmntbighker
      last edited by

      @3dmntbighker I did leave the centre of the bearing slot as a nominal 4mm, the region for the moving outer bearing being 4.2mm. So maybe its worth checking if the bearing/bolt is fully seated - on my print it takes a bit of a push for it to click in place, but then it rotates freely. Could post one with a bit more tolerance it that would help.

      1 Reply Last reply Reply Quote 0
      • Adrian52undefined
        Adrian52 @SteveYYC
        last edited by

        @steveyyc I tried making a double walled 15mm spacer, with an inner channel of 7x4mm, with a 3mm thick wall, linking the sensor to the bearing surface. I even put a little 0.5mm thick flap to block the LED shining into the sensor chamber. The results were very similar to those obtained with the plain 15mm spacer, so in my hands I don't think light leakage is a problem.

        1 Reply Last reply Reply Quote 1
        • 3dmntbighkerundefined
          3dmntbighker
          last edited by 3dmntbighker

          Sounds like an optimized design is in the near future. I could definitely use a bit more bearing clearance. I think the whole thing could be a bit wider with some bearing slop and room for a longer bolt. It seems like it's tighter in there than it needs to be to save a few mm outer dimension.

          Scratch built CoreXY with Maestro
          Heavily modified Ender 3 with Maestro
          MPCNC work in progress with Duet WiFi

          Adrian52undefined 1 Reply Last reply Reply Quote 1
          • brunofportoundefined
            brunofporto @Adrian52
            last edited by

            @adrian52

            Great information!!!!!!

            I used to compare the slicer predicted total length with the sensor reported total length. How does this correlate with the sensor distance?

            1 Reply Last reply Reply Quote 0
            • Adrian52undefined
              Adrian52 @3dmntbighker
              last edited by

              @3dmntbighker I have put a new version on thingiverse, 3649565. I have increased the play, and made the bolts screw in from the side. This is easy for the bottom bearing, but you need a 7mm bolt for the upper bearing to fit between the vertical bolts. Their spacing is determined by the holes on the PCB.

              I have done more experiments with the gap between sensor and top bearing, and have concluded so far that a 5mm spacer is probably ok. I realised that my initial results were essentially single points for the max and min - with repeated runs, the picture is not so clear, but I think 5mm is better than no spacer.

              The percentages I get are still high, but quite reproducible - for the 5mm spacer, the average is about 270%, with the min not below 259, and the max not above 287 on 4 runs of at least 500mm extrusion. The relationship between sensor distance and average percentage reported is very linear - I have 12 points in my dataset now, with a least squares linear fit r squared of 0.998. The slope is 23.0 - the average percentage increases by 23 for each mm of gap between the sensor and bearing surface.

              3dmntbighkerundefined 1 Reply Last reply Reply Quote 3
              • 3dmntbighkerundefined
                3dmntbighker @Adrian52
                last edited by

                @adrian52 said in Indirect (bearing) laser filament monitor concept:

                @3dmntbighker I have put a new version on thingiverse, 3649565. I have increased the play, and made the bolts screw in from the side. This is easy for the bottom bearing, but you need a 7mm bolt for the upper bearing to fit between the vertical bolts. Their spacing is determined by the holes on the PCB.

                I have done more experiments with the gap between sensor and top bearing, and have concluded so far that a 5mm spacer is probably ok. I realised that my initial results were essentially single points for the max and min - with repeated runs, the picture is not so clear, but I think 5mm is better than no spacer.

                The percentages I get are still high, but quite reproducible - for the 5mm spacer, the average is about 270%, with the min not below 259, and the max not above 287 on 4 runs of at least 500mm extrusion. The relationship between sensor distance and average percentage reported is very linear - I have 12 points in my dataset now, with a least squares linear fit r squared of 0.998. The slope is 23.0 - the average percentage increases by 23 for each mm of gap between the sensor and bearing surface.

                You are a rock star 😉

                Scratch built CoreXY with Maestro
                Heavily modified Ender 3 with Maestro
                MPCNC work in progress with Duet WiFi

                1 Reply Last reply Reply Quote 0
                • rogerkamp8817undefined
                  rogerkamp8817
                  last edited by

                  Great job, have duet laser sensor on order and can't wait to try this.

                  1 Reply Last reply Reply Quote 0
                  • Crash69undefined
                    Crash69
                    last edited by

                    Wasnt sure if I should start a new thread, hopefully its ok just to add here, I printed the concept above from brunofporto with the latest changes by adrian52.. but I don't have the right bearings on hand to properly test. Was going to take a while for bearings to get delivered..

                    So I decided to have a go at trying to come up with my own design. The goal was to use some decent quality bearings I had on hand - 5x10x4 (mr105) and because I figured it would be something I would be printing different version of, something that was quick & easy to assemble.

                    So here's my attempt:

                    0_1559744386738_poorprint.jpg

                    I have tried various sensor to bearing surface distances so far.. and I'm finding that around 9mm seems to be the most consistent.

                    Here is a output from a recent print:

                    0_1559744557332_M591.JPG

                    So far it seems to work really well - quite similar to adrian52's results. If you normalise the raw average figure of 299 to be 1 (or 100%) then the lowest reading is 0.956 (4.5% below the average) and the highest reading is 1.023 (2.3% above the average.

                    I have short tube of around 25mm between the sensor and my extruder input.. so I have set the check to be every 5mm instead of the 3mm in the example which still allows plenty of time to pause the printer if there is an issue, but the slightly longer check also seems to help a bit with consistency.

                    I have put my stl's and .scad file on thingiverse for anyone to use/mod/try

                    https://www.thingiverse.com/thing:3673768

                    brunofportoundefined tagliaundefined 2 Replies Last reply Reply Quote 2
                    • brunofportoundefined
                      brunofporto @Crash69
                      last edited by

                      @crash69 Loved your solution for the barings holder!!!!! These bearings are easier to find around here and also cheaper. I'll buy them ASAP and test your design. 😄 Thanks!

                      1 Reply Last reply Reply Quote 0
                      • Adrian52undefined
                        Adrian52
                        last edited by

                        I have been continuing to play with the monitor, and have also made a version for 10mm bearings - I have put it on thingiverse, 3717158. I have made the jaws part spring loaded, so that you can adjust the tension gripping the filament.
                        When printing slowly, the maximum and minimum values are very accurate (within 2-5%, as above). With faster extrusion, the range tends to get bigger. Using longer measuring intervals seems to give less variation - I am currently using 10mm. Using the A1 switch seem to give a very accurate measure of the total filament used - sometimes giving uncanny agreement with the value reported by DWC (my last print the monitor reported 1640mm, DWC 1639mm, and the slicer said 1643mm). When I use the A0 switch, the monitor reports 85-90% of the filament usage reported by DWC. The total usage data seems to remain extremely accurate when printing faster, where the maximum and minimum values become very wide. Could the max/min variation be due to hitting limits of processing the data?

                        1 Reply Last reply Reply Quote 1
                        • dc42undefined
                          dc42 administrators
                          last edited by dc42

                          It could be that the synchronisation in firmware between the filament sensor reading and the extrusion commanded isn't always working properly.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          Adrian52undefined 1 Reply Last reply Reply Quote 1
                          • Adrian52undefined
                            Adrian52 @dc42
                            last edited by

                            @dc42 have done some more tests using a 20x20x4mm cube with 100%fill, printed at 60mm /sec, then varying the layer height or width to achieve specific filament movement rates. I print the first layer at 10mm/sec, so checking after 100 mm gives a 'slow' baseline for each test, and the total is a little over 700mm. Under these conditions I have no hiccups or missed steps.
                            For me, the monitor works well with filament movements up to 1.3mm/sec (max/min within 10% of the average) , but for 1.5mm/sec and 2mm/sec, the max/min range becomes very wide, often going negative on the min side. I get similar results with and without a 5mm spacer, although the actual numbers are higher with the spacer as previously observed.
                            The total extrusion reported by the monitor is very close (usually within 1%) to that shown by dwc or the slicer, even when the extrusion rate is above 1.5mm /sec.
                            I have also started to note the error rates for the monitor reported by M122. For tests below 1.3mm/sec, frame errors are 2000-4000, and pol errors high(20000-30000). Above 1.3mm/sec, frame errors are 20000 - 30000, but pol errors are below 10000. I have also noticed that the error count is not zeroed when you start a new print - I have been doing a reset after each test to zero things up.

                            brunofportoundefined dc42undefined 2 Replies Last reply Reply Quote 2
                            • zaptaundefined
                              zapta
                              last edited by

                              @adrian52, what is that you are trying to achieve? If it's the detection of filament grinding, do you need exact measurements or just no movement in a certain time period?

                              1 Reply Last reply Reply Quote 0
                              • brunofportoundefined
                                brunofporto @Adrian52
                                last edited by brunofporto

                                @adrian52 What is curious is that I had similar results (high precision with total measured length compared to predicted by slicer) with direct filament readings!!! It was precise enough that I could even calibrate extrusion steps/mm with it. Even with filaments that I had horrible max and min results.

                                1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators @Adrian52
                                  last edited by

                                  @adrian52 said in Indirect (bearing) laser filament monitor concept:

                                  I have also started to note the error rates for the monitor reported by M122. For tests below 1.3mm/sec, frame errors are 2000-4000, and pol errors high(20000-30000). Above 1.3mm/sec, frame errors are 20000 - 30000, but pol errors are below 10000.

                                  Hmm, that sounds odd. Which firmware version are you running? Run M115 to make sure. Also, which revision Duet do you have? We changed the values of the filtering capacitors on later ones to help the filament monitor signals get through more reliably.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                                  Adrian52undefined 1 Reply Last reply Reply Quote 0
                                  • Adrian52undefined
                                    Adrian52 @dc42
                                    last edited by

                                    @dc42 running 2.03+1. I have a 1.01 duet wifi. Is there a way I can improve the situation?

                                    dc42undefined 1 Reply Last reply Reply Quote 0
                                    • dc42undefined
                                      dc42 administrators @Adrian52
                                      last edited by dc42

                                      You could try connecting the filament monitor to one of the endstop inputs on CONN_LCD, which have no filter capacitors. That would be easier than removing the filter capacitor from a regular endstop input on the Duet. But if the problem is interference from a stepper motor cable, it may make matters worse.

                                      Keep the cable to the filament monitor away from the extruder motor cable; or if they must run together, try using shielded cable for the filament monitor.

                                      Duet WiFi hardware designer and firmware engineer
                                      Please do not ask me for Duet support via PM or email, use the forum
                                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                                      Adrian52undefined 1 Reply Last reply Reply Quote 1
                                      • Adrian52undefined
                                        Adrian52 @dc42
                                        last edited by

                                        @dc42 Excellent advice. I have connected to stop 10 on conn_lcd using shielded cable (a repurposed USB cable that also has a ferrite ring), and the errors are now zero. I have got up to 3mm/second filament (0.5 width, 0.3 height at 60mm/sec) and the max/min were 107%/95% of the average. Wow.

                                        mitchundefined JADoglioundefined 2 Replies Last reply Reply Quote 1
                                        • tagliaundefined
                                          taglia @Crash69
                                          last edited by

                                          @crash69 Thank you for this; I really like your design (it printed like a charm)! Also, your .scad file is straightforward to tweak. I have changed the following:

                                          • Added a bracket to attach to my Ender 3 with a SeeMeCNC EZR Struder;
                                          • Increased the sensor distance to 19mm (thanks @Adrian52 for the analysis);
                                          • Made the split on the bearing mounts longer, to make it easier to slide the bearings in;
                                          • Adapted the bearing size to some bearing I had lying around (16x8x5).

                                          I did a quick test with a shorter sensor distance; the results were much better than with direct reading, but I still got a wide range. In the next few days, I will print another one with all the changes listed above. If anybody is interested, I can publish the remix.

                                          Thank you all for this very informative thread.

                                          brunofportoundefined 1 Reply Last reply Reply Quote 0
                                          • brunofportoundefined
                                            brunofporto @taglia
                                            last edited by

                                            @taglia Please do publish! 😄

                                            tagliaundefined 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA