Originally Posted by
109jb
Thought I should add a little information from personal experience. I personally have used a couple methods.
1. On my first machine, it was already configured to use a PC based controller (LinuxCNC) with a breakout board, so it had a breakout board that had optocouplers for the limits. For this machine I just used an old parallel port cable to connect the arduino to the breakout board. So in essence I had optocouplers for the limits similar to what is shown on the wiki page I linked. No problems here.
2. On another machine I just connected the switches to the arduino directly. This worked ok for homing, but I experienced false triggers from noise during operation. So, I took the lazy way out and enabled the switches for homing but turned off hard limits and only used soft limits on that machine.
3. On the current machine I am building I will do the same as #1 because I plan to use this machine with both Grbl and LinuxCNC again.