# ATC Tool Fork Setup Screen

**URL:** <https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757>\
**Category:** General Chat\
**Created:** [February 24, 2023, 2:30am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757 "2023-02-24T02:30:52Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 24, 2023, 2:30am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/1 "2023-02-24T02:30:52Z")

</div>

I’m working on a new screen tab for setting up ATC tool fork positions and orientation. It saves and loads them from a new file adjacent to the ToolTable.tls, and the M6 routine will just look up positions here. My plan is to have each tool store it’s current ToolFork position, so any tool number could be used in any particular tool fork.

Currently I have the UI worked out, and I need to do some testing on my actual machine.

 ![Capture](https://canada1.discourse-cdn.com/flex027/uploads/avidcnc/original/2X/5/538658fc1382225a94e2cfbaf3696b71d5e7ee53.png)

---

<div class="post-metadata">

**Author:** ![davinciwoodworking](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/davinciwoodworking/32/1163_2.png) [@davinciwoodworking](https://forum.avidcnc.com/u/davinciwoodworking)\
**Post date:** [February 24, 2023, 3:34am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/2 "2023-02-24T03:34:16Z")

</div>

That is very cool, thank you for sharing.

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 24, 2023, 6:27am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/3 "2023-02-24T06:27:54Z")

</div>

You know the S30 is grounded, right? All you have to do is connect a magnet and wire between your touch plate (not the ground wire already attached to it from the factory) and the tool you want to locate and then you just do a boss probe of the HSD.

Much quicker and nearly perfect location mapping.

Of course if you have a real probe its even better but the S30 will complete the circuit without the ground wire from the plate.

---

<div class="post-metadata">

**Author:** ![Eric](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/eric/32/3220_2.png) [@Eric](https://forum.avidcnc.com/u/Eric)\
**Post date:** [February 24, 2023, 12:54pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/4 "2023-02-24T12:54:03Z")

</div>

> [@corbin](#):
>
> I’m working on a new screen tab for setting up ATC tool fork positions and orientation. It saves and loads them from a new file adjacent to the ToolTable.tls, and the M6 routine will just look up positions here. My plan is to have each tool store it’s current ToolFork position, so any tool number could be used in any particular tool fork.
> 
> Currently I have the UI worked out, and I need to do some testing on my actual machine.

Really glad you are here @corbin. I saw this thread over on the FB user group too. Really nice looking work. I assume you know Jason Parker too? He’s done a ton of work on ATC/Mach setups.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 24, 2023, 1:47pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/5 "2023-02-24T13:47:42Z")

</div>

> [@Eric](#):
>
> Really glad you are here @corbin. I saw this thread over on the FB user group too. Really nice looking work. I assume you know Jason Parker too? He’s done a ton of work on ATC/Mach setups.

Thanks Eric! Yeah, I have chatted with Jason a bit over on FB, and I read through his ATC setup document – he did a great job!

I’m hoping to create something generic enough to allow anyone to easily setup and use an ATC without having to edit code. I’d be more than happy to give it to Avid to use when I’m done.

Currently I’m working on a Tool setup tab. It’ll allow one to map which tool fork has which tool, and easily load, fetch and (eventually) touch off the tool height when needed.

Corbin

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 24, 2023, 1:53pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/6 "2023-02-24T13:53:52Z")

</div>

> [@subnoize](#):
>
> You know the S30 is grounded, right? All you have to do is connect a magnet and wire between your touch plate (not the ground wire already attached to it from the factory) and the tool you want to locate and then you just do a boss probe of the HSD.

Oh, that’s a good idea!! I’m using a HITECO spindle - I’ll have to check if it is grounded (it probably is) and see if this works. I think that could help with automatic tool height setups. I’m not sure how it could help with the tool fork setup though.

---

<div class="post-metadata">

**Author:** ![Eric](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/eric/32/3220_2.png) [@Eric](https://forum.avidcnc.com/u/Eric)\
**Post date:** [February 24, 2023, 2:21pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/7 "2023-02-24T14:21:24Z")

</div>

I’d love to see this develop and help where I can. We could make a Wiki here if you wanted too.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 24, 2023, 2:35pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/8 "2023-02-24T14:35:48Z")

</div>

I’ll definitely post updates - particularly when I think it is ready to be released. Thanks!

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 26, 2023, 2:12am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/9 "2023-02-26T02:12:26Z")

</div>

(Posted to the FB group too, in case you are over there).

 ![2 - tool page](https://canada1.discourse-cdn.com/flex027/uploads/avidcnc/original/2X/5/53ca3c31418f54f8ad3e79a524febb93cd0279e0.png)

The second tab here is the Tool Setup; this is where you map the tool forks to the actual tools. The UI is dynamic; there will be a row for each tool fork that you previously setup. The current tool (in the spindle) is in green. The tool description can be updated inline. The “fetch” button will fetch to a pre-determined location – I need to add UI to set that. “Touch Off” will allow you to re-touch it off the height of the tool. I haven’t worked out quite how I want that to work – it would be nice if it worked with a permanent touch off spot, and it would be nice if it also worked manually with the Avid Touch Plate but adds some assistance to doing it.

Anything I’m missing that I should add?

I haven’t done testing on my actual machine yet…but soon.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 26, 2023, 2:12am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/10 "2023-02-26T02:12:53Z")

</div>

I do plan to add some manual touch off abilities to this page. That’s what the empty right side will be for

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 26, 2023, 2:54am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/11 "2023-02-26T02:54:08Z")

</div>

> [@corbin](#):
>
> this is where you map the tool forks to the actual tools

I am a bit confused, sorry. Maybe it’s calling them “forks” that is confusing. Mach4 uses the industry term “pocket” to represent the tool holder in the Tool Table.

In Mach4 we then query the pocket for the tool by doing the following;

```auto
local currentPocket = mc.mcToolGetData(inst, mc.MTOOL_MILL_POCKET, currentTool)

```

Are you doing something different? I do apologize if I missed something.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 26, 2023, 3:15am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/12 "2023-02-26T03:15:43Z")

</div>

> [@subnoize](#):
>
> I am a bit confused, sorry. Maybe it’s calling them “forks” that is confusing. Mach4 uses the industry term “pocket” to represent the tool holder in the Tool Table.

Really!!?? I can’t find anything about the industry calling them pockets. Do you have any info on that?

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 26, 2023, 3:17am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/13 "2023-02-26T03:17:41Z")

</div>

> [@subnoize](#):
>
> I am a bit confused, sorry. Maybe it’s calling them “forks” that is confusing. Mach4 uses the industry term “pocket” to represent the tool holder in the Tool Table.

(hit reply early)

I do see that field in Mach 4 - documentation is a bit light, so I had no idea it was there, and what it was for. I’d much rather use something that is industry standard. I picked the name “tool fork” because I thought that was what people called them.

Problem with the tool table is that someone could set Tool 1 and Tool 2 to both use Pocket 5. What happens then?

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 26, 2023, 4:38am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/14 "2023-02-26T04:38:08Z")

</div>

> [@corbin](#):
>
> Really!!?? I can’t find anything about the industry calling them pockets. Do you have any info on that?

Yeah, its a thingy you learn after being around enough CNC machines. Just to get a fence around the nomenclature;

Tools go into “Pockets” for storage. A pocket is a “place” and not the thing that holds the tool. If its a static setting or location like in your project, there will be a “Post” or “Column” (or even “Mount”) which will have a “Tool Holder Clamp” attached to it. I have heard people use the term “fork” to refer to the clamp which is why I had to ask. The clamp is what adapts the post to a particular “Tool Holder.” An example of a “Tool Holder” would be a ISO30 or a BT30. From there you have collets and the rest which I am sure you already know.

> [@corbin](#):
>
> I do see that field in Mach 4 - documentation is a bit light, so I had no idea it was there, and what it was for. I’d much rather use something that is industry standard. I picked the name “tool fork” because I thought that was what people called them.

No problem! I am kind of a stuffy individual and maybe spend a little too much time on nomenclature if you didn’t notice 😁

Mach4 Hobby documentation is sparse at best… Industrial isn’t any better.

> [@corbin](#):
>
> Problem with the tool table is that someone could set Tool 1 and Tool 2 to both use Pocket 5. What happens then?

Yep, fun stuff! This is referred to as “breakage/verification.”

You pick up the tool and you move over to the tool length sensor and you measure it. This is to A) check if the tool is broken and/or B) if you have the wrong tool in the pocket.

This is also why tool length sensors have two stops (triggers). One being the length and one being the error or overdrive (e-stop usually so you don’t break the machine or sensor).

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 26, 2023, 5:01am UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/15 "2023-02-26T05:01:09Z")

</div>

This is to show you I didn’t just make it up 😛

Here is a nice example ATC system for an industry standard machine like the Haas, a 30 pocket carousel;

[![](https://canada1.discourse-cdn.com/flex027/uploads/avidcnc/original/2X/a/a7149b2498a8e246d8408e7a1f3080d4adc01734.jpeg "The New Haas 30-Pocket Side-Mount Tool Changer") ](https://www.youtube.com/watch?v=X4kU8qSvYWk)

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 26, 2023, 2:06pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/16 "2023-02-26T14:06:56Z")

</div>

Awesome - thanks for the info - I’ll have to rename it to “Pocket” in the UI, but I’ll probably leave the code using the Fork terminology, just because I don’t feel like do a bunch of global renames. I picked “Tool Fork” because that is what the “Tool Holder Clamps” seem to be called, and Tormach called them forks in one of their videos on setting up the ATC.

Breakage/verification - yeah, I was thinking of adding in something exactly like what you are talking about, as I have seen that before on other systems.

Lacking verification, I’d have to enumerate all the tools use to see if another tool uses the same pocket. It’d be bad if an M6 T5 happened when T4 was in the pocket already or the user forgot to swap them out. I could probably mange it in UI, by doing it in code whenever a tool was removed from a pocket.

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 26, 2023, 4:57pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/17 "2023-02-26T16:57:27Z")

</div>

> [@corbin](#):
>
> I don’t feel like do a bunch of global renames

I can understand.

In your defense, you were working from that awful tool changer scripting from the “Mach4 Scripting Guide’” which when you started the tool pocket position lookup and it just went downhill from there 🤯

You rightfully were like, “wait a minute, this doesn’t make sense as I have more tools than just the ones in the pockets!”

It is a good example of reading in a file but not a good example of a M6 and it never even considers pockets.

> [@corbin](#):
>
> I could probably mange it in UI, by doing it in code whenever a tool was removed from a pocket.

And now you are committing the cardinal sin in UIX 😬

What’s the saying? “Make it idiot proof and somebody will make a better idiot.”

Until you can figure out a way to stop people from walking over and moving tools around you are just creating more work for yourself.

Remember that most systems return the last tool to the pocket it just pulled the new tool from. So the tool will migrate around the carousel as it is used. In my carousel I do not have a loader arm and the tool holder clamp is what captures the tool holder directly so I did not implement that function.

Now, that said, the chain-magazine design I started with does in fact operate in that manner. But it also had a loader function. In that case (kind of like the Doosan) you actually load the tool by hand into the spindle and it places it for you in the magazine. Since you can’t access the magazine directly accept by take the housing off you can keep those silly humans from blowing themselves up.

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 26, 2023, 6:24pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/18 "2023-02-26T18:24:49Z")

</div>

Out of interest, have you started an M6 and then hit the e-stop yet?

Try the M6 and then Free Hold, Stop and disable the machine as well. So start the M6 and as soon as the machine starts moving hit any of those buttons.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 26, 2023, 7:49pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/19 "2023-02-26T19:49:47Z")

</div>

I wrote an M6 script; most the logic is in a module. I’m working on setting up my tool rack right now, so I haven’t done any testing. I’ll be testing those things though…I don’t want to e-stop and drop a tool because I didn’t handle the result code right.

---

<div class="post-metadata">

**Author:** ![subnoize](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/subnoize/32/2197_2.png) [@subnoize](https://forum.avidcnc.com/u/subnoize)\
**Post date:** [February 26, 2023, 8:34pm UTC](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757/20 "2023-02-26T20:34:28Z")

</div>

> [@corbin](#):
>
> I’m working on setting up my tool rack right now, so I haven’t done any testing. I’ll be testing those things though…I don’t want to e-stop and drop a tool because I didn’t handle the result code right.

I have to admit that after 5 years of working on this very problem there are still edge cases where I would be happy just dropping a tool.

Good luck.

PS. Do feel free to ask me questions. I don’t have “all” of the answers, obviously. But I can help with some of the odds and ends that I have already discovered.

[Next page](https://forum.avidcnc.com/t/atc-tool-fork-setup-screen/1757.md?page=2)
