ShapeOKO XL Touch Probe Inconsistency

I am seeing a curious inconsistency in Z setting using my Touch Probe. Let me explain…

ShapeOKO XL (2020 purchase), Touch Probe, Carbide Motion v513 on Apple

Taking care to ensure clean surfaces, I get up to 0.5mm inconsistency with the ‘zero’ reference point and I cannot fathom what is the root of the inconsistency. Things I have explored;

– Bit Choice in Probe screen - Given that I am only, normally, using the probe for Z, I had presumed that the cutter bit choice was irrelevant. Using 1/4", 1/8", and 1/16" actual bits, and for each one choosing these options one after another, gave no meaningful difference. Conclusion: Z-probing is quite literally ‘to the first contact detected’ and the drop-down list makes no difference (as I suspected)

– Inconsistent wasteboard flatness - I tried each cardinal point, centre and a few points between and probed followed, without moving the XY, by dropping the bit to its zero and using the ‘wax paper test’ to further drop the bit until ‘just dragging’ on the paper. At all points across the wasteboard I got the same results, anywhere between 0.25mm to 0.5mm high compared to the paper test. Always high, never low.

– A slope on the wasteboard - I re-surfaced my wasteboard and repeated the cardinal point comparison between probe and paper test. The same inconsistency.

Whilst I can work around this, using the paper method for zeroing, it does mean that my relatively expensive touch probe is just an ornament…

Any ideas or pointers?

Hi Andy,

That’s weird, but it’s not the first time I hear about this though, so it would be interesting to investigate.
As @WillAdams suggested to @GJM recently on the same issue, you should let know about this difficulty.

Meanwhile, would you be open to repeating the same probing tests but using a different G-code sender? I’m thinking CNCjs + @neilferreri’s probe macro. In theory, it will behave EXACTLY the same, but if it does, at least we will have ruled out any problem in CM in your setup, and we can check the electrical side of things.

if this is too much burden to install CNCjs just for that, understandable. Just an idea to clear some of the possible root causes for what you are seeing.


I take a read-up on CNCjs and see if it is something I can install, understand and use to try as you say to remove another variable in the system

I’ll be happy to support you in installing/using CNCjs
The easiest is to get the desktop app for MacOS here:
And then for this test things will boil down to connecting to the machine (on the left), homing (top-right corner), jogging to where you want to probe with the arrows on the right, and then creating and using the probe macro from Neil, which boils down to copy/pasting from that github link I mentioned. It probes XYZ though, so you will have to adjust the “endmill diameter” in the macro to get correct XY. Z will not be impacted.

1 Like

I had a similar experience where I noticed, somewhat recently, that I was consistently .25mm above Z-zero. I would double check your mechanical setup, belt tension, v-wheels, motor pulley set screws, etc… and also look into belt stretch calibration. C3D Tutorial. I also found the tutorial for calibrating with calipers helpful too, if you have a set.

Calibrating for belt stretch changed the Z-zero, but I hadn’t dialed in everything as well as I could have since I noticed inconsistencies in steps when the Z-carriage was higher afterwards. I would have worked on it more, but was able to take advantage of HDZ availability and haven’t had issues with the BitZero since; this is why I suspect that in my instance it was something more mechanical.


Good point, it may be as simple as a little backlash on the Z axis due to a suboptimal belt tension.


Interesting thought - if the machine is not linear, or is poorly calibrated (eg: belt stretch) then it may be that away from the height the Z was probed at, non-linearity is a factor.
I will go through the ‘caliper movement’ calibration described in the links and repeat my tests…

I would be surprised that calibration/belt stretch per se would cause this, because the probe just works by making a note of the absolute Z coordinate at which the electrical contact was detected: even if the Z calibration was off, it would take a different number of steps to get there, but it should still be quite repeatable (hence after probing, when telling the machine to go back to the Z where the zero was established, it would go there with the same steps error and non-linearities as during probing, and should end up in the same place).

However, if something mechanical is a little loose, when retracting from the probe and then plunging back down to zero level, any slip or backlash would produce an error in the final position of the endmill.


Could a Z calibration issue cause a difference in real vs. machine distance from the top of the probe to the top of the stock?

1 Like

Ah, you are correct, it could, and it would be a fairly good explanation:

The probe is 22mm thick, and (22-0.25)/22 is 0.99863, so if the real/calibrated value was 40.45 to do 22mm, the default value of 40 would bring the Z down just 0.25mm short of where it should be.

From my experience, the calibrated steps/mm is much closer to 40.0, (something like 40.05) so 40.45 seems to be a long shot, BUT it all depends on a variety of things (belt type, etc…)

I guess @AndyC should ignore my previous comment, calibrate Z steps/mm, and test, to tell us if it did the trick and whether @RoughDraft40 was on the money !


Got some time back on the machine. Two observations from the ‘vernier calibration’ exercise.

  1. There is about 0.15mm backlash when reversing direction on Z at any step. Checked grub-screws, all seemingly tight, slightly increased tension on Z belt… leading to the next step;
  2. 40 steps/mm looks as if it should be 40.13 as drift of 0.18mm sets in across 60mm of travel, whether upwards or downwards
    Next step is to apply the re-calibration, test and confirm, then perform a test to confirm ‘bed level’ accuracy when using the touch probe and see if things have improved

Some progress. Setting $120=40.13 has overcome the measured linear drift, but I am now left with two issues to think through…

  1. There is a backlash of approx 0.15mm, measured by zeroing a vernier, stepping down 1mm and then back up 1mm and measuring the error. This only appears to happen on the first step direction change. Will look to measure this for 1mm, 0.25mm and 0.025mm and see if it is consistent - ie: it is mechanical ‘slack’ rather than a systematic error. Any ideas on what I can check to see where this slack is coming from?
  2. During the movements to measure linearity, on one (only one) occasion I clicked and held the Z+ button in Motion set at 1mm steps, to rapidly achieve 10mm movement, and got 11mm physical movement vs 10mm Z reading. A whole 1mm step seemed to have been skipped. During this movement, the Z axis wasn’t as ‘positive’ a sound as it usually is. I’ve heard this before, but not associated it with any subsequent work errors. It didn’t appear to be an acceleration torque/jump, it wasn’t that sort of sound.

Typo… should have been $102=40.13

How tight is your Z-belt, and can you feel any wiggle when trying to move the Z axis up and down manually (gently) while the machine is turned on ?


Belt tightness I would have said is reasonable. It ‘pings’ if flicked with a medium note, which I took as a reasonable guide. Will try the wriggle test, but from recollection there wasn’t any noticeable movement. Perhaps the Vernier will contradict me on that :slight_smile:

Random thought: also triple check the setscrews on the Z pulley, especially the one that’s against the flat: if it were not perfectly tight against the flat, I can image you could have a small amount of play there, not enough to have the pulley slipping, but enough to cause 0.15mm backlash?

I completely dismantled the Z-Axis (stock Z unit), cleaned, tightened and re-assembled it. Then I had an idea… if backlash MIGHT be caused by rocking of loose pulley/guide parts, or Z travel calibration, then on a new (3m) machine, why don’t I tighten the belt to achieve $102=40.000 as this is the default expectation.
So I gradually tightened the Z-belt until over a 60mm travel (GRBL) I got exactly 60mm measured. The belt seems ‘nicely tight’ and no more.
So what impact on the original issue(s)?

  1. Backlash remains stubbornly 0.15mm irrespective, and I am sure there is nothing loose. This error is consistent at top, mid and bottom of Z travel, consistent whether stepping Z by 1, .25 or .025mm. I have either missed something not covered in all this work.
    ? The stepper motor itself has a backlash - but I don’t think so, I measured backlash on Z and Y and they are 0.02mm.
    ? The Z-carriage is twisting in X or Y directions, but I can’t measure or feel anything
    ? Run out of ideas now!!
  2. Z probing depth is now ‘spot on’, provided probing and subsequent measurement of zero are done with Z travelling downwards (to avoid the backlash). This is not unreasonable as a compromise, given that probing is effected downwards, and all cutting is downwards. Now that the Z-calibration is corrected, probing at +22mm should make no difference - which is what I am seeing.

I’m also out of ideas, but to at least rule out backlash between the pulley and motor shaft for good, could you try to rotate the pulley with your fingers while the machine is powered (Z stepper locked)?

My reasoning is as follows:

  • a full 360° rotation of the pulley corresponds to moving the belt by 20 teeth, at 2mm pitch that’s 40mm
  • you are seeing a consistent 0.15mm backlash
  • IF this was due to the pulley somehow having a little play with respect to the motor shaft, this 0.15 linear play would translate to 1.35 degrees of pulley rotation ( (0.15 / 40) x 360°).
  • and I think you would feel/notice ~1 degree of play when trying to move the pulley manually.

Another technique could be to draw a thin marker line across the pulley AND shaft on the face of the pulley, jog Z up and down and see if the line “breaks” or not when the direction changes.


Check your v wheels for equal friction / tightness.


Looked very closely at the Z toothed pulley under movement. I can’t see any backlash (line on pulley, line on body technique). Can’t feel any backlash with the stepper energised. Checked nee-wheel tensions, all good. It is curious that, with no observable pulley backlash, there remains 0.15mm ‘machine Z’ backlash. If the sledge is tight, the router clamp is tight (to the sledge, and to the router), the pulley is tight and the vee wheels tight, the only remaining factors are: the stepper motor itself, or the controller not moving the amount specified in GRBL (can’t think therefore why uni-directional is OK). Intuition is still telling me it’s something mechanical - just damned if I can find it!!