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

    Haq XY

    Scheduled Pinned Locked Moved
    Firmware developers
    6
    131
    15.3k
    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.
    • Haggan90undefined
      Haggan90 @dc42
      last edited by

      @dc42

      1. Yes, but I homed it manualy (First Y, then X then U and finaly Z)
      2. That video was taken before, I haven't had the chance to implement the latest changes you sugested yet.
      3. Regular X/Y/U and combined X/Y/U has allways worked. For example if I send G30 Y400 X300 U200 F2500 everything moves as it should.
      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators
        last edited by

        It looks to me from the video that your machine is an IDEX with X and U running on the same rail. In which case, your config and homing files are wrong. The U and x axis directions must be the same. So U must home to the high end of the axis. Are you confusing active low/active high endstops with high end/low end? You have this in M574:

        M574 U1 S0 ; set active low endstops
        M574 X1 Y1 S1 ; Set active high endstops

        whereas I expect: M574 X1 Y1 U2 S1

        that is, the U endstop is another active-high endstop switch, but it at the max end of the U axis.

        You will probably need to reverse the U motor direction in M569 to get ot moving the right way (+U = towards the endstop on the right hand side). Your homing files need to be changed to reverse the direction of U movement throughout.

        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

        Haggan90undefined 2 Replies Last reply Reply Quote 0
        • Haggan90undefined
          Haggan90 @dc42
          last edited by

          @dc42 I thought that was clear, that it was an IDEX 😃
          But thanks! I will try that! 😃

          Basically I need to switch the U motor so that U homes in +550 instead of -550 right?
          And maybe change the config for the endstop for U?

          I feel like this could be the answer to all my problems 😄

          1 Reply Last reply Reply Quote 0
          • Haggan90undefined
            Haggan90 @dc42
            last edited by

            @dc42
            Ok so now I have this homeall.g
            G91 ; relative positioning
            G1 Z5 F6000 S2 ; lift Z relative to current position
            G1 S1 Y-550 U540 X-540 F2500 ; move quickly to Y axis endstops and stop there (first pass)
            G1 S1 y-550 F2500 ; Home Y seperate
            G1 S1 X-540 U540 F2500 ; Home X and U seperate
            G1 Y5 X5 U-5 F2000 ; Go back 5mm on all axis
            G1 S1 Y-10 F600 ; slowly home Y
            G1 S1 U10 X-10 F600 ; Slowly home X and U

            G90 ; absolute positioning
            G1 X35 Y65 F6000 ; go to first bed probe point and home Z
            G30 ; home Z by probing the bed
            G91 ; relative positioning
            G1 S2 Z5 F100 ; lift Z relative to current position
            G90 ; absolute positioning

            And this is the new config.g
            ; Drives
            M584 X0 U6 Y1 Z2:5 E3:4 ; set 3 Z drivers and add one U driver
            M669 K0 Y-1:1:0:1 ; set Y to react with X1 and U6
            M569 P0 S1 ; Drive 0 goes forwards
            M569 P1 S1 ; Drive 1 goes forwards
            M569 P2 S0 ; Drive 2 goes backwards
            M569 P3 S1 ; Drive 3 goes forwards
            M569 P4 S1 ; Drive 4 goes forwards
            M569 P5 S0 ; Drive 5 goes backwards
            M569 P6 S1 ; Drive 6 goes forwards

            M350 U16 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
            M92 U80.00 X80.00 Y240.00 Z1066.67 E420.00:420.00 ; Set steps per mm
            M566 U900.00 X900.00 Y900.00 Z12.00 E120.00:120.00 ; Set maximum instantaneous speed changes (mm/min)
            M203 U10000.00 X10000.00 Y10000.00 Z500.00 E1200.00:1200.00 ; Set maximum speeds (mm/min)
            M201 U800.00 X800.00 Y800.00 Z20.00 E250.00:250.00 ; Set accelerations (mm/s^2)
            M906 U1000.00 X1000.00 Y1000.00 Z1000.00 E800.00:800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
            M84 S30 ; Set idle timeout

            ; Axis Limits
            M208 U0 X0 Y0 Z0 S1 ; Set axis minima
            M208 U550 X550 Y500 Z750 S0 ; Set axis maxima

            ; Endstops
            M574 U2 S0 ; Set active low endstops
            M574 X1 Y1 S1 ; Set active high endstops

            ; Z-Probe
            M574 Z1 S2 ; Define Z to use Probe. Home to Min.
            M558 P9 H5 F500 T4000 ; Set Z probe type/mode 9.
            G31 P25 X0 Y-57.3 Z0.0 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
            M557 X30:530 Y65:490 S50 ; define mesh grid

            ; BLTouch - Heaters
            M307 H3 A-1 C-1 D-1 ; Disable the 2nd Heater to free up PWM channel 1 on the Duex board

            I can still move every axis like before without any problems, but the homing still doesen't work.
            It's very hard to explain what happends because there's allways something diffrent.
            At the beginning everything looks fine but somtimes when Y hits it's endstop everything freezes.
            Sometimes I manage to do a full homeall, but the positions of all the axis are not where they suposed to be (X65 Y45 U0 Z0), for example I just did a homeall and positions are as follows: X-95 Y65 Z10 U679.

            If I home all seperatly and tries to do a G29 same thing happens as my last video.

            wilrikerundefined 1 Reply Last reply Reply Quote 0
            • wilrikerundefined
              wilriker @Haggan90
              last edited by wilriker

              @haggan90 said in Haq XY:

              ; Endstops
              M574 U2 S0 ; Set active low endstops
              M574 X1 Y1 S1 ; Set active high endstops

              You are still using an active low endstop on your U axis. Or at least that is what you configured. Did you really wire this endstop as normally open and thereby different from the other two endstops that are wired normally closed? Otherwise you need to change the first line to M574 U2 S1 - note the S1 compared to the S0 you have.

              EDIT: If the U endstop actually is wired as normaly closed i.e. active high and you configure it the other way round the firmware will assume the endstop being triggered as soon as it starts homing and think that U is at homing position wherever it is right at that moment.

              Manuel
              Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
              with probably always latest firmware/DWC (incl. betas or self-compiled)
              My Tool Collection

              Haggan90undefined 1 Reply Last reply Reply Quote 0
              • Haggan90undefined
                Haggan90 @wilriker
                last edited by

                @wilriker If I do M574 U2 S1 the endstop is YES when it's not pushed in and NO when it's pushed in. Y and X endstops are those 3 wire endstops and U is only 2 wire. As I said before, if I home U alone it works great, and that goes for every axis.

                Still I can't figure out why G29 behaves as it does...

                1 Reply Last reply Reply Quote 0
                • Haggan90undefined
                  Haggan90
                  last edited by

                  @dc42 It really feels like there's something to do with the M669. It should only activate the U and X togwther when Y moves but sometimes U starts moving when only X is supose to move and vice versa.

                  I tried again to completley remove the U axis but I still get the same problems with G29, as you can see in my last video.

                  1 Reply Last reply Reply Quote 0
                  • Haggan90undefined
                    Haggan90
                    last edited by

                    @dc42 I just notice that when I use the G1 S2 commands the printer ignores the M669 axis matrix.
                    I think this might be the problem to it all, because every G1 S1 works great.

                    wilrikerundefined 1 Reply Last reply Reply Quote 0
                    • wilrikerundefined
                      wilriker @Haggan90
                      last edited by

                      @haggan90 said in Haq XY:

                      @dc42 I just notice that when I use the G1 S2 commands the printer ignores the M669 axis matrix.

                      This is as intended and according to the documentation.

                      Ignore endstops while moving. Also ignore if axis has not been homed. On Delta and CoreXY, axis letters refer to individual towers.

                      Of course for your machine it is not individual towers but individual (physical) motors.

                      Manuel
                      Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                      with probably always latest firmware/DWC (incl. betas or self-compiled)
                      My Tool Collection

                      Haggan90undefined 1 Reply Last reply Reply Quote 0
                      • Haggan90undefined
                        Haggan90 @wilriker
                        last edited by Haggan90

                        @wilriker Yes Iv'e red the documentaion. But I'm using a diffrent type of kinematic, that's what all this is about. My M669 makes the Y axis to cooperate with X and U, if it doesen't cooperate both X and U are drawn diagonally.

                        I think the M669 somehow makes X and U listen to the same command sometimes. G29 for example should only interact with Y and X but my U is also moving..or more like crashing.

                        wilrikerundefined 1 Reply Last reply Reply Quote 0
                        • wilrikerundefined
                          wilriker @Haggan90
                          last edited by

                          @haggan90 I'm sorry, my answer sounded more harsh than it was meant. I followed this thread from the beginning and also read the article on Haq XY (even multiple times).

                          AFAICT, the new system that @dc42 introduced to make this possible, is based on a generalized form of CoreXY (in contrast to more trigonometric kinematics like Delta or SCARA). Therefore I think the cited documentation part also applies now to your configured kinematics.

                          Manuel
                          Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                          with probably always latest firmware/DWC (incl. betas or self-compiled)
                          My Tool Collection

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

                            Yes, G1 S2 commands move individual motors, as they always did on Core kinematics.

                            I'll try G29 on my bench setup later today.

                            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
                            • Haggan90undefined
                              Haggan90 @wilriker
                              last edited by

                              @wilriker No Problem 😃
                              I am fairly new to this so i'm very thankful for all the patience I've been given.
                              So if I understand you correct I shouldn't be using the G1 S2 commands in my setup att all when moving the Y axis?

                              @dc42 said in Haq XY:

                              Yes, G1 S2 commands move individual motors, as they always did on Core kinematics.

                              I'll try G29 on my bench setup later today.

                              Thank you!
                              I've still been having trouble with the homing.
                              I've also been starting to get some more problems.
                              If I use G1 S2 X-10 F2000, for example in the homing sequence, the U axis also moves but a bit slower then X.

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

                                @haggan90 said in Haq XY:

                                If I use G1 S2 X-10 F2000, for example in the homing sequence, the U axis also moves but a bit slower then X.

                                That's not right. Is Y moving too? The only reason I can think of why the X motor would affect the U carriage is if the Y motor hasn't been energised yet, and friction on the X axis is causing the Y axis to move - which in turn will affect U.

                                Please try sending these commands:

                                M906 I100 ; prevent idle current reduction
                                G91 ; relative mode
                                G1 X2 X0.1 Y0.1 U0.1 ; energise all 3 motors
                                ; Test the X motor
                                G1 S2 X20
                                G1 S2 X-20
                                ; Test the Y motor
                                G1 S2 Y20
                                G1 S2 Y-20
                                ; Test the U motor
                                G1 S2 U20
                                G1 S2 U-20

                                The last 6 G1 S2 commands should move only the specified motors. The commands to move the X and U motors should only affect their own axes. The commands to move the U motor will move all 3 axes.

                                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

                                Haggan90undefined 2 Replies Last reply Reply Quote 0
                                • Haggan90undefined
                                  Haggan90 @dc42
                                  last edited by

                                  @dc42 said in Haq XY:

                                  @haggan90 said in Haq XY:

                                  If I use G1 S2 X-10 F2000, for example in the homing sequence, the U axis also moves but a bit slower then X.

                                  That's not right. Is Y moving too? The only reason I can think of why the X motor would affect the U carriage is if the Y motor hasn't been energised yet, and friction on the X axis is causing the Y axis to move - which in turn will affect U.

                                  Please try sending these commands:

                                  M906 I100 ; prevent idle current reduction
                                  G91 ; relative mode
                                  G1 X2 X0.1 Y0.1 U0.1 ; energise all 3 motors
                                  ; Test the X motor
                                  G1 S2 X20
                                  G1 S2 X-20
                                  ; Test the Y motor
                                  G1 S2 Y20
                                  G1 S2 Y-20
                                  ; Test the U motor
                                  G1 S2 U20
                                  G1 S2 U-20

                                  The last 6 G1 S2 commands should move only the specified motors. The commands to move the X and U motors should only affect their own axes. The commands to move the U motor will move all 3 axes.

                                  I'm at work now but I will try that as soon as I get home!
                                  No, the Y axis never moves if I try to move only X or U.

                                  This only happends when I use the G1 S2, G1 S1 seems to work as planned.

                                  1 Reply Last reply Reply Quote 0
                                  • Haggan90undefined
                                    Haggan90 @dc42
                                    last edited by Haggan90

                                    @dc42 I just tried what you sugested.
                                    This is the result:

                                    G1 S2 X20 - Moves only the X axis
                                    G1 S2 X-20 - Moves only the X axis

                                    G1 S2 Y20 - Moves every axis (XYU) (only the Y motor turns)
                                    G1 S2 Y-20 - Moves every axis (XYU) (only the Y motor turns)

                                    G1 S2 U20 - Moves only the U axis
                                    G1 S2 U-20 - Moves only the U axis

                                    If I understood you correctly G1 S2 Y20 should only move the Y axis, so the U and X should cooperate as stated in the M669 command correct?

                                    Just to be clear, if I send G1 S1 Y20 the Y axis works as i should.

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

                                      @haggan90 said in Haq XY:

                                      @dc42 I just tried what you sugested.
                                      This is the result:

                                      G1 S2 X20 - Moves only the X axis
                                      G1 S2 X-20 - Moves only the X axis

                                      G1 S2 Y20 - Moves every axis (XYU) (only the Y motor turns)
                                      G1 S2 Y-20 - Moves every axis (XYU) (only the Y motor turns)

                                      G1 S2 U20 - Moves only the U axis
                                      G1 S2 U-20 - Moves only the U axis

                                      If I understood you correctly G1 S2 Y20 should only move the Y axis, so the U and X should cooperate as stated in the M669 command correct?

                                      Just to be clear, if I send G1 S1 Y20 the Y axis works as i should.

                                      That's all exactly as it should be. Only the motor you commanded moves, the other motors stay still. The Y motor moves all 3 axes - that's the nature of the kinematics you are using.

                                      If you remove the S1 from the commands, then only the specified axis should move. The commands to move Y will also move the X and U motors so as to keep the X and U positions constant. Commands to move X or U will move just the X or U motor as before. You will have to send M564 H0 first if the axes haven't been homed.

                                      I think some of the issues you have been getting may be because not all motors have been energised at full power while executing the commands. I'll change the code to do that automatically. Meanwhile, please test the printer again (including G29), but this time run these commands first to ensure that all motors are energised:

                                      M906 I100 ; prevent idle current reduction
                                      G91 ; relative mode
                                      G1 S2 X0.1 Y0.1 U0.1 ; energise all 3 motors
                                      G90 ; absolute mode

                                      You can put those in a macro to save typing it in every time.

                                      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

                                      Haggan90undefined 1 Reply Last reply Reply Quote 0
                                      • Haggan90undefined
                                        Haggan90 @dc42
                                        last edited by

                                        @dc42 Same things happends.
                                        This is my config.g file now, I've changed so that Y home's to max and also U. X homes to min.
                                        Please let me know if you find anything faulty, I'm beginning to think there is something wrong here if you manage to get it to work.

                                        ; Drives
                                        M584 X0 U6 Y1 Z2:5 E3:4 ; set 3 Z drivers and add one U driver
                                        M569 P0 S1 ; Drive 0 goes forwards
                                        M569 P1 S1 ; Drive 1 goes forwards
                                        M569 P2 S0 ; Drive 2 goes backwards
                                        M569 P3 S1 ; Drive 3 goes forwards
                                        M569 P4 S1 ; Drive 4 goes forwards
                                        M569 P5 S0 ; Drive 5 goes backwards
                                        M569 P6 S1 ; Drive 6 goes forwards

                                        M669 K0 Y1👎0:-1 ; set Y to react with X and U

                                        M350 U16 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
                                        M92 U80.00 X80.00 Y240.00 Z1066.67 E420.00:420.00 ; Set steps per mm
                                        M566 U900.00 X900.00 Y900.00 Z12.00 E120.00:120.00 ; Set maximum instantaneous speed changes (mm/min)
                                        M203 U10000.00 X10000.00 Y10000.00 Z500.00 E1200.00:1200.00 ; Set maximum speeds (mm/min)
                                        M201 U800.00 X800.00 Y800.00 Z20.00 E250.00:250.00 ; Set accelerations (mm/s^2)
                                        M906 U1000.00 X1000.00 Y1000.00 Z1000.00 E800.00:800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
                                        M84 S30 ; Set idle timeout

                                        ; Axis Limits
                                        M208 U0 X0 Y0 Z0 S1 ; Set axis minima
                                        M208 U540 X540 Y550 Z750 S0 ; Set axis maxima

                                        ; Endstops
                                        M574 U2 S0 ; Set active low endstops
                                        M574 X1 Y2 S1 ; Set active high endstops

                                        ; Z-Probe
                                        M574 Z1 S2 ; Define Z to use Probe. Home to Min.
                                        M558 P9 H5 F500 T4000 ; Set Z probe type/mode 9.
                                        G31 P25 X0 Y-57.3 Z0.0 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
                                        M557 X40:490 Y70:480 S50 ; define mesh grid

                                        ; BLTouch - Heaters
                                        M307 H3 A-1 C-1 D-1 ; Disable the 2nd Heater to free up PWM channel 1 on the Duex board

                                        ; Heaters
                                        M305 P0 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 0
                                        M143 H0 S120 ; Set temperature limit for heater 0 to 120C
                                        M305 P1 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 1
                                        M143 H1 S280 ; Set temperature limit for heater 1 to 280C
                                        .

                                        ; Fans
                                        M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
                                        M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

                                        ; Tools
                                        M563 P0 D0 H1 F0 ; tool 0 uses extruder 0 and heater 1
                                        G10 P0 X0 Y0 Z0 R0 S0 ; set tool 0 offsets and temperatures

                                        M563 P1 D1 H2 X3 F2 ; tool 1 uses extruder 1 and heater 2 and maps X to U, use fan 2 as the print cooling fan
                                        G10 P1 X0 Y0 Z0 R0 S0 ; set tool 0 offsets and temperatures

                                        This is my homeall.g atm.
                                        G91 ; relative positioning
                                        G1 Z5 F6000 S2 ; lift Z relative to current position
                                        G1 S1 Y550 U540 X-540 F2500 ; move quickly to Y axis endstops and stop there (first pass)
                                        G1 S1 Y550 F2500 ; Home Y seperate
                                        G1 S1 X-540 F2500 ; Home X seperate
                                        G1 S1 U540 F2500 ; Home U seperate
                                        G1 Y-5 X5 U-5 F2000 ; Go back 5mm on all axis
                                        G1 S1 Y550 F600 ; slowly home Y
                                        G1 S1 X-100 F600 ; Slowly home X
                                        G1 S1 U100 F600 ; Slowly home U

                                        G90 ; absolute positioning

                                        G1 S1 X300 Y310 F2500 ; go to first bed probe point and home Z
                                        G30 ; home Z by probing the bed
                                        G91 ; relative positioning
                                        G1 S2 Z5 F100 ; lift Z relative to current position
                                        G90 ; absolute positioning

                                        IF either U or X are at their endstop when I do homeall, they allways crashes into them again.
                                        also, G1 S1 X300 Y310 F2500 doesen't seem to work either 😞

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

                                          @haggan90 said in Haq XY:

                                          also, G1 S1 X300 Y310 F2500 doesen't seem to work either

                                          Do you mean that it never works, or that it doesn't work if either U or X are at their endstop when you do homeall? In what way does it not work?

                                          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

                                          Haggan90undefined 1 Reply Last reply Reply Quote 0
                                          • Haggan90undefined
                                            Haggan90 @dc42
                                            last edited by

                                            @dc42 said in Haq XY:

                                            @haggan90 said in Haq XY:

                                            also, G1 S1 X300 Y310 F2500 doesen't seem to work either

                                            Do you mean that it never works, or that it doesn't work if either U or X are at their endstop when you do homeall? In what way does it not work?

                                            If either U or X are at their endstop.
                                            Could it be that when either U or X are at their endstop it interfears with the M669 matrix?

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