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

    Homeall.g fails when homing all axes

    Scheduled Pinned Locked Moved Unsolved
    General Discussion
    8
    53
    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.
    • developeralgo222undefined
      developeralgo222 @infiniteloop
      last edited by developeralgo222

      @infiniteloop said in Homeall.g fails when homing all axes:

      (2) For Y-axis, only have 2 physical endstops (connected in parallel) each per Y-axis rail both at min or max

      Why? For each axis, you want to have one known position from where you then establish a coordinate system.

      I have 2 linear rails on Y-axis ( it moves on Dual Rail ) but only 1 Stepper Motor for controlling the Y-axis . So to comply with 1 Endstop/Motor/Axis on Duet and to remedy the Y-axis i am removing 2 endstops at the Max of the Y-axis. Just leaving 2 endstops at the Min of each rail . The 2 endstops are connected as a 1 single Endstop at the Min only. Will this work for Y-axis?

      fcwiltundefined infiniteloopundefined 2 Replies Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @developeralgo222
        last edited by fcwilt

        @developeralgo222

        What is your thinking on having those two endstops?

        You are aware that endstops serve no purpose except during G1 H1 or G1 H3 or G1 H4 moves?

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        developeralgo222undefined 2 Replies Last reply Reply Quote 0
        • developeralgo222undefined
          developeralgo222 @fcwilt
          last edited by

          @fcwilt
          wasn't aware of that . So really, what's the value-added in having endstops anyway in duet ? since they seem to be integral part in some Duet's movement process. I am confused about your statement

          fcwiltundefined 1 Reply Last reply Reply Quote 0
          • developeralgo222undefined
            developeralgo222 @fcwilt
            last edited by

            @fcwilt said in Homeall.g fails when homing all axes:

            What is your thinking on having those two endstops?

            You are aware that endstops serve no purpose except during G1 H1 or G1 H3 or G1 H4 moves?

            Just having a single endstop at the min Y-axis. Since only 1 Single Endstop is allowed , by connecting the 2 physical endstops (at minimum) together to act as only a single endpoint at minimum

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

              @developeralgo222 if you really want to use 2 Y endstops even though you have just 1 Y motor, then my interpretation of the datasheet you linked to is that you need to use the white wire as the output connected to the iox_in pin (not the black wire), connect both sensors in parallel, and use the ! character at the start of the pin name.

              You can activate the endstops manually (i.e. place a piece pf card in the slot) and use the Object Model Browser in DWC to check that activating either endstop changes the state of the endstop in the object mode to triggered.

              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

              developeralgo222undefined 1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @developeralgo222
                last edited by

                @developeralgo222 said in Homeall.g fails when homing all axes:

                @fcwilt
                wasn't aware of that . So really, what's the value-added in having endstops anyway in duet ? since they seem to be integral part in some Duet's movement process. I am confused about your statement

                When you first power on a machine (or after any reset) the physical position of each axis is unknown.

                The homing processes use G1 H1 moves and the action of the axis endstops to determine the actual physical position and thus sync the logical position with the physical position.

                The position of the endstop must be near one end of the axis and must work in such away that it is not possible to obtain a physical position past the endstop where the endstop is not activated.

                The G1 H1 moves allow stopping motion when the endstop is triggered. Since the location of the endstop is known (indeed it must be known) once the G1 H1 move is stopped the physical position of the axis is known and the the logical position of the axis (the value you see on the DWC) can be synced with the actual physical position.

                Once the logical and physical are in sync normal G90 G1 moves can move to any point on the axis (within the min/max range) with a good deal of accuracy.

                IF the endstop triggered at exactly the min or max of the axis (depending on where the endstop was) the G1 H1 move would establish BOTH the axis physical and logical position simultaneously.

                However, I have never had a printer where that was true and it has always required a bit of additional code in the homing routine to sync the physical and logical positions.

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                1 Reply Last reply Reply Quote 0
                • developeralgo222undefined
                  developeralgo222 @dc42
                  last edited by developeralgo222

                  @dc42

                  So for connection of all other Endstops ( X, Z, U, V, W, A,B,C,D,k ) except Y-axis i should use

                  Black Wire ==> IOx.in
                  Blue Wire ==> GND
                  Brown Wire ==> 5V_EXT

                  and for Y-axis ( 2 physical endstops connected as 1 endstop ) i should use

                  White Wire ==> IOx.in
                  Blue Wire ==> GND
                  Brown Wire ==> 5V_EXT

                  fcwiltundefined dc42undefined 2 Replies Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @developeralgo222
                    last edited by

                    @developeralgo222

                    You can install two Y endstop sensors but you are not going to derive any benefit from doing so, when you only have one Y stepper motor.

                    Frederick

                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

                      @developeralgo222 for Y axis and white wires use !iox.in

                      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

                      developeralgo222undefined 1 Reply Last reply Reply Quote 0
                      • infiniteloopundefined
                        infiniteloop @developeralgo222
                        last edited by

                        @developeralgo222

                        Just leaving 2 endstops at the Min of each rail . The 2 endstops are connected as a 1 single Endstop at the Min only. Will this work for Y-axis?

                        Yes - because, as you rightly say, the two endstops are wired to act as a single switch.

                        1 Reply Last reply Reply Quote 0
                        • developeralgo222undefined
                          developeralgo222 @dc42
                          last edited by developeralgo222

                          @dc42 @T3P3Tony

                          Ok i have made the modifications on Endstops

                          X-Axis ---- Endstop works fine now and triggers correctly
                          Y-Axis ---- Endstop works fine now and triggers correctly
                          W, A, B, C, D, k ---- Endstop works fine now and triggers correctly

                          Endstops.png

                          Test:
                          Endstops_2.png

                          Working on Z, U , V Axes:

                          Not sure how this need to be configured ( This are shared Z-CAM based axis ) for 6 Nozzles

                          Z , U , V ( Z-Axis = (Z1, Z2), U-Axis = (Z3, Z4), V-Axis= (Z5, Z6) ) only Z2 , Z4, Z6 triggers Z , U , V respectively but not Z1, Z3, Z5

                          ; Endstops 
                          ; For X and Y Axis
                          M574 X1 S1 P"0.io1.in"               ; configure active high endstop switch for low end on X via pin io1.in  
                          M574 Y1 S1 P"0.io2.in"               ; configure active high endstop switch for low end on Y via pin io2.in
                          ; For Z-Axis (Shared Z,U,V) - Up/down)  -- CAM Driven Dual Nozzles ( 1 Motor rotates up/down to drive 2 Nozzles )
                          M574 Z1 S1 P"1.io0.in"             ; configure active high endstop switch for low end on Z via pin 1.io0.in
                          M574 Z2 S1 P"1.io1.in"             ; configure active high endstop switch for High end on Z via pin 1.io1.in
                          M574 U1 S1 P"1.io2.in"             ; configure active high endstop switch for low end on U via pin 1.io2.in
                          M574 U2 S1 P"1.io3.in"             ; configure active high endstop switch for High end on U via pin 1.io3.in
                          M574 V1 S1 P"1.io4.in"             ; configure active high endstop switch for low end on V via pin 1.io4.in
                          M574 V2 S1 P"1.io5.in"             ; configure active high endstop switch for High end on V via pin 1.io5.in
                          ; For Rotational Axes only (W, A, B, C, D, 'k(k)) 
                          M574 W1 S1 P"2.io3.in"            ; configure active high endstop switch for low end on W via pin 2.io3.in
                          M574 A1 S1 P"2.io4.in"            ; configure active high endstop switch for low end on A via pin 2.io4.in
                          M574 B1 S1 P"2.io5.in"            ; configure active high endstop switch for low end on B via pin 2.io5.in
                          M574 C1 S1 P"3.io3.in"            ; configure active high endstop switch for low end on C via pin 3.io3.in
                          M574 D1 S1 P"3.io4.in"            ; configure active high endstop switch for low end on D via pin 3.io4.in
                          M574 'k1 S1 P"3.io5.in"           ; configure active high endstop switch for low end on 'k via pin 3.io5.in
                          

                          Here is a photo of the 6-Nozzles with a little grainy photo to show some of the 6 endstops under each Z-based axis ( Z, U, V )

                          IMG_3499.jpg
                          IMG_3498.jpg

                          developeralgo222undefined 1 Reply Last reply Reply Quote 0
                          • developeralgo222undefined
                            developeralgo222 @developeralgo222
                            last edited by developeralgo222

                            @developeralgo222
                            i went back to try and individually home all Axes that have their end stops corrected i.e

                            X-Axis ---- End stop works fine now and triggers correctly
                            Y-Axis ---- End stop works fine now and triggers correctly
                            W, A, B, C, D, k ---- End stop works fine now and triggers correctly

                            Homing fails on all of them. e.g. homing X-axis, this is what i have in the file ( very simple, nothing complicated ). It completes the movements in homing X-axis fine with no issues but DWC reports that Homing X failed e.g

                            ; Home X-Axis 
                            G91                     ; relative positioning
                            G1 H2 X0             ; set axes position explicitly to Zero i.e move X and Y-axis Minimum Homing endstop and stop there
                            G1 H2 X40 F10000     ; move quickly to X and Y axis endstops and stop there (first pass)
                            G1 H2 X-40  F10000   ; go back a few mm
                            G1 H2 X0             ; move X and Y-axis Minimum Homing endstop and stop there (first pass)
                            G90                  ; absolute positioning
                            

                            Homing_n_Endstops.png

                            It affects me in that i can't use Input Shaping with Accelerometer from the DWC to help tune and optimize my PNP machine Speed and acceleration . Input Shaping from DWC is using HomeAll button . Not sure if its failing bacause of Z, U, V that have endstop issues

                            Input_Shaping.png

                            fcwiltundefined 1 Reply Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator
                              last edited by

                              ; Home X-Axis 
                              G91                     ; relative positioning
                              G1 H2 X0             ; set axes position explicitly to Zero i.e move X and Y-axis Minimum Homing endstop and stop there
                              G1 H2 X40 F10000     ; move quickly to X and Y axis endstops and stop there (first pass)
                              G1 H2 X-40  F10000   ; go back a few mm
                              G1 H2 X0             ; move X and Y-axis Minimum Homing endstop and stop there (first pass)
                              G90                  ; absolute positioning
                              

                              G1 H2 doesn't do what you think it does here.

                              G1 H2 X0 means to do a zero movement move regardless if the axis is homed or not. G1 H2 moves are meant to leat you move the axis away from an endstop slightly before a homing move, or to raise the z axis before making an X Y move to prevent scraping.

                              An actual homing move is done with a G1 H1 movement which needs to be long enough to strike the endstop even from the farthest opposing position. It also must be in the direction of the endstop.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              1 Reply Last reply Reply Quote 0
                              • fcwiltundefined
                                fcwilt @developeralgo222
                                last edited by

                                @developeralgo222

                                You are using H2 instead of H1.

                                You posted that the X endstop is at the low end.

                                I don't know how long the X axis is but you need something like...

                                G91
                                G1 H1 X-999 F5000 ; use a value large enough to move the entire length of the X axis
                                G1 X10
                                G1 H1 X-15 F500
                                

                                ...then based on what the physical position is when stopped by the endstop being triggered

                                G1 Xnnn  ; move to some known position on the axis - note this is a relative move still
                                G92 Xppp ; set the X axis logical position to match the physical position
                                

                                Frederick

                                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                developeralgo222undefined 1 Reply Last reply Reply Quote 0
                                • developeralgo222undefined
                                  developeralgo222 @fcwilt
                                  last edited by

                                  @fcwilt
                                  X-axis = 340 mm and Y-axis = 447mm.

                                  I think i only have extra additional of -2.0516mm on X-axis on the low end and -4.0244mm on Y-axis

                                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                                  • fcwiltundefined
                                    fcwilt @developeralgo222
                                    last edited by

                                    @developeralgo222 said in Homeall.g fails when homing all axes:

                                    @fcwilt
                                    X-axis = 340 mm and Y-axis = 447mm.

                                    I think i only have extra additional of -2.0516mm on X-axis on the low end and -4.0244mm on Y-axis

                                    OK then your first G1 H1 move would be

                                    G1 H1 X-345 F5000
                                    

                                    You can pick a speed (the F parameter) that works best for you - it's not critical but you can go too fast.

                                    At what position does the X endstop trigger? Are you treating that as X=0?

                                    Frederick

                                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                    developeralgo222undefined 1 Reply Last reply Reply Quote 0
                                    • developeralgo222undefined
                                      developeralgo222 @fcwilt
                                      last edited by developeralgo222

                                      @fcwilt said in Homeall.g fails when homing all axes:

                                      At what position does the X endstop trigger? Are you treating that as X=0?

                                      Yes at X=0. Do i need to test this on the command console or just put them in a homing file and test on DWC ?

                                      something like this on homex.g ?

                                      G91
                                      G1 H1 X-345 F5000 ; use a value large enough to move the entire length of the X axis
                                      G1 X10
                                      G1 H1 X-15 F500
                                      G1 X0 
                                      G92 X0 
                                      G90
                                      
                                      fcwiltundefined 1 Reply Last reply Reply Quote 0
                                      • fcwiltundefined
                                        fcwilt @developeralgo222
                                        last edited by fcwilt

                                        @developeralgo222 said in Homeall.g fails when homing all axes:

                                        As I mentioned if the endstop triggers at the end of the axis travel and you are treating that as X=0 then you don't need the following:

                                        G1 Xnnn
                                        G92 Xppp
                                        

                                        They are ONLY needed when the endstop is not triggering at X=0

                                        In your case this should work for you:

                                        G91
                                        G1 H1 X-345 F5000
                                        G1 X10
                                        G1 H1 X-15 F500
                                        

                                        Now if you have specified your X axis with M208 -170:170, meaning X=0 is at the center of the axis you could add the following:

                                        G90
                                        G1 X0 F5000
                                        

                                        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                        developeralgo222undefined 1 Reply Last reply Reply Quote 0
                                        • developeralgo222undefined
                                          developeralgo222 @fcwilt
                                          last edited by

                                          @fcwilt said in Homeall.g fails when homing all axes:

                                          Now if you have specified your X axis with M208 -170:170, meaning X=0 is at the center of the axis you could add the following:

                                          i have M208 X0:340 Y0:447

                                          developeralgo222undefined fcwiltundefined 2 Replies Last reply Reply Quote 0
                                          • developeralgo222undefined
                                            developeralgo222 @developeralgo222
                                            last edited by

                                            @developeralgo222

                                            Attached is my config

                                            config.g

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