Custom Mach 4 ATC User Interface

Hi all! My Mach 4 ATC Screen Set (and code) is ready to use! I’ve been testing and working on it for a few months, and it seems quite stable. Jason Parker also has been testing it, and gave me a lot of great feedback that I incorporated.

Here’s a video with details on how to download it, install it, setup input/output pins, setup tool pockets/forks/stations, and do some tests before going full speed. It’s “open source” and free.

My goals:

  • Easy setup UI, no coding or macro editing required
  • Non-fixed positions; any tool number can be in any pocket. Tool 1 doesn’t have to be at tool station 1.
  • Support manual tool changes for things not in the rack; this works, but it could be better.
  • Estop support: Most M6 scripts would fail badly if you e-stop in the middle; mine will usually exit gracefully due to error checking.
  • Easy fetching and “put back” for tools via buttons
  • Fix Avid’s touch plate to allow any ATC tool to be used to touch off your material with the touch plate
  • Fix the screen layout to be more intuitive and better. Stuff you always want to see is always visible, and commonly used buttons are closer together (Enable and Home)
  • Optional Case Pressurization and/or fan relay control
  • Optional Pressure check input, to avoid doing a tool change if there is no air pressure

Things to do:

  • Have “Put back” put an un-assigned tool into an empty pocket, if available
  • Make the manual tool change process better
  • “Touch Off” to auto-measure any tool when freshly put in a holder
  • Optional “Touch off” on each tool change, to check for breakage

In the next video…which I’ll release as soon as I can…I’ll talk about setting up a ‘master tool’ and tool heights, along with post processor setup.

A few screen shots:

UI for setting up tool pocket positions; you will use this once when you setup the ATC tool rack:

ATC Tools setup tab: this is the mapping from a particular tool pocket/station to a particular tool number. It also allows an easy way to set tool heights (copied from Mach 4’s screen):

The Main Program Run UI, with the modifications I mentioned above.



Thank you for taking your time to put all of this together for the rest of us! This set of videos has been quiet informative and I’m sure I’ll be watching them again when I finally upgrade the spindle.

1 Like

I love this interface! Where can I download it?

Yeah! click through on the video to get more info, but here is the download: Releases · corbinstreehouse/Mach-4-Avid-CNC-Customizations · GitHub

And also read the directions here:


Thanks Corbin! I just saw your reply in my other thread. I think i’m going to start playing with this UI and see if it can simply things for us. It looks fantastic so far after watching your video!

1 Like

Hey there @corbin, Is it possible to copy my current tool positions into your interface? Since I have a working M6 I would rather not go through all that again.

Yup! Just go through the setup, like I describe in the video and directions, but instead of jogging to the position, you just type it in the DRO for the pocket.

1 Like

cool, thank you for the quick response.

1 Like

@corbin Hey there, I was curious if you have got the touch off using the Avid touch plate (or by any means) working. I finally got around to setting up your screen set – awesome by the way – and I am needing to retouch off my tools.

So, the touch plate works to set the z-zero for your workpieces (I have a work around). I heard the latest Avid release of mach 4 fixed the issue of it crashing when you have a tool height set, but i haven’t tested that.

I haven’t done any automatic tool height setting. I do use the touch plate to set some tools. In general: 1. Z-zero with a tool that has a proper height set (or the ‘master’ tool). 2. Put in the new tool, manually jog down till the touch plate light comes on. In the UI, hit “set tool length” using 1" as the length. The Z-height should then say 1", and you can jog the z off the plate.

ah, cool. thanks for the quick response once again. I can’t wait to a ShopSabre style tool touch off… both for new tools and for z offset after resurfacing my spoil board.

Quick question… I don’t need to retouch any tool but the master after fly cutting the spoil board, do I?

Once you set a tool height, you don’t have to ever reset it…unless you remove it from the collet (obviously!) or you think it has a ton of wear. You also don’t really have to use a master tool anymore; you can make sure whatever tool is active (make sure the height is active), and then you can use it with your touch plate to touch off the Z for your workpiece (or spoilboard).

You would probably only have to to re-touch the z-zero of the Z on your spoilboard if you are saving that spoilboard Z-origin in an offset and using it. If you are doing that, then after you resurface it, then yeah, you’d need to re-touch off the z-zero.

Make sense?

1 Like

Perfectly, thank you again!

Two exceptions:

  1. Your ATC has some variance in how far in it pulls the tool holder (did you run your warmup program? Is your air at the same PSI as yesterday?)

  2. Someone lets monkeys into your shop and they rearrange your tool holders without telling you.

Bonus points if you’re the monkey.


I use one work offset to set Z with the touch plate on the reference tool, then switch to another to do the same for the other tool. Then switch back to the first work offset, set the Gage Block Height to 2" in the ATC Tools tab of your screenset, and click Set Tool. This works because the Avid touch plate script backs off to 2" after touching off.

Because I have very few tool holders, I’d like to figure out how to use a gage line approach (as described in section 3.6.2 of the Mach4 Operation Manual (from their manuals page)). All I have is the Avid touch plate, though. How do you get away from using a master tool if you might need to set up more tools in the future?

Oh yeah, that is a smart way to do it! The only thing to be aware of is any backlash in your z ballscrew; if you have backlash it will potentially set the height a little too big. I bet it is negligible on the z of an Avid CNC; I measured it at one point, but I forget if I adjusted for it.

Yeah, using the spindle as a reference is a good way to do it; I think my Tormach PCNC is setup this way.

Regarding the master tool: So, your first tool that you set the height for is your ‘master’ tool, and a lot of people use a precision steel dowel. It has a height of 0 (although, it could have almost any height you want). You then use it and a touch plate to set Z-zero on your table, and you can set the heights of your other bits. At that point, any other bit could be used to set the Z-zero on your table, and you don’t need the master tool anymore.

A lot of people seem to like the master tool because it’s height will never change. You could have a problem if you touch off your z with a bit that has slipped in the collet, or has worn enough to make it’s height change significantly. In practice, I don’t think this is really an issue.

Whenever I set the height of a new bit, I use whatever bit is in my spindle to find Z-zero, and then set the height of my new bit.

Sometimes I do find z-zero with my master tool (which is my Haimer, which I use for edge finding)…when I know I want more precision. I should do some tests to find out if it really makes a difference. I’ve been curious about this for some time, and also curious about the accuracy and repeatability of the Avid touch plate.

So, what happens if you break all your bits, and you have no master tool? Well, that doesn’t really matter…you have to start over anyways with setting all your bit heights, so you can pick anyone to be a master tool and go from there.

I use my master tool (steel pin) with the Avid edge detector too, because I know exactly what diameter it is and don’t have to worry about orientation.

Oh yeah, if you are using it for that, then that’s probably a good reason to always keep it in. So, even if you moved to the spindle offset method, you’d still have to have the steel pin in a tool holder.