Replies: 1 comment 2 replies
-
Yes, whe the in-build tool change routines are running the state is reported as
By "host controller" do you mean the sender?
The only documentation is for the internal tool change protocol (mode 0 - 3), ATC implementations will likely differ and since they are made by 3rd parties any documentation must be provided by them? For ATC implementations the M6 command is just like any other, either wait for the 'ok' response or until there is space in the input buffer before sending further commands. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I am currently studying the M6 tool change implementation in grblHAL, and I would like to clarify how the controller's reported state behaves during the different tool change modes.
From the documentation, I understand the functional differences between tool change modes 0–4 and the Automatic Tool Changer (ATC) mode. However, what I am specifically trying to confirm is the controller's internal state transition:
Core Questions on Controller State
Controller State: When an M6 command is executed, what is the controller's reported state? (i.e., Does it enter HOLD state, IDLE state, or remain in RUN state during the critical tool change procedure?)
Mode Differences: Does the state differ depending on the configured tool change mode (0–4 and ATC)?
Command Permissions in HOLD: If the state is HOLD, which G-codes / M-codes are allowed or restricted while the machine is paused? (For example: probing commands for tool length measurement, axis moves, spindle commands, coolant commands, etc.)
Reason for the Question (Workflow Integration)
My typical tool change workflow requires the following sequence:
Move the machine to a designated tool parking position.
Change the tool (manual/semi-automatic).
Perform tool length measurement (possibly using a probe - G38.2/G38.3).
Return to the previous machining position and resume cutting.
Since the validity of modal commands (like those needed for probing and movement) depends heavily on whether the machine is in HOLD or IDLE, knowing the exact state during M6 processing is critical for correct macro or host controller integration.
If there is a specific reference in the source code or documentation (e.g., a specific C file or Wiki section) that describes this state transition logic, I would appreciate being pointed to it.
Thank you very much for your time and support.
Beta Was this translation helpful? Give feedback.
All reactions