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

    Driver order and slave axis

    Scheduled Pinned Locked Moved
    Firmware wishlist
    3
    11
    1.6k
    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.
    • Catalin_ROundefined
      Catalin_RO
      last edited by

      I have finally succeeded, sort of, in configuring my 4th axis to work with WorkBee. Initially I had drivers assigned as X0 Y1:3 Z2 U9 P3. First of all I have tried adding axis A (X0 Y1:3 Z2 A4 U9 P3) but DWC kept crashing so I have not investigated any further. Then I decided to try to use axis W as a simulated rotary, with -360..+360mm travel distance as I'm using it only for indexing, so it could have been OK.

      Changing driver assignment to X0 Y1:3 Z2 W4 U9 P4 was not usable as axis U was shown as 4th axis instead of axis W. So I have decided to swap axis U with axis W in config.g and homing scripts. While it apparently worked (I did the configuration last evening), it was actually a total mess that I have discovered just today, when trying to actually machine something. The axis Y homing was completely wrong, with the slave axis not moving during homing - luckily I was ready to click the emergency stop button! Manually resetting the Y axis with G92 Y0 allowed me to properly move it and the two drivers were in sync.

      In the end the only solution was to swap the used drivers as well. So now I have X0 Y1:4 Z2 U3 W9 P4 and all the homing scripts updated accordingly. Apparently that implies that the order of the axis mapping to the drivers is very important when trying to independently home master/slave axis configurations, thus allowing X0 Y1 Z2 U3 W4 P5 but not allowing X0 Y1 Z2 U4 W3 P5, needed during the homing, when squaring the gantry.

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

        I'm not sure and I'm out with only my phone available, but I'm wondering if the problems you were having were due to the fact that mapping drives doesn't remove their original assignment. So if you use a drive that was originally for an extruder, then you have to explicitly reassign the extruder. HTH

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

        Catalin_ROundefined 1 Reply Last reply Reply Quote 0
        • Catalin_ROundefined
          Catalin_RO @deckingman
          last edited by

          @deckingman I have mentioned in my message only the relevant part of the M584 commands. In config.g I have M584 X0 Y1:4 Z2 U3 W9 E5:6 P4. First thing that I did when trying to add the 4th axis was to change previously E4:5:6 to E5:6 and have the board reset after updating config.g.

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

            Ah OK. The other thing I wonder is do you have to assign additional axes to the next numerically available number? What I mean is, in your above example you have 0123456 and 9. Should you use 7 instead of 9? Just a guess......

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

            Catalin_ROundefined 1 Reply Last reply Reply Quote 0
            • Catalin_ROundefined
              Catalin_RO @deckingman
              last edited by

              @deckingman From what I could see, the dummy axis used only for squaring the gantry is better to be assigned to a missing driver. But, anyway, I have just the Duet Ethernet, so only drivers 0..4.

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

                You can assign drivers in any order you like, the firmware doesn't care. What does matter is that you remove any old assignments. The easiest way to do this is to specify the assignment of all axes and the extruder assignment in the M584 command in config.g.

                It's also important that any commands to set microstepping or motor currents come after the M584 command.

                Finally, any commands that use the new axis letters you created in M584 must come after the M584 command.

                From your other post, it appears that DWC has a problem with random assignment of axis letters. I will check that I can reproduce this and ask Chrishamm to fix it. Thanks for your patience.

                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

                Catalin_ROundefined 2 Replies Last reply Reply Quote 0
                • Catalin_ROundefined
                  Catalin_RO @dc42
                  last edited by Catalin_RO

                  @dc42 Then why M584 X0 Y1:4 Z2 U3 W9 E5:6 P4 works very well and M584 X0 Y1:3 Z2 U4 W9 E5:6 P4 doesn't allow squaring the gantry? Practically, with the second version of the command I see only left Y axis moving during homing, with the right Y axis (that is what W axis is used for!) not moving at all. But that happens only during homing!

                  This is the homey.g file that works:

                  M581 Y W S-1 T0 C0
                  M584 Y1 W4 P5
                  G91
                  G1 S1 Y-1500 W-1500 F1000
                  G0 Y5 W5
                  G1 S1 Y-10 W-10 F100
                  G0 Y0.06 ; Gantry squaring offset
                  M584 Y1:4 W9 P4
                  G0 Y1
                  G90
                  G92 Y0
                  M581 Y W S1 T0 C0

                  If the config.g line is changed to M584 X0 Y1:3 Z2 U4 W9 E5:6 P4 and the two lines in the homey.g are changed to M584 Y1 W3 P5 and M584 Y1:3 W9 P4, only the stepper assigned to driver 1 is rotating while executing G1 S1 Y-1500 W-1500 F1000.

                  With the not working assignment, if I manually send G92 Y0 through the console, practically making the firmware consider that the Y axis is homed, any G0 or G1 movement on Y is correctly working. So it seems to be a problem only with the G1 S1 command!

                  For the DWC bug just change the line in config.g to M584 X0 Y1:4 Z2 A3 W9 E5:6 P4 and you immediately get the crash. No need to set any other parameters for the A axis.

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

                    1. Did you check that you have the current setting commands etc. after the M584 command? See my previous reply.

                    2. Are you sure you don't have a faulty driver?

                    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

                    Catalin_ROundefined 1 Reply Last reply Reply Quote 0
                    • Catalin_ROundefined
                      Catalin_RO @dc42
                      last edited by

                      @dc42 By simply removing the extra axis configuration all worked as before. So no way a driver could be faulty. Even more, with the new working setup I'm using all 5 drivers, all set to 2.4A (all steppers are speced for 3A), and all of them performing as expected.

                      For now I'm happy that I could find a working configuration that allows me to fully use what I have around. The fact that in the process of making things working I have found a possible problem of the firmware (the one related strictly to G1 S1) is for future users that might need something similar (that also includes me if I need to add extra stuff to my CNC).

                      Anyway, when the DWC is also sorted out, I will update the WorkBee related stuff with the new configuration files. For now it is really awkward to use the U axis for rotary. I also considered using C axis for dummy (instead of the current W axis) and have a proper B axis for rotary (the 4th axis is parallel to the Y axis in my setup), but after a quick browse through the code I decided that it is not really that safe!

                      1 Reply Last reply Reply Quote 0
                      • Catalin_ROundefined
                        Catalin_RO @dc42
                        last edited by

                        @dc42 When talking to Chrishamm, could there be an extra set of jog buttons for 0.01mm steps? When properly aligning the gantry with the machined piece, sometimes it is very important. Right now I have to manually send G0 commands for that! All other CNC software include support for that.

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

                          @catalin_ro said in Driver order and slave axis:

                          @dc42 When talking to Chrishamm, could there be an extra set of jog buttons for 0.01mm steps? When properly aligning the gantry with the machined piece, sometimes it is very important. Right now I have to manually send G0 commands for that! All other CNC software include support for that.

                          I think Chrishamm already said in a post in the DWC Wishlist section of this forum that he has it on his work list to make the jog increments configurable for all axes. In the meantime, you could set up macros to jog 0.01mm.

                          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
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA