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
-
@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
-
; 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
-
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
-
@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.
- Decide where you want X0 Y0 to be. Popular choices are the front left corner of the bed, or the centre of the bed.
- 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.
- Adjust the motor directions in config.g to get positive X and Y movements in the desired direction.
- 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.
- Now in your homing files the homing moves should move towards the endstop.
-
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
-
undefined Phaedrux locked this topic