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

    Guide to Marlin's Fast BLTouch Probing feature on Duet

    Scheduled Pinned Locked Moved
    General Discussion
    bltouch fast marlin probe feature rrf
    8
    37
    8.7k
    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.
    • CCS86undefined
      CCS86
      last edited by CCS86

      I should clarify, I did see a reduction in precision at higher speeds (in some tests, but not others). You have to draw the line somewhere, at what is, and is not, a change you could even notice.

      Here are the results I got probing at F500 and F50:

      c628fbe9-bf21-4395-893e-d816261fbfc5-image.png

      Observations:

      • The slower speed offsets the reported values in a negative direction (~0.010mm)

      • The min/max spread at F500 and F50 is 0.010mm

      • There appears to be a resolution of 0.005mm, even though I have 400 steps/mm on Z, which would give 0.0025mm full steps, plus x8 microstepping and interpolation

      I'm curious to hear thoughts on this test. I wanted to gather larger sample sizes, but there seems to be a limitation in RRF for the number of points you can define and report via probing. Plus, I have to copy the data out of the console and manipulate it in excel to get it in a column (kind of a pain). If you have suggestions on how to improve the probing resolution, or increase the number of hits and write directly to a file, that would be awesome.

      Here is my macro:

      ;probe testing single point  
      
      M558 P5 C"^zprobe.in" H5 F50 T6000 
      G31 P25 X12 Y-18 Z2.37                              
      
      G91                     ; relative positioning
      G1 H2 Z5 F6000          ; lift Z relative to current position
      G1 H1 X-210 Y-200 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
      G1 H2 X5 Y5 F6000       ; go back a few mm
      G1 H1 X-210 Y-200 F360  ; move slowly to X and Y axis endstops once more (second pass)
      G90                     ; absolute positioning
      
      G1 X0 Y178 F4000        ; go to first bed probe point
      G30                     ; home Z by probing the bed
      G1 F2000
      
      G30 P0 X12 Y160 Z-99999  
      G30 P1 X12 Y160 Z-99999  
      G30 P2 X12 Y160 Z-99999  
      G30 P3 X12 Y160 Z-99999 
      G30 P4 X12 Y160 Z-99999  
      G30 P5 X12 Y160 Z-99999
      G30 P6 X12 Y160 Z-99999  
      G30 P7 X12 Y160 Z-99999  
      G30 P8 X12 Y160 Z-99999  
      G30 P9 X12 Y160 Z-99999  
      G30 P10 X12 Y160 Z-99999 
      G30 P11 X12 Y160 Z-99999 
      G30 P12 X12 Y160 Z-99999 
      G30 P13 X12 Y160 Z-99999 
      G30 P14 X12 Y160 Z-99999 
      G30 P15 X12 Y160 Z-99999 
      G30 P16 X12 Y160 Z-99999 
      G30 P17 X12 Y160 Z-99999 
      G30 P18 X12 Y160 Z-99999 
      G30 P19 X12 Y160 Z-99999 
      G30 P20 X12 Y160 Z-99999 
      G30 P21 X12 Y160 Z-99999 
      G30 P22 X12 Y160 Z-99999 
      G30 P23 X12 Y160 Z-99999 
      G30 P24 X12 Y160 Z-99999 
      G30 P25 X12 Y160 Z-99999 
      G30 P26 X12 Y160 Z-99999 
      G30 P27 X12 Y160 Z-99999 
      G30 P28 X12 Y160 Z-99999 S-1
      
      
      G91                     ; relative positioning
      G1 H2 Z5 F6000          ; lift Z relative to current position
      G1 H1 X-210 Y-200 F4000 ; move quickly to X and Y axis endstops and stop there (first pass)
      G1 H2 X5 Y5 F6000       ; go back a few mm
      G90                     ; absolute positioning
      
        
      M558 P5 C"^zprobe.in" H5 F500 T6000 
      G31 P25 X12 Y-18 Z2.37    
      
      
      M18
      
      1 Reply Last reply Reply Quote 0
      • CCS86undefined
        CCS86
        last edited by CCS86

        Okay, on the resolution: I was setting 400 steps/mm first (which assumes a default x16 microstepping, then I was switching to x8. That gives me 200 steps/mm. Switching to x16 doubled my resolution, but the console only reports to 3 decimal places, and I am seeing 0.003 and 0.002 values reported, which seems odd.

        Re-running the same test in x16, gives this result:

        d81d9d55-45fe-4aee-860e-82dd1fb58835-image.png

        I noticed the downward trend, especially in the slow probing, and wondered if the MCU/drivers heating up could be causing it. So, I kicked my board cooling fan onto full, to stabilize all board temps, and I also kicked Z into x32, to run again. Results:

        26c297e6-d07a-4983-93c7-4b8fecedf0a0-image.png

        Downward trend is still there, and I still see very little reason to probe slowly.

        .
        .
        .

        I decided to try it out in P9 mode and see if it made a difference. I had to increase the dive distance for the fast probing, so it had enough time to recover. I left it in x32 as well:

        51e83b13-7d20-4f9d-b5c3-292c49c22067-image.png

        1 Reply Last reply Reply Quote 0
        • mwolterundefined
          mwolter
          last edited by

          Interestingly, P5 appears to be more accurate in my case. Below are five deviation tests for each P5 and P9. We're talking small fractions of a millimeter, but still. Maybe because the pin does not have to reset each time? Also the probe height can be lower with P5 at 1mm and P9 has to be 2mm or it errors because the probe can't extend. Also the P5 test is easily twice as fast as P9. IMO P5 is better as long as the machine is calibrated to reduce the chance of the pin breaking.

          P9
          Screen Shot 2020-05-04 at 9.59.01 AM.jpg

          P5
          Screen Shot 2020-05-04 at 10.01.21 AM.jpg

          Phaedruxundefined 1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator @mwolter
            last edited by

            @mwolter What is your M558 and G31 for those tests?

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • mwolterundefined
              mwolter
              last edited by

              @Phaedrux
              P5

              M558 P5 C"^zprobe.in" H1 F120 T24000
              G31 X25 Y-12.6 Z3.8 P500
              

              Here's how I'm invoking it.

              G1 Z{move.axes[2].userPosition+5} F600		; move z up 5mm
              M558 P5 C"^zprobe.in" H1 F120 T24000
              M401
              G4 P200			; pause for 200ms
              M280 P0 S60		; enable BLTouch Touch SW Mode
              G30 P0 X105 Y105 Z-9999
              G30 P1 X105 Y105 Z-9999
              G30 P2 X105 Y105 Z-9999
              G30 P3 X105 Y105 Z-9999
              G30 P4 X105 Y105 Z-9999
              G30 P5 X105 Y105 Z-9999
              G30 P6 X105 Y105 Z-9999
              G30 P7 X105 Y105 Z-9999
              G30 P8 X105 Y105 Z-9999
              G30 P9 X105 Y105 Z-9999 S-1
              M402
              M558 P9 C"^zprobe.in" H2 F120 T24000
              

              P9

              M558 P9 C"^zprobe.in" H2 F120 T24000
              G31 X25 Y-12.6 Z3.8 P500
              
              Phaedruxundefined 1 Reply Last reply Reply Quote 0
              • Phaedruxundefined
                Phaedrux Moderator @mwolter
                last edited by

                @mwolter said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                P500

                Have you tried with P25?

                Z-Bot CoreXY Build | Thingiverse Profile

                mwolterundefined 1 Reply Last reply Reply Quote 0
                • mwolterundefined
                  mwolter @Phaedrux
                  last edited by

                  @Phaedrux said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                  Have you tried with P25?

                  Yes, didn't notice a difference. No difference with the accuracy or functionality (not needing M280 P0 S60). It has been P500 for a while, so left it there.

                  1 Reply Last reply Reply Quote 0
                  • PastThePointundefined
                    PastThePoint
                    last edited by

                    Sorry to bring this back from the dead, but for those using a Duet 3 and Toolboards, this will NOT work. "Only Z probe types 8 and 9 are supported on expansion boards"

                    I wasn't paying attention when I was setting everything up. When I tried to actually do a fast probe, I got the error message quoted above.

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

                      @pastthepoint said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                      Sorry to bring this back from the dead, but for those using a Duet 3 and Toolboards, this will NOT work. "Only Z probe types 8 and 9 are supported on expansion boards"

                      I wasn't paying attention when I was setting everything up. When I tried to actually do a fast probe, I got the error message quoted above.

                      There is no reason why you shouldn't use P8 instead of P5. However, the fast probing method doesn't work on all machines, which is why we have the P9 option for BLTouch.

                      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

                      PastThePointundefined 1 Reply Last reply Reply Quote 0
                      • PastThePointundefined
                        PastThePoint @dc42
                        last edited by

                        @dc42 So, instead of attempting to use P5, I can use P8/P9 in it's place and this should function? With everything going on, I can't remember yesterday, let alone the exact details of why this didn't work, lol. But, if you think it will work, I'll give it another shot!

                        Thanks for taking the time to reply @dc42 !

                        Phaedruxundefined 1 Reply Last reply Reply Quote 0
                        • Phaedruxundefined
                          Phaedrux Moderator @PastThePoint
                          last edited by

                          @pastthepoint said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                          @dc42 So, instead of attempting to use P5, I can use P8/P9 in it's place and this should function? With everything going on, I can't remember yesterday, let alone the exact details of why this didn't work, lol. But, if you think it will work, I'll give it another shot!

                          Thanks for taking the time to reply @dc42 !

                          I don't think that's the case. The reason this method uses P5 instead of P9 is to avoid the automatic deploy and retract commands that are inherent to P9.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          1 Reply Last reply Reply Quote 0
                          • oliofundefined oliof referenced this topic
                          • oliofundefined
                            oliof @dc42
                            last edited by

                            @dc42 said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                            RRF used to keep the BLTouch deployed throughout probing sequences. Unfortunately that doesn't always work. The reason is that when the probe triggers, it retracts the pin automatically. If it is then commanded to deploy again (by using probe type P5 instead of P9), then if the print head hasn't risen enough (or the bed dropped far enough) so that the pin touches the bed and triggers again, the BLTouch enters the error state. That's why we introduced probe type 9, which keeps the pin retracted until ready to probe the next point.

                            Raising this thread because it came up in another context: Newer BLTouch probes do not autoretract anymore.

                            <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                            Phaedruxundefined 1 Reply Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator @oliof
                              last edited by

                              @oliof said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                              Newer BLTouch probes do not autoretract anymore.

                              Can you point me to more details?

                              Z-Bot CoreXY Build | Thingiverse Profile

                              1 Reply Last reply Reply Quote 0
                              • oliofundefined
                                oliof
                                last edited by

                                I don't have a source at hand, but it seems to be the case since BlTouch Smart v2.2. It definitely is in 3.1 probes (see https://github.com/MarlinFirmware/Marlin/pull/14015 -- unfortunately the originally linked video where high speed mode without stow/retract being showcased has been pulled from Youtube it seems).

                                ghost opened this pull request in MarlinFirmware/Marlin

                                closed BLTOUCH Tweaks and V3.1 new command #14015

                                <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                Herniczundefined 1 Reply Last reply Reply Quote 0
                                • Herniczundefined
                                  Hernicz @oliof
                                  last edited by

                                  @oliof They do not autoretract during a single "multi-touch" probing move or they can do an entire 441 point mesh without retraction?

                                  There are known knowns and known unknowns, things we know that we don't know. But there are also unknown unknowns.

                                  oliofundefined 1 Reply Last reply Reply Quote 0
                                  • oliofundefined
                                    oliof @Hernicz
                                    last edited by

                                    @hernicz the latter.

                                    <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                    Herniczundefined 1 Reply Last reply Reply Quote 0
                                    • Herniczundefined
                                      Hernicz @oliof
                                      last edited by Hernicz

                                      @oliof Are you aware that the link of the pull request you posted is from May 2019 while I wrote this guide in Feb 2020? Also the pull request is for Marlin not for RepRap.

                                      I've seen Marlins HS BLTouch in action back then and because RepRap didn't have this feature I figured out a workaround (basically ported the feature). As far as I know RRF still doesn't have this feature but now you can have 2 different probing speeds in M558. Since I changed my Duet2 WiFi to a Duet 3 MB6HC using the same BLTouch, I need to put "M280 P0 S60" after every deploy comand otherwise the pin gets retracted.

                                      As far as I know this feature still only can be achieved on RepRap if you set your probe type to P5, deploy and retract manually and prevent retraction with "M280 P0 S60" if necessary.

                                      To prevent the nozzle to ram into the heatbed or give "probe already triggered..." error during a single G30 command, by default the probe type has to be P9, only switching to P5 if necessary. This is why I wrote lenghts about modular probe config.

                                      There are known knowns and known unknowns, things we know that we don't know. But there are also unknown unknowns.

                                      oliofundefined dc42undefined 2 Replies Last reply Reply Quote 0
                                      • oliofundefined
                                        oliof @Hernicz
                                        last edited by

                                        @hernicz yes I am aware of that, the Marlin Merge Request is only here as a reference to the fact that BLTouch has the ability to not forcibly retract after probing. This is in support of your work here, not against it (-;

                                        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                        Herniczundefined 1 Reply Last reply Reply Quote 0
                                        • Herniczundefined
                                          Hernicz @oliof
                                          last edited by Hernicz

                                          @oliof Yes it has the ability (it had it back then as well), but if the firmware doesn't keep it deployed it will get retracted (at least after every probe point). On my Duet3 6HC it retracts even as a P5 I need servo commands to keep it deployed.

                                          By the way I experimented with using short dive height, sliding the pin on the heatbed with very good results. Unfortunately sliding the pin on the heatbed will eventually wear it off (how fast depends on surface), so this method is definitely not advised if you want accuracy in the long run (and don'twant to change the pin).

                                          The biggest problem with BLTouch that the pin has an unnecessary >1mm travel until it gets triggered, so @ 1mm probing speed thats 1 sec / touch. It would be nice if we would have a probe with adjustable pin deployment so we could deploy just under the trigger point of the probe and set dive height a bit more than the highest point of the heatbed (compared to Z0)

                                          In this video the probing speed is 1mm/s, but because the dive height is so short it is really rapid.

                                          https://youtu.be/Vq_Jz201ndw

                                          There are known knowns and known unknowns, things we know that we don't know. But there are also unknown unknowns.

                                          CCS86undefined 1 Reply Last reply Reply Quote 1
                                          • CCS86undefined
                                            CCS86 @Hernicz
                                            last edited by

                                            @hernicz said in Guide to Marlin's Fast BLTouch Probing feature on Duet:

                                            @oliof Yes it has the ability (it had it back then as well), but if the firmware doesn't keep it deployed it will get retracted (at least after every probe point). On my Duet3 6HC it retracts even as a P5 I need servo commands to keep it deployed.

                                            By the way I experimented with using short dive height, sliding the pin on the heatbed with very good results. Unfortunately sliding the pin on the heatbed will eventually wear it off (how fast depends on surface), so this method is definitely not advised if you want accuracy in the long run (and don'twant to change the pin).

                                            The biggest problem with BLTouch that the pin has an unnecessary >1mm travel until it gets triggered, so @ 1mm probing speed thats 1 sec / touch. It would be nice if we would have a probe with adjustable pin deployment so we could deploy just under the trigger point of the probe and set dive height a bit more than the highest point of the heatbed (compared to Z0)

                                            In this video the probing speed is 1mm/s, but because the dive height is so short it is really rapid.

                                            https://youtu.be/Vq_Jz201ndw

                                            Have you tested faster probing speeds? I didn't see a real benefit in probing so slowly.

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