Hardware Fault Controller for Limit Switches

After looking through all the topics about the homing switches not really functioning as limit switches and implementation of software range limits with grbl vs enabling “hard” limits in grbl (I put quotes here because they are still controlled by software), I decided to try to come up with a real hard limit solution that actually cuts power to the 24V power supply in the event of a fault.

There was a great discussion of limits and how to implement soft limits with other x-carve threads
"Breaking homing switches uh and lots of other stuff and Limit switches finally, but we will be having 2 to 3 people run this machine in a small company setting and can’t afford to accidentally destroy part of the machine with the consequent down time. There seem to be many cases online of people inadvertently breaking switches and damaging components just by pressing the wrong button on the screen.

My idea for an actual fault detection system is:

  1. Adjust homing roller switches to be more out of the way so they can’t get crushed and put low pass filters on them as suggested here
  2. Place magnetic reed switches at the end of each axis (so the machine can’t crash into the limit switch)
  3. Rubber end stoppers at the end of each axis (so that the gantry can’t damage anything even if it has enough momentum to keep sliding a bit when the reed switch is tripped)
  4. Hardware Fault Controller that cuts power to the 24V supply to stop motors (note that cutting power to the 24V supply will cut power to the motors, but not to the arduino or gshield)

Below is the circuit for a hardware fault controller that I drew up:

I’m just looking for feedback and any thoughts on the design. Let me know what you think and if you see anything that should be changed!


You don’t really need to go to that much trouble. Just run the 24 volts through the limit switches (you’ll need to get better switches with a 10 amp rating). You are running a Normally Closed setup so if any wire breaks or any switch is tripped then you shutdown the 24 volts to the motors and the blue LED on the gShield.

The Arduino is still running and supplying logic power to the G shield.

You can double up the switches on the minimum side to get your homing function.

Set your rubber bumpers to protect your switches and you’re done.

Hey Larry, don’t understand how machine crashes to sides. I have never have this problem. Is this something happening only Easel users or general. First setup my X axis gone too far to right side, flashed Grbl once, and ran machine setup. That was it. I’m using this machine since mid June. I like to know is this user mistake or software error.

It’s not clear to me what you are asking. Please try again.

Hi Larry that’s a good point! I was trying to cut the mains voltage to the supply but it would be much easier to just cut the 24V output to the motors and spindle. I just took a look on mouser and am having trouble finding reed switches that can handle 24V and 10A, so I’m thinking I’ll rework the circuit to have lower voltage limit switches that run on a wall wart that controls a bigger relay to the 24V output.

By doubling up the switches for homing do you mean using 3 of those reed limits also as homing? How would that work if the limit switches cut power to the motors? Oh wait the power to the arduino and gshield still works… so I’d just also connect three of them in parallel to normal homing inputs on the board. I think that’s what you mean?

Yes. You would have one set of switches to interrupt the 24 volts and another independent set for using the normal Arduino inputs for homing. You would want to mount them in such a way that both switches would trip at the same time.

You would only need the homing switches at the homed end of each axis.

The 24 volt relay is a good way to go if you can’t find switches that can carry the load. If you go that way it could save you some time later by getting a relay that fits a standard socket so the relay will be easy to replace.

Never mind. I was asking, why X or Y axis crashes to side rails. What is the purpose for Limit Switch other than Homing switches. Software error or user mistake. You’re giving advises to everyone for this problem.

Yeah, I know how hard it is to start into something I’ve never done before. Since a lot of the people that are buying the X-carve know nothing about CNC (me), very little about software, and almost nothing about electronics, I hate to see them struggle and get disappointed when the problem has nothing to do with anyone’s capabilities, but has more to do with starting something new.

I can’t just sit by and watch them suffer when this whole thing is mostly about having fun.

Besides, helping others gives me the opportunity to learn.


You’re good man.

1 Like