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

    After Homing will not manual Move away from endstop

    Scheduled Pinned Locked Moved
    Duet Web Control
    3
    6
    109
    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.
    • rodneysramosjundefined
      rodneysramosj
      last edited by

      thanks for all the help on the last post, however... we are running into an issue after successfully homing in which we cannot manually move away from the end stop only towards it. I will attach the home and config files we are currently using. thanks in advance. config.g homeall.g homex.g homey.g homez.g

      fcwiltundefined Phaedruxundefined 4 Replies Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @rodneysramosj
        last edited by

        @rodneysramosj said in After Homing will not manual Move away from endstop:

        thanks for all the help on the last post, however... we are running into an issue after successfully homing in which we cannot manually move away from the end stop only towards it. I will attach the home and config files we are currently using. thanks in advance. config.g homeall.g homex.g homey.g homez.g

        In the future please post things like your *.G files using the </> tag.

        Posting links means we each have to download your files to look at them.

        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
        • fcwiltundefined
          fcwilt @rodneysramosj
          last edited by

          @rodneysramosj

          ; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC
          ; executed by the firmware on start-up
          ;
          ; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Feb 26 2025 14:22:18 GMT-0500 (Eastern Standard Time)
          
          ; General
          G90 ; absolute coordinates
          M83 ; relative extruder moves
          M550 P"Duet 3" ; set hostname
          
          ; Accessories
          M575 P1 S1 B57600 ; configure PanelDue support
          
          ; Network
          M551 P"Password1" ; set machine password
          M552 P192.168.1.20 S1 ; configure Ethernet adapter
          M553 P255.255.255.0 ; set netmask
          M554 P192.168.1.254 ; set gateway
          M586 P0 S1 ; configure HTTP
          
          ; Wait a moment for the CAN expansion boards to become available
          G4 S2
          
          ; Smart Drivers
          M569 P0.0 S0 D2 ; driver 0.0 goes forwards (X axis)
          M569 P0.1 S0 D2 ; driver 0.1 goes forwards (Y axis)
          M569 P0.2 S0 D2 ; driver 0.2 goes forwards (Z axis)
          M569 P0.3 S1 D2 ; driver 0.3 goes forwards (extruder 0)
          
          ; Motor Idle Current Reduction
          M906 I30 ; set motor current idle factor
          M84 S30 ; set motor current idle timeout
          
          ; Axes
          M584 X0.0 Y0.1 Z0.2 ; set axis mapping
          M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
          M906 X2800 Y2800 Z6000 ; set axis driver currents
          M92 X53.33 Y53.33 Z400 ; configure steps per mm
          M208 X0:1160 Y0:610 Z0:1320 ; set minimum and maximum axis limits
          M566 X3000 Y3000 Z60 ; set maximum instantaneous speed changes (mm/min)
          M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min)
          M201 X500 Y500 Z20 ; set accelerations (mm/s^2)
          
          ; Extruders
          M584 E0.3 ; set extruder mapping
          M350 E16 I1 ; configure microstepping with interpolation
          M906 E450 ; set extruder driver currents
          M92 E2682 ; configure steps per mm
          M566 E120 ; set maximum instantaneous speed changes (mm/min)
          M203 E3600 ; set maximum speeds (mm/min)
          M201 E250 ; set accelerations (mm/s^2)
          
          ; Probes
          
          
          ; Kinematics
          M669 K0 ; configure Cartesian kinematics
          
          ; Endstops
          M574 X1 P"!io3.in" S1 ; configure X axis endstop
          M574 Y1 P"!io1.in" S1 ; configure Y axis endstop
          M574 Z1 P"!io5.in" S1 ; configure Z axis endstop
          
          ; Sensors
          M308 S0 P"temp0" Y"thermistor" A"Heated Bed Set 0" T200000 B3950 C6.370029e-8 ; configure sensor #0
          M308 S1 P"temp1" Y"thermistor" A"Heated Bed Set 1" T200000 B3950 C6.370029e-8 ; configure sensor #1
          M308 S2 P"temp2" Y"thermistor" A"Roto Internal Temp" T100000 B4267 C7.046861e-8 ; configure sensor #2
          M308 S3 P"121.temp0" Y"thermistor" A"Roto Extruder Temp" T100000 B4267 C7.046861e-8 ; configure sensor #3
          
          ; Heaters
          M950 H0 C"out1" T0 ; create heater #0
          M143 H0 P0 T0 C0 S120 A0 ; configure heater monitor #0 for heater #0
          M307 H0 R0.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0
          M950 H1 C"121.out0" T3 ; create heater #1
          M143 H1 P0 T3 C0 S300 A0 ; configure heater monitor #0 for heater #1
          M307 H1 R0.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1
          M950 H2 C"out2" T1 ; create heater #2
          M143 H2 P0 T1 C0 S120 A0 ; configure heater monitor #0 for heater #2
          M307 H2 R0.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #2
          
          ; Heated beds
          M140 P0 H0 ; configure heated bed #0
          M140 P2 H2 ; configure heated bed #2
          
          ; Tools
          M563 P0 S"Roto Toolboard" D0 H1 F0 ; create tool #0
          M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
          
          ; Fans
          M950 F0 C"out0+out5.tach"         ; create fan #0
          M106 P0 C"Roto Fan" S0 B10 H2 T60:59 ; configure fan #0
          
          ; Miscellaneous
          T0 ; select first tool
          
          ; Custom settings
          ;E-Stop
          M950 J4 C"!^io4.in"
          M581 P4 S0 T0 R0
          
          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
          
          ; increase Z
          G91 ; relative positioning
          G1 H2 Z5 F6000 ; move Z relative to current position to avoid dragging nozzle over the bed
          G90 ; absolute positioning
          
          ; home XY
          var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm
          var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm
          G91 ; relative positioning
          G1 H1 X{-var.xTravel} Y{-var.yTravel} F1200 ; coarse home in the -X and -Y directions
          G1 H2 X5 Y5 F6000 ; move back 5mm
          G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home in the -X and -Y directions
          G90 ; absolute positioning
          
          ; home Z
          var zTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm
          G91 ; relative positioning
          G1 H1 Z{-var.zTravel} F1200 ; coarse home in the -Z direction
          G1 H2 Z5 F6000 ; move back 5mm
          G1 H1 Z-10 F300 ; fine home in the -Z direction
          G90 ; absolute positioning
          
          ; homex.g
          ; called to home the X axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
          
          ; increase Z
          ;G91 ; relative positioning
          ;G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed
          ;G90 ; absolute positioning
          
          ; homex_final_v2.g
          ; Robust X homing with dual-phase endstop checks and final retraction
          
          G91                              ; relative positioning
          var maxTravel = move.axes[0].max - move.axes[0].min + 5
          
          ; Coarse homing
          G1 H1 X{var.maxTravel} F1200     ; move toward X endstop
          M400
          G4 P300                          ; debounce delay
          
          ; Check and retract
          if sensors.endstops[0].triggered
              echo "X endstop triggered (coarse), retracting..."
              M564 H0 S0                   ; allow movement even with endstop triggered
              G1 X-5 F600                  ; retract 5mm
              M400
              G4 P200
          
              ; Fine homing
              G1 H1 X10 F300               ; slow move toward switch (~10mm)
              M400
              G4 P200
          
              if sensors.endstops[0].triggered
                  echo "X endstop triggered (fine), final retract..."
                  G1 X-2 F600              ; final retract to move off switch
                  M400
              else
                  echo "X endstop NOT triggered after fine approach"
          
              M564 H1 S1                   ; restore normal limits
          else
              echo "X endstop NOT triggered after coarse move"
          
          G90                              ; back to absolute positioning
          
          ; decrease Z again
          ;G91 ; relative positioning
          ;G1 H2 Z-5 F6000 ; move Z relative to current position
          ;G90 ; absolute positioning
          
          ; homey.g
          ; called to home the Y axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
          
          ; increase Z
          ;G91 ; relative positioning
          ;G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed
          ;G90 ; absolute positioning
          
          ; home Y
          ;G91 ; relative positioning
          ;var maxTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm
          ;G1 H1 Y{var.maxTravel} F1200 ; coarse home in the -Y direction
          ;G4 P500
          ;G1 Y5 F6000 ; move back 5mm
          ;G1 H1 Y{var.maxTravel} F300 ; fine home in the -Y direction
          ;M400
          ;G90 ; absolute positioning
          
          ; decrease Z again
          ;G91 ; relative positioning
          ;G1 H2 Z-5 F6000 ; move Z relative to current position
          ;G90 ; absolute positioning
          G91                              ; relative positioning
          var maxTravel = move.axes[1].max - move.axes[1].min + 5
          
          ; Coarse homing
          G1 H1 Y{var.maxTravel} F1200     ; move toward X endstop
          M400
          G4 P300                          ; debounce delay
          
          ; Check and retract
          if sensors.endstops[1].triggered
              echo "Y endstop triggered (coarse), retracting..."
              M564 H0 S0                   ; allow movement even with endstop triggered
              G1 Y-5 F600                  ; retract 5mm
              M400
              G4 P200
          
              ; Fine homing
              G1 H1 Y10 F300               ; slow move toward switch (~10mm)
              M400
              G4 P200
          
              if sensors.endstops[1].triggered
                  echo "Y endstop triggered (fine), final retract..."
                  G1 Y-2 F600              ; final retract to move off switch
                  M400
              else
                  echo "Y endstop NOT triggered after fine approach"
          
              M564 H1 S1                   ; restore normal limits
          else
              echo "Y endstop NOT triggered after coarse move"
          
          G90                              ; back to absolute positioning
          
          ; homez.g
          ; called to home the Z axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
          
          ; home Z
          ;G91 ; relative positioning
          ;var maxTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm
          ;G1 H1 Z{var.maxTravel} F1200 ; coarse home in the -Z direction
          ;G1 Z-5 F6000 ; move back 5mm
          ;G1 H1 Z{var.maxTravel} F300 ; fine home in the -Z direction
          ;G90 ; absolute positioning
          G91                              ; relative positioning
          var maxTravel = move.axes[2].max - move.axes[2].min + 5
          
          ; Coarse homing
          G1 H1 Z{var.maxTravel} F1200     ; move toward X endstop
          M400
          G4 P300                          ; debounce delay
          
          ; Check and retract
          if sensors.endstops[2].triggered
              echo "Z endstop triggered (coarse), retracting..."
              M564 H0 S0                   ; allow movement even with endstop triggered
              G1 Z-5 F600                  ; retract 5mm
              M400
              G4 P200
          
              ; Fine homing
              G1 H1 Z10 F300               ; slow move toward switch (~10mm)
              M400
              G4 P200
          
              if sensors.endstops[2].triggered
                  echo "Z endstop triggered (fine), final retract..."
                  G1 Z-2 F600              ; final retract to move off switch
                  M400
              else
                  echo "Z endstop NOT triggered after fine approach"
          
              M564 H1 S1                   ; restore normal limits
          else
              echo "Z endstop NOT triggered after coarse move"
          
          G90                              ; back to absolute positioning
          

          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
          • fcwiltundefined
            fcwilt @rodneysramosj
            last edited by fcwilt

            @rodneysramosj

            Having posted your files and looked at them I will suggest your homing code is needlessly complicated.

            Three simple G1 moves (G1 H1, G1, G1 H1) should work just fine.

            What is your reasoning for the complicated code you have created?

            Thanks.

            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
            • Phaedruxundefined
              Phaedrux Moderator @rodneysramosj
              last edited by

              @rodneysramosj said in After Homing will not manual Move away from endstop:

              we cannot manually move away from the end stop only towards it

              It sounds like your end stops and/or your axis directions may be misconfigured. I'm guessing it's hitting the endstop and it's thinking it's at the min, when it's actually at the max, or vice versa.

              1. Decide where you want X0 Y0 to be. Popular choices are the front left corner of the bed, or the centre of the bed.
              2. Decide which direction you want to be positive X and which direction should be positive Y. Usually positive X is to the right and positive Y is away from you. Other directions are possible but be sure to choose a right hand coordinate system. Keep it simple -X should move left, +X should move right, -Y should move to the nozzle to the front of the bed, +Y to the back.
              3. Adjust the motor directions in config.g to get positive X and Y movements in the desired direction.
              4. Establish whether your endstop switches are high end (at axis maximum) or low end (at axis minimum) and configure the endstops accordingly in the M574 commands in config.g.
              5. Now in your homing files the homing moves should move towards the endstop.

              Z-Bot CoreXY Build | Thingiverse Profile

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

                I see you already have a thread started here. Please keep it limited to one thread per issue.

                https://forum.duet3d.com/topic/37842/printer-not-hitting-any-of-the-endstops

                Z-Bot CoreXY Build | Thingiverse Profile

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