Skip to content
leofaoro edited this page Dec 21, 2018 · 12 revisions

WARNING: This is only a preliminary wiki, copied from an Issues post, but better than nothing for now.

Tool change g-code

This is how you enter toolchange in g-code file:

M6 T42 (flat endmill 3.175mm)
  • M6 is toolchange operation
  • T42 means we are changing to tool #42
  • (comment) in braces is optional text that will be shown to operator during toolchange

Tool change UI

The long awaited Tool change function is now inside bCNC.

In the tab "Probe" click on "Tool" and you can setup how bCNC will treat the M6 (Tool change commands)

  1. Send to Grbl as is
  2. Ignore completly
  3. Replace with a "tool change" macro

To use the tool change function you obviously have to choose no. 3.

Initial setup

You have to set two locations, which are set in absolute machine coordinates X,Y,Z:

  1. the Tool Change location

  2. The Tool Probe location

To do so you have to jog to the desired locations and click the "get" button.

The probe / distance should be selected such as to cover the range of all possible tools to use. A little warning; set the Z height in the Probe location high enough to accomodate your longest tool and set enough distance so the tool will touch the probe (otherwise GRBL will raise an error and you have to reset, home your machine and start all again.)

The first time you need to perform a calibration cycle so bCNC can find the height of the probe tester (plate or switch) vs the 0 of your surface.

Calibration cycle

First zero your z-axis with the current tool on your workpiece

if you have done the initial setup, click on the "Calibrate" button.

Doing so bCNC will move the gantry to the change -> probe location and start a probe cycle.

Once the probe is finished, the calibration field will be set, with the height of the probe plate/switch versus the 0 of your work piece.

The tool change macro

The tool change macro will perform these operations:

  • Stops the spindle
  • Raises to the Change-Z height
  • Rapid move to Change X,Y
  • Wait until you change the tool with a feed hold
  • Click on resume (hardware or pause software button)
  • go to Probe X,Y
  • lower to Probe Z
  • perform a probe scanning from ProbeZ to ProbeZ - Distance
  • reset the 0 of the workspace to match the new tool (maybe I should set it to the offset)
  • and go back inverting the order -> Raise to Change-Z -> ChangeX,Y
  • Click on resume (hardware or pause software button) then restart spindle
  • Wait 5 seconds for spindle to reach target speed
  • Continue the gcode

You can also activate manually the tool change by clicking on the "Change" button.


Tips These policies are how the bCNC is expanding (or not) the tool changes commands.

  • Send M6 commands will send the line as is to the controller. Grbl will refuse it with in error.
  • Ignore M6 commands will skip completely the M6 and will not send it to the controller. This is, more or less, what other senders are doing.
  • Manual Tool Change (WCS): bCNC will expand the M6 command to a tool change cycle, and in the end will re-adjust the WCS to match the new offset of the tool. It has advantages of being persistent between reset of the controller, however the WCS will always reflect the tool mounted on the spindle and no longer the workpiece.
  • Manual Tool Change (TLO): bCNC will expand the M6 as before and instead of setting the WCS will set the TLO variable of Grbl to match the difference in offset between the tool you did the calibration and the new one. This is the standard way of working on big machines were the WCS reflects the piece mounted and not the tool. However you would need to have a calibrated "probe" tool that gives you always the same reference. The TLO will be lost on reset of the controller.
Clone this wiki locally