Probe test on Arduino

Can you describe the failure (what it did and didn’t do)?

1 Like

Not likely.

What’s your situation concerning Reset/Abort (A0), Feed Hold (A1), and Cycle Start/Resume (A3)? Are those connected to anything?

The newer 1.0c from Inventables has Safety Door enabled which, I believe, needs to be pulled up/down or inverted or else an alarm state would happen?

The new Xcontroller has those buttons which would internally handle proper polarity and I think I’ve seen where LarryM has his connected to buttons but I could be wrong.

1 Like

I don’t think that is the case for the Feed Hold/Safety Door as the whole point of a door switch would be opening the door would open the switch which would cause a trip.

From GRBL code:

This option causes the feed hold input to act as a safety door switch. A safety door, when triggered, immediately forces a feed hold and then safely de-energizes the machine. Resuming is blocked until the safety door is re-engaged. When it is, Grbl will re-energize the machine and then resume on the previous tool path, as if nothing happened.

Without scouring over the Xcontroller schematics (if they are even available), the feed hold button may actually be a normally closed circuit and pressing it causes it to open and so when you hit resume, it’s considered closed.

They are both momentary buttons. Resume is 1 button, Feed Hold is 1 button. I found the schematic and, without P/Ns, it appears that they are both normally open but no mention how they’re handled internally to the processor.

Just throwing it out there as a possibility as that is one difference in how 1.0c operates versus 0.9j and potentially a difference between gshield/arduino versus Xcontroller.

Here is a version of the Inventables 1.0c with the safety door and the parking code disabled. See if that works for you.

Inv_1_0_c_no_safety_doot.hex (79.8 KB) typo in the name

Here is the code that I use for probing (5mm touch plate):

G38.2 Z-10 F6
G10 P0 L20 Z5
G0 Z8

1 Like

Only from some speculative reading. I think it’s supposed to issue a Feed Hold and then stop the spindle and move it away from the work surface, then when the door closes moves the spindle back, start the spindle and do a cycle start.

But, I don’t really know.

1 Like

I did some research in to this back in August, which is why I was bringing it up as a potential gotcha:

It’s possible somehow GRBL 1.0c changed the operation and it’s causing an issue.

1 Like

The feed hold, cycle start, and probe pins all have the internal pull-ups active.

1 Like

It’s pretty simple. The Atmega328P has an internal active circuit (I think it’s a MOSFET) that pulls a given pin up to 5 volts when that option is programmed into the chip. It acts like a high resistance (about 37K ohms) so that you can turn the pull-up on and then use a switch to ground to pull the pin low and the internal pull-up limits the current so you don’t burn out the pin grounding it.

The same thing can be accomplished outside of the chip by hooking a resister between +5 volts and the pin. Then the resistor becomes the pull-up and limits the current through the pin when you ground the pin.

It’s a convenience offered by the chip maker to make wiring up switches easier.

No, actually you don’t have to hook up any of them if you don’t want to use that function.

The safety door off grbl was just something to see if maybe some of the new 1.0c was misbehaving.

1 Like

Were you able to successfully home with 1.0c? Looking through the code, GRBL would block homing if the safety door is tripped.

Again, I just mentioned it as a delta between versions as to what may be wrong.

1 Like

So what do we need to tell the machine to do?

  • Stop motor (safety)
  • Do everything in mm (prevent accidental use of inches)
  • Move from here max 3mm down at slow speed until bit hits the touchplate
  • Set this position as Z=19 (my touch plate thickness)
  • Move 1mm up from the touch plate surface
  • Pause the program giving me the time to remove the touch plate
  • Push the resume button
  • Move 20mm down
  • Reset Work position
  • End of program, ready to start a new job

This example works with Arduino UNO and grbl v0.9j and UGS1.0.9

AProbe38.2F10Z_3.txt (70 Bytes)


Set machine approx 2mm above the work area, do not forget to clip on your probe lead to the bit :wink: select the file and send. Remove the touch plate, push resume and the bit ends at the work surface top.

If you have trouble in finding the A5 pin you can also look for SCL which is a different name for the A5 pin. On my Shield:

So I had to add a resume button and probe connection to my Arduino


And a live demo automatic zero

do you a part number or dimensions for the plastic case?

110x70x55mm found at my electronic store, says Teko from Italy but I was unable to find it online.

Not entirely. This morning I knew nothing about G-codes and after some reading I used your macro from a previous post and added a software pause and hardware resume with follow up movement. Now I know that a lot is possible. If this works for one axis it can be done for the other axis too.
I tried to import this in Easel but that is not allowed. There is some confusion about the hard and software implementation of grbl in the X-Controller. So maybe UGS is easier to do untill Inventables adds a function in easel that does probing.

The z-probe feature in Easel will work with the original X-Carve. You need to run the machine setup under the “Machine” menu. It will get to a page asking if you have a z-probe. If you do have one that works with other software it should work with Easel. Be sure to select the advanced option on the z-probe setup page, so you can enter the height of your device (if not using the one sold by Inventables).

You will need to make sure your arduino is updated to 1.0.

That is in contradiction of anything mentioned before, @Phil from my understanding you are running 1c can you please test that?