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

    Z compensation rules, when it's on, when it's off?

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    8
    19
    3.3k
    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.
    • gnydickundefined
      gnydick
      last edited by

      And, @dc42 , my questions weren't really answered here or in the page you linked. Baby-stepping, how is it implemented? Is it a permanently applied offset that affects all of the z moves or is it just during a print.

      And, it seems like applying baby-steps isn't just after the currently running command, they seem to come in bursts. I've clicked -.05 rapidly and nothing happens for quite a while, then all of a sudden, boom, they all kick in at once.

      I'm not trying to be a pain, but I'm not really getting the support I need here.

      rootboyundefined 1 Reply Last reply Reply Quote 0
      • rootboyundefined
        rootboy @gnydick
        last edited by

        @gnydick said in Z compensation rules, when it's on, when it's off?:

        And, @dc42 , my questions weren't really answered here or in the page you linked. Baby-stepping, how is it implemented? Is it a permanently applied offset that affects all of the z moves or is it just during a print.

        And, it seems like applying baby-steps isn't just after the currently running command, they seem to come in bursts. I've clicked -.05 rapidly and nothing happens for quite a while, then all of a sudden, boom, they all kick in at once.

        I'm not trying to be a pain, but I'm not really getting the support I need here.

        Baby steps are used as a "real time" correction, usually at the start of your print. It's intended to make temporary changes to that print only, and should get reset on the next print (although I've seen my last baby step setting get carried over to the next print. Maybe it only gets reset between comps).

        For example, on my Rostock, it always has a high spot between the Z & Y pillars. So even though I've comp'ed the bed, the nozzle is going to drag across this spot. To compensate, I usually click "+" on the baby steps fives times, and once the Duet is done with the segment that it's printing, it will show "0.25mm" on the baby steps. That's the delay that you are seeing between when you click and when it actually shows up.

        As to its effect on the remainder of the print, yes, every layer from that point on is adjusted up by your baby step offset.

        1 Reply Last reply Reply Quote 0
        • gnydickundefined
          gnydick
          last edited by gnydick

          @rootboy

          I know how baby-steps work. I'm not sure why nobody is understanding my point/question...

          Problem 1) The duet seems to NOT ADJUST IN REALTIME. That is the problem. RAMPS based printers move the Z axis immediately whether or not there is any motion otherwise. The fact that there is delay in the duet, makes it more difficult to use. It is very easy to overshoot or undershoot the adjustment you need because feedback is not happening in realtime.

          The Live Adjust Z offset on my Prusa is the equivalent of baby-steps. It behaves in real time and I never have to change it again. It stores the setting by updating the z-offset in the eeprom. That would be a MUCH better implementation to have.

          Problem 2) Background: The baby-steps DO NOT get reset between prints, which is fine with me, if I needed it once, I'll probably need it again until I update the Z-endstop.g settings file. Problem: The problem I run into, is not knowing 100% absolutely if the currently applied baby-steps affect the motion while manually moving the printer via the web console Machine Control. I'm guessing it does, but, again, if you change the baby-step back to zero, the Z-axis does not move. If I reset baby-steps, it seems to not move the Z axis, but change the Z position number. That, in and of itself, is a horrible implementation. If I baby-step it .05mm, I expect it to move immediately. By modifying internal position pointers and not providing realtime feedback, the system requires a higher level of technical skill and intuition. Make the machine dumb. Jog a value, move the machine. Simple as that.

          This makes tuning the machine a bit more awkward because you don't get realtime feedback to your changes. So, if I want to zero out my Z axis and forget to reset the baby-steps, I get the wrong answer. This is all manageable via macros to make sure to reset baby-steps, turn off bed and mesh compensation, etc., but the fact of the matter is, realtime feedback is needed in order for the printer to behave intuitively. If I jog the Z .05mm through Machine Control, I expect the Z to move .05mm. Again, if I baby-step it .05mm, I expect it to move immediately. This is just poor implementation.

          Problem 3) The reset baby-step g-code M290 R0 S0 does not reset it. It only subtracts 1mm from the current baby-step offset.

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

            @gnydick said in Z compensation rules, when it's on, when it's off?:

            Problem 1) The duet seems to NOT ADJUST IN REALTIME.

            I agree, it would be better if babystepping was actioned faster. The problem is, although it's easy to do real-time babystepping that works in many cases (as Marlin does), it's much harder to do real-time babystapping that is guaranteed to work always and never results in missed steps no matter what printer architecture and stepper drivers used. Step-servo drives are a particular problem, because they get confused if they receive step pulses at irregular intervals.

            One workaround is to use mesh bed compensation. Turning it on causes long moves to be split up into shorter segments whose length is about the spacing of the mesh. babystepping will normally be applied during the movement that immediately follows the current one.

            I may implement an option for immediate baby stepping, but it would need to be configurable so that it can be turned off. Or perhaps the firmware should automatically segment the first layer finely so as to better support baby stepping? Would that be sufficient, or do some people use baby stepping after the first layer?

            The Live Adjust Z offset on my Prusa is the equivalent of baby-steps. It behaves in real time and I never have to change it again. It stores the setting by updating the z-offset in the eeprom. That would be a MUCH better implementation to have.

            Like I said, it's easy to implement a solution that works for a particular fixed printer configuration.

            I'd like to know what other users think about the idea of preserving the baby stepping offset through power cycles.

            Problem 2) Background: The baby-steps DO NOT get reset between prints, which is fine with me, if I needed it once, I'll probably need it again until I update the Z-endstop.g settings file. Problem: The problem I run into, is not knowing 100% absolutely if the currently applied baby-steps affect the motion while manually moving the printer via the web console Machine Control. I'm guessing it does

            Yes, baby stepping applies to all motion.

            Problem 3) The reset baby-step g-code M290 R0 S0 does not reset it. It only subtracts 1mm from the current baby-step offset.

            That's a bug and I will fix it in the next release.

            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

            genghisnico13undefined deckingmanundefined 2 Replies Last reply Reply Quote 1
            • genghisnico13undefined
              genghisnico13 @dc42
              last edited by

              @dc42 said in Z compensation rules, when it's on, when it's off?:

              I'd like to know what other users think about the idea of preserving the baby stepping offset through power cycles.

              Personally when I needed a constant baby stepping, I included it in the homing files with G92.

              1 Reply Last reply Reply Quote 0
              • deckingmanundefined
                deckingman @dc42
                last edited by

                @dc42 said in Z compensation rules, when it's on, when it's off?:

                I'd like to know what other users think about the idea of preserving the baby stepping offset through power cycles.

                In my opinion, that would be a really bad idea. Given that baby stepping was introduced with the purpose of adjusting the first layer on a per print basis. Preserving the setting would be the same as adjusting the Z offset in config.g, which we can already do. The more places that configuration settings get set or overridden , the more chance there is of people getting confused and making incorrect adjustments.

                Ian
                https://somei3deas.wordpress.com/
                https://www.youtube.com/@deckingman

                1 Reply Last reply Reply Quote 2
                • v0i9viperundefined
                  v0i9viper
                  last edited by

                  I think I would like it cleared when the print completes. If you need a permanent change add or subtract the baby steps just used to homed height so the next print doesn't need to be stepped. If you print the curreent baby step offset before clearing it the user can go to the console and see the value. Thius way forces you to update your printer if you needs baby steps. What I really would like to see is the mesh correction appllied at each location diisplayed..

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

                    I intensionally clear baby stepping after a print as part of my end code. I always watch the skirt print and adjust as needed.

                    I guess if you're used to Marlin and having a permanent z offset this makes more sense. But reprap has G31 S-1 to measure an accurate trigger height and sets your z offset that way. Only time you'd want to change it is either after a mechanical change and should be remeasured anyway or to make slight per print changes which is exactly what baby stepping does now.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    1 Reply Last reply Reply Quote 0
                    • gnydickundefined
                      gnydick
                      last edited by

                      If the "remembering baby-steps permanently" implementation was to actually update the z-offset for you, then you wouldn't have to worry about editing in multiple places. But I don't know if the duet is capable of editing files on the card.

                      dc42undefined T3P3Tonyundefined 2 Replies Last reply Reply Quote 0
                      • dc42undefined
                        dc42 administrators @gnydick
                        last edited by

                        @gnydick said in Z compensation rules, when it's on, when it's off?:

                        If the "remembering baby-steps permanently" implementation was to actually update the z-offset for you, then you wouldn't have to worry about editing in multiple places. But I don't know if the duet is capable of editing files on the card.

                        You should only need to adjust one parameter to set the Z=0 height. If you use a Z probe to set Z=0 then it's the G31 Z parameter.

                        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
                        • T3P3Tonyundefined
                          T3P3Tony administrators @gnydick
                          last edited by

                          @gnydick the issue is that different printer configurations set the Z height in different ways. If you have a probe then its set as the probe offset. Without a probe you may set it as the Z minimum in config.g or set it with G92 in homez.g (and also homeall.g). That is why there are multiple places that it could be changed. Also bring multiple tools into the mix and it gets more complicated.

                          I agree baby stepping needs to take effect as quickly as possible/instantly, if that requirement can be squared with supporting the n+1 and growing number of kinematics and axis configurations that RepRapFirmware supports.

                          www.duet3d.com

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