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

    how to temporary change a value without variables?

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    3
    5
    222
    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.
    • arhiundefined
      arhi
      last edited by

      The idea

      homeall.g (actually I have this in homex, homey and homez instead of here but this is easier to show the point):

      M913 X30 Y30 Z50
      M566 X0Y0Z0
      
      M98 P"homex.g"
      M98 P"homey.g"
      M98 P"homez.g"
      
      M913 X100 Y100 Z100
      M566 X1000Y1000Z50
      
      

      What I would like to do is

      xc = ??
      yc = ??
      zc = ??
      M913 X30 Y30 Z50
      xj = {move.axes[0].jerk}
      yj = {move.axes[1].jerk}
      zj = {move.axes[2].jerk}
      M566 X0Y0Z0E0
      
      M98 P"homex.g"
      M98 P"homey.g"
      M98 P"homez.g"
      
      M913 X{xc}Y{yc}Z{zc}
      M566 X{xj}Y{yj}Z{zj}
      

      Is this at all possible now or only after variables are implemented? I'm not sure if maybe push/pop can help here. They can't if I read the documentation right but better to ask then to be sorry.

      I could not find the current modifier in the M409F"vd9" response, will this be part of the model at some point?

      1 Reply Last reply Reply Quote 0
      • Danalundefined
        Danal
        last edited by Danal

        After variables.

        I take it you are wishing to reduce current and jerk during homing. Current is a percent, so you can just set it back to 100. Jerk is a value, so you want to capture the 'before' value. Since you really don't want to set jerk to zero, how about dividing it by a factor, and then later multiplying by that same factor.

        M913 X30 Y30 Z50
        {move.axes[0].jerk} = {move.axes[0].jerk} / 8

        ... do the actual homing...

        {move.axes[0].jerk} = {move.axes[0].jerk} * 8
        M913 X100 Y100 Z100

        Delta / Kossel printer fanatic

        1 Reply Last reply Reply Quote 0
        • arhiundefined
          arhi
          last edited by

          Exactly. I had an expensive failure yesterday due to human error that I'd like to avoid in the future. The printer is able to home even with 10% of the power on the motors and on a 60+ hour print who care if homing procedure will take 3sec or 3minute so speeds can be low, jerk minimal. I did not yet test how will RRF report stall as I did not configure anything around it but even if nothing is reported still the motors should just skip steps and not break anything.

          At the moment I don't see a reason why would I want current to be anything other than 100% after homing but I guess it would not hurt to just return it to previous values. Jerk too. The divide and multiply is a great idea, I'll test it out. Thanks for the tip! So far I only set these values in config.g and here so really not a huge deal even if I keep them static but I'm just exploring as I never before used "dynamic gcode".

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

            I store my motor currents in their own macros. Then I can just call the macro when I want to change it. It also keeps the values centralized to those macros for when I want to change them.

            CurrentsPrint.g CurrentsHoming.g etc

            Same for Z axis speeds for homing and printing.

            Not as fancy, but until variables are here it works.

            Z-Bot CoreXY Build | Thingiverse Profile

            arhiundefined 1 Reply Last reply Reply Quote 0
            • arhiundefined
              arhi @Phaedrux
              last edited by

              @Phaedrux that is an awesome idea, thanks!

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