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

              I just did some more tests including G29. It looks to me that it is working properly.

              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 Great job! It seems to be working now, only updated the firmware and homing + G29 worked straight away! 😄

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

                  @haggan90, thanks for confirming. I'm sorry it took so long to get it right. They say "premature optimisation is the root of all evil!" and I think there is some truth in that.

                  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 No problem at all, I'm just thankfull for all the help 😃

                    1 Reply Last reply Reply Quote 0
                    • Visionaryundefined
                      Visionary
                      last edited by

                      Can Haq XY-kinematics be used with RRF3/6HC mainboard?
                      I'm planning on changing from 3-axis (x,y,z) Corexy to Haq XY (x,u,y,z) but I need to be sure there is a working firmware for it. I use 6HC mainboard in my machine so I assume I cannot use binary posted several post above.

                      Main printer: 3-5 Axis, 400x400x450 Duet 6HC || https://grabcad.com/eetu-4/models

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

                        Yes, RepRapFirmware supports any kinematics for which the movement of each axis is a linear combination of the movement of the motors.

                        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
                        • RootCNCundefined
                          RootCNC
                          last edited by

                          Hi everyone,

                          Are you able to share how you set this up? I'm currently knew to RepRap Firmware, as I'm a long time user of Marlin but due to the fact Marlin doesn't support this type of configuration. I'm currently looking to move over to RepRap Firmware and purchase a Duet 3 6HC board.

                          I've actually already built this printer, photos attached. Its still got a little bit of work todo and due to the nature of Duet, Reprap and the open source community I intend to share this project among my other projects (Root CNC).

                          I would much appreciate any help on configuring this type of kinematics as it looks like I'll be taking a big leap into the world of duet and RepRap firmware and I hope it'll soften the blow.

                          appreciate the help!20210110_195329.jpg 20210110_211426.jpg 20210111_214253.jpg

                          Thanks in advance! Pete from Root CNC

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

                            @RootCNC Hi,

                            Sure I can share how to set it up.
                            But I'm having a hard time understanding how you route your belts to make it a Haq-XY kinematics?

                            RootCNCundefined 1 Reply Last reply Reply Quote 0
                            • RootCNCundefined
                              RootCNC @Haggan90
                              last edited by

                              @Haggan90

                              Ah sorry about that - Please see this photo.
                              80ee17b8-d0b2-454a-8a26-2ded23c22488-image.png

                              I currently have two motors driving the Y axis - these shall be configured in a series configuration.

                              then two independent carriages driven from independent steppers.

                              Does that help?

                              Thanks 🙂

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

                                @RootCNC Aha I see!
                                I routed my 2 X belts on the same route but at different heights instead 😃
                                And I used one stepper for the Y axis but with a rod connecting both sides of the Y axis.

                                But the kinematics are exactly the same.

                                Btw, are you stepper mounted in the bottom with rods going to the top?

                                RootCNCundefined 1 Reply Last reply Reply Quote 0
                                • RootCNCundefined
                                  RootCNC @Haggan90
                                  last edited by

                                  @Haggan90

                                  Yeah, to keep its low profile and symmetrical I went this way with the belts.

                                  I plan in the future to try a heated chamber, so keeping the motors below the 6mm plate seemed a good idea.

                                  I just purchased my Duet 3 and LCD, hopefully it'll turn up soon and then we can get this printer moving!

                                  Was the setup difficult?

                                  1 Reply Last reply Reply Quote 0
                                  • MaxGyverundefined
                                    MaxGyver @Haggan90
                                    last edited by

                                    @Haggan90 said in Haq XY:

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

                                    @dc42

                                    I am still having this bug, even after updating from the latest beta to 3.2 stable.
                                    When I home one axis, the other two lose their position. Although I think the correct axis are moving when they are homing.

                                    Visionaryundefined dc42undefined 2 Replies Last reply Reply Quote 0
                                    • Visionaryundefined
                                      Visionary @MaxGyver
                                      last edited by

                                      @MaxGyver

                                      I had problem where when doing homing U and X axes lost position during all axis homing. Those axes moved against endstops and lost steps/belt skipped.
                                      This was because homeall.g included wrong move type: 1 motor move -type move (H2-command)
                                      I switched it to H0. I think that you are also suppose to use H-command instead of S-commands.

                                      check: https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move

                                      My corrected homeall.g

                                      ; Haq xy homing, U and X axes concurrently, Y axis after that and Z axis last
                                      G91
                                      G1 H2 Z7 F200 					; raise head 7mm to keep it clear of the bed
                                      G1 H1 X-405 U405 F3000 			 ; coarse home X and U
                                      G1 H2 X5 U-5 F600              ; move 4mm away from the homing switches
                                      G1 H1 X-10 U10 F600           			; fine home X and U
                                      G1 H1 Y-420 F2000
                                      G1 H0 Y5 F600
                                      G1 H0 Y-5.5 F600
                                      G1 H1 Z-380 F360                ; move Z down stopping at the endstop
                                      G90
                                      

                                      Main printer: 3-5 Axis, 400x400x450 Duet 6HC || https://grabcad.com/eetu-4/models

                                      MaxGyverundefined 1 Reply Last reply Reply Quote 0
                                      • MaxGyverundefined
                                        MaxGyver @Visionary
                                        last edited by

                                        @Visionary
                                        Would you do me a favour and post your config file? I think with my setup there is more wrong than just the homing file. 😬

                                        -Cheers
                                        Max

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

                                          @MaxGyver said in Haq XY:

                                          @dc42 I just reversed the Y motor and when I do G1 X10 F1000 S2 the Y axis moves in the right direction (+10).

                                          That will have changed the direction of X axis movement too.

                                          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

                                          dc42undefined 1 Reply Last reply Reply Quote 0
                                          • RootCNCundefined
                                            RootCNC
                                            last edited by

                                            Hey everyone,

                                            last night I got my HAQ XY or markforged IDEX printer moving and homing correctly last night.

                                            you can see it moving here: https://fb.watch/38agipCwQx/

                                            Here is my config, once you get your head around the matrix manipulation it was easy to ensure it was moving in the correct direction.

                                            The magic happens on M669 command....

                                            ; Configuration file for Duet 3 (firmware version 3)
                                            ; executed by the firmware on start-up
                                            ;
                                            ; generated by RepRapFirmware Configuration Tool v3.2.2 on Tue Jan 19 2021 18:42:53 GMT+0000 (Greenwich Mean Time)
                                            
                                            ; General preferences
                                            G90                                     ; send absolute coordinates...
                                            M83                                     ; ...but relative extruder moves
                                            M550 P"Duet3"                          ; set printer name
                                            
                                            ; Drives
                                            M569 P0.0 S0                            ; (Y)  physical drive 0.0 goes forwards
                                            M569 P0.1 S0                            ; (X1) physical drive 0.1 goes forwards
                                            M569 P0.2 S1                            ; (X2) physical drive 0.2 goes forwards
                                            M569 P0.3 S1                            ; (Z)  physical drive 0.3 goes forwards
                                            M569 P0.4 S1                            ; (E1) physical drive 0.4 goes forwards
                                            M584 X0.1 U0.2 Y0.0 Z0.3 E0.4           ; set drive mapping
                                            M350 X64 U64 Y64 Z64 E16 I1                 ; configure microstepping with interpolation
                                            M669 K1 X1:0:0:0 Y1:-1:0:1 Z0:0:1:0 U0:0:0:1; Matrix mapping for Axis - X:Y:Z:U
                                            M92 X400.00 U400.00 Y400.00 Z1600.00 E420.00    ; set steps per mm
                                            M566 X900.00 U900.00 Y900.00 Z180.00 E120.00    ; set maximum instantaneous speed changes (mm/min)
                                            M203 X6000.00 U6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
                                            M201 X500.00 U500.00 Y500.00 Z20.00 E250.00     ; set accelerations (mm/s^2)
                                            M906 X1200 U1200 Y1200 Z1200 E800 I30         ; set motor currents (mA) and motor idle factor in per cent
                                            M84 S30                                 ; Set idle timeout
                                            
                                            ; Axis Limits
                                            M208 X-45 U45 Y0 Z0 S1                        ; set axis minima
                                            M208 X220 U310 Y215 Z200 S0                  ; set axis maxima
                                            
                                            ; Endstops
                                            M574 X1 S3                              ; configure sensorless endstop for low end on X
                                            M574 Y1 S3                              ; configure sensorless endstop for low end on Y
                                            M574 Z1 S3                              ; configure sensorless endstop for low end on Z
                                            M574 U2 S3                              ; configure sensorless endstop for high end on U
                                            M915 X U Y Z R0 F0						; Configure motor stall detection
                                            
                                            ; Z-Probe
                                            M558 P0 H5 F120 T6000                   ; disable Z probe but set dive height, probe speed and travel speed
                                            M557 X15:215 Y15:195 S20                ; define mesh grid
                                            
                                            ; Heaters
                                            
                                            ; Fans
                                            M950 F0 C"out8" Q500                    ; create fan 0 on pin out8 and set its frequency
                                            M106 P0 S0 H-1                          ; set fan 0 value. Thermostatic control is turned off
                                            M950 F1 C"out9" Q500                    ; create fan 1 on pin out9 and set its frequency
                                            M106 P1 S1 H-1                          ; set fan 1 value. Thermostatic control is turned off
                                            
                                            ; Tools
                                            M563 P0 D0 F0                           ; define tool 0
                                            G10 P0 X0 Y0 Z0                         ; set tool 0 axis offsets
                                            G10 P0 R0 S0                            ; set initial tool 0 active and standby temperatures to 0C
                                            
                                            ; Custom settings are not defined
                                            
                                            ; Miscellaneous
                                            M575 P1 S1 B57600                       ; enable support for PanelDue
                                            
                                            

                                            Homing wise:
                                            here is an example of my homing script (the standard IDEX setup guild is very good)

                                            ; homex.g
                                            ; called to home the X axis
                                            M400
                                            M913 X50 U50 Y50 ; drop motor current to 70%
                                            M400 
                                            G91; relative positioning
                                            ;G1 H2 Z10 F12000 ; lift Z relative to current position
                                            G1 H1 X-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass)
                                            G1 H2 X5 F12000 ; go back a few mm
                                            G1 H1 X-320.5 F7000 ; move slowly to X axis endstop once more (second pass)
                                            ;G1 H2 Z-10 F6000 ; lower Z again
                                            G90 ; absolute positioning
                                            M400
                                            M913 X100 U100 Y100 ; return current to 100%
                                            M400
                                            

                                            Please note I'm doing sensorless homing

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