Difference between revisions of "Changing Tools"

From Jubilee
Jump to navigation Jump to search
Line 10: Line 10:
 
* machine is homed
 
* machine is homed
 
* carriage is empty (not holding onto any tools)
 
* carriage is empty (not holding onto any tools)
* machine is at some arbitrary starting location ''(a,b,c)''
+
* machine is at some arbitrary starting location
 
* user (or program) has just issued a '''T0''' command
 
* user (or program) has just issued a '''T0''' command
 +
 
====Behavior:====
 
====Behavior:====
 
# The machine rapids to the ''pre-pickup position'' for tool 0. This position is directly behind tool 0's parking location by about 10mm. This point is defined such that the carriage can freely move in ''x'' without crashing the twist lock pin into any other tools on the rack.
 
# The machine rapids to the ''pre-pickup position'' for tool 0. This position is directly behind tool 0's parking location by about 10mm. This point is defined such that the carriage can freely move in ''x'' without crashing the twist lock pin into any other tools on the rack.

Revision as of 20:46, 4 July 2020

Overall Behavior

GCode Commands

Picking up a tool change from GCode is one command. It is simply a T<x> command where <x> is the index of the tool you would like to pick up. If the carriage is currently holding onto a tool, that tool is first parked before picking up the next tool. Assuming you have set tool offsets for all of your tools, whenever a tool has been picked up from the parking post, the motion system will adjust its reference point such that all position commands are relative to the tip of the current tool.

Parking a tool is also one command. It is simply T-1. Once the carriage parks the prior tool, the motion system will adjust its reference point such that all position commands are relative to the trigger point of the Zprobe on the carriage.

Picking Up and Parking a Single Tool

Starting State:

  • machine is homed
  • carriage is empty (not holding onto any tools)
  • machine is at some arbitrary starting location
  • user (or program) has just issued a T0 command

Behavior:

  1. The machine rapids to the pre-pickup position for tool 0. This position is directly behind tool 0's parking location by about 10mm. This point is defined such that the carriage can freely move in x without crashing the twist lock pin into any other tools on the rack.
  2. The machine saves the pre-pickup position in a save slot.
  3. The machine moves forward in y until the twist lock is inside tool 0's wedge plate and the coupling pins are approximately contacting the tool balls on tool 0.
  4. The machine engages the lock. The twist lock rotates until it reaches the torque limit. The tool coupling points are pulled into contact, and the tool is considered locked.
  5. The machine retracts the tool by moving backwards in y until the tool is released from the parking post.
  6. Tool offsets for tool 0 are now in effect. All future commands with the tool loaded will be relative to the current tool tip.
  7. The machine restores the tool pickup position. This behavior causes the tool to move such that the tool tip is now at the same point in space as the Zprobe trigger point when the position was saved. The machine gantry and bed will move to create this effect.
  8. The machine is now ready to process subsequent GCodes.

Swapping Between Tools

Restore Positions

Why do they matter?

Implementation

Duet2/3

Duet 2 and Duet 3 boards use the built-in tool change macros to implement the behavior specified above.

Klipper

In the works!