An argument for end stops

Yesterday I made my first cuts with my MPCNC. They were 10 t-slot recesses for my work surface. The job failed twice - once because I tripped the circuit breaker on the power strip by plugging in a shop vac, and once because the z axis lost some steps and wasn’t lowering the tool low enough to cut. Each time I went back to ESTLCAM, deleted the cuts that had already completed, and restarted the job. The problem is that I couldn’t get the exact same 0,0 point each time. Using endstops would have allowed me to have a fixed 0,0 point to start from.

I had initially planned for my 0,0 to be in the upper left hand corner, but since my machine is mostly enclosed, it would be hard to mount microswitches where I need them, so I think I’ll be making the lower right my 0,0.

Of course, adjustable endstops would be a more versatile solution!

What do you think? Does my idea make sense? Endstops might not be for everyone, but I bet it’ll save me then I have failed prints in the future.


Yes, use the easily moved endstops I put on thingiverse so you can move your home position, trust me you will need this. Don’t mount your stops on the corner blocks you will regret it. Also make sure you use maximum endstops as well.

If your z is skipping steps slow the plunge rate in estlcam and/or the z acceleration in the firmware.

Thanks for the tips - I was going to mount on the end blocks, but now I will mount with the movable ones.

I think my z axis problems might be because I do not have the thrust bearing installed in the z axis. I will take care of that before my next project.


I had issues with my Z surging/jumping when I first tested the CNC. I used some white lithium grease on the all thread and on the bearing surfaces and ran it manually a BUNCH. The problem when away after more use. I think it was due to inconsistent plating on the conduit.

I’ve got two mechanical endstop microswitches to use for the my 0,0. They are mounted on the movable clamps and I wired them normally open. I plugged them into the 1st and 3rd pins (X and Y min) as seen in the attached picture. I’m unclear on how to activate the endstops in marlin. I’m sure I need to modify configuration.h somehow, but I’ve also read about people modifying pins.h and other stuff.

I have been googling a lot trying to figure this out, but there are many different configurations, each with their own answer. I’m hoping maybe someone might know exactly what I need to do.

Thanks for any help,


Should not have to do anything. Did you try them?

No, I hadn’t. You’re right - it worked! Woohoo! I did have to switch one axis around. Even the auto-home worked, except it started to drop the z. Is there a way to make the auto-home not do that?

Anyway, very happy that I’ll now be able to have a reproducible 0,0 for jobs.

You might be able to get rid of it in the firmware, you could add a z endstop or a touch plate as well. You could even do both if you plan on using this as a 3d printer.

Ryan, you mentioned reducing plunge rate in ESTLCAM or acceleration in the firmware - are these two things the the same thing, or just two different things that might cause you to lose steps? I have a sign that I have tried twice to cut, and both times, the z axis loses registration and cuts progressively deeper until it’s dragging the bit across the work surface during travel moves. I know how to change both of those things, just wondering where I should start.



Which ever one you are most comfortable changing. Estlcam setting I would assume would be the easier of the 2 for most people. Start with something slow like 1 mm/s and move up from there. You never said how fast you are trying to move it. I can’t give you a number because everyone’s max setting will vary depending on how easily there axis moves. Or take whatever acceleration settings you have in the firmware for the z axis and cut it in half that should help as well. Or do both for good measure. Only increase them if you are bothered with the speed at which you are moving.

Nice work! You are doing EXACTLY what I was wanting to do, home X and Y.
I will play with the firmware this weekend to see if I can figure out how to disable the Z home function.

Hi Curt,

Yes, it’s very cool to be able to have a reusable zero. I have decided not to try and disable the z home. Now that I have a vacuum shoe, I can’t see the bit anymore, and I now realize that it will be easy to create a touchplate - hooks up exactly the same as the endstops. Being able to get a reproducible zero on the z axis is as important as the x and y.

I haven’t made the touchplate yet - hopefully tomorrow. I’ll let you know how it goes.


I made the touchplate out of a small spatula I had laying around. It works pretty good - auto-home, make sure the spatula is flat on the surface, let the tool drop and set zero when it touches the plate. I then do a manual move to drop the Z by 1.2mm, and then set home offsets to reset zero.

Ryan recommended using the easily-moved endstop holder. That was a good idea, but after dozens of cuts, with resets almost every time, I’ve come up with something quicker and easier. I mounted the endstops on some cheap plastic clamps. Mine came from harbor freight. They are super easy to move, but hold their position once placed. I highly recommend them.


I forgot all about your z home setup and the movable end stops. I am looking forward to it warming up so I can spend more time in the garage and start implementing some of these ideas.

I’ve got a pro argument for ya. so I was about 3/4 of the way through a 16 hour print. when I was taking pictures I accidentally hit the X endstop with my elbow. Which threw the machine off by a couple hundred mm immediately… which should be an argument against them. but I was able to quickly pause the print, hit home X in repetier and hit continue, and it was like it never happened.

@Curt When you get around to implementing a z touchplate, I would recommend going with some sort of metal block, maybe something like 3x4 inches and at least 1/4 inch thick - basically, something large and flat and rigid. My spatula is too flexible to give reliable touch-offs. With a sturdier plate, you can program in its thickness as an offset, and it should be much more consistent. I plan to do this as soon as I can find a suitable block.

@Walter I haven’t set up my MPCNC as a printer yet, but I fully intend to use endstops for the zero points when I do. I’ve had problems when using them for routing, though they’re pretty much all operator error - usually using them to set a zero point, and then forgetting to move them out of the way before I start routing. Plays hell with the tool paths!

I have one of these for a touchplate.i have a Female mono headphone jack hidden in my z conduit. I plug it in there when i need to use it.

Amazon carries these end stops that are attached to a board with wire supplied to plug in. I haven’t seen anyone using these. Probably for a reason?

Those are s bit overkill. all you need is a switch and 2 wires for each axis

Looks like the board would also interfere with the movable clamping solution shown above in this thread, right?