Limit Switches not stopping motors

I have checked them with an Ohm meter and found continuity with all 3 switches. I am sure they are plugged in properly on account I did it and then had a coworker re check it. And the labels are correct. If I press them manually while it is homing I get no change.

Sounds like you’ve checked everything you can. Time to contact support to see what they can do.

err. I was thinking that was the case. Already left a couple messages, but was hoping there might be something I missed. Thanks guys.

I had a very similar problem and my Z-axis switch was bad. They replaced it but since I have decided to change to hall effect sensors. I will be posting a build article in a week or so. I broke two of them when installing (one by being stupid and one I hope was a defect but maybe not). So I am waiting for replacements.

And lastly remember the button switches you receive with your machine are misnomers. They are not limit switches they are homing switches only. I never could get them to stop the machine when travelling out of bounds.

Hope this helps some. If you dont get a replay from tech support in 25 hours from you ticket, post again here and on other social media sites. It seems sometimes like their ticket system doesnt work very well. I have gone two weeks without a response on issues. Other times it is immediate. Just hit them from every angle and you will get an excellent response once you get their attention.

ok Weirdness. Following the instructions they are installed in the fashion that “Back and Right” is 0,0,0. If I flip the X,Y axis to make 0,0,0 “Front Left” the switches function. Provided I press them manually. Cause they will not make contact with anything otherwise. How can I reconfigure 0,0,0. to the “Back and Right”?

Go ahead and post your system parameters. Your homing direction may be inverted. Mine shows this and it works correctly:

$23=0 (homing dir invert mask:00000000)

Here are all of my settings for my XXL, which is mostly default with the exception of my max travel distances.

$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=1 (report inches, bool)
$14=1 (auto start, bool)
$20=0 (soft limits, bool)
$21=0 (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=800.100 (x max travel, mm)
$131=838.000 (y max travel, mm)
$132=80.000 (z max travel, mm)

They actually will function as limit switches.

You need to make sure this is set:

$21=1 (hard limits, bool)

1 Like

And there you have it. I learn something new everyday. Damn I hate that. :grinning: Thanks Tim

OK so I’m intrigued by this notion. Is it then conceivable that a parallel collection of switches on the “max” limit ends of the machine could co exist with “home” limits?

The controller would have to recognize it’s relative position in order to determine if it’s homing or at max limits… or are these operations mutually exclusive?

I’ve found that at least some of these switches when new don’t work very well at all until clicked a few times. There might be some sort of contamination on the contacts internally. Click them a few time gently with your finger and then try again. I had that problem on my machine after replacing a switch, and a friend had it happen to a new set of homing switches on an SO3. Do be gentle though, they’re not super heavy duty switches.

1 Like

You can put switches on each end of the axis and wire them in parallel. The “upper right” ones also function as homing switches. When you home the machine it always goes upper right. If you are sitting on a tripped limit switch then the machine will not move until you unlock it ($X) and move off the switch.

One thing to keep in mind is that if your machine is running really fast you can still plow through the limit switches. They will stop the machine, but it will still be moving fast enough that it will “coast” through them.

You do need to be running in excess of 20,000 mm/s though. DAMHIK. :slight_smile:

Also, as a data point, speeds around 30,000 mm/s and higher will cause issues as they exceed the clock of the controller. Diagonal moves at 30,000 mm/s tend to get goofy as the actual motor speed is much higher.

Thanks @twforeman, I won’t ask how you know. I read in another limit switch discussion that any inadvertent actuation of the homing switches during a job will cause the controller to halt, hence this all makes sense (i.e. a parallel switch connection), I’m guessing the “$21 Hard Limits” setting is what enables this feature/behavior. I can monkey with this operation by running a job and tapping on a home switch to see the results.

I have a XL. The homing switches that came in my kit have 3 individual plugs that plug into pins on the system board. The standard SO3 has a single plug (all three switches combined into a single plug). I did my best to get them plugged in correctly but they aren’t working. When I issue the homing command I instantly get a limit found message before any of the axis move at all. I assume I have the switches plugged in incorrectly. Does anybody have a picture of the homing switches plugged into the system board on a XL?

1 Like

Yes, setting $21 enables Hard Limits which causes the limit switches to stop the machine while running a job.

It was pretty entertaining to run my S3 at 30,000 mm/s for rapids. It sure does move fast. But when I started running jobs and diagonal rapid moves started failing then I slowed it down a bit.

The machine will definitely run into the end plates at 30,000 mm/s with or without limit switches.

I think this is the problem lol I had to replace two of mine within a week of getting them setup… apparently I’m really into stress testing my Shapeoko 3 XXL involuntarily.

The first thing to go in a catastrophic failure is generaly the V-wheels if anyone was curious :stuck_out_tongue:

Hello there. Trying to learn Universal Gcode Sender because I want to be able to use a Triquetra probe to zero my Nomad 833 with accuracy. I have it installed and running perfectly except I can’t seem to be able to use the zero found using UGS to Carbide Motion. I’ve tried zeroing in UGS, turning off Nomad, starting Carbide Motion and then turning on Nomad again with the zero still in position. I’ve set the “Shaepoko has homing” setting on Carbide Motion to “true” and then try to run a job. I hit the limit switch. I’ve also tried running the job through UGS after zeroing but also hit the limit switch. I think my setting for UGS are wrong for my Nomad. Anyone has the right settings by any chance?. Here are my settings:

Most of these setting are the default settings after install. The only thing I’ve changed is x,y,z travel. Any help would be appreciated.

How do I check for what settings my XXL has; and what is the procedure to modify settings if necessary?

Grbl defaults are at: http://docs.carbide3d.com/article/38-shapeoko-3-default-grbl-settings

The article on installing and configuring homing switches covers this as well: http://docs.carbide3d.com/article/67-shapeoko-3-limit-switch-installation

I use Universal Gcode Sender (UGS), so I can’t tell you exactly how to do this in Carbide Motion, but you need to go to the command line (I think it is called MDI window in Carbide) and type $$, then press enter. All of your settings will display. I recommend copy and pasting them to a text file using Notepad and save it for future reference. To make a change, go to the command line and enter the $# value you want to change with the new value and press enter.
For example, if you need to turn on homing, you would enter $22=1. You can then send $$ again to make sure the setting took.

1 Like

Thanks! I will try the procedure.