X-Z Motion Controller

Overview

The BenchBot V3 will use a ClearCore motion controller to actuate the X and Z axis servos as well as interface will I/O such as End-stops, E-stops, and motor brakes. The ClearCore will communicate to the host PC via the Amiga’s onboard ethernet network.

The Amiga “Brain” (host PC) will send commands containing a desired X-Y coordinate to the ClearCore controller. The controller will be configured with the useable travel in both axis and will not attempt to travel to an unreachable location. It will also perform homing operations. The “Brain” will independently command the Amiga’s wheel motors via CANBUS to preform Y travel motions. When the X-Z controller reaches the commanded location, it will respond that was successful and the host application and take whatever further action it needs to.

The ClearCore provides up to 4 channels of motor control, considerable I/O, and could be expanded indefinitely with further controllers added at different IP addresses.

Communication Protocol

The communication protocol between the ClearCore and the Brain will likely be custom and very simple. In theory any network device would be able to control the ClearCore, and read its status and position. The ClearCore is provided with a fairly extensive programming API that includes an IP stack with UDP and TCP (server or client) support.

Therefore, wiring our own protocol that is packaged in UDP or TCP datagrams should be fairly straightforward. We will need to decide if UDP or TCP is more suitable and how (or if) we will handle multiple connections.

Messages

Direction is from the point of view of the ClearCore Controller

Description

Direction

Frequency

Format

Description

Direction

Frequency

Format

Request to move to X, Z position

IN

As needed

 

Request Complete? (echo back request, with completed flag?) [multi usage?]

OUT

As needed

 

Status (X & Z position, command complete Y/N, errors?, connections?)

OUT

As needed

 

Request Configuration

IN

As needed

 

Respond Configuration (Num Axis, Axis Size, run time?)

OUT

As needed

 

Set Configuration? [this would be complex and possibly dangerous, will detail later]

IN

As needed