Automatic tool changer

The FluidBoard supports pneumatic tool turrets — the kind used on production CNC lathes. Call M6 and the turret indexes to the right tool, applies the correct offsets from your tool table, and you're cutting again. No hands on the machine.

How it works

When you call a tool change (T3 M6), the FluidBoard runs an automated sequence:

  1. Retracts to a safe position — the controller knows whether the current tool is an outside tool (turning) or an inside tool (boring) and retracts in the correct order to avoid collisions
  2. Disengages the turret coupling — releases the pneumatic lock
  3. Indexes to the target position — rotates the turret to the new tool slot
  4. Engages the coupling — locks the turret in place
  5. Applies tool offsets — loads X, Z, and radius from the tool table

Outside tools retract X first, then Z. Inside (boring) tools retract Z first to pull out of the bore, then X. This prevents crashes that would happen with a naive retract sequence.

The retract order is decided by the tool that is currently loaded, not the one you are changing to. That is why the tool types in the configuration have to be right for every slot: a boring bar marked as an outside tool will be pulled sideways through the wall of the bore.

Pressure check

If you enable the pressure sensor, the controller checks pneumatic line pressure before starting a tool change. If pressure is below 2.7 bar, it waits until pressure is sufficient. This prevents tool changes with inadequate clamping force.

A tool change that never finishes is therefore usually an air problem, not a firmware problem. Check the compressor, the regulator setting and the sensor wiring before anything else. We recommend enabling the sensor on any machine where the compressor is shared with other tools, because a drop in pressure during a change is exactly when the coupling fails to lock properly.

Configuration

pneumatic_tool_turret:
  safe_x: 88.867
  safe_z: 0
  offsets_per_revolution: 80
  tool_offsets: 0 10 20 30 40 50 60 70 8 18 28 38 48 58 68 78
  tool_types: "OOOOOOOOIIIIIIII"   # O = Outside, I = Inside
  safety_margin: 5.0
  use_pressure_sensor: true

Reference the ATC from your spindle configuration:

odrive:
  atc: pneumatic_tool_turret

What the keys mean:

  • safe_x, safe_z — the position the turret retracts to before it unlocks and indexes. Pick a spot where the largest tool in the turret clears the chuck, the jaws and the tailstock at every index position, not just the current one.
  • offsets_per_revolution and tool_offsets — tool_offsets lists, in tool number order, where each tool sits on the turret, counted in index positions out of offsets_per_revolution for a full turn. In the example, tools 1 to 8 are 10 positions apart and tools 9 to 16 sit between them.
  • tool_types — one character per tool, in the same order as tool_offsets: O for outside tools, I for inside tools. This drives the retract order described above.
  • use_pressure_sensor — enables the pressure check.

Keep the number of entries in tool_offsets and the length of tool_types the same, and keep them in sync with the turret: if you move a holder, update both.

The turret state (current position, loaded tool) is saved by state persistence, so it survives power cycles.

Wiring diagram not available. View SVG

The ATC requires an ODrive spindle for CAN bus integration. The turret uses the C axis for indexing.

Commissioning

Do this with no stock in the chuck and the tools removed or well clear of anything they can hit.

  1. Air first. Connect the air supply and check the regulator. With the pressure sensor enabled, confirm a tool change waits when you close the supply and continues when you open it again.
  2. Check the coupling outputs. Jog the machine to the safe position and trigger a change. Watch and listen: the coupling should release before the turret rotates and lock after it stops. If the turret tries to turn while still locked, stop and check your relay wiring.
  3. Verify the safe position. Jog by hand to safe_x/safe_z and rotate the turret through every position, with your largest tools mounted. Nothing may touch the chuck or tailstock.
  4. Walk through every tool. Call T1 M6, T2 M6 and so on, and check that the holder that comes to the cutting position is the one you expect. A wrong holder means tool_offsets is out of order.
  5. Check the retract order. With a boring bar loaded, position it where it would be inside a bore and change tools. Z must come out first, then X.
  6. Touch off. Set the offsets for each tool as described on the tool table page. The turret only puts the tool in place; the tool table is what makes the controller know where its tip is.

Troubleshooting

Symptom Likely cause Fix
Tool change stalls before indexing Air pressure below 2.7 bar, or sensor not connected Check compressor, regulator and sensor wiring
Wrong holder comes up tool_offsets order doesn't match the turret Walk through each tool and correct the list
Boring bar drags against the bore wall on a change Tool is marked O instead of I Fix tool_types for that slot
Tool hits the chuck while indexing Safe position too close Move safe_x/safe_z further out
Correct holder, but cuts are off by a fixed amount Offsets not set for that tool Touch the tool off again

Safety

  • A turret indexes with real force. Keep hands out of its reach whenever the machine is powered and air is connected, and remove air pressure before changing holders.
  • Run any new program with tool changes in air first, with the tools well clear of the stock.
  • Wire an e-stop within reach of the turret before you commission it.
Copyright (c) 2024 by NubiloSoft, all rights reserved.
Accepted payment methods