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

    What’s the best way to set up a continuous rotation for an axis?

    Scheduled Pinned Locked Moved
    Firmware developers
    4
    9
    914
    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.
    • pgoellnerundefined
      pgoellner
      last edited by

      Hi everyone,

      I´m new here and try to set up a new kinematics.
      For that reason my axis have to be in a “(continuous-) rotation-mode” which means that all angles must be in 0..360° (-> Angle%360).
      From my transformation I got values from between 0° and 360° (or +-180°).
      If I will do a move from 0° to 350° the axis should not move +350°, instead the axis should take the “short” path with -10°.

      I enable in my kinematics class the function “IsContinuousRotationAxis(){… return = true;}”.
      In my opinion this should solve this problem but it don’t.
      Did I something wrong, or do I miss a setting?

      Thanks in advance, Best Peter

      Duet 3 Firmware (RepRapFirmware: v3.01-dev; RRFLibraries: dev; CoreNG: dev; FreeRTOS: master; DuetWiFiSocketServer: master)

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

        It sounds like some work is being done for this for version 3.2

        https://forum.duet3d.com/topic/16788/u-axis-without-limit/12?_=1592935944738

        Z-Bot CoreXY Build | Thingiverse Profile

        pgoellnerundefined 1 Reply Last reply Reply Quote 0
        • pgoellnerundefined
          pgoellner @Phaedrux
          last edited by

          @Phaedrux Thanks for that respone. 😃

          bondusundefined 1 Reply Last reply Reply Quote 0
          • bondusundefined
            bondus @pgoellner
            last edited by

            @pgoellner It worked when I played around with it.

            When IsContinuousRotationAxis() returns true the firmware should always find the closest direction to rotate to reach the goal.

            It has to be a G0 move for it to do this.

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

              is there a way to set "speed" for continuousRotationAxis (start/stop) or at least multiple of 360 degrees (I need it to turn e.g. 20 turns)

              bondusundefined 1 Reply Last reply Reply Quote 0
              • bondusundefined
                bondus @arhi
                last edited by

                @arhi It's supposed to be used with polar/arm printers, if you move 360 degrees you end up at the same place.

                M92 sets steps/deg in this case and not steps/mm. For example a 0.9deg stepper with 16 microstepping and a 20:1 gearbox will be 16*20/0.9 = 355.556 steps/deg

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

                  @bondus said in What’s the best way to set up a continuous rotation for an axis?:

                  @arhi It's supposed to be used with polar/arm printers

                  Yes, but I'm thinking about multi axes cnc and want to turn a thread for e.g.
                  I can do it as ton of small moves but maybe a single multiturn move?
                  Or, I'm thinking about 3D scanner where I need to do 5-6 rotations of the table,
                  or, I'm thinking about "presenter" with rotating base + pan and tilt
                  or ..

                  There'a a million reasons one would like to have a precise continuous rotation of one axis

                  bondusundefined 1 Reply Last reply Reply Quote 0
                  • bondusundefined
                    bondus @arhi
                    last edited by

                    @arhi If you do not return true from IsContinuousRotationAxis() that is exactly what you get. You can still rotate multiple rotations, it only affects the automatic wrapping.

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

                      ah, perfect, thanks

                      1 Reply Last reply Reply Quote 0
                      • JoergS5undefined JoergS5 referenced this topic
                      • joshuabirdundefined joshuabird referenced this topic
                      • First post
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA