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

    Homing sequence - Z axis first, then X and Y [SOLVED]

    Scheduled Pinned Locked Moved
    General Discussion
    6
    16
    3.8k
    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.
    • Vetiundefined
      Veti
      last edited by

      check the homeall.g config.

      There you can define the order

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

        https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_files

        https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Homing_files

        Reading both those sections will take you through how to setup your homing files.

        You can home Z first, but you run into an issue of not knowing where your X and Y axis is in order to position the print head and z probe in order to home Z. This isn't an issue if you are using a simple chassis mounted endstop for the Z axis.

        What is the reason you want to home Z first?

        Z-Bot CoreXY Build | Thingiverse Profile

        thweundefined 1 Reply Last reply Reply Quote 0
        • DocTruckerundefined
          DocTrucker
          last edited by DocTrucker

          Looks like he has a limit switch on the max travel (lowest) of the elevator. Moving the elevator further away from the head runs no risk of part collision.

          Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

          thweundefined 1 Reply Last reply Reply Quote 0
          • thweundefined
            thwe @DocTrucker
            last edited by

            @doctrucker : correct, my z limit switch is on max, also the bed is down when the switch is activated

            Thomas

            1 Reply Last reply Reply Quote 0
            • thweundefined
              thwe @Veti
              last edited by

              @veti : in the homeall.g the z-homing procedure is on top - that works fine …

              … but, if I press after a the reset the button "Home Z" I get the error message: "Error: Must home These axes: XY before homing These: Z"

              Thomas

              T3P3Tonyundefined dc42undefined 2 Replies Last reply Reply Quote 0
              • thweundefined
                thwe @Phaedrux
                last edited by

                @phaedrux : As DocTrucker has already correctly suspected i will move the bed down before any other moves, to avoid part collision

                Thomas

                1 Reply Last reply Reply Quote 0
                • DocTruckerundefined
                  DocTrucker
                  last edited by DocTrucker

                  If you want to bypass the warning you can force the current position to an arbitary position by doing G92 X[any number] Y[any number] Z[any number] then doing the usual drives onto limit switch commands.

                  Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

                  1 Reply Last reply Reply Quote 0
                  • T3P3Tonyundefined
                    T3P3Tony administrators @thwe
                    last edited by

                    @thwe Use G1 S2 Zxx to move the Z axis a bit before homing the other two axis. See:

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

                    Specifically:

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

                    You will see this in the documentation that was already linked:
                    https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_Z

                    G91 ; relative mode
                    G1 S2 Z4 F200 ; raise head 4mm to ensure it is above the Z probe trigger height
                    G90 ; back to absolute mode
                    

                    www.duet3d.com

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

                      @thwe said in Homing sequence - Z axis first, then X and Y:

                      @veti : in the homeall.g the z-homing procedure is on top - that works fine …

                      … but, if I press after a the reset the button "Home Z" I get the error message: "Error: Must home These axes: XY before homing These: Z"

                      Check that your homeall.g file is set up to home Z using a G1 S1 Z command. That message should only be produced if you are using a Z probe to home Z. https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_Z

                      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

                      thweundefined 1 Reply Last reply Reply Quote 0
                      • thweundefined
                        thwe @dc42
                        last edited by

                        @dc42 : There is a "G1 S1 Zxxx" command in my homez.g - see my file:

                        *; homez.g
                        ; called to home the Z axis
                        ;
                        ; Drive 0 as X
                        ; Drive 1 as Y
                        ; Drive 2 as Z -> 1st Z-motor (left one, viewed from ahead) which is normal Z
                        ; Drive 3 as U -> 2nd Z-motor (right one, viewed from ahead) which is now U
                        ; Drive 4 as Extruder

                        G91 ; relative positioning

                        M584 Z2 U3 P4 ; Split Z into 2 (Z+U)

                        G1 S1 Z999 U999 F800 ; Move the bed down in the Z direction. S1 to stop if endstop is triggered
                        G1 S2 Z-3 U-3 F800 ; Move the bed up 3mm in the -Z direction, ignore if axis are not homed
                        G1 S1 Z5 U5 F200 ; Move slowly in the +Z direction again to stop exactly at the homing switch
                        M400 ; Wait for current moves to finish

                        G4 P100
                        G1 S2 Z0.00 U0.04 F200 ; Correction of a mounting suitability from the limit switches
                        G4 P100

                        M584 Z2:3 P3 ; Join U to Z again

                        G92 Z290 ; set position of Z relativ to the bed (!!must be adjusted here!!)

                        G90 ; Back to absolute mode
                        G1 Z280 F1000 ; Move bed to Z Position*

                        and here is my homeall.g

                        *M98 Phomez.g ; Z homing

                        M98 Phomex.g ; X homing

                        M98 Phomey.g ; Y homing

                        G90
                        G1 X150 Y150 Z280 F1800 ; Goto Zero-Position*

                        In my understanding (Attention: i am a beginner 😉 ) it should work so?

                        Again, if I click the button "Home all" in the DWC, it works fine - but I first click the button "Home Z" I get the already posted error message

                        OK, the difference of the buttons after a restart: "Home All" is highlighted in blue, the others in orange.

                        Thomas

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

                          I've just tested homing Z before XY on a Cartesian printer, and it's working for me if I don't try to do any XY movements in homez.g. This is with my current firmware build that I hope will soon be the 2.02RC4 release.

                          What the code implements is that if there is a Z probe configured and either the Z endstop type is set to "Z probe" or the Z endstop position is set to "none", then X and Y must be homed before Z. I don't think this has changed since the 2.01 release that you are using, but I could be wrong.

                          Please post your config.g file.

                          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
                          • thweundefined
                            thwe
                            last edited by

                            My config.g:

                            ############## Configuration file for Duet WiFi ##############
                            ; ############## executed by the firmware on start-up ##############
                            ;
                            ; Firmware Electronics: 1.04
                            ; Firmware Version: 2.01 (RTOS), 2018-07-26b2
                            ; WiFi-Server: 1.21
                            ; Web-Interface: 1.22.3
                            ;
                            ; Drive 0 as X
                            ; Drive 1 as Y
                            ; Drive 2 as Z -> 1st Z-motor (left one, viewed from ahead) which is normal Z
                            ; Drive 3 as U -> 2nd Z-motor (right one, viewd from ahead) which is now U
                            ; Drive 4 as Extruder

                            ; ############## General preferences ##############
                            M667 S1 ; Switch to CoreXY mode
                            G90 ; Send absolute coordinates...
                            M83 ; ...but relative extruder moves
                            M555 P1 ; Set firmware compatibility to look like RepRapFirmare

                            ; ############## Network - Connect to a wifinet ##############
                            M552 S0 ; Disable network
                            M550 DUTH-PULLEYX ; Set machine name
                            M552 S1 ; Enable network
                            M586 P0 S1 ; Enable HTTP
                            M586 P1 S0 ; Disable FTP
                            M586 P2 S0 ; Disable Telnet

                            ; ############## Drives ##############
                            M569 P0 S1 ; Drive 0 -> X -> goes forwards
                            M569 P1 S0 ; Drive 1 -> Y -> goes backwards
                            M569 P2 S0 ; Drive 2 -> Z1 -> goes forwards
                            M569 P3 S0 ; Drive 3 -> Z2 (U) -> goes forwards
                            M569 P4 S1 ; Drive 4 -> EXTRUDER -> goes forwards

                            ; ############## Dual Z-Drives ##############
                            M584 X0 Y1 Z2:3 U3 E4 P3 ; Driver 0=X, 1=Y, 2+3=Z, 3=U, 4=Extruder, 3 axis visible

                            ; ############## Drives setting ##############
                            M350 X16 Y16 Z16 U16 I1 ; Configure microstepping with interpolation
                            M350 E16 I1 ; Configure microstepping with interpolation

                            M92 X66.667 Y66.667 Z800 U800 ; Set axis steps per mm
                            M92 E408 ; Set extruder steps per mm

                            M566 X1200 Y1200 Z120 U120 E120 ; Set maximum instantaneous speed changes/jerk (mm/min)
                            M203 X12000 Y12000 Z4500 U4500 E1200 ; Set maximum speeds (mm/min)
                            M201 X450 Y450 Z200 U200 E200 ; Set accelerations (mm/s^2)
                            M906 X1900 Y1900 Z1900 U1900 E1500 I30 ; Set motor currents (mA) and motor idle factor in per cent
                            M84 S30 ; Set idle timeout

                            ; ############## Axis Limits ##############
                            M208 X0.00 Y-25.00 Z0 S1 ; Set axis S1 = minimum
                            M208 X295.00 Y310.00 Z290.00 S0 ; Set axis S0 = maximum

                            ; ############## Endstops ##############
                            M574 Z0 U0 X1 Y1 S1 ; 1 = low end, 0 = high end, S1 = active high (NC), S0 active low (NO)

                            ; ############## Z-Probe ##############
                            M558 P8 I1 H5 R0.3 X0 Y0 Z0 F240 T2000 ; Set Z probe type to unmodulated and the dive height + speeds
                            G31 X0 Y0 Z-0.1 P100 ; Set Z probe trigger value, offset and trigger height

                            ; ############## Define mesh grid ##############
                            M557 X10:290 Y10:290 S70 ; Define mesh grid

                            ; ############## Heaters ###
                            M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
                            M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
                            M307 H0 A145.0 C600.0 D0.85 B0 ; Set heating process parameters for heater 0
                            M143 H0 S120 ; Set temperature limit for heater 0 to 120C
                            M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
                            M307 H1 A612.5 C241.5 D8.00 B0 ; Set heating process parameters for heater 1
                            M143 H1 S280 ; Set temperature limit for heater 1 to 280C

                            ; ############## Fans ##############
                            M106 P0 S0.8 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency, Thermostat control off
                            M106 P1 S0.5 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency, Thermostat control on
                            M106 P2 S0.5 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency, Thermostat control on

                            ; ############## Tools ##############
                            M563 P0 D0 H1 ; 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

                            ; ############## Automatic power saving ##############
                            M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

                            ; ############## Custom settings ##############
                            M81 ; 24VDC power supply OFF at starting
                            M912 P0 S-1.9 ; Calibrating the CPU temperature

                            ; ############## Miscellaneous##############
                            M501 ; Load saved parameters from non-volatile memory

                            ; END OF FILE

                            .
                            .
                            .

                            by the way - here is a video of my printer:
                            my corexy with 2 endstops on t axis

                            Thomas

                            1 Reply Last reply Reply Quote 0
                            • thweundefined
                              thwe
                              last edited by

                              and something else - a piezo orion for bed leveling is also planned, already available but not yet installed ..

                              in a test setup he has worked with the above config.g

                              Thomas

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

                                The M574 command in your config.g file is wrong. You have it set to "no endstop", which is why the firmware is asking you to home X and Y first. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration.

                                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
                                • thweundefined
                                  thwe
                                  last edited by

                                  oh no, the article mentioned about setting up the endstops with m574, I've read several times ... and yet not correctly implemented ... 😣

                                  the solution of the problem:

                                  M574 Z2 U2 X1 Y1 S1

                                  ; for my documentation
                                  ; Xn / Yn / Zn / Un -> endstop position
                                  ; ... n = 0 -> no endstop
                                  ; ... n = 1 -> at low end (min endstop)
                                  ; ... n = 2 -> at high end (max endstop)
                                  ; Sn -> endstop type
                                  ; ... n = 1 -> active high (NC), default
                                  ; ... n = 0 -> active low-high (NO)

                                  Thanks for your help 👍

                                  Thomas

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