EtherDrive Motor Controller

Written by Pascal Stang | Updated: Thursday July 28, 2005

Overview:

The EtherDrive Motor Controller is a multi-axis ethernet-based motor controller and driver system. It consists of controller and driver PCBs which connect together. A single controller may drive up to 6 motors (3 driver cards).


EtherDrive Controller

EtherDrive Driver (dual channel)

Hardware Features:

Software/Firmware Features and Operation:

Network Protocol Information:

Information as of 9/1/2005.

Network Addressing and Support Details

Notes
Supported protocols UDP, ICMP (ping), IP, ARP Unit will respond to pings to IP address. No TCP support at this time. ARP table currently limited to 8 entries.
IP Address (default) 192.168.1.12 User-changable via serial port interactive terminal. User set value is volatile (cleared at power-off). Will be upgraded to non-volatile.
Netmask (fixed) 255.255.255.0 Will be upgraded to user-changable, and non-volatile.
Gateway (fixed) 192.168.1.1 Will be upgraded to user-changable, and non-volatile.

Network Active Port Details

Notes

Echo

7/UDP

UDP Echo port. Packets sent to this port will be echoed to sender, payload unmodified.
Motor Control port 4900/UDP

Motor drive and feedback values passed via UDP packets on this port. See protocol info below.

EtherDrive Command port

4950/UDP Configuration and instruction packets should be sent to this port. See protocol info below.

 

Motor Drive Command Format (send to Motor Control port)

Notes

Description

Byte Offset

Byte Length

Data Type
This packet is sent by the controlling host
Motor 1 Drive
0
4
signed int32

Drive command of zero indicates no net power to motor. Valid range of drive command depends upon PWM period and PWM mode:

  • In Locked-Antiphase mode, range is +/-(PWM period/2)
  • In Sign-Magnitude mode, range is +/-PWM period

Drive levels in excess of the linear range will be clamped at the extreme.

Motor 2 Drive
4
4
signed int32
Motor 3 Drive
8
4
signed int32
Motor 4 Drive
12
4
signed int32
Motor 5 Drive
16
4
signed int32
Motor 6 Drive
20
4
signed int32

Motor Feedback Format (received from Motor Control port)

Notes

Description

Byte Offset

Byte Length

Data Type
This packet is sent back to the host in response to a Motor Drive Command
Encoder 1 Position
0
4
signed int32
Encoder position feedback is read and refreshed for each motor feedback packet sent. Value indicated number of tics counted since last reset. Value will overflow in standard 2's-complement form upon reaching +/-2^31.
Encoder 2 Position
4
4
signed int32
Encoder 3 Position
8
4
signed int32
Encoder 4 Position

12

4
signed int32
Encoder 5 Position
16
4
signed int32
Encoder 6 Position
20
4
signed int32
Motor 1 Current
24
4
signed int32

Motor current values represent the latest available values at time of packet transmission. Value range is +/-1024. Current readings may only be accurate in locked-antiphase mode.

Value = ((Imotor*Rsense*11)/1.25)*1024

where Imotor is in [AMPS]
and Rsense is in [OHMS]

Motor 2 Current
28
4
signed int32
Motor 3 Current
32
4
signed int32
Motor 4 Current
36
4
signed int32
Motor 5 Current
40
4
signed int32
Motor 6 Current
44
4
signed int32

 

EtherDrive Command Format (send to ED Command port)

Notes

Description

Byte Offset

Byte Length

Data Type
 
Command
0
4
signed int32

An EtherDrive command can be issued to change the way the EtherDrive system is configured or operating. Processing of commands may interrupt closed-loop motor operation and should not be issued during critical motion control. It is recommended that motors be stopped before sending most commands.

Argument 0
4
4
signed int32
Argument 1
8
4
signed int32
Argument 2
12
4
signed int32
...
...
Argument N
4*N
4
signed int32

 

EtherDrive Commands (send to ED Command port)

Notes

Description

Cmd

Arg0

Arg1
 
Disable Motors
'e'

Disables motor drivers (motors drivers are open-circuit)

Enable Motors
'E'
Enables motor drivers
Locked-Antiphase PWM
'p'
 
Sign-Mangitude PWM
'P'
 
PWM period
't'
period [tics]
Period is specified in tics (1 tic = 40ns). Safe range is 220-511.
This command list subject to change (guaranteed that it will change)

 

Mechanical Drawings:


Written by Pascal Stang | Updated: Thursday July 28, 2005