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

    Question about G29

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    6
    18
    2.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.
    • fcwiltundefined
      fcwilt @Phaedrux
      last edited by fcwilt

      @phaedrux said in Question about G29:

      Instead of just 0 for the S value why not 0.001?

      Well the description said the two consecutive readings had to match within the S amount.

      And the readings from the probe, at least as far as they were displayed, when the differed they always differed by 0.01.

      Sometimes the readings matched and the probing at that point ended and it moved on to the next point.

      Sometimes it never matched, reported the error and stopped - which is discussed anywhere that I could find. Supposedly with no matches it would average the 10 readings and that would have been fine.

      Certainly won't hurt to try different values for S - which I will do.

      Frederick

      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

        I was mostly just curyif it behaves the same with a zero value as with a non zero value.

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • token47undefined
          token47
          last edited by token47

          I have this problem also. Something is not right.

          The documentation at

          https://duet3d.dozuki.com/Wiki/Gcode#Section_M558_Set_Z_probe_type

          says that: "The A and S parameters control multiple probing. Probing is repeated until two consecutive probe attempts produce results that differ by no more than the S parameter; then the average of those two results is used. However, if the number of attempts specified by the A parameter is reached without getting two consecutive results within tolerance of each other, no further probe attempts are made and the average result of all the attempts is used."

          But, what happens actually is that an error is raised and the G29 stops completely. This happens even when G29 comes inside a gcode from a slicer. So it will probe a few points and abort, then start printing without completing the mesh.. This is wrong and is not predictable behavior. I would expect at least the whole print to abort, if not doing what the documentation says (which would be way better).

          I just forced an error turning the S parameter of M558 to S0.00 as @fcwilt suggested. It spits

          12:47:58 AMError: Z probe readings not consistent

          on the logs and abort. It should do as the doc says and continue. Shouldn't it?

          I just noticed this when I saw a G29 failing and the print starting anyway.

          Thank you!

          brunofportoundefined 1 Reply Last reply Reply Quote 1
          • fcwiltundefined
            fcwilt
            last edited by

            Hi,

            Thanks for verifying that you can reproduce the same behavior.

            Frederick

            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

              I'll change it in the next 2.02RC so that a zero or negative tolerance causes it to average all readings and not treat it as an error.

              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

              fcwiltundefined token47undefined 2 Replies Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @dc42
                last edited by

                @dc42 said in Question about G29:

                I'll change it in the next 2.02RC so that a zero or negative tolerance causes it to average all readings and not treat it as an error.

                That will be grand.

                Thank you.

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                1 Reply Last reply Reply Quote 0
                • token47undefined
                  token47 @dc42
                  last edited by

                  @dc42 That is great (and please do it) but it may not solve both problems.

                  One problem is a way to force doing all the probes and averaging them. Treating 0.00 as a special case to do that will solve this one.

                  Other problem is having a non-zero value, and still not being able to find two readings whose delta is below that value, even making all the possible readings. It should then just average all the readings, but it gives an error and aborts the G29. This is different from what the documentation says it should do.

                  I think this second problem is a bug, what do you think?

                  Thank you!

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

                    i agree that it does not accord with the documentation. What would users prefer: to abandon the mesh probing when the readings are inconsistent, or to use an average? The advantage of abandoning mesh probing in this case is that you don't have to wait for it to finish before you try again.

                    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

                    fcwiltundefined token47undefined 2 Replies Last reply Reply Quote 0
                    • fcwiltundefined
                      fcwilt @dc42
                      last edited by

                      @dc42 said in Question about G29:

                      i agree that it does not accord with the documentation. What would users prefer: to abandon the mesh probing when the readings are inconsistent, or to use an average? The advantage of abandoning mesh probing in this case is that you don't have to wait for it to finish before you try again.

                      Perhaps another parameter which determines the behavior of the existing parameters?

                      That would allow existing config files, etc to function as things are now but allow for new behaviors without using special values.

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      1 Reply Last reply Reply Quote 0
                      • token47undefined
                        token47 @dc42
                        last edited by

                        @dc42 I like being able to choose between both, as @fcwilt said. But, if forced to choose, I would prefer for it to follow documentation (average all readings and not abort). That is a must when you send a G29 from the start script of a slicer, unless the whole print would abort too (what happens today is that the G29 aborts and the print continues).

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

                          @token47 @dc42

                          Maybe configure like this:

                          Negative values: measure and if differ more than the S parameter use the average and print the error - but go on printing with the average.

                          Zero: Always use the average

                          Positive: Cancel print if measure something bigger than S parameter.

                          😄

                          1 Reply Last reply Reply Quote 0
                          • SupraGuyundefined
                            SupraGuy
                            last edited by

                            I can't see a way that the G29 command can abort the print job, given that there aren't any conditionals in gcode, unless it forces some kind of fault condition that shuts down the firmware requiring a reboot. Until such time as gcode has an "if" statement, but I don't see that coming soon.

                            I don't know that I'd want to average all values either. If I get one false trigger at Z=5, then 9 good triggers at -0.2 < Z < 0.2 my average will be about 0.5 too high. Personally, I'd rather that have a 0 entry in heightmap.csv for a "didn't probe there." which ought to cause the firmware to average the points that surround the bad probe point. Of course it depends on how many times you get a bad value from your Z probe. If yours is prone to false triggering (Which is the reason for multiple probes,or so I thought) then you could get some really wild average values.

                            So my preference would be to use a median value, rather than a mean, under the hopes that there would still be more good readings than false triggers.

                            Lead screw driven printer, powered by Duet 2 Wifi
                            MPCNC powered by Duet 2 Wifi
                            CoreXY printer driven by Duet 3 6HC
                            LowRider CNC powered by Duet 2 Wifi

                            brunofportoundefined dc42undefined 2 Replies Last reply Reply Quote 1
                            • brunofportoundefined
                              brunofporto @SupraGuy
                              last edited by

                              @supraguy Agreed. 😄

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

                                @supraguy said in Question about G29:

                                I can't see a way that the G29 command can abort the print job, given that there aren't any conditionals in gcode, unless it forces some kind of fault condition that shuts down the firmware requiring a reboot.

                                There are already situations in which a fault stops a print job, such as trying to move axes before they are homed, or trying to move outside the print area when the machine is in CNC or laser mode. So a failing G29 could be treated in the same way.

                                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

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