End Stops Sapeoko3

Hi all and merry Christmas.

I just finished assembly on my SO3, wonderful machine.
While trying my first " Hello World ", I made jogging error and almost damaged my new machine.

I would like to add end stops (not the limit switches that came with the machine) so the machine will " not run to itself " and get damaged. I Googled for help but I’m confused on mechanical or Hall effect switches, where to buy them and how to wire them.

Appreciate your help.

First, some nomenclature correction — unfortunately, in our own documentation we describe what are actually homing switches as limit switches — mea culpa.

Second, one advantage of the belt driven machine is it should be impossible to damage the machine — worst case should be a bang and the belt skipping.

Third, the tail end of the homing switch installation instructions has one configuring “soft limits” (which arguably excuse the above nomenclature) — please see: http://docs.carbide3d.com/article/67-shapeoko-3-limit-switch-installation

The community maintains a wiki page on this: http://www.shapeoko.com/wiki/index.php/Home/Limit_Switches

One thing I’m surprised at is that there hasn’t been a kit (AFAIK) which uses two different types of switches:

  • a set of homing switches at the top right back corner which are selected for accuracy of triggering
  • a set of limit switches for the other ends of the axes which are selected for their reliability and resistance to false positives

Anyway, the wiki pages discusses the various sorts of switches and the positives and negatives. The mechanical switches seem to be accurate enough and the optical switches seem vulnerable to dust, and the hall effect are pricey.

1 Like

Hi William,
Thanks for the reply.

I did read the two links you mention, however, I need to know 2 important things that are not clear.

Let’s say I use 6 mechanical end stops (2 on each axis) wired in parallel or series.

1- Which pins do I use on Carbide control card ?
2 - What modifications do I need in GRBL to define the stops as NO or NC and to stop the machine when these stops are activated ?


1 - the pins are labeled on the board (in thin, tiny, very, very hard to read text). Nicely labeled photo by @ApolloCrowe here:

2 - It’s my understanding that Grbl is set by default to use normally-open, and that most shields have electronics in place to support that: https://github.com/grbl/grbl/wiki/Connecting-Grbl — the argument for normally closed is usually from a safety perspective (a broken wire or interrupted connection will stop the machine) — discussion of it here: http://www.shapeoko.com/forum/viewtopic.php?f=3&t=5156&p=37798#p37767 not sure if this has been addressed in Grbl 1.1 — might want to defer this until that new version comes out, is supported by CM, and the documentation catches up.

Although the board is a little different, the pins shown in the picture refer to the ones already used for homing switches that came with SO3.

I need to know the pins for additional limit switches.


You use the same pin for both. You put your homing switches on the +X, +Y, +Z end and your put limit switches on the -X, -Y, -Z. If you are risking the noisy Normally Open switches, you wire them in series. If you’ve enabled hard limits via $22=1 and you aren’t homing ($H), any time those switches close (or you get noise so they think they are), boom, Grbl stops the machine and goes into alarm lock mode, if you’ve enabled hard limits via $22=1. In homing mode, if the switch gets hit, it just assumes you made it (rather than goes into alert mode).

So the Grbl info kinda uses the terms interchangably. Also, “limit pins” are the same pins for “homing” and for “hard limits”. You’ll notice a few instances of “homing limit switches” on this page: https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9.

The really neat thing about getting some noisy limit switches is that if you’ve got $22=1, then you can just stop your job in the middle for no good reason. :slight_smile:

Another way to go on this is to set your machine to always need homing on startup (only do this if you’ve got nice repeatable homing switches), then you can set up soft limits which just lets Grbl constrain how far away from the homing switches it’ll let you command a move.

Even further, just put bump stops and let the stepper make a nasty grinding noise as it tries to take steps, but can’t, but it’ll be fine and the machine’ll be fine. You’ll still get to break end mills and work pieces by running the cutter into clamps, work pieces, etc. The limit switches won’t help you with that.


From: Shapeoko CNC Router, Rigid, Accurate, Reliable, and Affordable (a link provided above)

Homing switches are used (one per axis) at one corner of a machine to set the origin in a consistent and repeatable fashion. … Limit switches are essentially homing switches doubled up and in addition to setting the origin are used to prevent the motors from hitting the end of each axis

The only difference between homing and limit switches is one of terminology (which is often confused), quantity (limit switches, in the physical sense, come in pairs), and position (homing switches as noted are all at one corner, while limit switches are paired one at the end of each axis of movement). (I’ve added this text to the above to make it clearer, thank you).

1 Like

Thanks Mark.

Please bear with me, I’m a newbe.
I do understand the difference between limit and home switches.
Having had my machine " run to itself ", fortunately with no damage, I thought I could install hard limit switches.
But then, it seems impossible to have a limit switch where a home switch is. The home switch gets hit first and makes the " pull off " and if the other gets hit first, it will stop everything, and you’ll loose homing ability.
So, I think, it’s easy to add only 3 more switches, where the are no home switch.

I read that home switches can be configured in GRBL to work as both. i.e. first they act as homing switch and after the " pull off " they become limit switches. How do you configure GRBL to do this ?

Also, how can I configure GRBL with " soft " limits on each axis so that the Shapeoko 3 would never travel beyond a certain point on each axis ?

Thanks again.

Home and limit switches are the same thing at the homing corner — you home against the switches there, then, when operating the machine, they function as limit switches — that’s the default behavior, and I don’t believe it’s possible to get anything else.

Configuring soft limits is covered at the end of: http://docs.carbide3d.com/article/67-shapeoko-3-limit-switch-installation