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

    CoreXY with four motors (AWD)

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    5
    7
    995
    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.
    • stellatorundefined
      stellator
      last edited by stellator

      I just found that the Y axis on my new coreXY is inverted when I was doing my first heightmap measurement (which wasnt all to straight at all).

      Looking at the printer from the top, my endstops are at the back left side instead of the front left side as expected per default of RRF.
      4f139da1-5eb5-46d3-aa3d-0d4a4b45bc0f-image.png

      I have tried all possible configurations of drivers going backwards or forward and endstop being at the min or max end but there is only one configuration that works with all the motor operating in tandem and not against each other but in that configuration the Y axis is flipped relative to the RRF coordinate system.

      Wiring (for cable length reasons):
      Motor XY 1 goes to Duet2Wifi E0-Stepper
      Motor XY 2 goes to Duet2Wifi Y-Stepper
      Motor XY 3 goes to Duet2Wifi E1-Stepper
      Motor XY 4 goes to Duet2Wifi X-Stepper

      Please find my configuration below, do I really have to swap motors on the controller board in order to get orientation right as I understand from some posts?

      ; Axes
      M584 X0.1:0.3 Y0.0:0.4 Z0.5:0.6:0.7 ; set axis mapping
      M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
      M906 X2200:2200 Y2200:2200 Z800 ; set axis driver currents
      M92 X80 Y80 Z1600 ; configure steps per mm
      M208 X0:550 Y0:400 Z0:400 ; set minimum and maximum axis limits
      M566 X5000 Y2000 Z100 ; set maximum instantaneous speed changes (mm/min)
      M203 X10000 Y80000 Z1500 ; set maximum speeds (mm/min)
      M201 X10000 Y6000 Z100 ; set accelerations (mm/s^2)

      ; Extruders
      M584 E0.2 ; set extruder mapping
      M350 E16 I1 ; configure microstepping with interpolation
      M906 E1000 ; set extruder driver currents
      M92 E420 ; configure steps per mm
      M566 E120 ; set maximum instantaneous speed changes (mm/min)
      M203 E3600 ; set maximum speeds (mm/min)
      M201 E250 ; set accelerations (mm/s^2)

      ; Kinematics
      M669 K1 ; configure CoreXY kinematics

      ; Endstops
      M574 X1 P"xstop" S1 ; configure X axis endstop
      M574 Y1 P"ystop" S1 ; configure Y axis endstop

      ; Probes
      M558 K0 P1 C"zprobe.in" H5 F120 T6000 ; configure analog probe via slot #0
      G31 P200 X0 Y-20 Z0.5 ; set Z probe trigger value, offset and trigger height
      M574 Z1 S2 ; Set Z endstop probe
      M671 X-38:275:588 Y365:-100:365 S10 ; Z pivot points are at (-15,220), (100,-20) and (215,220)

      ; Mesh Bed Compensation
      M557 X25:525 Y25:375 S80:80 ; define grid for mesh bed compensation

      dc42undefined o_lampeundefined 2 Replies Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @stellator
        last edited by

        @stellator please follow https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_coreXY#testing-motor-movement to get the axis directions correct.

        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
        • o_lampeundefined
          o_lampe @stellator
          last edited by

          @stellator I'd put the M669 kinematic declaration before the drive mapping.

          stellatorundefined 1 Reply Last reply Reply Quote 0
          • stellatorundefined
            stellator @o_lampe
            last edited by

            @o_lampe Thats a good idea! I will try and report..

            stellatorundefined 1 Reply Last reply Reply Quote 0
            • stellatorundefined
              stellator @stellator
              last edited by

              Okay, putting the kinematics definition M669 k1 in front of the driver definition helped in that sense that I can now use 4 out of 8 different direction settings for the four motors (which is in line with my expectation because two motors need to be paired always) instead of only one as was the case before (every other combination resulted in stalling motors).

              However, following: https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_coreXY#testing-motor-movement again, I can either swap the directions/polarities of both X and Y axis at the same time or I can swap X for Y but I cannot keep X and Y correct and only change the Y polarity as needed, for my Y endstop is at the high end and the tested heightmap (and hence the future print) is mirrored in Y.

              Also, its strange that changing the endstop config from high to low does not affect the direction of the homing move as I would expect (but thats maybe due to the formula I copied from the RepRap configurator:
              var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm
              var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm

              I also did put the motors at different ports and tried the same thing again but with the same result, as expected.

              Out of ideas right now, or is it because of the four wheel drive Iam using (AWD, four motors, Voron or whatever is the correct synonym for it)?

              droftartsundefined 1 Reply Last reply Reply Quote 0
              • droftartsundefined
                droftarts administrators @stellator
                last edited by droftarts

                @stellator Normally, the 'X' stepper is back right on a CoreXY, and the 'Y' stepper is back left. I think you have these the wrong way around.

                I think it should be:
                Motor XY - 'Y' motor - 1 goes to Duet2Wifi E0-Stepper (driver 3)
                Motor XY - 'Y' motor - 2 goes to Duet2Wifi Y-Stepper (driver 1)
                Motor XY 3 - 'X' motor - goes to Duet2Wifi E1-Stepper (driver 4)
                Motor XY 4 - 'X' motor - goes to Duet2Wifi X-Stepper (driver 0)

                So your M584 should be

                M584 X0.0:0.4 Y0.1:0.3 Z0.5:0.6:0.7 ; set axis mapping
                

                Then check the direction of movement for the motors, using https://docs.duet3d.com/User_manual/Machine_configuration/Configuration_coreXY#testing-motor-movement, reversing the pairs of motors' direction as necessary.

                Edit: I don't think it's 4WD problem, so long as the pairs of motors are working in the same direction as each other. Though it may be easier to get it working in 2WD first!

                Ian

                Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                1 Reply Last reply Reply Quote 0
                • Taylorundefined
                  Taylor
                  last edited by

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