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

    Haq XY

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

                      And it what way does G1 S1 X300 Y310 F2500 not work?

                      Please provide your current homing files.

                      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
                      • dc42undefined
                        dc42 administrators
                        last edited by dc42

                        PS:

                        1. Please clarify what you have in your M584 command in config.g, because it's not been rendered correctly in the config.g you listed a few posts ago.

                        2. When you send

                        G91 G1 S2 Y20

                        in what directions do the Y, X and U axes move?

                        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:

                          PS:

                          1. Please clarify what you have in your M584 command in config.g, because it's not been rendered correctly in the config.g you listed a few posts ago.

                          2. When you send

                          G91 G1 S2 Y20

                          in what directions do the Y, X and U axes move?

                          1. M584 X0 U6 Y1 Z2:5 E3:4
                          2. Y moves forward, X moves left (-) and U moves right(+)
                          dc42undefined 1 Reply Last reply Reply Quote 0
                          • wilrikerundefined
                            wilriker
                            last edited by wilriker

                            Small aside: putting the contents of e.g. config.g in paired blocks of three backticks (```) will activate code-styling in the forum. This should prevent automatic emoji replacements.

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

                              @wilriker Thank you very much!

                              ; 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:-1: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
                              
                              ; Automatic saving after power loss is not enabled
                              
                              ; Custom settings are not configured
                              
                              1 Reply Last reply Reply Quote 0
                              • dc42undefined
                                dc42 administrators @Haggan90
                                last edited by dc42

                                @haggan90 said in Haq XY:

                                Y moves forward, X moves left (-) and U moves right(+)

                                Please elaborate on "Y moves forwards". Do you mean that the carriage moves towards you (in the -Y direction), or away from you (in the +Y direction)?

                                I think I've just found a bug that may explain some of the homing issues. Also I think your matrix is wrong.

                                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 Haggan90

                                  @dc42 Huh, it actually move towards me, in the -Y direction!
                                  I tried to push the <Y-10 afterwards and both U and X moved superfast (like 400mm/s) at diffrent direction, around 50mm. X at - and U at +.

                                  Why do you think the matrix is wrong?
                                  It works just as it should work when using the toggle buttons (or what they are called at the "Machine Control")

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

                                    @haggan90, I think the matrix may be unconventional, but valid. To make it conventional, you could change S1 to S0 in your M569 P1 line (to reverse Y motor direction), and change the M669 command to:

                                    M669 K0 Y-1:1:0:1

                                    Your X and U axes appear to be affected by the Y motor in opposite directions, so I guess you have one of those carriages attached to the front of the its belt and the other one to the back of its belt, or something like that. But it doesn't matter, as long as all the axes move correctly in response to the jog commands.

                                    I've implemented a fix for the bug that I think I found, however I also want to fix it so that if you try to move X or U, it also energises the Y motor to lock it; and if you do a diagonal homing move then it energises the X and U motors to lock them. So I'll implement that tomorrow, test G29, then make a new binary available.

                                    Meanwhile, I think most things should work if you home the axes individually, doing Y before X and U.

                                    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 I just reversed the Y motor and when I do G1 X10 F1000 S2 the Y axis moves in the right direction (+10).
                                      But I've noticed a new thing when homing.
                                      This is my homeall.g now:

                                      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 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
                                      
                                      

                                      But when it comes to G1 X300 Y310 F2500 the X axis just smashes into it's endstop.
                                      It seems like both U and X looses their position somehow, or that X and U switches...so X becomes U and U becomes X.

                                      If I manually home Y first and then try to home X the U axis moves.
                                      If I manually home U and X first, their postion is X0 U550.
                                      If I then home Y manually X position is X1100.3 and U is U-560.

                                      Does this make any sense at all?

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

                                        I've found a bug in the optimisation of the kinematics calculations. I have just fixed this and my initial tests seem OK. I'd like to run more tests, but it's late now so I will continue this tomorrow. If you want to try the latest binary, it's at https://www.dropbox.com/s/fyvibzm0zl92hiy/Duet2CombinedFirmware.bin?dl=0.

                                        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
                                          I can't wait to try this when I get home from work!
                                          Did you test the G29 in your test rig?

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

                                            @haggan90 said in Haq XY:

                                            @dc42
                                            I can't wait to try this when I get home from work!
                                            Did you test the G29 in your test rig?

                                            Not yet, but I hope to get the tests completed this afternoon.

                                            The previous firmware got the positions wrong after homing. It was confusing to debug, because your original M669 command results in a matrix whose inverse was identical to itself! So for some time I thought that the matrix inversion code wasn't working.

                                            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