Homing/Limit Switches


I’m pretty sure I damaged my machine by running the Y axis all the way forward. The first thing to hit was the anti backlash screw. It’s now stripped and I need a new delrin block.


You cannot damage it by doing that. The delerin block would not have been effected because the motor stalls. This prevents damage to the other components. Now if you think the blocks are damaged you can order more on the site. They are cheap enough I think they are $12 for the 5 that are on the machine go into the shop. They are in the extra parts area. Its not that hard to swap them out.


I got the replacement and swapped it out. The threads on the old one are stripped - they just crumbled away when I removed it. I looked at the cad model and I’m sure that if you use a 20mm bolt instead of the set screw, then you run the risk of that screw head slamming into the end stop, or getting deflected into the hole where the bearing resides. I think the force from that stripped the delrin nut. The screw had been deflected downward to where it was scraping on the lead screw. Yes I know the motors will stall but not before applying some force.

Bottom line, I’m using the set screws, so it can’t happen again.



Good to know. I have run my into the end and not had that happen so found it weird that it caused any damage is all.


I think the original design suggested the shorter screws but in the assembly, they did suggest the longer ones for ease of use. I see your point tho. I have hit this limit too and I think the shorter ones would be better.

1 Like

I added homing switches to my long mill. I used panel mount, momentary contact, normally open, push button switches that I found on Amazon:

I 3D printed brackets and those files can be found here:

i used 2 conductor shielded security wire from Home Depot, JST-XH connectors and soldered a .1uF capacitor across the inputs to the longboard.


Another good mod, Philip. I understand that the Mill cannot be damaged by running it to its extents, but the sound when that happens still gets to me. Also, it throws off the xyz 0 in UGS every time that I forget and run the Mill to its end in X.

Where do the wires from the stop enter the Mill controller? You are clearly more competent with electronics than I am, so I for one would be grateful for more details.


Thanks Grant. My inspiration came from the instructions by Troy Barbour on the Mill One Open-Source page. Homing switches mainly give you the ability to return to known locations relative to the home position. This is extremely useful…

There are 2 connection options on the longboard. Both are clearly marked xlim, ylim, zlim, and gnd. There is an included connector at one end that has a screw terminal for each axis and one common ground for all axes. The problem with this connector is that it is difficult to add the .1uF capacitors that are needed for each axis. the second option are the three white jst-xh 2.54 mm connectors that are also clearly marked, one for each axis. This gives you much more room to attach the wiring and capacitors, but the female connectors that you need are not included. You can get them on Amazon either already made up with lead wires or you can buy a kit that will allow you to make up your own connectors, which is what I did. Once you figure out the crimp tool it is pretty easy to crimp on the pins and build the connector. Just be sure to get the pins into the right position on the connector. signal is on pin 1 and ground is pin 3.

Without the capacitors I was getting false alarms. I found it easier to strip some insulation off of the wires going into the connector to solder the capacitor on rather than trying to crimp it into the pins.


Just what I needed, Philip. Tks much.


Sorry if this is a dumb question. I am unfamiliar how capacitors are use or wired in. If you don’t mind can you give me a bit assistance with which leads (positive and/or negative) would be used to wired in the capacitors?

1 Like

Capacitors can be polarized or unpolarized. I used unpolarized capacitors wired across the input and ground of each switch. I never considered using polarized capacitors but maybe I should have. I was following the Long Mill documentation 5.0 Advanced on adding limit switches.

“It should be noted that it is very important to shield and filter noise along the lines with the limit switches, as interference can cause the limits to trigger erratically. We have found that placing a 0.1uF capacitor across the input and ground for each limit helps to prevent errant triggers.”

Since there is no mention of polarity, I just assumed that polarity doesn’t matter.


Thank you I will look at that document.


I just finished putting it all in action. It works great thanks for the post and advice.


Great job!
I would love to know how repeatable these push buttons are for you, or for any others that have used them?
If you put dial indicators on the axes and check what the deviation is from 0, on multiple home cycles.
These are simple and small. I was debating to use Omron style micro switches with a lever arm, but if these are good :slight_smile:
Oh btw, what do you use that laser for, on the Z axis?


Great. I am glad it worked for you.


I have not tested it for repeatability on multiple home cycles. I wan’t going for dial indicator precision. I want to be able to do rapid movements to specific positions on the work surface. I am still learning gcode for CNC and am experimenting with the macros that I need.

The lasers are pointers to aid in positioning the router bit over a particular spot on the work piece. I took the instructions from the Mill One Community Open Source Page, which is where I also got the instructions for the homing switches.

I used the 2020 extrusions for the dust shoe to mount the lasers. I printed the mounts on my 3D printer. I am working on redesigning the mounts and I will put my files up on thingiverse and post a link when I have them ready.

1 Like

Thanks for the reply sysimgrp. Hmmm…those laser cross hairs are an awesome idea!
I’m going to look at that again once i have the rest of the machine running.
Thanks again



I didn’t want to open a new thread, but hope that some of you have come across more info than i have.
I am looking for some external logic schematic or “wisdom”, which would enable us to home the two Y motors, according to their individual limit switches. As i see, the control board allows one homing switch per axis. Other types of controllers out there use the Slave Axis function and two limit switches, thereby allowing the CPU to independently home the motors.
Some guys did mention wiring up some external logic in order to get this to work.
The option to manually jog the Y axis up to the hard stops and then shut off power to the motors,…turn the screws by hand till they touch, and then power up…does still exist. I just wanted to do this electrically.

JerryBurks on Planet CNC had this idea:

  • each limit switch is logically “AND” connected with the “direction” line to the drive enable input of its own screw. That means if one of the axis is moving into the switch it will stop this motor but the other one keeps going until it also hits its own limit switch.
  • both limit switches are “And” connected to the switch input of the controller board and will trigger it when both switches are active, thus enabling the “home” sequence.
  • once the controller turns the direction around, the enable of the drives is cleared and the screws can move in the other direction away from the switch

Another fellow from Duet3D, Kazolar, posted:
– I feed each driver with output from a single step/dir/enable set, and feed them through CMOS 3.3v logic gates which stop sending the step to the stepper driver which hit it’s end stop, and the result end stop is a logical union of the left and right end stops – so this way I can use 1 duet control signal and end for 2 steppers and 2 end stops –

Ok, I hope there is still someone following me on this…I think there are a few of you who are electronics savvy and can verify this for me… any thoughts?
Or maybe some better results from google searches?

Some may be wondering, why i need this? …I want to have a very repeatable home position, that can be repeated after a power outage, any error and daily start up. Needed when using multiple fixtures and reference offsets, and front/back carvings.

Greatly appreciated

1 Like

Hansi, I may have misunderstand your goal, but it sounds like you want to individually sense and control both y axis motors. I know that on belt-driven machines keeping the two Y axis motors in sync has been an issue, but I haven’t heard of anyone having this problem with the LongMill. Unless you use extremely high travel speeds I would think it would be unlikely that one of the motors will miss a step.
If your machine is aligned so that both Y axis motors would ‘hit’ the end stop at the same time, and you only want to detect them both, you can wire two normally closed switched in series. Either one will stop movement. If you want to make sure they are both at the end of travel you can wire them in parallel so the board has to get signals from both to consider them homed. Make sure you use the capacitors as shown in the GRBL manual. You can also use the series method and put a switch at both ends of the axis and use them as limit switches.


Hi Bill, thanks for the reply. Sorry, little late on my part.
Yes, you understood correctly…I would like to sense both Y motors, independently. I am doing a scratch build, so I don’t have the stock controller like you, but the same from the point of only having one homing input per axis.
I wanted to use this function to “square” the gantry every time I home. I read that on stepper startup, motors index to the nearest full step, but direction is random. So i didn’t want accumulated error. I thought maybe somebody had figured out some external logic, to do this trick.
I guess i could still turn the motors manually with power off…and the half step issue, is kinda small.
Thanks for reminding me about the capacitors…I think they should be 0.1 ceramics and probably help on any kind of controller.