Homing not stopping - limit switch problem

When I home, the unit continues to engage the motors even after tripping the Y limit switch. This is new behavior, the machine has been working for 6 months with the limit switches working exactly as expected. I first saw this yesterday when I attempted to home with Universal GCode Sender. I had assumed it was a config problem with UGS and it was late, so I packed it in until today. Today, I reinstalled Carbide Motion 3 to make sure I was on the latest, and I’m seeing it there too.

I’ve read the articles about this, but I’m still having the problem. I’ve checked connections, checked for interference and I think I’ve configured it correctly ($20=1, $21=1, $22=1 and homing = true on the settings page.

When I manually trip the limit switch, it registers in the Carbide Motion log:

gc_wait_for_idle
___________N0 G4P0.005 ___________
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000,Buf:0,RX:0,Ln:0,F:0.>
ok
gc_sync
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000,Buf:0,RX:0,Ln:0,F:0.>
ALARM: Hard/soft limit
SET MACHINE STATE: MACHINE_ALARM
GRBL_RESET
SET MACHINE STATE: INIT
[Reset to continue]
Grbl 0.9g
[’$H’|’$X’ to unlock]
___________$X ___________
[Caution: Unlocked]
ok
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000,Buf:0,RX:0,Ln:0,F:0.>
gc_unlock
___________$X ___________
ok

I’m on grbl v.09, running carbide motion v3.0.366.

I’d love to know where to go from from here.

Are parameters $130, $131 correct for your machine?

It’s a regular size Shapeoko 3, so…I don’t know. What do those parameters do?

Looked it up. Set to 425 and 465, which is what the wiki says it should be.

Here’s the $$ output:

Test Waiting…
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000,Buf:0,RX:0,Ln:0,F:0.>
gc_not_motion
___________$$ ___________
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=6 (dir port invert mask:00000110)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=255 (status report mask:11111111)
$11=0.020 (junction deviation, mm)
$12=0.010 (arc tolerance, mm)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$20=1 (soft limits, bool)
$21=1 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=100.000 (homing feed, mm/min)
$25=1000.000 (homing seek, mm/min)
$26=25 (homing debounce, msec)
$27=5.000 (homing pull-off, mm)
$100=40.000 (x, step/mm)
$101=40.000 (y, step/mm)
$102=40.000 (z, step/mm)
$110=5000.000 (x max rate, mm/min)
$111=5000.000 (y max rate, mm/min)
$112=5000.000 (z max rate, mm/min)
$120=400.000 (x accel, mm/sec^2)
$121=400.000 (y accel, mm/sec^2)
$122=400.000 (z accel, mm/sec^2)
$130=425.000 (x max travel, mm)
$131=465.000 (y max travel, mm)
$132=80.000 (z max travel, mm)
ok
gc_dwell
___________N0 G4P0.05 ___________
gc_get_offsets
___________$# ___________
[G54:0.000,0.000,0.000]
[G55:0.000,0.000,0.000]
[G56:0.000,0.000,0.000]
[G57:0.000,0.000,0.000]
[G58:0.000,0.000,0.000]
[G59:0.000,0.000,0.000]
[G28:0.000,0.000,0.000]
[G30:0.000,0.000,0.000]
[G92:0.000,0.000,0.000]
[TLO:0.000]
[PRB:0.000,0.000,0.000:0]
ok
gc_parser_state
___________$G ___________
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000,Buf:0,RX:0,Ln:0,F:0.>
[G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F0. S0.]
ok
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000,Buf:0,RX:0,Ln:0,F:0.>