Tool change position and z-height

When carving and using a different tool for pocketing, I like that the machine pauses for me to change-out the bit. However, it doesn’t lift high enough off the work for me to change the bit. Is it possible to customize the z lift to make more room?

What CAD/CAM tools are you using?

1 Like

Since you need to zero Z anyway after changing the bit, you should be able to lift it as high as you wanted to.

I use Estlcam, save gcode to an SD card, then cut directly from the controller.

When i figure out how to raise the tool higher during the pause for tool change, how would I execute the Z homing? The controller simply says to click to resume. If I do anything, it starts cutting again without properly homing Z first.

Can’t help you with that unfortunately because I use Estlcam only and there is an option to do it. I also have “click to resume” but can do other stuff in between.

The way I do tool changes is to break each tool into its own g-code file. This allows me to lift the router electronically (so the steppers stay engaged) for the tool change and to home the Z before the next toolpath is executed.

1 Like

There are settings for adjusting the gcode for tool changes in estlcam. You’ll need to learn a little gcode and I’m sure you can perfect your script. Otherwise, splitting the files is a more manual, but fool proof method.

1 Like

I wonder how hard it would be to hack a bitsetter type function into Marlin. It seems like it shouldn’t be too hard. Someone who likes to hack Marlin should do that… :smirk:

I think because of the belt printers, thinkyhead has been working on the subroutines. IDK if you can keep them between files or not, but if you had a subroutine defined at startup, you could then just call that. Then you wouldn’t have to mess with changing the firmware to change little scripts like this.

I don’t think it’s possible if the workspace zero (e.g. top of workpiece) is at a different height than the probe Z trigger. You can manually measure the Z offset between workpiece and probe and then manually enter G92 after probing with the new tool (either probe, G0 Z, and G92 Z0, or probe and G92 Z-). But I don’t think there is a way to achieve it with fixed gcode scripts or subroutines unless it includes some means for variables.

It’s a pretty narrow use-case though, because to be necessary and useful it requires

  • No good location to use touch probe after tool change, e.g. topographic carve
  • Absolute X/Y coordinates, implying endstops
  • Lots of extra complexity to set up, understanding workspaces, etc.

So it’s not really a burning issue, and not surprising that it hasn’t been implemented.

I’m been thinking about this issue for awhile, but it has been low priority to implement. I think BitSetter-like functionality can be done without changing Marlin. The concept would be to home in the machine coordinate workspace (G53), but cut in another workspace (G54-G59.3). After the bit is changed, the machine would again home in G53 and then return to the home position of the workpiece workspace. Even better, there is a tantalizing note in Marlin’s g-code reference that indicates that workspaces could persist through a power cycle of the controller:

All workspaces default to 0,0,0 at start, or with EEPROM support they may be restored from a previous session.

For multiple reasons this would be really nice. Actually I think Jamie pointed out the use of workspaces for this problem in another forum topic. Beyond Marlin, there is the mechanical aspect of a “true” BitSetter. The BitSetter that Carbide 3D sells appears to be a high precision switch. This avoid the need to connect and remove a clip from the bit. I don’t know how precise a push button would be in this role.

1 Like

Ohh, that would work. I will have to check how the workspaces operate, if homing in G53 retains the fixed relationship between G53 and G54 then it will do the right thing and nothing is needed to shift G54 to be correct. Cool!