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

    Printer with Two Independent Z-Axes - How to synchronize?

    Scheduled Pinned Locked Moved Solved
    Duet Hardware and wiring
    2
    4
    389
    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.
    • HebigTundefined
      HebigT
      last edited by HebigT

      I'm building a tool-changing printer with two independent z-axes (one for each tool).

      The Duet thinks there is only 1 z-axis at any given time, so I use M584 to switch stepper outputs during tool changes.

      (dc42 suggested this method here: https://forum.duet3d.com/topic/16609/multiple-z-axis-and-complex-tools-possible)

      Is there a way to get each Z axis to move in sync during a print?

      For example:

      Printer homes and both axes home to their endstops. T0 & T1 Z-height are both at 0

      T0 starts the print and completes Layer 1 & 2

      Tool-change to T1

      T1 Never moved from its homed position (Z=0) so it will crash into the print.

      Does anyone have insight to ensure that both T0 & T1 move upward as the print progresses?

      Ideally, each tool would move to some intermediate position defined in Tfree, and the return to the correct z-height for printing when it becomes active again.

      Thanks!

      In the photo, T0 is on the left, T1 is on the right.

      IMG_3654.JPG

      HebigTundefined 1 Reply Last reply Reply Quote 1
      • HebigTundefined
        HebigT @HebigT
        last edited by

        @jpomo10

        One working solution is to home each linear actuator every time there is a tool-change.

        Doing it this way provides a reference point each time the tools switch.

        This works because the actuators home at the high-end of their travel instead of homing to the bed. They both use individual endstop switches wired in series and ultimately connected to the Z-endstop on the board.

        If the tools have very different 'Z' lengths, I think the G10 offset command can be used to compensate, but i'll have to test this.

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

          You will be able to do it using variables:

          • When Z-homing a tool or switching away from a tool in tfree, record its Z position in a variable
          • When selecting a tool in tpre, recall its Z position and set that using G92; then move to the user Z position plus a bit

          Until we have variables, I suggest you use the tool offset of a hidden axes to store the Z position. You will need to temporarily un-hide the axis when setting the offset (using G10) or retrieving it.

          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

          HebigTundefined 1 Reply Last reply Reply Quote 0
          • HebigTundefined
            HebigT @dc42
            last edited by

            @dc42

            Thanks for the advice, I will give the offset method a try.

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