Looks like a great idea! Maybe chuck up a stainless dowel instead of the bit.
A few ideas:
- Mill in 75mm spaced holes for those with stock Inventables wasteboard. This could allow for the device to be in the correct orientation and, theoretically, straight with the axis. It would also prevent the piece from moving from the touching.
2a) Using G38.2, you could set your zero point on one side, issue a different G38.2 command to probe the opposite direction. Since you can set the feed rate in the G38.2 command, you can have it go relatively quick and it’ll stop when it senses the touch. Then you can do a short relative move away from the edge and then a slower “double tap” G38.2 for accuracy.
2b) Use a relative move by a safe distance and then issue the G38.2 command. Again, double tap if needed.
Once stopped, you read back the reported position and it gives you the distance traveled. Using the known measured distance with a caliper, you enter in the values in a formula and get your new steps/mm command.
You could also incorporate the Z axis into this. If you make one of your edges you have a little bit thicker, you can probe to the edge in X/Y, back off like 1mm, then probe down to the bottom of the tool. Move back 1mm in X/Y to re-establish contact Then you issue a G38.4 command which moves the Z axis upwards and stops when you lose contact, which again lets you get an accurate idea of distance traveled given a calipered surface.
That would also work just fine.
Just need 2 surfaces that are capable to be probed and the distance precisely measured.
I was just trying to be slick
If you wanted it to be entirely automatic, that would have to be written into a UI. I think it would work with any conductor with a length that could be accurately measured. You could always probe the outside edges.
Hey Angus, are you gonna build these? It’s a great idea!
I was just thinking that would be a perfect product for Charlie. He could incorporate the software into his toolbox app.
20 25 30 bucks he already sells the touch plate and the y plates I bet alot of people would just throw it in the cart! I like the idea because of the accuracy you could get.
You’d always be limited by the end user’s ability to accurately measure with precision. I guess he could throw in a precision machined probing “bit”.
1/4" dowel from Mcmaster Carr, pretty cheap and .0002 tolerance.
That would do it.
I’m sure if he integrated with software, someone would buy it.
How about just using some 1-2-3 blocks.
Grbl will report the machine co-ordinates of the probe touch point. If you home your machine, should be able to work the math to get an accurate conversion to steps/mm.
[Edit] - could be done without homing - wouldn’t be as easy.
But can you get those coordinates inside of the Gcode without an external UI? That’s where I see this breaking down and requiring a UI (for those wanting a less manual approach).
I’d personally just use the outputs in UGS and calculate it all.
Stack the 1-2-3 block on top of your flat bar. Probe to the flat bar for Z and then probe to the top of the 1-2-3 block. You could use either dimension of the block depending on how much Z travel you have.
Any idea what the code would look like?
And can we parse it in English then translate it to g code?
1 machine Zero
2 Probe X+ N amount
3 Probe X- N amount
4 Calculate based on (X,Y,Z) $100-102
5 Send $$=New N
Here is set of gcode commands that will get you part way there. The problem I think you will run in to is that you can not do calculations in grbl. It will not use any variables to store calculations, much less do the calculations. I think the only way your going to get where you are trying to go with this is with some software that you:
- Input the starting steps/mm setting from grbl, the length of the piece to be probed, and the bit diameter. (The code below assumes a 1/4 inch bit.)
- Run the below gcode to determine the distance that they machine thinks it moved and enter that value in the software.
- Tell the software to calculate the discrepancy and provide you with a corrected Steps/mm for that particular Axis.
- Issue a command to grbl to update the Steps/mm to apply the corrections.
This code would probe a plate 5 inches long. It is written to run in millimeters since the corrections in grbl will be in millimeters and that would eliminate the need for converting from inches to millimeters.
The software required to do this could be something like the Triquetra Tool Box or even an Excel spreadsheet. Both would be capable of doing the math and generating the gcode. It would require a separate gcode file for each axis.
G92 X0 G92 Z0 G21 G38.2 X25.4 F100 G92 X0 G91 G0 X-5 F300 G91 G0 Z-25 F300 G91 G0 X151 F700 G91 Z-25 F300 G38.2 X-25 F100 G91 G0 X5 F50 G91 G0 Z25 F300 G91 G0 X-11.35
For me, the hard part of all this would be writing the code that would allow the program to communicate with the CNC and send the code. It might be less complicated than I think but I’ve never looked in to it.
I wish you the best of luck. I don’t know diddly about Java programming.
We may have criticisms. But no guarantee on the construction.
You could do this with a simple Python script instead of going full-on Java.