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

    Nonlinear Z axis possible?

    Scheduled Pinned Locked Moved
    General Discussion
    5
    11
    577
    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.
    • Lo-Fiundefined
      Lo-Fi
      last edited by

      Hi folks

      Is it possible to configure RRF for nonlinear Z movement? Driving Z through a scissor lift type mechanism is the example I have in mind, so a little trig required to calculate the true steps/mm for any given height. I'm not much past the idle curiosity stage with the idea and there are certainly some challenges, but it's one that's proving interesting.

      Many thanks!

      T3P3Tonyundefined markzundefined zaptaundefined 3 Replies Last reply Reply Quote 0
      • T3P3Tonyundefined
        T3P3Tony administrators @Lo-Fi
        last edited by

        @lo-fi AFAIK this would require a new kinematics.

        www.duet3d.com

        Lo-Fiundefined 1 Reply Last reply Reply Quote 0
        • Lo-Fiundefined
          Lo-Fi @T3P3Tony
          last edited by

          @t3p3tony Thanks Tony, I had a feeling that might be the answer. To be fair, it may not be the smartest way to go about it anyway, but if you don't ask you don't know!

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

            Requiring new kinematics has never stopped us before 😄

            Z-Bot CoreXY Build | Thingiverse Profile

            Lo-Fiundefined 1 Reply Last reply Reply Quote 0
            • Lo-Fiundefined
              Lo-Fi @Phaedrux
              last edited by

              @phaedrux that's dangerous talk around compulsive tinkerers.... Hehe. I'll have a poke about in the code, I suspect I can find something from the scara source I can use.

              1 Reply Last reply Reply Quote 0
              • markzundefined
                markz @Lo-Fi
                last edited by

                @lo-fi I have a fork of the Reprap firmware that does what you're asking for. It lets you define a lookup table for wanted Z <-> actual Z.

                See: https://github.com/MZachmann/RepRapFirmware

                Lo-Fiundefined 1 Reply Last reply Reply Quote 1
                • zaptaundefined
                  zapta @Lo-Fi
                  last edited by

                  Can this be achieved with a post-processing of the gcode file? At least for the exploration phase?

                  1 Reply Last reply Reply Quote 1
                  • Lo-Fiundefined
                    Lo-Fi @markz
                    last edited by

                    @markz thank you so much! I'll have a quick play with that, it sounds perfect.

                    @zapta I pondered this myself. Doing similarly, you'd need a lookup table to convert the linear layer heights into what you actually need.

                    Whether either is approach is workable mechanically in this use case, I'm not sure! The nonlinearity is quite severe at low layer heights. I need to do some more cad simulation. Nothing to lose but time and guaranteed to learn something 🙂

                    zaptaundefined 1 Reply Last reply Reply Quote 0
                    • zaptaundefined
                      zapta @Lo-Fi
                      last edited by

                      @lo-fi why lookup table and not a formula? If you write a program to post process the gcode it can use a formula to transform the z values.

                      markzundefined 1 Reply Last reply Reply Quote 0
                      • markzundefined
                        markz @zapta
                        last edited by markz

                        @zapta @lo-fi I use a lookup table because my application needed a piecewise linear approximation and a lookup table.

                        If you try to use a gcode postprocessor there are all sorts of issues to deal with - like what is your workspace transformation? Change the workspace zero and the gcode doesn't change but the transformation code needs a different origin... for example. Also, how to deal with things like arcs in the Z axis?

                        If you want to go the route of an algorithmic solution I'd strongly recommend looking at the lookup table and then using code in the same chunk of the firmware.

                        Lo-Fiundefined 1 Reply Last reply Reply Quote 0
                        • Lo-Fiundefined
                          Lo-Fi @markz
                          last edited by

                          @markz @zapta

                          At this stage I wouldn't rule anything out. I'd have some reservations about assuming that the relationship is a straight up trig function as you're relying on the leadscrew to be quite linear itself. There's also considerable force on it. At low Z heights, any small deviation would be amplified, so the table would be better assuming it's based on measured heights not calculated. Experimentation needed for both methods 🙂

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