How to use tool change?

Difference between Fixed Tool sensor and Movable sensor:

Fixed Tool Sensor: Used for measuring ‘Tool Offset’. Gives us position of the tool tip in absolute coordinates. Always at fixed position.

Movable Sensor: For setting ‘Offset Current Z’ at the top surface of work material. Gives us relative coordinates. You can move it around
the table, it doesn’t have fixed position.

Through whole machining process, we can machine our work piece with just one tool or we can machine it with many tools. Meaning, we can generate G-code,
that will include tool change operations.

Tool Change procedure with Fixed Tool Sensor tutorial

The purpose of this tutorial is to clear out some facts about tool change, and to demonstrate tool change procedure during machining of an actual workpiece using Planet CNC software and Planet CNC controller.

In the beginning we will determine how we want to machine our workpiece, and base our settings configuration on it.

But first we will describe and clarify Tool Change feature settings.


If you click File/Settings you can see there are four feature settings using word tool. Tool table, Tool change, Tool change ATC and Tool sensor.


Tool Change ATC feature will not be described and used in this tutorial. This will be learning content in upcoming tutorial.

In this tutorial we will focus mainly on Tool Change settings.

Tool Change settings are located in File/Settings/Tool Table/Tool Change.


Tool Change settings are divided into three setting groups: Tool change, Tool offset and Position. We will describe individual settings of each group.

Tool Change settings group:

Here we set how we want our machine to “behave” during Tool change.


Enable: This enables tool change procedure.

Z Axis First: Usually you want to move Z axis first, before X and Y.

Stop: Machine will stop at tool change position and will not resume. In this example we don’t want this.

Pause: Machine will pause at tool change position. During this pause we will manually change tool.

Pause For Spindle: Machine will pause after cutting (before tool change). During this pause we can turn off spindle manually. Second pause is before cutting (after tool change). During this pause we can turn spindle on manually.
If spindle is controlled through controller then this pause is not needed.

Skip Already Active Tool: If tool with number N is already mounted then TN M6 g-code will be ignored and tool change will not occur.

Reset Active Tool: Resets currently active tool at beginning of program. This will set active tool number to 0.

Use Default Tool: If G-Code tool numbers are not in the tool table an error is reported. This option avoids this
error. Default values from tool with number 0 are used instead. When tool 0 is not available, all 0
parameters are used. This option is useful, to load G-Code from another machine without error.

Auto Return: This depends on your g-code. By g-code standard g-code return moves should be in g-code program but are often not.
Here is example:

This is correct g-code:

G01 X0 Y0(start position)
G01 X10 Y0(cut to X10 Y0with first tool)
T2 M6 (change tool tool with auto return off)
G01 X10 Y0(return to last position)
G01 X20 Y0
G01 X30 Y0

This is wrong but often used:

G01 X0 Y0(start position)
G01 X10 Y0 (cut to X10 Y0 with first tool)
T2 M6 (change tool with with auto return on)
(no need for G01 X10 Y0 line because of auto return)
G01 X20 Y0
G01 X30 Y0

Auto Compensate: By g-code standard G43 offset will not change if tool is changed. If this option is enabled and G43 is active then it will automatically adjust to changed tool.

Tool Offset settings group:

We define if Tool Offset will be set or measured for each newly changed tool.


Not Used: Tool offset will not be measured.

Measure Tool Length: After tool change, tool length offset is measured using fixed tool length sensor.

Tool Offset From Tool Table: After tool change, tool length offset value is “taken” from tool table. This is often used with ATC where tool length offset is known in advance.

Position settings group:

We define position coordinates of tool change.


Not set: Position of tool change will not be set, machine will pause when tool change occurs.
Machine waits at position where certain tools tool-path ends.

From Tool Table: Position defined in Tool Table under Tool Change. Each tool in tool table has its own position. This is often used with ATC where each tool has its own position in tool magazine.

At Park 1 Position defined at Park 1 coordinates.

At Park 2 Position defined at Park 2 coordinates.

At G28 Position defined at G28 coordinates.

At G30 Position defined at G30 coordinates.

User defined: User defines position coordinates. With ‘Abs’ option we select if this coordinates are absolute or relative.

Z Axis only: If any of previous tool change positions is set and ‘Z Axis Only’ is enabled, machine stops at position where certain tools tool-path ends and ascends to Z coordinate value of tool change position previously selected.
(Z coordinate value of Park1, Park 2, G28….)

Tool sensor feature settings

After each tool change, we need to measure tool offset. For this purpose we use fixed tool sensor. It was already explained how to set sensor, however there is a feature that comes handy when we try
to avoid and prevent the tool from crashing into fixtures on table.

Move feature has two values. XY values are offset coordinates that “tell” the machine from which initial point machine moves further to Fixed Tool Sensor location.

This helps us to determine machines travel path when moving to Fixed sensor position.


NOTE: We will use two tools throughout the whole machining process. One for rough mill (T1) and one for finish mill (T2). We will start with T1.
Because we have tool T1 already mounted in spindle, we don’t need the tool-change procedure in the beginning of our program. Therefore we enable Skip Already Active Tool feature that does exactly that.

Now we click Tools-Select button in toolbar and click Tool 1.

In left bottom corner can now be seen which tool is currently active.

Controller is now aware that Tool 1 is our active tool and that there is no need for T1 tool change in the beginning of the program.

If you did not create tool list in Tool Table, then you can use MDI. Type M61 Q1, and your active selected tool is T1.

These steps are in the same order as in video:

1. Homing.

2. Measure Tool offset with fixed tool sensor.

3. Set Current XY offset.

4. Measure Current Z offset with Movable sensor.

5. Start Spindle and begin cutting.

6. Pause to turn spindle OFF.

7. Pause to change tool.

8. Measure tool offset for second tool.

9. Pause to turn spindle ON.

10. Turn spindle off when cutting is finished.

This is the final configuration of Tool Change settings which reflects our desired machining process: