Thoughts on a 3D Touch Probe / request for input

I’ve recently gotten setup to compile GSender and was able to package it as an executable today, so I am starting to think on a potential capability I would like to add. I have a 3D touch probe and one of the things I’d like to do would be to key in a known X, Y, Z point where I expect a part or fixture to be along with a tolerance (how far off that point am is acceptable) and using a retract height (z) move to the location and probe to confirm.

Now, I realize this can get tricky and one could easily crash if you are not careful. The thought is there needs to be an approach distance in which the machine needs to slow down, and then do the fast touch/slow touch from that position. This would allow fast movement to what should be a safe point to probe from, followed by the actual probe.

The main difference here would be this would not reset the X, Y, Z since that’s not the purpose of the probe. Instead if it ends up probing outside of the tolerance specified, or doesn’t probe at all, it could alarm. Although I’d like to add a find center of radius feature as well.

Anyway, just looking for thoughts on how you might like to see a 3D touch probe implemented in GSender. Some of you are probably using macros to do this sort of thing, but personally I would enjoy the ability to use the probe for such sanity checks, under the probe panel in the software.

I think it’s cool that you are working on this and that you are able to build gSender.

I’m a hobby programmer but most of programming has been done in C, C++ and Rust. I’ve also used various other languages when needed like Python, Lua, Bash, PHP, etc. I have only minimal web experience like a static website on my little home server.

Long story short is I know myself and at least one other member would appreciate it if you could provide some instruction on building gSender. I think I could learn some JavaScript easy enough I’ve just never really wanted to before gSender came along.

I’m totally lost as how to build gSender. We have a thread on building gSender. If you have the time it would be cool if you could help us there.

I don’t know how hard it is to build or explain so I don’t know how much work I’m asking you to do. If it’s too much don’t worry about it.

Michael

1 Like

Absolutely. I got some help as well that pointed me in the right direction, but it was over on GitHub. I’ll go post on the thread you linked.

1 Like

I started using GSender with my Nomad because of my desire to use a 3D touch probe. (The small and inexpensive one in your sketch :slight_smile:)

XY probing is relatively straightforward but I would really like to be able to use it for Z as well, in a way that integrates with the fixed position tool height sensor. I’m thinking there are two basic possibilities here: (1) gSender could know the fixed Z offset between the tool sensor trigger point and some other fixed location on the machine (like the machine table surface). Then you could 3D probe Z on both the work and the machine table and calculate the “initial tool length” of the probe.

Or, (2), I could make some sort of physical contraption to repeatably register the 3D probe to the machine spindle nose. Then gSender would have to know both the absolute Z coordinate of the tool sensor trigger point and also the “tool offset” of the 3D probe. That seems like an ideal solution for ease of use, but it also seems like halfway to a full tool offset table implementation like you would want for a machine with an ATC or some other way to repeatably mount tooling. Which would certainly be a nice feature, but perhaps quite a bit of scope creep vs. other ways of integrating the 3D probe.

This part reminded me of a macro I made.

Now my macro was just for setting Z zero to the spoil board but what I did is use a user defined value for the maximum stick out of their longest bit. I think if you know the stick out of the probe and where the fixture is supposed to be then you can do like I did and rapid move most of the way and then probe, slow probe. With a probe the users stick out wouldn’t change much assuming it’s always mounted the same. Obviously you or the user need to add some safety margin. With my macro for bits the short bits take a little longer than my long bits but it’s much faster than before I added the rapid move in all cases.

I’ve always been interested in a touch probe mainly for doing carves on an existing item. I’d need gSender to have the ability to do a grid of probes and make a height map or mesh that you could then bring into some CAD/CAM program.

What your currently working on seems like it might be a step in that direction.

@ajwitte Hello Andrew, welcome to the group.

First off I’m assuming that in your first method the probe is in the router/spindle and the second it’s mounted at an offset.

I thought I could simplify your first method but then I realized it’s only because I have Sienci’s sensors for homing my LongMill. If you can home then you have your two points, home and the tool height sensor. I think that’s enough but requires switches or sensors.

I’m not sure I understand your second method at all. Is the touch probe always mounted? I don’t see how it could be without being in the way during carving. Maybe it can be and I just can’t visualize it. Why does it need to ‘listen’ to the spindle noise? What information that does that provide that G-code or gSender, with start, stop, pause, and resume actions can’t?

Thanks for the welcome!

For my second method I would still be exchanging the bit and the 3D probe, but I’m envisioning putting some sort of collar or something on the 3D probe that allows it to be inserted the exact same height every time.

And yes, I neglected to mention that my machine does have homing sensors. (Honestly, forgot that many grbl machines don’t… oops!) Obviously that helps although I don’t think it’s strictly required for my first method, if someone did have a workflow for a fixed tool length sensor that doesn’t require homing.

Okay, so in your second method the offset was what I called stick out, I think. I’m not sure about the correct terminology but when I read offset I thought of the laser mount XY offset.

I guess I was tired last night because I read that as spindle noise multiple times and got very confused. :laughing: That’s what my “listen to the spindle” question was about, silly Michael. The question is not without value though. It’s worth a laugh!

It is my understanding that, if your machine uses a collet, by the very nature of the collet action you can not guarantee positioning.

Just to clarify my understanding, you’re discussing a way to perform a tool change after probing the Z origin, and you want to be able to offset the Z based on the length of the tool you’ve inserted?

For Shapeoko the bitsetter is designed exactly for that purpose. That’s more for tool changes during a job and is really a convenience and I rarely use it. It looks like this:

Personally I would set my X,Y using the touch probe, then set the Z after changing to the tool manually. I find that to be as fast and reliable for me as trying to use the bitsetter, and to use the bitsetter with gsender you’d have to use a macro (someone posted a macro on here for it).

So a couple thoughts on what I think would be useful to most users.

  1. Set X,Y origin to center point of radius. This would allow you to probe the inside dimensions of an existing artifact on the part and set the X,Y origin to the center of a hole. This would probe four times and require that you place the probe into the hole before probing.
  2. Verify stock alignment. Let’s say you have mounted a stock board that is 1" thick, 12" wide with a length of 15". This could probe the first corner XYZ, then probe the opposing corner XYZ, and alarm if that corner is not in the expected location.

Just two things I thought of. The touch probe is certainly the type of probe that would have the most scenarios associated with it so coming up with UI that makes that easy, and useful, will be the challenge.

1 Like

Center point finding of a hole would definitely be useful. Or the center of a slot, in the one-dimensional case.

I suppose I should mention that basic XY probing seems to be working fine when I set it up as a “standard block” with XY width of 0 and a tool diameter equal to the diameter of the probe tip ball (2.0mm on mine).

Yep the corner probing works fine for me too.. XYZ using the standard touchplate and adjusting the tip diameter to 2mm as you said.