Maslow Home Maslow Community Garden Newsletter

Recalibrating Z-axis Zero On Tool Change


I did a simple test cut with a tool change to see what it was like. Two things I noticed.

1: Recalibrating the zero depth for the new bit was a little tricky. I’ve seen talk about adding this to ground control but I didn’t see it (nor try it) when prompted to change tools. Is it a feature in ground control yet? If nothing else, I thought I’d make a block or spacer that I could put between the bit and the work surface to manually set the zero. This method sets the zero by placing your bit at the safe clearance height for the bit. That’s where the program paused so that’s where it will start with the new bit. My safe height for the project was .2" so I’d need a spacer .2" thick so I can set the tool change bit to the right depth since it will start from the safe height and not zero. Sorry that’s probably confusing…

2: I found that I was working right on top of my cut for the tool change. Once the program paused for the tool change, I hit the manual move command to the left about 8", un-paused the program so the sled would move, once started to move I paused it again so it would stop at the end of the 8" move, did the tool change, then hit resume and it relocated itself and finished.

I would love to see some improvements on tool changes. I also realized doing the tool change without removing the router was tight. I’ll probably remove the router (quick and easy with the Ridgid). Only downside is I’ll get all greasy since I lightly greased the router body so it could slide better on z-axis changes. Wait, then I can’t set the bit depth right… Definitely need a recalibration for Z-axis on a tool change.


I agree. It’s a little scary contemplating bit changes as is, I’d love to see something formalized that sharpens up the process and ensures accuracy after. It would be a real bummer to make initial cuts and then have the next set with the new bit get totally screwed up.


Not sure if you can use a macro while a program is paused, but that might solve your problem. @blurfl might have insight here.

If that is not possible, you could also manually add in the auto-z zero routine into your g-code with a text editor. The upside of this method is that you could raise it to a safe height (one that would accommodate the next bit) then call for the tool change with associated program pause, right afterward insert the auto z-axis zero code with a pause after completion.

The workflow would be:

  1. cut pauses for tool change (with associated z-axis safe height reached)
  2. operator changes the tool and inserts a z-axis contact plate
  3. operator hits Resume Program button
  4. Maslow performs auto z-zero routine and returns to safe height and pauses
  5. operator removes z-axis contact plate and hits Resume Program button
  6. cutting proceeds with new tool


I’d like to see a method without the contact plate since I nor everyone else has one (if you’re talking about the automated one using the aux pins).


I don’t think you can use a macro while a cut is on hold.

This might work, and might be better if you put a G4 pause after the zeroing steps to delay the program so you can get to the ‘Hold’ button before the next step starts. That, or another tool change (with a different tool number) would give you time to clear the zeroing equipment away before the bit starts whirling :flushed:.

      The G4() dwell function handles the G4 gcode which pauses for P milliseconds or S seconds.
      Only one of the two is accepted, the other ignored. 
      Negative values are treated as positive (not a time machine).

For myself, I would make separate gcode programs for each tool and run them one after the other without changing the sled position in between. That way the macro, or a short gcode program with those same lines, would be easier to slip into the workflow.


Improving the tool change process is on the top of my todo list. It used to be a lot easier, but the process is getting cluttered.

I think that the first step is just making it so that the machine does not go into the locked state. Being able to use the regular controls to move the sled around and adjust the z would make things much easier.

I’m pretty burred in improving accuracy stuff right now but as soon as I’m done there this is on the top of the list. Thank you for reminding me.


Thank you for all you do (and the rest of your team)! Tool changes seem like something that can be readily handled by the operators for the time being. Maybe you should take some time to play with the Maslow before diving back in after the accuracy stuff?


Agreed, i think accuracy trumps Z-axis improvement. That might be the easiest solution - unlock the machine so we can use the tools already available to zero the Z-axis (and move the sled around without touching or modifying any home commands) then have it just resume where it left off. Thanks y’all.


Depending on the accuracy you need… one thing that could help is a simple depth gauge to help you install all router bits at the same depth. Simple “U” shape that references off the router body (you could probably cut one on the Maslow; the depth gauge doesn’t have to be that accurate, just consistent.

This way all you would have to do is:

  • Remove the router (after you turn it off … obviously :slight_smile: )
  • Install new bit to the same depth as the old one (using the depth gauge)
  • Re-install the router and resume the cut.

The zero should be in the same place for both bits. Obviously, this would only work for bits of a similar length and you would have to make sure you are using a safe install depth for all bits.


This is similar to what I have been doing. Just set the Depth Gauge up for your smallest bit length and you are good to go.


While very pricey, a quick change collet like the Muscle Chuck would make this super easy and quick.


As you tighten the collet your bit will follow and retract slightly. No one has had any issues with this? I like the fixture idea but it’s hard to beat the machine zero.


I use this and have not had problems.


replace the contact plate with putting anything under the sled and then manually
adjusting the height until the bit just touches the material and set that to be

it’s worth finding a scrap of metal to automate this.


That would work great provided we could re-calibrate Z-axis depth during a tool change. If you mean manually like manually lowering the bit then tightening it, things were so cramped trying to work in the little access door of the Ridgid router that was then split in half by the ring bracket that the wrench barely fit, a screw driver was needed to push the spindle lock tab and all that while trying to get an accurate bit depth was near impossible.


the only way to get good tool depths are to either

A. have a ring on the bit that prevents it from going any further in than a
fixed amount (known per tool, it doesn’t have to be the same for every tool)


B. measure how long the tool is after it’s mounted

trying to hold the bit at a fixed position as it’s being tightened just doesn’t
work reliably, even if you didn’t have the base in the way.


Yes, this would be nice. I just set up auto zeroing and noticed I can not run my macro at tool change.

For now, can I paste the macro (G38.2 Z-.15 F1) into the .nc file after the “T0 M6”. If so, would I need to add a certain code to pause so I am able to pull out the auto z equipment?

G20 G90 G40

(follow path 1)
G0 Z0.05
T1 M6
G0 X0.0435 Y4.0046
G1 Z-0.1 F30
G1 X0.0076 Y3.0664 F60

(follow path 2)
G0 Z0.05
T0 M6
G38.2 Z-.15 F1
G0 X-0.0007 Y2.8649
G1 Z-0.1 F30
G1 X0.0628 Y2.4593 F60
G0 Z0.05


Giving a bump on this topic to see if anyone has made any progress on the issue of tool zeroing on tool change in the middle of a program


The best answer currently is to make separate Gcode files for each tool. This allows control in between tool changes. As long as you don’t change the calibration or settings and return to the same Zero X/Y as the starting point Z is the only thing you have to set.

You run them as separate jobs with the same zero or point of origin in the design. I think of them as layers.

Thank you


Ok, thanks. That is how I’ve been doing it so far. Well, that and trying to minimize tool changes in general :wink: