Limit Switch help please!

I completed the build of my “fully loaded” machine today and with the exception of a cracked v-wheel and a bent acme screw (shipping probs) everything seemed to be working ok. The only remaining problem I have that I can’t answer is in regards to the limit switches. When I run the homing calibration it only runs through the Z and X axis’. It finds those switches fine but it never runs through the Y axis.

I have checked the continuity of the switch its self, the wires, the wiring harness, and even the pins I soldered through to the pins that attach to the arduino.

Any thoughts on why the calibration doesn’t run all axis’? (I should also note that I can run a job on the machine and all axis’ run normally.

During the Machine setup in easel make sure you can jog all axis and that they move in the proper directions.
If they move “backwards” easel can correct it via grbl settings.

What threw me off the first time is that the x and y home at the same time. In my case I didn’t even realize that the x axis had homed because I was watching the y axis motion (anticipating problems in case I screwed up the wiring)

I suggest jogging each axis fairly far away from the home switches so there will be plenty of movement. Just to confirm everything is moving correctly before beginning the homing cycle.

You may want to double-check your wire setup. It was tough for me to figure out which wires went into the connector from the photos, but I added a clearer description at about minute 25 in the build video I released this weekend:


Can you check the continuity across the y-axis limit switch and make sure it’s not reading as closed? I’m not positive, but if it was reading as closed, I think the homing sequence would read that axis as at the home position and appear to skip it.

Checked the continuity of the Y axis switch at the switch. The circuit closes when I depress the switch.

I also checked the continuity of the switch at the other end of the wires to make sure the circuit wasn’t shorting out some how on the way to the g shield. All good there.

I am assuming that checking the continuity between the pin I soldered on and the corresponding pin that came on the board will confirm that the signal is getting to the Arduino?

@PJTX @RobertA_Rieke


Try moving your Y axis to the middle of its travel by hand. Then issue the homing “$H” command to grbl. Then issue a status “?” command to grbl. If the Y axis didn’t move and the status command says that the machine position is 0,0,0 then the Arduino thinks the Y axis switch was tripped.

If so, you may have noise from the other components of your system causing false triggers of the Y axis switch.

Do you have shielded wires from your switches to the gShield?

@LarryM I am using the wires Inventables ships with the machine.

I apologize for the ignorance but what software can I use to issue that command?

Not a problem.

The commands I mentioned are commands that the grbl software/firmware executes on the Arduino.

You can use a terminal program like HyperTerminal or Putty to talk to the Arduino, or Universal G code sender, or Easel.

Excellent! I will give that a try asap! Thanks!

Ok, I just got around to trying this out and the only control software I have running is easel. @LarryM I did as you suggested but I’m not sure where that read out should be when I issue the “?” command.

When I run the homing command I get the following…

X: 1.000
Y: 1.000
Z: -1.000

Also I noticed that every time I run the homing sequence it runs the Z axis up, the jumps to the X axis as mentioned HOWEVER… When it starts the X axis movement the Y axis advances toward the front of the machine about 1 mm (about 1/16" of a turn on the Y axis motors and at the end of the homing cycle for the X axis it does the same thing but in the opposite direction.

NOTE: I have been about to cut several pieces with the machine as and the pieces are accurate to the design.

Also, the other day when I started a cut the spindle was raised into the homing switch and almost smashed it because it didn’t stop. Is easel supposed to use the homing switch in that scenario or is that another issue I am having?

The switches you have on your machine are configured for homing the machine only. Once the homing operation is complete the software does not stop an axis from moving if a switch is activated again during normal operation.
Inventables calls the switches limit switches but in fact they are homing switches only.



Do you know how to use one of the serial port terminal programs? Examples include HyperTerminal or Putty.

Or do you know how to issue commands to grbl through the Easel program? I don’t use Easel so I don’t know what it can do or how to do it. Hope you do.

What I would like to see is output from the grbl $$ command. This gives a readout of the parameters that grbl and indirectly Easel uses to control the X-carve.

From your last post I think you are close, but the above information would help explain what you are seeing.

When the homing sequence is working properly the machine will first move the Z-axis up toward the homing switch, once the switch is tripped then the Z-axis will move down by an amount in one of the grbl parameters. The default is one mm. Then the X and Y axis will simultaneously move toward the homing switches. Once each axis trips the switch grbl will move that axis away from the switch by the amount in the parameter. In this case 1 mm.

So, it looks like with your x=1 y=1 z=-1 your homing sequence is working.

David is correct in that once the homing sequence is complete the grbl firmware will ignore the switches (with one exception) until another homing sequence is activated.

There’s more to that story which can address the issue of the Z axis almost destroying the switch (which it will do if your machine runs Z up too far).

See if you can get the parameter readout for me and we can continue from there.

I think Easel now has the ability to show you your grbl settings, although it might still be a beta feature.