I think ATCs are the coolest thing but I can’t justify buying one.
So, I had this idea where I could “pretend” to have/be an ATC. This is wildly unnecessary and probably dumb but that never stopped me before.
That starts with being able to use M6 commands for tool changes. Right now, we add gcode from the milling basics page for tool changes that handles pauses and probing for manual tool changes. That wouldn’t go away.
FluidNC supports M6 macros on spindles. So, if you call something like M6 T1
, it can call a macro to perform the tool change. The goal is to move that custom manual tool change gcode from the gcode to the macro. So, the CAM software just needs to add the M6 command.
ATCs also have a tool setter to automatically set the height after a tool change. FluidNC supports this for manual tool changes without an ATC through an “atc_manual” configuration. However, I don’t want to use a bit setter because I don’t want to run a wire from it to the controller. Also, then I can’t use the M6 macros I need to do the other ridiculous things I’m getting to.
Ok, Jason. Where are you going with this?
Well, here’s a concept of a pretend ATC magazine that I whipped up in MillMage:
Picture that in your spoilboard. It would go something like this:
- Place the tools as defined in CAM in their appropriate slots.
- Run the job.
- For now, let’s assume we installed the first tool T1 and probed to set Z. I haven’t sorted out the starting tool details in my head yet.
- Run the job.
- It gets to a tool change and calls
M6 T2
. That triggers the M6 macro to run. It does the following:
- Stores the current position
- It sees that we haven’t gotten an offset for the “probe” section in the pretend magazine yet, so it moves to the probe position and pauses. You attach the probe and resume. You probe and it pauses. You remove the probe. This won’t be necessary for any more tool changes.
- Moves to the position in the pretend ATC magazine for T1 (currently empty) and pauses
- You remove the tool, put it back in the slot, and resume. (In the spirit of the LR3 instructions, you should make robot noises while doing this)
- It moves to the position of the tool it needs to change to and pauses
- You add the new tool and resume (more robot noises)
- It moves to the probe section and pauses.
- You attach the probe and resume.
- You probe and it pauses. It figures out the new Z based on the offset it figured out for the first tool.
- You remove the probe and resume.
- It moves back to the stored position and continues.
The idea here is that it should be intuitive. If it moves to an empty tool slot, it wants you to remove the current tool. If it moves to a non-empty tool slot, it wants you to add that tool. If it moves to the probe position, it wants you to probe.
It would be nice if the pretend magazine area also included a button for resuming. Or even have a display to show messages.
How far have I gotten with this?
Not far. But, I do have M6 macros set up on my pen plotter that does automatic pen changes so I at least have some idea what that part looks like.
I did create a config and verify that I can get M6 macros to run even though I don’t have a spindle. It required me to add a spindle section. Trying to put “m6_macro” under “NoSpindle” didn’t work. So, it is tied to a pin that’s not hooked to anything:
pwm:
output_pin: gpio.27
pwm_hz: 50
m6_macro: $SD/Run=_m6.gcode
I just moved my LR3 out to my new workshop finally. I’m looking to build a new (smaller) table and upgrade to the LR4 so I’m just thinking through what I want to do.
Thoughts?