Adding Limit Switches

Documentation in Progress: This part of the resources is still a work in progress, please be patient while we work to fill the gaps -Chris

Limit switches (also referred to as end stops or homing switches) are sensors that sit at one or both ends of each movement axis of a CNC to provide a few different functions. There are many different limit switch designs which broadly fall under being either mechanical or non-mechanical.

Do I need Limit Switches?

The LongMill does NOT need limit switches to operate and doesn’t include them by default. Many individuals are drawn to having switches by convention, but most times a limit switch exists to either:

  1. Define soft or hard limits* in order to prevent a CNC from damaging itself if it travels past its movement limits
  2. Repeatably locate the machine (homing) for jogging / work offsets, saving a job that’s gone bad, or to resume existing work done for a multi-part job

The LongMill design addresses these functions by way of:

  1. Being designed so that hitting the ends of its travel area causes zero damage to the machine
    • In larger, more powerful machines such as VMCs and industrial CNC routers, crashing a machine can very well mean costly damage to your machine so limit switches are cheap insurance to prevent that. However, on hobby machines like the LongMill, the machine is not powerful enough to cause damage to itself, and so are not really necessary. In fact, in some cases, it can be more of a hassle as accidental triggers can ruin a project.
  2. Locating the machine can easily be done via the use of a touch plate
    • ‘Homing’ is just the act of calibrating a CNC to a particular spot repeatably so that if, for example, you lose your CNC position due to a power outage or for a tool-change then you can find that position again using the offset distance from the calibrated point. This calibrated point can be set using limit switches but can just as easily be a touch plate or conductive geometry that a tool can touch off

With this being said, some users may still choose to integrate switches into their machine if they start to find themselves running longer and longer jobs, performing more complex cuts, or they’re looking for easier job relocation without having to keep their touch plate in mind.

*A soft limit is when there is a single switch on one side of the movement and the movement limit is defined in software, whereas a hard limit has two switches on either movement end which signal a ‘Stop’ to the controller if triggered.

Wiring Switches in

Already the LongMill controller comes with two different input spaces (an XH connector for each axis and a screw terminal connector) that allows easy connection of any kind of switch. If you are intent on installing switches yourself, here are some points we’d like to ensure you’re aware of:

  • For limit switches on a CNC what matters most is that the sensing happens precisely and that the accuracy deviates very little with changes in the surrounding environment, otherwise the switch might activate 2mm away when you’ve got your shed heater on but 3mm away if you open the door. Each manufacturer should provide theses sorts of details in their sensor documentation.
  • It’s 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.
  • If you are wiring limits to both ends of the axis, you can put them parallel to each other.
  • All of the switches share the same ground.

We currently do not have any official documentation on where and how to add limit switches to the actual machine itself. However, wiring the switches is fairly straightforward and has been done by a handful of community members as well.

If your LongMill is set up with limit switches, you can enable the homing process by sending the command “$22=1“, enable soft limits with “$20=1“, and enable hard limits by sending the command  “$21=1“. For more info, visit the GRBL v1.1 Configuration Guide.