Touch Probe on MPCNC

Touch probe on MPCNC:

Design is available on Thingiverse here:

I realize for the usual way MPCNC is used, this is beyond useless, but with a tool change capability this starts to become useful.

Not shown, but relevant, I’ve upgraded my tool changer to include six electrical contacts: +5V, GND, Step, Dir, Enable (active low) and Probe. The touch probe is taking advantage of only probe and GND, but the other pins are for future capabilities I’m wanting to try.


This is using Marlin? Cool!

Yup just had to enable G38 in Configuration_adv.h.

It was a bit confusing because the way Marlin treats zmin and probing is special, I guess because they are often overloaded as more or less the same thing. I happened to use the zmin plug on RAMPS (and I home upward with a limit switch on zmax).

But zmin overloaded as both zmin and probe does not work with G38. I had to tell it to use some “other” pin for the probe, and oh by the way the pin I want to use is zmin. Then it worked.

I would recommend using a different physical pin besides zmin, and I think it would have been much easier to configure.

I noticed the advanced probing in the newest firmware updates I was working on the other day. You are on point and implemented it really fast. Probe seems to be working perfect.

The only advanced thing we might be missing, or might be in there with workspace offsets already, is multiple probing on one side to account for work piece mounting skew, but I think with gcode you can probe a hole now correct?

Did you calibrate or does it seem to be close enough for what you do as is? I was always worried about a DIY version of that style probe is why I ask. Metal tape and the actual bit seem very safe to me (fairly know offset, simple), but do you see that triggering with a consistent offset?

That looks insanely precise honestly. You can see the first bump really deflects the spring, the second bump is not even visible.

I’m sorry to say I’m not playing with the new firmware, I guess the timing is just coincidental. The feature I’m using has been around since at least 2017 and has been in the V1 firmware waiting to be enabled. Now I am curious to go look at the newer features because I was disappointed I couldn’t even probe in negative X or Y direction. I didn’t even look to see if I could find holes. (Mainly I am just wanting to avoid jogging to my workpiece, which is annoying and sloppy.)

I also haven’t tried calibrating or measuring the offset. In theory an extremely small movement at the contacts should break contact and trigger, and I guess it would come down to the stiffness of the workpiece and the stiffness of the probe and the strength of the spring. Probing foam for example you would probably mash the foam a lot before triggering, whereas foil tape requires no force to trigger.

The way the spring presses on the probe, the force to break contact in Z is significantly higher than the force to break contact in X or Y, so even though it barely deflects in X and Y, it might not reflect the accuracy in Z. I will try later tonight, probing Z on wood and probing Z on glass on wood and see if the difference is equal to the thickness of the glass. I’m open to suggestions on other ways to determine the accuracy, that’s just the first thing I thought of.

I’ll also use a scale to try to measure the force to break contact. I can trigger ‘easily’ with my finger but my fingers are uncalibrated so I have no idea if it’s 1 oz or 6 oz or even in that range.

1 Like

For Z probes, there is a builtin marlin test. It repeats the probe over and over. If it’s consistent, then a lot of the rest can be calibrated, or else that’s probably going to be just as noisy as the medium (I’m guessing we wont get better than 0.1mm accuracy in wood, because it’s wood).

1 Like

So I got some results. Thanks for the tip on the builtin Marlin test. Enabling repeatability test M48 in Marlin, doing Z probe on wood I get standard deviation of 0.0015, with a min/max difference of about 0.005. This is far better than I expected. Practically speaking, probing different spots on a lumpy medium like wood could be much more noisy. Probing on glass produced the same standard deviation and min/max difference.

I also tried the glass/wood experiment, propping up the glass very slightly on two sides and probing near the opposite corner, so that non-flatness shouldn’t cause the glass to rock. With glass, the average probe was 2.31 mm higher than without, and when I measure the glass with my calipers it measures at about 2.22 mm thick. It suggests the probe could be mashing the wood by 0.1 mm, give or take. I could have problems with my setup, so I won’t claim this is anywhere near precise, but it’s a number. It’s very soft pine by the way.

Also, I probed on a kitchen scale, and the force registered at 3.75 oz, which is a bit over 100g. I didn’t measure the lateral force when probing X and Y, but I can feel it’s much less.



That’s about what I get on my 3D printer with the bltouch. 1mm/400steps is 0.0025mm, so you’re near tge limits of the stepper. Very Good!

The glass will sit on the peaks in the wood surface and the probe might hit a valley. Still, if I had 0.1mm Z error, I would stop. That is plenty in wood. Do you have some aluminum or foam you could try? What about a tip with a different area? It’s really just for curiosity at this point. When you attack the pine with a V bit 0.1mm in Z won’t matter.

So the weight of 1/2 cup of water. Really, not that much.

Man, I wish marlin had G68 support for rotating coordinate systems to account for this type of thing. Without this I end up:

  • Mounting a vise then take a skim cut off of my softjaws
  • Mount a piece of MDF and use the machine to cut a negative
Depending on how accurate you want to be you can get away with mounting locating dowels or manually jogging the machine around to get things lined up.

Can you use the skew correction to do this? Positive X skew and negative Y skew? I forgot how the skew is set up.