Homing X and Y - Target position outside machine limits
-
Hi,
Whenever I try to home the X or Y axis on my Workbee 1015, I'm getting the following error:
G28 Y Error: G0/G1: target position outside machine limits
When starting up the Duet interface shows the coordinates being something like 0,-1270,-94.
Duet and firmware info:
Board: Duet 2 WiFi (2WiFi) Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.4.0 (2022-03-15) Duet WiFi Server Version: 1.26
Having never used a CNC I think part of the issues stems from not understanding the coordinate system in regards to where the machine should be when it's homed and when it's in it's max position.
In my head it makes sense that the machine starts at 0,0 and then goes to 740,1200 (-ish) when it's at its max but I don't know if that is actually the case.The machine is currently positioned like this, and I would like for the machine to home to the big arrow.
Here's part of my config. I hope I didn't miss something relevant.
; homex.g ; called to home the X axis G91 ; relative positioning G21 ; Set units to mm G1 H1 Z{move.axes[2].min*2} F900 ; move quickly to Z axis endstop and stop there (first pass) G1 H1 X{move.axes[0].min*2} F2400 ; move quickly to X axis endstops and stop there (first pass) G92 X{move.axes[0].min} Z{move.axes[2].min} ; Set Home Position G1 X-3 Z-3 F2400 ; go back a few mm G1 H1 X{move.axes[0].min*2} F300 ; move slowly to X axis endstops once more (second pass) G1 H1 Z{move.axes[2].min*2} F300 ; move slowly to Z axis endstop once more (second pass) G92 X{move.axes[0].min} Z{move.axes[2].min} ; Set Home Position G90 ; absolute positioning ; homey.g ; called to home the Y axis G91 ; relative positioning G21 ; Set units to mm G1 H1 Z{move.axes[2].min*2} F900 ; move quickly to Z axis endstop and stop there (first pass) G1 H1 Y{move.axes[1].min*2} F2400 ; move quickly to Y axis endstops and stop there (first pass) G92 Y{move.axes[1].min} Z{move.axes[2].min} ; Set Home Position G1 Y-3 Z-3 F2400 ; go back a few mm G1 H1 Y{move.axes[1].min*2} F300 ; move slowly to Y axis endstops once more (second pass) G1 H1 Z{move.axes[2].min*2} F300 ; move slowly to Z axis endstop once more (second pass) G92 Y{move.axes[1].min} Z{move.axes[2].min} ; Set Home Position G90 ; absolute positioning ; Axes Limits configuration executed by config.g M208 X0 Y0 Z0 S1 ; Set axis minima M208 X700 Y1252 Z30 ; Set axis maxima ; Axes configuration executed by config.g M584 X0 Y1:3 Z2 ; Apply drive mapping to axes ; M584 X1:3 Y0 Z2 Flip X and Y Axis ; M584 P3 M906 X2400 Y2400 Z2400 I30 ; Set motor currents (mA) M92 X400 Y400 Z400 ; Set steps per mm ; M350 X16 Y16 Z16 U16 I1 ; Configure microstepping M203 X2000 Y2500 Z2500 ; Set maximum speeds (mm/min) M201 X150 Y150 Z150 ; Set accelerations (mm/s^2) M566 X500 Y500 Z500 ; Set maximum instantaneous speed changes (mm/min) ; M669 K0 X1:0:0:0 Y0:1:0:1 Z0:0:1:0 ; Drive configuration executed by config.g M569 P0 S0 ; Drive 0 # X-axis M569 P1 S1 ; Drive 1 # y1 M569 P2 S0 ; Drive 2 # Z-axis M569 P3 S0 ; Drive 3 # y2 ; config-override.g file generated in response to M500 at 2021-12-12 14:37 ; This is a system-generated file - do not edit ; Heater model parameters ; Workplace coordinates G10 L2 P1 X0.00 Y1270.00 Z94.00 G10 L2 P2 X0.00 Y0.00 Z0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 G10 L2 P9 X0.00 Y0.00 Z0.00
Any suggestions on why I'm seeing this error and how to fix it?
-
Post your full config.g.
How are the endstops defined?
Normally you'd have a right hand coordinate system. So when looking at the machine from the front, +x moves to the right, -x to the left +Y to the back, -Y to the front. and 0,0 would be in the front left corner.
The homing position is really independent of this, though for simplicity, if you can position the endstops at 0,0 that makes it a bit easier.
The endstop position is defined with M574 and it's either at the high or low end of axis travel.
Then in your homing file the movement is either negative for a low end axis, or positive for a high end axis. (if movement direction isn't correct here, the motor direction of rotation needs to be switched)
If all of that is in order, have you tried a simplified homing file that uses just a distance number rather than an expression?
-
@DC said in Homing X and Y - Target position outside machine limits:
G1 Y-3 Z-3 F2400 ; go back a few mm
in your homing scripts, you home to X,Y Z minimum, then instruct the machine to go beyond minimum to "back off" before doing the second pass. I expect you actually want it to go Y3 Z3 (i.e. positive movement) before homing back for the second pass.
In addition I am not sure you want to home to Z min, and then Home X or Y because that moves the spindle down, presumably you would want to move it up, out of the way, before homing X and Y?