Endstop General Setup

Hello all, I’ve re-purposed my MPCNC for 3d printing, and it has been doing great, however I would love to do some software-sided bed leveling (I do not mind if it is one flat plain because I am using a glass bottom), and apparently endstops are needed for this. So before purchasing I wanted to know:

In addition to the rolling limit switches in the shop, what else do I need?

If anyone with a mini-Rambo could show how they plugged in the endstops it would be super helpful, I realize that a few basic steps are on “Auto Square, Dual Endstops Post”, but I just couldn’t follow without any pictures.

Thanks in advance for the help,



You can’t auto square and 3D print, it uses the same ports. You can still auto level just like any other printer, If you find a tutorial you like all the same applies.

Ryan, I don’t think he’s talking about dual endstops, just endstops and a Z probe, used for auto leveling.

The inductive sensors won’t be able to feel far enough through the glass. What z probe are you using?

There is a good video (although it’s a bit old) on the different configuration options in Marlin. It’s by Thomas Sanlanderer.

Thanks Jeffeb3, sorry for the super-delayed response. I actually didn’t purchase any endstops or z-probes yet, because I know that it might get complicated with the glass bed.

I watched this video:


as well as this one:


But I’m still quite confused on which one to choose, I’ve been looking at quite a few capacitive sensors, but all of the reviews deem them too unreliable for 3d printing.

After doing some more research, and watching a few more YouTube videos, I stumbled upon these few articles that said that it was possible to manually level without a sensor and for the data to be saved (I don’t think I should really need to do it every time since the mpcnc is firmly bolted onto a quarter inch thick glass, especially if I will have to be using paper to level it every time, but I am willing to do it every now and then), but end stops are still needed to home it:





Do you think that this might work? (I’m still new at this and really don’t understand all of these gcode commands)

Sorry, I know this is a long post, but would really love to get this working, right now I am restricted to printing in a really small area because my machine is just that uneven.

Just wanted to thank y’all again for your help, and Ryan, even though the prints I’ve been doing are quite small and somewhat slow the quality is AMAZING, great design!


Can you put up some pictures of the setup as you use it?

I am not one for auto level and I have a feeling we can get you up and running without it. Your machine is (should be) running level and true. The bed should be mounted on 3 points and planar to the machine as much as possible, with or without leveling.

If you are describing your glass print surface has a hump in it you are best to get another piece of glass for a few dollars. Use a thick first layer (.32mm for a 4mm nozzle) and lay the first layer down at 35% speed from the rest of your print. If you still need auto level after that you can use the capacitive probes in which I have no experience with, bl touch sort of deal, swing out endstop, or yes manually with a feeler guage of some sort, there are even optical probes.

You should be able to print on your full bed without autolevel, auto level just makes it more reliable.

The pictures are attached below, the bed just recently got cracked in one corner, but it is still pretty stable. In the pictures you can see that it isn’t just a glass bed, but a glass base in general, and no matter how hard I try the legs just refuse to be sanded down to the same size, that’s why I’m leaning towards the software sided bed leveling.

You have to get the machine planer, you can also adjust the legs up as well. Auto level will not compensate for an non-planer build, I actually think it will make it worse but compensating in the wrong direction think the bed is un-level when it is actually the machine.


Have you tried drawing the crown?

Not yet, I’ve tried your logo but it worked fine because of the springiness of the mount, how would you recommend leveling the machine?

Just thinking out loud here on the software bed leveling, but since all of the motors are on the top part, wouldn’t it more or less create it’s own plane, and the base/bed is unlevel to it and the leveling should function normally.

if so I think it would be possible to approach it from the software side, and all I should need to level manually are the endstops, or do I need to buy specific cables for the endstops?

I have it in the instructions and it is important that all 4 corners be as close to the same height as you can get them. After that for 3D printing I always use a 3 point mounting system like most other printers.


3 points are always planar 4 are not. So the top needs to be carefully set, but it is actually never been an issue before in the forums that I know of.

Now I understand your point on all 4 points not always being on one plane, it does make sense, but I couldn’t find any specific tips on how to level the legs so they are all so even and within .3 mm or so, I was going off of this page:


Not sure if I missed it, or were you referring to sanding the conduit with the dewalt attachment? My cuts on the conduit were not perfectly perpendicular, but they were correct if measuring to the highest point…


I’m not sure what this is about, the conduit edges don’t matter, you can adjust it in the foot and the lock piece. If one is longer than the rest just lift up the other three.

Read it, but don’t quite get this part:

  • Either measure or use a block (or socket and extension) to set all the legs to the same height.
  • Also what tool are you using in this image? (It seems that it would be more accurate than just pulling up on the corner pieces)
  • IMG_20151025_131825

That is a socket with an extension on it. Sometimes I use a block of wood. I put the spacer in place and push all the corner down onto it. Or just use a tape measure, sometimes calipers. This part should be really easy. I am not sure we are talking about the same thing. All you have to do is pick the same point on all 4 corners measure it somehow and make it as equal as you can.

Are you talking about something else?

As for your bed, chances are really good your surface is not as flat as you think, whatever is under your glass can bend the glass. That is why we mount the bed on 3 spring and level it to the head.

There are lots of youtube videos for leveling the bed for first use. Once you understand it, it takes about 2 minutes.

Thanks Ryan for all the help, I will try out the block idea tomorrow and see if I can get some better results

Just as an example, I used the block of wood method for my mpcnc. Still had to surface the spoil board. Wood just isn’t flat in the dimensions 3d printers are using.

Sorry, I didn’t subscribe to this topic, for some reason.

You’ve got the whole machine on one plate of glass, and there’s no other plate in the middle with adjustment screws. That isn’t going to be easy to get right.

For one thing, when you’re printing in the middle and one end is too “low”, you’ve got to adjust that end to be short, but a) there are 4 adjustment points (the legs) and b) the location of the adjustment points are far away from where the problem is.

For another thing, as Ryan mentioned glass isn’t perfect, especially not at 1/4". Maybe if it was 1/2" it would be closer, but at these sizes, it’s almost definitely going to be rolling hills (from the extruder perspective.

The other small issue you’ll have is that level doesn’t really matter, and parallel planes isn’t really it either. The thing that has to be right is the distance from the plate to the XY “plane”. If this is different at different points, then you’ll get poor results. If the gantry sags in the middle, or there is a low spot b/c of one of the corners, then that will have to be fixed with manual levelling.

The “Auto level” really can mean a lot of things. The first systems just measured three points, and considered that a plane, and printed on that angled plane. Now, there are functions for meshes, so you can measure a point every 1" in a grid, and that mesh will be stored and used to always move the Z down to the plate at the distance that was measured. In between the points, the distance will be estimated. There is a limit to this, and the quality will improve if you get the bed as level as possible. I’m going to use my gut and say that if you’re within 0.5mm/100mm then the mesh leveling can compensate fine. The resulting prints will have the curvature of the build plate, but if it looks flat then it is. More important is that the bottom layer is a consistent thickness, which the mesh leveling will give you.

It makes sense that you need endstops for mesh leveling, because it’s measuring a Z for a specific X and Y. So if you don’t know the Z and Y in absolute terms for the machine, then it will pick the wrong Z.

For actually doing the probing, I use and inductive sensor on an aluminum build plate, but that’s not going to work for you. If you want it automated, where you probe every time you print, then a microswitch on a servo, or the BLTouch would be good.

You can use a z probe, which is just a wire attached to the hot end, and a wire attached to a spatula. When the hotend comes down, it will make contact with the spatula, and close the circuit, which looks like an endstop. Then you adjust for the height of the spatula. This method will work, especially if you just want to record the output and reuse it without probing for each print. The problem with this is, it’s not really a set of instructions, and I’m not going to figure out the details, so you’ll have some work on your own to figure it out. I can still answer some questions, but a lot of my answers come from guesses :slight_smile: . When you figure it out, posting an instructable or something would be pretty nice.

There are good instructions for setting up the BLtouch probe though, so that’s definitely an easier route. Either method of mesh leveling will need you to be comfortable with arduino and the configuration. There are some pitfalls, so you’ll have to look at it as fun, or you’ll go crazy. I’m very comfortable with SW (I’m a SW engineer by trade) so I’m not really the best judge on the difficulty level.

If you want to go manual, then put another plate on top of the glass, and use three screws to adjust the plane. It will be nearly impossible to adjust with just the legs (IMO).


Thanks, I subscribed, but somehow it didn’t notify me of your message.

Just an update: I leveled the machine with the block method and it is looking better, the prints are more even.

but just to make sure, as long as all of the legs are the same height within about half a mm or so, everything should be golden, right?

(I’m totally new to the Arduino coding, so I’ll mess with that as a last resort)

Maybe I could try making some type of spacer that could be printed for the legs to keep it at a constant height…

Yeah you should be fine, like I said this have never actually been an issue before so I am sure the tolerances are extremely loose.