Precision Limit Switch Accuracy Experiment

I just ran an experiment to measure the accuracy of my “Mr Beaver” limit switches and I thought I’d share the impressive results.

First here is my test jig. I using a HF digital dial gauge set in MM mode. It’s clamped to the right side Y extrusion (closest to the Y limit switch. It’s measuring the X extrusion after repeated homing cycles.

I want to first verify the accuracy/repeatability of the dial gauge so with the Shapeoko powered off I pushed and clamped the Y axis to the rear so it could not more. I positioned the dial gauge so it was compressed a couple of MM and tightened my clamp holding. I then zeroed the dial gauge and them took a 5mm Allen wrench and inserted it between the dial gauge and the extrusion and then removed the dial gauge. I repeated this 10 times and the result was 0.00mm every time. So I’m very confident when the dial gauge returned to the same 0 position there was no error in it all 10 times and instrumentation repeatability was good. So I’m good to go with the real test.

Test Setup
Unclamped the Y axis and turned on the machine. I then ran a homing cycle after which I reset the zero on the dial gauge. That completes the setup and this was only run this one time. This gives me a reference point at the conclusion of a homing cycle.

Test #1
So this test I just kept hitting HOME and then recording the reading on the dial gauge. I was looking for the variance and standard deviation of the position after multiple homing cycles. Let’s just say this was a boring test as the dial gauge measured 0.00mm all ten times I repeated it. So variance as 0 and standard deviation was 0. I’m a little surprised to say the least

Test #2
I’d wondered it powering off the Shapeoko between homing cycles could possible change it so I powered it off between each measurement then ran the homing cycle. There was no change in the result and the next 10 measurement were all 0.00mm.

So all 20 measurements returned to the same zero reference point I did in the setup. Every time!

Wow; I expected some number and never 0. All I can say is BUY SOME.


That’s a great write up on your test. Thanks! Does anyone happen to know how much error should be expected with the newer proximity switches?

I think these will likely be the same thing but a different color.

Were all the homing cycles performed from the same distance away?
Can you now remove the prox switches, reinstall the stock switches, and run the tests again? :wink:

The home position was the standard 5mm off of machine zero so that was the position before homing. I didn’t move it further since it already move the 5mm to the switch. I though this would eliminate belts and such and be a better test of the switch itself.

No, I’m not putting the stock switches back in! :stuck_out_tongue_closed_eyes:


I need these so badly!

How does they compare to the Carbide3D limit switch positional accuracy?

Don’t know. I bought these from Luke just before he joined Carbide3D. They are proximity switches

1 Like

Yeah I know what they are, but a 1/2 test tells me nothing…

I don’t know if they are the same as those in the Nomad, but I just retested my Nomad (stock switches) and got

Tested using an interapid 2 micron indicator (0.002mm), 1 micron repeatability, max 2micron hysteresis, in certification.

X axis: all zeroes within 10 microns. Std deviation (20 trials) 2 microns
Y axis: all zeroes within 10 micron. Std deviation (20 trials) 3 microns
Z axis: all zeroes no deviation (20 trials)

For the x and y axes, the positions varied by about 5 microns, which is the step size, so, for practical purposes, the zero repeats within +/- one step of nominal.


I believe the Nomad has the same push button switches which the stock Shapeoko does.


the accuracy of the resolution of the gauge would be good to note. 0 is some small tolerance limited by the measuring device, benefit of the doubt it is accurate to its listed spec

1 Like

So it seems that the stock switches are within 10 microns of the proximity switches?

The stock switches on my fairly well used Nomad pro repeat +/- one step. Really can’t do much better than that with steppers open loop. Proximity type can be and will be no better. The mechanical resolution of the machine is the issue at this point.

If the mechanical resolution was, say 0.5 micron rather than 5 micron (2000 steps/mm rather than 200), there might be a detectable difference. If I recall correctly, on the Shapeoko, the best you can do is 25 microns, as this is the mechanical resolution— one step leads to a motion of 0.025mm (40 steps/mm)-- so a 0.01mm indicator, even a HF one, is sufficient. Getting zero every time indicates that the machine is rigid, the belts are properly tensioned, that the sensor trip point is not positioned right at the position of a step, and that the sensor is repeatable to significantly better than 25 microns, which I would expect. The lower mechanical resolution of the Shapeoko actually makes it EASIER to get the perfect repeatability than with the Nomad, as it is much more likely that the trip point of the sensor is not really close to a machine position, but is between two positions…

There are advantages to the prox type, but, at 25 micron, or 5 micron, accuracy of trip point isn’t really one. The primary advantages are, in my opinion, reduction of moving part count and resistance to the environment. Mechanical switches get dirty and may have issues like sticking. Wear isn’t a big deal in this application. If the switches are rated at 100K cycles (very conservative- 1 to 10M cycles is a common rating), and if the machine times 50 times/day, every day (which is a lot), five years would be expected life, IF they are maintained with the rest of the machine. Periodic cleaning is the primary thing so they don’t get gummed up. I am in no rush to swap my switches out, but, should one fail, it may be replaced with a non-contact option. Or may not. I’ll cross that bridge if I get to it.


was referring to the OP with prox switch - i saw @enl_public mention. wanted to ensure the idea wasn’t going over others heads the need to list

1 Like

Thank you for explaining this, had no concept of the actual limitations.

Attached is a sketch for those that want a little more detail.

Positions that each machine can achieve are marked, as well as a sample zero-switch that is less precise than the one on my Nomad to show WHY Shapeoko can be more repeatable in zeroing, though less precise than, the Nomad.

Yes, I know my lettering is terrible.


So if you stop an operation, and it automatically re homes, if it is off it will be likely one minimum step off which is 25 nm? This would most likely not be due to stepper motor or switch but belt stretch or frame rigidity variations? I imagine this would be more prevalent in a XXL then a Standard S3.
Is there no way to prevent a re home after stopping an operation? I have literally taken out my tool and let the machine finish an operation instead of throwing off my homing location when I clicked on the wrong file or had a problem that needed correction.

With atomic steppers maybe :slight_smile:

Using an alternate G-code sender…


It should be no more than one step, presuming the zero position sensor has lower variation in trip point than the step size. How LIKELY it is to be off depends on how low the variation is, which is a function of a lot of things, the most obvious being the sensor, but also the control loop, mechanical properties (rigidity, vibration, inertia of the moving parts, etc), and possibly other things. And, most of all, whether the sensor trip point is between step locations or at a step location.

(25 micrometers, as @Julien said… 0.025mm)