GRBL M6 Errors


Grbl, and likely your spindle, will not support automatic tool changing, and so you will see frequent tool change errors that will look something like the below.

The number after T, in this case, 2, is the tool number set up in the CAM package the G-Code was generated with and the M6 is the G-Code to instruct the controller to go and pick-up this tool.

In most cases, you can ignore this error by just hitting OK or if using a later copy of the sender it will not require input as the error just flashes up at the bottom of the screen before disappearing.  Then simply hit the start button again and GRBL will continue processing the G-Code as expected.

While you can use a regular expression in most G-Code senders (UGS for example) to simply ignore and TxM6 commands, its not a good idea.  Having the error come up is good for 2 reasons:

1- It reminds you that it might be the correct time to put in a different tool,

but most importantly

2- It will stop the job and let you know it found a tool change, which while ok and expected at the start of every job is not acceptable mid-way through a job!  

A change of tool will always require a reset of the Z zero height, as there is very little chance that you have secured the new tool into the collet at exactly the same Z offset as the last tool, and so you cannot hand a G-Code file to GRBL that has multiple tools in it.  If you were to see this error come up mid-way through a job, without saying as much it lets you know that you have exported multiple tool paths that also have multiple tools used in them – which is not acceptable with GRBL.  Multiple tool paths can be exported in one G-Code file but only if they are all using the same tool.  Again this is because you will need to reset the Z height after a tool change and you cannot do this while GRBL is in the middle of a job.

For this reason, you would not want to tell UGS or whatever G-Code sender to ignore the M6 commands, even though it may appear to be unnecessary to have to OK the error and restart a job, it’s much better than it not warning you of a tool change mid-way through a job and having a broken tool and ruined job as the result.  Imagine the first part of the job was designed for a delicate 1mm endmill and the second part a 6mm endmill, chances are whatever feed, speed and depths you selected for the second tool will immediately destroy the 1mm if the machine was to move on to this second part of the job before you had the chance to remove the 1mm tool and put the 6mm tool in!