Adding endstops (just for homing)

So, I want to add some end stops to allow me to home the machine easier (they arrive today and I’ve printed some parts that attach them to the conduit making it easy to affix them to exactly where I want the home to be in the lower left.

I know there are spaces on the ramps 1.4 board in the upper right to attach the endstops but I know little about how to actually wire it up, or what changes need to happen with the firmware configurations (From the lcd) or if there are gcode changes I need to make (Dont think so) So advice on this would be great!

First, Be very careful not to connect the ‘+’ part to anything, especially the ‘-’ part. That will let the smoke out! I’m assuming you have dumb switches, and not the powered endstop ones.

Maybe someone can correct me if I’m wrong, but I’m pretty sure you connect the normally open side and the common to S and ‘-’. I’m only not sure if it’s the NO or NC side of the endstop.

You can see the endstop status without homing by sending “M119”. After you wire things up, but before you home, you can check with that and verify that they show the correct state pressed and released.

1 Like


these are the ones I’ve ordered, not sure if they are the ‘dumb switches’

Aha. Those aren’t the dumbest. They have an LED that tells you when they’ve been hit, so they need power too. You should just be able to plug them in. Hopefully, they wired them correctly, and red is ‘+’. If the signals are reversed (using M119, and it says ‘1’ when you’re not pushing them in) then you’ll need to invert the endstops in the Arduino firmware.

These will work but they are not the dumb switches being discussed. They add two functions not provided by a dumb switch.

  1. addition of a LED to indicate status.
  2. A pullup resistor (I think)
The 3 connector pins are +vcc (5v nominal), gnd and signal. These connect to 3 pins labelled this way on the ramps board.

The controller sees the nominal 5V normally and gnd when the end stop is activated.

Alright, I got the X axis one working (it was the left most plug in the row of sensor slots) but it seems the next one isnt the Y axis which is what I would have figured. how do I figure what sensor goes with what axis?

Every other, the link below shows a properly labeled board.


1 Like

google “ramps 1.4 wiring diagram”


Oh thanks…apparently I’m blind lol.

Alright, it now auto homes on the x and y, and working great. now how do I tell it to not even try homing the Z? as I just want this as a quick way to reset the position.

Just hit the x and y home buttons in repetier.

I’m not using the USB connection as there is no computer where it lives, I use a graphics display and SD card, so that wont work.

You can home each axis individually, if it is not shown on your screen you need to edit one line in the firmware.

Homing an axis with one end stop at a time is not very valuable. Individual stepper homing is coming but it is not ready yet. Homing like you want to do on a cnc machine for 1 sided milling is very pointless, have a look at the FAQ’s. Spend on this effort on CAM and getting your tool paths optimized, wait on Homing, this is nothing like a 3D printer in that sense.

Its more just for my laziness of not having to move it back when I’m still doing a lot of experimenting and learning. I suppose its easier to just kill it when its arrived along the x/y.

Just be careful when milling it can be a bad habit and is used only for certain tasks, and most of those do not work when homing with only 1 switch per axis.

Much better to move it into position and reset the board or use the previously mentioned starting gcode.

Would it be better to wire up the other side of the switches? I assume the point of this is to ensure the axis are squared correctly.

It would be best not to use them yet. The dual firmware is coming and it is setup properly, as of right now doing things “manually” is the best way. The way we all do it. End stops are fine for carving repeat jobs but really as it currently is I don’t see any other use.

I do not currently support end stops, as it is right not all it does is move your axis somewhere near zero in some sort of angle with no way to verify but to do it manually, so it is best to save a step and just do it manually.

fair enough. seems like what I’m using it for is fine then, just to reset back without me fiddling with it, so I can then put it where I will actually be starting from.