I’ve open sourced the code that drives my CNC tool changer and put it up on Github as scottlaird/cncatc. At the moment, it’s just an Arduino project (a single .ino file, basically C++) that probably isn’t useful to anyone but me, but I’m planning on cleaning it up a bit and extending it to cover other bits of the tool changing infrastructure.

Things that I’d like to add soonish:

  • A couple weeks of pending bug fixes, which somehow weren’t in the repo that was pushed to Github.
  • A wiring diagram, explaining how it wants to be wired up.
  • Increased modularity, moving tuning constants (and possibly sensor enable/disable settings) to the Arduino’s EEPROM.
  • Adding a usable serial interface with something API-ish that CNCjs can talk to.
  • My CNCjs tool change macros.
  • Code for my “smart” tool rack that I’m working on assembling. It’ll connect via USB and be able to report back to CNCjs which slots are occupied and which are empty.

I haven’t put much time into tool-changer work over the past few weeks. I’ve been trying to finish assembling my CNC and getting it ready for use. So instead of a garage full of slightly broken plywood ATC tool trays, I now have a garage full of aluminum chips. I milled a new mounting plate for my spindle, and I’ve been milling a 1400x1000mm aluminum base plate for the CNC. Those are almost done now, so I’ll be able to spend a bit more time on the tool changer again.