Limit Switches

Couldn’t find any information on the limit switch/homing wiring.

Is there a video I missed that explains the wiring for the switches?

This will be part of the X-Carve instructions, but here is a schematic overview how limit switches are connected.

x-carve_gShield_schematic.pdf (472.5 KB)

I’m guessing noise isn’t an issue here since you didn’t use any resistors or capcitors for noise reduction.

Would it be safe to say that Easel will also include homing functionality by the time X-Carve is released?

Easel already does support homing! If your machine has homing enabled, it’ll show you a “Home or force unlock” dialog when you try to start a job.

two questions:

  1. so, many users have had noise issues using N/O limit switches without any circuitry to filter it out (myself included). Is it safe to say that there is something the the x-carve is doing that eliminates this as an issue? Or will some folks still have noise issues?

  2. I noticed there are only 3 switches in the kit and in the circuit… should these actually be called homing switches?

If I purchase the X-Carve Shapeoko upgrade kit and the limit switches, will the limit switches work with the original Shapeoko electronics? Or will I also need to update the controller?

I have had a big noise issue on my SO2 and solved this by adding a low pass filter with a 4k7 resistor and .47uF capacitor on each end switch line. The end swith cables run parallel to the power lines so I would be surprised if this does not happen on the X-Carve. Once installed it works flawlessly.

I use an Arduino UNO and Protoneer shield with Pololu drivers for NEMA17 motors

Bump for the limit-switch-connection PDF. I know I was confused. :wink:

Ok this PDF does not match the assembly instructions, which had us use D8,D9, and D11 for the limit switches, and D10 for the spindle control. Only the spindle was getting ground from the GND pin, and the switches are using PSU ground (I don’t think that matters). Here is the picture from the instructions

So based on the instructions I tried to test the limit switches, and ended up destroying the Z switch when it was broken into three pieces.

I did some more testing with a multimeter, and D9,D10, and D12 (the limit pins in the PDF), these are all held high at 5V, and they drop to 0 when the switch is closed. The other pins have 0 or close to 0 V. This might also explain why I was getting nothing from the electronic spindle control.

So. now, where can I order some more of these switches?

Is this the same part that is shipped with the x carve?

https://www.inventables.com/technologies/microswitch

Uh oh.

Is there no LED for checking the limit switches?

Doesn’t appear to be. Nor can you check the status via grbl. Although I red there is change you can make to add that.

I think this would have all worked fine if I had got the wiring correct initially.

The connector that attaches the limit switches to the shield is also very easily dislodged. Mine slides out super easy. The scary part is you don’t know it’s disconnected until it’s too late and your machine is slamming into the limit switches. I’m disabling auto homing until I can replace that connector with something more appropriate.

I just got to the “install limit switches” portion of the instructions, and I was surprised to find that we’re supposed to wire these up in a normally open fashion. When I’ve done limit switches on other machines in the past, I’ve always done normally closed, so that if anything unexpected happens (wires get cut, come lose from connector, etc), it will act as if the limit switch has been tripped, thus saving you from crashing into a rail.

Is there a reason for using the switches in the normally open state for X-Carve / GRBL?

That’s a great point @PeterJames. I wonder if it’s a software/GRBL/g-shield limitation. I’d love to switch mine to normally closed if there is support for that.

I’ve been doing some research on the NO/NC thing, and NO is the default setting in grbl. You can change that setting to use NC switches - but it will require the addition of some pull-down resistors. I’ve got a prototype set up here on my desk, just one NC limit switch hooked up to one of my spare Arduino boards flashed with grbl. Actuating the switch will indeed bring everything to a screeching halt, if the messages that chilipeppr is sending me are any indication. :slight_smile:

I just got new switches yesterday. It looks like Inventables is backed up filling everyone’s X-Carve orders, so I found some on amazon that have the same physical dimensions. I’ll try hooking the new Z-Switch up tonight.

So I am playing with the new switches, and X and Z home just fine, then it gets to the Y part of the homing cycle, and it moves about 1mm forward and stops. I figured that maybe it thinks the limit switch is stuck closed, and it thinks it already hit the end, and just backs off. But if I hold the Y limit switch closed and start the homing cycle, it behaves differently, and it drives slowly forward like it is backing off until the switch goes off.

I checked the wiring, all three switches go from 5V to 0 when closed, so I think they are wired correctly. X is on D9, Y is on D10, and Z is on D12.

Any ideas why it doesn’t want to home the Y axis?

More developments on this. It appears that the Y axis limit switch line has some kind of noise one it, and it is enough to make it looks like a bouncing switch to the arduino. You can see this in the video below (sorry about the goofy titles, the iMovie app on the phone doesn’t give a lot of options).

My best guess is that the noise is coming from the Y axis stepper. It doesn’t seem to be coming from the board, and I only see it when I am powering the g-shield. If just the Arduino is powered (via USB), there is no noise.

I temporarily resolved the issue by replacing the cable connecting the Y limit switch and the G shield, and not running it through the drag chain. I thought putting a small capacitor on the switch would eliminate the noise, and it did, but the voltage was dropped down to about 4.6 from 4.8, which is apparently enough for the Arduino to read the pin as low. A new cable fixed the issue.

For a more permanent fix, I was intending to get new cable that was longer to wire the steppers, use shielded cable for the limit switches, make the cable coming out of the machine longer, and terminate them with XLR connectors that can mate with connectors coming from the electronics. That would also make upgrading to the X Controller easier. I should probably go ahead a pull both Y steppers through, and connect them on the electronics end.