Auto Zero all 3 axis at one time

Here is yet another way to zero your x-carve. I milled out a 1 inch thick piece of 6061 aluminum to make a new touch plate that allows me to zero all 3 axis at one time by loading a short g-code file. The machine zeros the X axis then automatically moves around to zero the Y axis and then moves up and over the touch plate to zero the Z axis. After all 3 axis are set to zero the machine automatically moves the bit away from the touch plate so that you can remove the plate without endangering the bit.

I recorded the build and testing of this and put it in the below You Tube video. One thing I learned while making this is that you should never use double sided tape to hold aluminum while milling. During the milling process the aluminum does heat up. This especially true when you have an x-carve that has been modified to stiffen the X and Y axis to reduce flex and allows for more aggressive cutting.

In the video, I was using a 1/4 inch aluminum cutting bit with a feed rate of 50 inches per minute and depth of cut of almost 1/16 inch (.05), and a step over of 20% (.01). The heat buildup was not extreme heat but enough to reduce the holding power of double sided duct tape. That in conjunction with the forces involved in high speed cutting caused the block of aluminum to start to move. Once it starts to move there’s no good outcome possible because things happen very quickly.

I was fortunate in that the piece was not damaged and my bit did not break. I was able to recover the part and finished milling it without any further problems.

The only issue I am having is with the g-code. It does work as is, however, I could use some help with the coding. The problem is that if the machine is not already operating in the inch mode then the code is executed in millimeters. The command (G38.2 X-.5 F5) sends the bit in search of the touch plate within a predefined distance of X-0.5 inches. When operating in the mm mode it only allows the search to move .5 mm which isn’t very far at all and if it doesn’t find the touch plate then the code errors out and ends.
Here is the entire contents of the g-code file that when the machine is set up correctly and in the inch mode, works perfectly. I added line numbers and comments in () to the right of the lines to explain what it is for. The line numbers and comments are NOT part of the actual file and just added here for ease of understanding the g-code.

  1. G38.2 X-.5 F5
  2. G92 X02.18; (Line 1&2 Search for the touch plate in the X axis and set the zero at 2.18")
  3. G91 G0 X 0.5
  4. G91 G0 Y.5
  5. G91 G0 X-1 (Lines 3-5 Reposition the bit for setting the Y axis)
  6. G38.2 Y-1 F5
  7. G92 Y2.624; (Line 6&7 Search for the touch plate in the Y axis and set the zero at 2.624")
  8. G91 G0 Y .125
  9. G91 G0 Z.77
  10. G91 G0 Y-.625 (Lines 8-10 Reposition the bit for setting the Y axis)
  11. G38.2 Z-1 F5
  12. G92 Z.769 (Line 11&12 Search for the touch plate in the Y axis and set the zero at 2.624")
  13. G91 G0 Z0.125
  14. G91 G0 Y1 X1 (Lines 13&14 Reposition the bit for away from the touch plate)
  15. M30 (End Program)

Once I get the g-code working 100% of the time I will copy it and edit various copies for use with various bit sizes. Lines 2 & 7 set the zero point and will be adjusted for the different bit sizes. For example, the distance the X side of my touch plate from the edge of the material to be carved is 2.055". Add 1/2 the diameter of the bit (.125) for a 1/4" bit to that and when it finds the touch plate it sets the work position of the X axis to 2.18". Same principle for the Y axis.

This should also work with most bits that have a cutting area that is smaller than the shank such as v-bits and some ball nose bits. That is why I made the touch plate from 1 inch thick stock. As long as the bit is lowered enough so that the shank is what touches the touch plate and not the actual carving portion of the v-bit it will work fine.

So any help with the g-code would be greatly appreciated.



Can’t you just add the G20 at the beginning of your code to run the code in inches?

Someone that runs only in metric could tweak the code using G21 to set metric and increase the search distance to 10mm.

Will you be selling these?

At one point I tried that. At that time I was getting multiple errors in the code so I had to re-create it one line at a time until I got it figured out. I will have to get much better at g-code before I will even become a novice. I do remember stripping the code down to where it is now which included multiple G20 commands before it finally started working. Now that it does work (most of the time), perhaps I will go back in and start adding the G20’s. I think it needed a G20 after each zeroing command but not sure. I’ll give it a shot and let you know if that takes care of it.

Thanks for the advice.


Something you might also want to take into account is rotation of the bit. Touching off the side of the bit can give you a faulty reading, depending on what position the bit is rotated in, relative to the flutes. Particularly with a straight bit, not so much with one having a shearing cut.

I really like this concept, would make zeroing SO much faster! I might have to play with something similar. Good going, man! :smile:

I hadn’t given that any thought. It really is not complicated to make though. I just milled some 1 inch stock .2 inches deep leaving .5" shoulder on two sides, drilled a hole in the corner and attached a wire just as any other zero plate. I’ll be putting the g-code on the forum for anyone to use.

As far as the G20 command, once it is sent, GRBL should remain in inches mode until a G21 is sent, so you should only need to send it once.

I’ll play with it this evening when I get home, maybe I can help out. I purchased the aluminum already and had planned on making a zero finder very similar to this. So, I might as well get going, and maybe I can help a bit.

That is true. That is also why I made it from one inch thick stock. Unless the tip of the bit is larger than the shank then the position of the bit shouldn’t matter as long as it is lowered as far as possible without touching the material to be cut. If the tip of the bit is larger than the shank then you are 100% correct. The bit would need to be rotated so that the widest point would contact the touch plate.

Thanks for pointing that out.


Once I get the g-code worked out I thought I might create a few files and post them for people to use. These files would be set up for a variety of bit sizes both metric and inch. That is if anyone is even interested. Personally, I love it. Makes zeroing a snap and if you have to remount your work piece for more cutting it is very accurate.

1 Like

One option for the X and Y axis so you don’t have to deal with the bit size difference, use a small 1/8"ish v-carve bit that tapers to nothing…touch off on the shank of the bit to set X and Y, then swap bits to zero the Z axis. 1 more step, but no inaccuracies due to bit size difference (Just make sure you measure the the small v-carve bit).

That is an idea, however as you pointed out it would require more steps and the g-code would have to end after finding the x and y zero’s. (As it is now, it runs all three without any pause.) Then another command or g-code file sent after the bit change to set the Z zero.

1 Like

I don’t have any local aluminum suppliers here. I imagine to get a piece sent would cost a great deal due to weight factors. In addition, I have zero experience machining aluminum or any other metal. As a creature of convenience, in other words, I’m lazy, I am willing to pay someone for doing this for me.

Hi Charley

An excellent piece of work and particularly good because you have the courage and the sense to show your errors which helps the rest of us no end.

I am about 6 weeks away from anything like this, perhaps more, but I will try and follow you recipe and maybe add my own slant on it.



@MarcCohen, not sure where you are at, but I ordered this from amazon, nice, flat and straight.

Well we can’t have that now can we. Email me your contact info and as soon as I get this working 100% I will make you one and sent it to you. You set the price at what you would consider fair then subtract 25%and add shipping and I will make it happen. My email is


Email sent.

It looks like this may already be available for $77

That’s the one I saw that made me decide to make one.

1 Like

That’s what is so great about this forum. I learn something new everyday.

I hadn’t seen that before. If you have Mach 3 you could use this. However, with the Stock X-Carve I’m afraid it won’t work. But you are right, it is very similar.