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.
    • 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