Tool Controller


This Tool Controller section should be considered a “strawman,” to be fleshed out collaboratively.

The Tool Controller (TC) sits at a level parallel to the Robot Controller (RC) in the architecture.

The TC is similar to the RC in some respects. The RC is responsible move the End-effector Platform (EEP) into position to perform work. To do this it may take input from sensors (assumed to be position encoders) and commands up to six motors via g-code. It uses RepRap standard controller components—e.g., Arduino Mega and RAMPS, Printrboard or Megatronics. The TC is a somewhat more general controller that can accommodate a greater range of sensors, including audio-visual (A/V) equipment, and can actuate up to six motors, using the medium of three USB 3.1 Type-C cables—one attached to each of three Auto-Tool-Changer (ATC) ports located on the EEP. It can also communicate with simpler tools using USB 2.0. Three of these are also attached to the ATC, terminating at the tool in a USB Micro connector.

As with the RC, it supplies G-coded instructions to effect tool behavior.

In addition, the TC can source power both for operation of the tool and for charging the batteries of battery-operated tools. With its full-featured (PD 2.0 and above) USB Type-C interface, can source up to 20VDC at 5A (100W) of power.


The TC is responsible for controlling the activities of the tool, including providing tool power, and signaling the tool for the proper spindle speed, rotation/translation of any positioning apparatus the tool may have; lubrication control (flooding/misting); camera focus, pan, zoom and lighting; sensor data relaying; etc. It is not responsible for positioning of the tool itself in relation to the workpiece. That responsibility is the RC’s.


Tool Controller Circuit Board:


The robot-side TC circuit board (TC-RS) contains four USB Type-C sockets, power transistors or solid-state relays for handling power switching, a microcontroller and memory. It provides a switchable power source of up to 100W (20V/5A) to the tool-side TC, using USB 3.1’s Power Delivery 2.0 protocol. It may also use Alternate Modes for vendor-specific protocols.


The tool-side TC circuit board (TC-TS) resides on the tool. At minimum, it is a simple “responder” to a 1-Wire signal, delivered via USB, requesting its Tool ID.

The minimum TC-TS responds with its ID from a small memory store on the device. The ID is passed to the Workstation Controller (WC) and used to lookup device capabilities.

Devices requiring power, obtain it via negotiation between the TC-RS and TC-TS. The negotiation is as described in the USB “Power Delivery Specification 2.0.” From this interface, the TC-RS delivers a regulated +5V at 2A and can deliver +12V, and +20V at up to 5A as needed by the tool. A tool requiring other voltages for operation must derive these tool-side from the voltages available.

Upon receiving the tool’s ID during the docking stage, the TC consults its Tool Database (TDB), resident on the Production Controller (PC). The information available therein allows the TC-RS to configure its pins to provide the appropriate power and signaling protocol.

Tool Control Power & Signaling

Signal                      From                 To                         Via

5VDC                     TC-RS               TC-TS                  USB Type-C

12VDC                   TC-RS               TC-TS                  USB Type-C

GND                       TC-RS               TC-TS                  USB Type-C

RS-232 (TTL)         WC↔TC-TS     TC-TS↔WC       TC-RS

AV (differential)      TC-TS                WC                      USB Type-C

Sync binary (diff.)   TC-RS↔TC-TS TC-TS↔TC-RS USB Type-C

Async binary (diff.) TC-RS↔TC-TS TC-TS↔TC-RS USB Type-C

Heartbeat                 WC                     TC-TS                 TC-RS

Tool ID                    TC-TS                WC                      TC-RS

Tool Capabilities     WC                     TC-RS


The USB Type-C cable connecting the TC-RS and TC-TS sides of the tool controller is a ”Full Featured,” Active Cable (cable with a Cable Plug, handling SOP* communication) , capable of fully instantiating the features of the USB 3.1 spec, which also includes full USB 2.0 functionality. It shall be capable of handling the full current (5A) able to be provided, according to the USB Type-C spec. Thus, the power-handling wires in the cable are to be of the thickest wire gauge the spec allows (and also available). This means 20AWG—or failing that, 22AWG.

The USB Type-C cable operates according to the 3.1 spec. It is backwards compatible with 2.0 devices. A “Full Featured” USB 3.1 Type C cable is required for ATC operation.

Legacy and simple devices may be accommodated either by using the USB 2.0 Type-A Micro plug located to the upper left of the ATC coupler or with USB Type-C-to-USB 2.0 adapter, tool-side.

Alternatively, devices using only USB 2.0 signaling and power can be accommodated with a USB Type-C connection if needed.

Tool Power Supply

The TC-RS shall supply power according to the USB 3.1 Power Profile 5 requirement. That is, it shall supply 5V at 2A, 12V at 5A, and 20V at 5A. In the near term, having just the 5V and 12V rails is sufficient. Selection of the proper voltage for the tool is made by the TC-RS based on the Tool ID supplied. (A tool requiring a lesser Power Profile number—Profiles 1-4—will be satisfied by Profile 5 power delivery).

The Power Profiles are in keeping with the USB 3.1 intent to be able to supply power, not only for use by common TTL-using peripheral devices, but also for devices requiring more power for operation; e.g, spinning a HDD motor, and for device battery-charging.

Devices conforming to USB 2.0 specs shall require power at no greater than at the USB 2.0 level.

Non-compliant devices to USB 3.1 Power Delivery 2.0 may pose a risk of physical damage to the system and are specifically not supported.

NOTE TO THE TOOL DEVELOPER/SUPPLIER: Spurious noise developed by the tool, and USB connector detach transients can cause problems with the transceivers—including permanent damage to the circuitry—at either end of the USB cable. Sufficient testing and noise/transient amelioration shall be conducted prior to allowing a tool to be placed into service. As the robot-side circuitry and cabling are fixed and under version control, this—with safety margin—should provide a consistent test-bed for certifying the tool-side equipment. Some tips as to equipment needed, testing, and likely worst-case conditions to watch for are given in the USB Power Delivery Specification, Revision 2.0, Appendix C – Power Management.

A minimal configuration—using USB 3.1 for communication between the tool and the controller noted above—requires just a tiny memory and, depending on the voltage used by the device, a voltage divider on the tool side. The USB is used to supply power to the tool.

A tool without need of tool-power and commands—e.g., a punch, or an awl driven by the robot itself—must still provide either USB 2.0 or a basic USB Type-C interface to the TC to be used for tool identification, presence detection and capabilities look-up. If the basic USB Type-C interface is provided, simple USB 2.0 functionality is acceptable.

At tool-side, this simplest interface, responds to a ‘heartbeat’ request with just its ID. This is held in the tool-side (1-Wire) 1kb EEPROM—at the time of writing, a $1.40 part in single quantities (


The robot-side TC (TC-RS) will have a minimum of three USB 3.1 “Full-Featured” Type-C interfaces. One to each of potentially three tools able to be mounted to the EEP, and, optionally, one connected to the workcell controller (WC). This latter connection may be made instead using a Type-A to Type-A Mini or Type-A Micro cable. The TC-RS will also include a microcontroller, a facility to supply power, as noted above, through the USB, and have a memory store used for queuing and logic for communications prioritization.

A physical TC circuit board is located at the robot-side of the USB cabling. This PCB provides the tool-selected signaling and tool power based on the configuration information provided by the tool, and the task requirements provided by the Production Controller (PC). Generally, with an advanced tool, another PCB (TC subsystem) is located at the tool, responsible for tool-specific capabilities, as well as tool ID and configuration information. See ~/Robotics/AutoToolChange/Auto-Tool-Changer for a fuller description.


On the robot-side, the Tool Controller’s computing hardware, like the cabling that connects to the tool through the ATC subsystem, is a fixed—though swappable—component of the workstation. For a basic configuration, it may supply only a microcontroller and USB2.0 host interface. For a more advanced setup, it shall have a USB 3.1 Type-C adapter and interfacing components facilitating its use.

At this point in time (2016), an Arduino Nano seems a good starting point as a minimum-capability hardware choice. They are available from China for <$2 each w/ free shipping.

The minimal TC might be offered in a “Basic System,” where the more advanced controller could be offered as a “Pro System.”

The more capable controller will likely be required for controlling tools attached to the EEP’s USB-C port. In this case, the controller serves as a multiplexer, making available the required signal and power paths to the tool. This also means that this form of TC have more serious power-supplying capabilities, whether on the board itself, or by way of a daughter-board (a “shield” in Arduino terms).

Because of the space required, it’s likely that the power supplied to the tool beyond the capabilities of USB-C PD 2.0, be by a daughter board or shield specifically designed for this purpose. This board would multiplex the signals and power and provide motor controlling signals as described in the ATC spec, referenced above.