Probe test on Arduino

I have made a mistake in copying the version without the safety door and want to withdraw that remark. I’ll do some more testing and come back on it.

Ok with the correct copy of my ShapeOko2 defaults and config.h without the safety door I still get a correct behaviour of the probe. I am running Windows 10.

I’d be interested in the command/response chain during probing from Easel. Maybe the console history in the machine settings would long enough to see it. Maybe they changed to the built in routine like Charley uses (G38 commands) instead of monitoring the status. They came out and said they needed the change to reporting of status to support probing.

I tested this here and if you don’t have $10 set properly then probing fails with Easel (Easel hangs).
(Easel 0.2.7, grbl 1.0c, Windows 7 (32bit))

@JustinBusby

I have a test bed for my grbl testing (not hooked to real machine) Homing switches and probe pin are hooked to a single switch so that I can fake homing switch closure and probe closure. You will NOTE that in the serial exchange below Easel has confirmed that the probe switch can change state then proceeds to probe.

?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:111|1|0000> NOTE
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
?Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,21.654,Pin:000|0|0000>
ok
ok
G20.G91.G38.2 Z-0.590 F5.000.G10 L20 P0 Z0.590.G91 G20 G0 Z0.250.
?Run,MPos:0.000,0.000,-0.127,WPos:0.000,0.000,21.527,Pin:000|0|0000>
?Run,MPos:0.000,0.000,-1.185,WPos:0.000,0.000,20.468,Pin:000|0|0000>
?Run,MPos:0.000,0.000,-2.275,WPos:0.000,0.000,19.378,Pin:000|0|0000>
?Run,MPos:0.000,0.000,-3.334,WPos:0.000,0.000,18.320,Pin:000|0|0000>
?Run,MPos:0.000,0.000,-4.392,WPos:0.000,0.000,17.261,Pin:000|0|0000>
?Run,MPos:0.000,0.000,-5.456,WPos:0.000,0.000,16.198,Pin:000|0|0000>
[PRB:0.000,0.000,-5.969:1]
ok
ok
ok

1 Like

So it does use the mask for checking before doing the G38.2 command. Interesting that Erik got it working with a $10=3 though. Maybe because he said Shapeoko instead of Xcarve and that triggers a different routine for probing inside of Easel?

Could be. I tried to select Shapeoko on my test setup and Easel hung. So, there are differences.

I tried two different setups ShapeOko2 with gShield and X-Carve with X-Controller. Makes no difference
When I modify the config.h by disabling the safety door feature and putting my own default values it works in all combinations. $10 3 or 115 does not seem to make a difference. Frankly I cannot find a setting that does not work at the moment.

So I urge you to ask Inventables to step into the game, after all it is a problem on a product that is made by the owner of the machine we are using.

I’ve still got the Arduino at home. If I get time, I’ll do some tests tonight.

1 Like

Since I couldn’t get the ShapeOko selection in Easel to run at all on my setup, I couldn’t test anything.

It stands to reason that there are some differences or Inventables would not have put the selection in the setup process. If the machines were identical then there would be no reason to ask which one you had.

Although, I’m glad that your machine works properly, I don’t see how that information applies to the problem with the X-carve.

Ok, with my ShapeOko2 defaults and without the open door and pull-off in config.h I re-configured my machine as X-Carve, X-Controller today and got as far as making contact on the touch plate, disc shows green but program does not continue.

When looking in the settings I noticed that the $10 value was set to 115. I went to UGS and set this value to 3 tadaaa… Probe is working again.

You were right the 115 does not work on SO2

Then I re-configured my machine as ShapeOko2 (still tweaked firmware) and got stuck with the Probe again at the same spot.

Looked into UGS and the $10 value was set to 115 again. I went to UGS and set this value to 3 and Probe is working again.

So for Arduino the procedure is to follow machine setup until you get blocked, abort Easel, set $10=3 and start using Probe.

What is the value stored in $6?

Things are getting weird, with the SO2 and gShield setup I get stuck because $10=115, then I abort setup x, change $10 = 3 in UGS and try to cut Intro to Easel. I follow the steps of the probe which works.

Upon your request I opened up the parameters in UGS and guess what. $10 is back to 115. Tried to cut again and probing gave no problems.

That is too much fuzzy logic for me, it works but I have no clue why.

**** Connected to COM3 @ 115200 baud ****

Grbl 1.0c [‘$’ for help]

$$
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=224 (step port invert mask:11100000)
$3=7 (dir port invert mask:00000111)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=115 (status report mask:01110011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=1 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$24=25.000 (homing feed, mm/min)
$25=750.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$30=12000. (rpm max)
$31=0. (rpm min)
$100=40.020 (x, step/mm)
$101=40.021 (y, step/mm)
$102=188.976 (z, step/mm)
$110=800.000 (x max rate, mm/min)
$111=800.000 (y max rate, mm/min)
$112=400.000 (z max rate, mm/min)
$120=100.000 (x accel, mm/sec^2)
$121=100.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=290.000 (x max travel, mm)
$131=290.000 (y max travel, mm)
$132=50.000 (z max travel, mm)
ok

One more test:
Machine setup, set my machine as X-Carve (SO2 does not present a firmware to upgrade)
Easel, advanced, update firmware
Machine setup, tested 4 setup possibilities with the Inventables firmware
SO2 + sGhield
SO2 + XController
X-Carve + gShield
X-Carve + XController

In all combinations succesful on an Arduino UNO and Probe pin on A5
It seems that all checks for the X-Controller identification have been withdrawn from Easel for now.

The only annoying bit is that my settings for machine size and ACME are off from what I am using but that is not very hard to change.

That is the impression I get from testing. Probe on Arduino gave different results every time I tried but the good news is that it works now if you simply follow Easel so you must be able to reproduct this.

If you configured your machine as X-Carve you can install the new firmware with easel and it should work right out of the box.

There is another post about X-Controller hex file with apologies:

Dear X-Controller Customer,
Recently we had reports that there were issues using the X-Controller with our new Z-Probe product. When we investigated the issue we discovered it is because an incorrect version of our firmware was pre-loaded on the controller boards, producing an error on how pin states are reported. We apologize for this problem.
If you have ordered an X-Controller from us anytime in 2016, whether you are using a Z-Probe or not, we strongly recommend that you take a moment to upload the correct version of firmware onto your X-Controller. We have added an easy way to do this directly through Easel:

Case Closed

Yea they sent that email out but that, I think, was more for the Easel steps as opposed to a “new” firmware build. The Inventables GRBL hasn’t changed in 2+ weeks and the last changes were just for the build date and Readme files, no actual code changes. The build date, based on an Inventables response to my question, is not checked by Easel but I would assume it would be helpful when a customer with an Xcontroller calls in and the date is not 10/11/2016 that the first step would be to have them update the firmware.

Yes. Last previous code change was 10 months ago. I also think the new build date is an administrative aid to isolate the “bad” firmware that got out there.

I had some time with the Arduino tonight not that it matters all too much as it is just confirming what others have been saying.

I was able to configure both as a Shapeoko and as an Xcarve and both yielded correct probing behavior using the A5 pin. I literally have 2 wires connected, one to A5 and 1 to ground.

Both selections yielded a $10=115. I set $10=3 and then re-ran setup and it changed $10 as expected. If I then changed $10 to be 3 after setup and went to the carve screen to probe and got nothing. Didn’t even get past the “plug the lead into the carriage” step. Change $10 back to 115 and then it works again.

Looking at the machine status return, as Larry pointed out earlier, shows the pin change status and Easel is apparently looking for that. With $10=3, there is no pin status to echo back so Easel can’t see it.

I used the 1.0c HEX file from Releases · inventables/grbl · GitHub and Xloader to load 1.0c on the Arduino.

Just want to say thanks to Zach and the team. Have just used the Probe with easel (Old xcarve without xcontroller) and it works perfectly. Made my year!