Skip to content

Magnetically Encoded UAVCAN Servo - Memory Table

For magnetically encoded UAVCAN (CAN bus) servos. Register data is 16-bit and transmitted in big-endian order (high byte first).

1 Communication Protocol

Servos use the UAVCAN communication protocol. The factory default CAN baud rate is 1M, configurable in the range 20K~1M. The communication address, CAN baud rate and communication station address can be set with the host software.

2 UAVCAN Command Examples

UAVCAN communication protocol

The following commands follow the CAN2.0B standard; the default motor NODE_ID is 100 (0x64)

Single-motor position command: 1807DB01(frame ID):00 64 05 D5(data)
Priority: 18
Frame type: 07DB(2011)
Frame source ID: 01
Frame data: 00 64 05, motor channel (00), position data (0564)
Frame tail: D5

Multi-motor position command:
1807DC01(frame ID):8E 82 64 05 00 00 00 97(data)
1807DC01(frame ID):00 00 00 00 00 00 00 37(data)
1807DC01(frame ID):00 00 00 00 00 00 00 17(data)
1807DC01(frame ID):00 00 00 00 00 00 00 37(data)
1807DC01(frame ID):00 00 00 00 00 00 00 17(data)
1807DC01(frame ID):00 00 00 77(data)
Priority: 18
Frame type: 07DC(2012)
Frame source ID: 01
CRC check: 8E 82
Frame data:
64 05 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00
(cmd[0]=0564,cmd[1]=0000,cmd[2]=0000......cmd[17]=0000)
Frame tail:
97/37/17/37/17/77

Automatic report feedback command:
1807DD64(frame ID):A1 04 00 CC 0C CD 0C 80(data)
1807DD64(frame ID):45 00 00 00 2A 00 00 60(data)
Priority: 18
Frame type: 07DD(2013)
Frame source ID: 64
CRC check: A1 04
Frame data:
00 CC 0C CD 0C
45 00 00 00 2A 00 00
(Servo_ID:00,POS_CMD:0CCC,POS_SENSOR:0CCD,VOLTAGE:0045,CURRENT:0000,PCB_Temp:2A,MOTOR_Temp:00,StatusInfo:00)
Frame tail: 80/60

Node status command: 18015564(frame ID):50 03 00 00 00 00 00 D0(data)
Priority: 18
Frame type: 0155(341)
Frame source ID: 64
Frame data: 50 03 00 00 00 00 00
(uptime_sec:00000350,health:0,mode:0,sub_mode:0,vendor_specific_status_code:0)
Frame tail: D0

Torque control command: 1803FC01 (frame ID):00 00 D6(data)
Priority: 18
Frame type: 03FC(1020)
Frame source ID: 01
Frame data: 00 00 D6, motor channel (00), torque command (00, 00 means torque off)
Frame tail: D6

Read hardware version number command:
Request: 18FAE481(frame ID):00 00 02 C0(data)
Response: 18FA0164(frame ID):00 02 4E 28 07 D1 C0(data)
Request frame priority: 18
Request frame type: FA(250)
Request frame source ID: 01
Request frame target ID: 64
Request frame data: 00 01 02 C0(parameter address:0001,parameter length:02)
Request frame tail: C0
Response frame priority: 18
Response response frame type: FA(250)
Response frame source ID: 64
Response frame target ID: 01
Response frame data: 00 02 4E 28 07 D1(read status:00,parameter length:02,parameter data 0:4E28,parameter data 1:07D1)
Response frame tail: C0

3 Servo Memory Table Definition

Register addresses use a paged structure: each page holds 64 registers, and a register address consists of the page number plus the index — for example page 1, index 2 is addressed as 1*64+2=66. All registers in the table can be accessed over MODBUS-RTU and UAVCAN.

3.1 Version Information

Storage area: SRAM, access: read only, read/write condition: none

Page Index Function Range Default Value description
0 0 Product model high byte 20008
0 1 Product model low byte 2001
0 2 Firmware version high byte 2050
0 3 Firmware version low byte 513xx xx=00~99
0 4 Byte order 1 Big-endian
0 5 SN1 0
0 6 SN2 0
0 7 SN3 0
0 8 SN4 0

3.2 Control Parameters

Storage area: SRAM, access: read/write, read/write condition: none

Page Index Function Range Default Value description
1 0 Reserved address 0
1 1 Reserved address 0
1 2 Target position high byte 0~65535 0 1=0.02197 deg, -8192~8192 (output shaft -180 deg ~ 180 deg)
1 3 Target position low byte 0~65535 0 1=0.02197 deg, -8192~8192 (output shaft -180 deg ~ 180 deg)
1 4 Running acceleration 0~2000 Default acceleration Output-shaft acceleration, 1=2.1972 deg/s², 0 means the maximum default value
1 5 Running speed -600~600 Default running speed Output-shaft speed, 1=0.1831rpm, 0 means stop
1 6 Running current -625~625 Default running current Supply current while running, 1=6.5mA
1 7 Torque limit 0~4800 Default torque limit The default value is 4800
1 8 Status reset 0~65535 0 See the bit description under "Status reset"
1 9 Torque switch 0~1 0 0 switches torque off, 1 switches torque on; in servo mode 0 the UAVCAN command switches torque on automatically
1 10 Read/write lock flag 0~11 0 Unlock flag for writes to the EPROM parameter area; the unlock value is the corresponding page number
1 11 Read/write lock password -32768~32767 0
1 12 CAN function switch bits 0~7 CAN function switch bits default See the bit description under "CAN function switch bits"

Status reset: 0 invalid, 1 resets the corresponding fault

Bit / weight: Description

  • BIT10 (1024): Reset the turn count
  • BIT15 (32768): Zero calibration

Note

To reset a fault, set 1 in the corresponding position, then convert it to a value and write that value to the corresponding address. Example: to recover from an over-temperature and over-current fault, write 1 in the corresponding positions, obtaining the binary pattern *0000 0000 0000 1100", converted to the hexadecimal value: 000C; write this value to the status reset (1-8) address with a command.

CAN function switch bits: 0 invalid, 1 valid

Bit / weight: Description

  • BIT0: Master switch for automatic reporting of the node status command
  • BIT1: ----
  • BIT2: Switch for automatic reporting of the feedback command

3.3 Status Parameters

Storage area: SRAM, access: read only, read/write condition: none

Page Index Function Range Default Value description
2 0 Reserved address --
2 1 Reserved address --
2 2 Current position high byte 0~65535 -- Same unit as the target position
2 3 Current position low byte 0~65535 -- Same unit as the target position
2 4 Servo single-turn position -32768~32767 -- 1=360/16384=0.02197°
2 5 Reserved address
2 6 Current servo speed -32768~32767 -- 1=0.1831rpm
2 7 Reserved address 0
2 8 Current bus current -2048~2047 -- Same unit as the running current
2 9 Current voltage 0~400 -- 1=0.1V
2 10 Current MOS temperature 0~100 -- 1=1 degree Celsius
2 11 Current load 0~5000 -- Servo drive PWM duty cycle, unit 1=0.02%
2 12 Servo status 0~65535 -- See the bit description under "Servo status"
2 13 Reserved address --
2 14 Current motor temperature 0~100 -- 1=1 degree Celsius
2 15~21 Reserved address --
2 22 Input signal pulse width (us) -- Unit: microseconds
2 23 Input signal period (us) -- Unit: microseconds
2 24 Encoder status code -- BIT0~1 (0: normal, 1: magnetic field too strong, 2: magnetic field too weak), BIT2: button pressed, BIT3: speed too high
2 25 Encoder error count -- Count of output-shaft encoder communication errors

Servo status: 0 means normal, 1 means abnormal

Bit / weight: Description

  • BIT0 (1): Over-voltage, recovers automatically once the voltage is normal
  • BIT1 (2): Under-voltage, recovers automatically once the voltage is normal
  • BIT2 (4): Driver MOS over-temperature, recovers automatically once the temperature is normal
  • BIT3 (8): Over-current, recovers automatically once the detected driver output torque is below the safe torque
  • BIT5 (64): Magnetic encoder error, recovers automatically once the magnetic encoder is normal
  • BIT7 (128): Torque state, 0 means torque off, 1 means torque on
  • BIT8 (256): Movement state, 0 means stopped, 1 means moving
  • BIT9 (512): Target out of range, recovers automatically after receiving a normal target position
  • BIT12 (4096): Target-reached state, 0 means the target is reached
  • BIT13 (8192): Motor MOS over-temperature, recovers automatically once the temperature is normal
  • BIT14 (32768): Damping state, 1 means the damping state is entered

Note

If several states occur at the same time, the motor status value is the sum of the individual state values. Example: torque on together with over-voltage gives a status value of 128+1=129;

3.4 Communication Parameters

Storage area: EPROM, access: read/write, read/write condition: torque switch=0 && read/write lock flag=3

Page Index Function Range Default Value description
3 0 Serial main ID 1~247 1 Unique identity code on the bus; no duplicate ID may appear on the same bus; 0 is the broadcast ID
3 1 Reserved address 0
3 2 Serial baud rate 2~10 4 2-10 correspond to baud rates: 256000(2), 128000(3), 115200(4), 57600(5), 38400(6), 19200(7), 14400(8), 9600(9), 4800(10)
3 3 Reserved address 0
3 4 Reserved address 0
3 5 Serial return delay 0~1000 500 Unit: milliseconds
3 6 Reserved address 0
3 7 CAN communication timeout 0~1000 100 Unit: milliseconds
3 8 CAN baud rate 0~9 8 0-9 correspond to baud rates: 10K(0), 20K(1), 50K(2), 100K(3), 125K(4), 250K (5), 500K(6), 800K(7), 1M(8), 83.3K(9)
3 9 CAN driver-side ID 1~125 100 Unique NODE-ID used to identify the servo
3 10 CAN controller-side ID 1~125 1 Controller NODE-ID; the controller's NODE-ID must match this register value, otherwise the servo cannot receive controller commands
3 11 Reserved address 0 0
3 12 Auto-report rate 0~32767 100 Unit: milliseconds; the interval of the automatic feedback-report command; 0 stops reporting
3 13~17 Reserved address 0
3 18 CAN heartbeat rate 0~32767 1000 Unit: milliseconds; the interval of the automatic status-report command; 0 stops reporting
3 19 Reserved address 0 0
3 20 CAN channel ID 0~17 0 UAVCAN position command channel ID

3.5 Configuration Parameters

Storage area: EPROM, access: read/write, read/write condition: torque switch=0 && read/write lock flag=4

Page Index Function Range Default Value description
4 0 Operating mode 0~5 0 0 servo mode, 1 constant-speed mode, 2 constant-current mode, 3 RCPWM servo mode (effective after restart), 4 reserved, 5 motor mode, 6 RCPWM constant-speed mode (effective after restart)
4 1 Default running speed 0~32767 -- Same unit as the running speed
4 2 Default running acceleration 0~32767 -- Same unit as the running acceleration; 0 means the acceleration parameter is not effective
4 3 Default maximum running current 0~4095 -- Same unit as the running current
4 4 Default maximum output torque 0~4800 4800 Same unit as the maximum output torque
4 5 Reserved address 0
4 6 Reserved address 0
4 7 Positive-direction position deadband 0~128 2 Same unit as the target position
4 8 Negative-direction position deadband 0~128 2 Same unit as the target position
4 9 Minimum angle limit -8192~0 0 Same unit as the target position; minimum angle limit = maximum angle limit means the angle is unlimited; not effective in RCPWM mode
4 10 Maximum angle limit 0~8191 0 Same unit as the target position; minimum angle limit = maximum angle limit means the angle is unlimited; not effective in RCPWM mode
4 11 Output-shaft position offset -32768~32767 0 Same unit as the target position
4 12 Reserved address
4 13 CAN function switch bits default 0~7 5 See the bit description under "CAN function switch bits"
4 14 Configuration phase 0~32768 0 Reserved address

3.6 RCPWM Parameters

Storage area: EPROM, access: read/write, read/write condition: torque switch=0 && read/write lock flag=4

Page Index Function Range Default Value description
5 0 Minimum input signal pulse width 500~2500 500 Unit: microseconds
5 1 Maximum input signal pulse width 500~2500 2500 Unit: microseconds
5 2 Positive-direction signal pulse width 0~1000 1000 Unit: microseconds
5 3 Negative-direction signal pulse width 0~1000 1000 Unit: microseconds
5 4 Signal minimum angle -8192~0 -8192 Same unit as the target position; PWM signal pulse-width-to-angle mapping; UAVCAN position command 0~1000 angle mapping
5 5 Signal maximum angle 0~8191 8191 Same unit as the target position; PWM signal pulse-width-to-angle mapping; UAVCAN position command 0~1000 angle mapping
5 6 Signal resolution 1~16 2 Unit: microseconds
5 7 Signal fine tuning -128~128 0 Unit: microseconds
5 8 Signal-loss protection 0~2 0 0 no torque on signal loss, 1 return to the signal-loss protection position on signal loss, 2 hold the current position on signal loss
5 9 Signal-loss protection position -32768~32767 0 Same unit as the target position
5 10 Signal dead band 0~128 50 RCPWM signal dead band in RCPWM speed mode
5 11 Reserved address 0
5 12 Reserved address 0
5 13 Signal modulation coefficient 0~512 15 Effective when the signal modulation function is enabled; the larger the weight, the faster the adjustment response
5 14 Signal phase 0~65535 0 See the bit description under "Signal phase"

Signal phase: 0 means off, 1 means on

Bit / weight: Description

  • BIT0 (1): ----
  • BIT1 (2): ----
  • BIT2 (4): In RCPWM constant-speed mode, the signal-versus-rotation-direction phase; 0 means forward, 1 means reverse
  • BIT3 (8): In RCPWM servo mode, the signal-versus-target-position phase; 0 means forward, 1 means reverse
  • BIT4 (16): RCPWM signal modulation function bit, effective for firmware version >=2050.51303; 0 means off, 1 means on (once on, the weight is adjusted with the signal modulation coefficient parameter); switch this bit off for a fast response

3.7 Protection Parameters

Storage area: EPROM, access: read/write, read/write condition: torque switch=0 && read/write lock flag=7

Page Index Function Range Default Value description
7 0 Torque-off condition 0~65535 7 See the bit description under "LED alarm condition / torque-off condition"
7 1 LED alarm condition 0~65535 12295 See the bit description under "LED alarm condition / torque-off condition"
7 2 Maximum MOS temperature limit 0~100 70 1=1 degree Celsius
7 3 MOS protection temperature difference 0~10 2 1=1 degree Celsius; over-temperature alarm recovery temperature = maximum MOS temperature limit − MOS protection temperature difference
7 4 MOS over-temperature protection time 0~32767 50 Time unit: milliseconds
7 5 Minimum input voltage 0~400 80 1=0.1V
7 6 Maximum input voltage 0~400 280 1=0.1V
7 7 Protection voltage difference 0~20 5 Under-voltage alarm recovery voltage = minimum voltage + protection voltage difference; over-voltage alarm recovery voltage = maximum voltage − protection voltage difference
7 8 Under-voltage protection time 0~32767 100 Time unit: milliseconds
7 9 Over-voltage protection time 0~32767 1000 Time unit: milliseconds
7 10~12 Reserved address 0 0
7 13 Protection current 0~4095 1000 Same unit as the running current
7 14 Over-current protection time 0~32767 1000 Time unit: milliseconds
7 15 Safe torque 0~4095 0 Maximum torque output after entering over-current protection; the servo exits over-current protection when its output torque falls below this value
7 16~18 Reserved address
7 19 Maximum motor temperature limit 0~100 0 1=1 degree Celsius; 0 means the temperature sensor input is switched off
7 20 Motor temperature difference 0~10 2 1=1 degree Celsius; over-temperature alarm recovery temperature = maximum motor temperature limit − motor protection temperature difference
7 21 Motor over-temperature protection time 0~32768 50 Time unit: milliseconds

LED alarm condition / torque-off condition: 0 means off, 1 means on

Bit / weight: Description

  • BIT0 (1): Over-voltage alarm / over-voltage protection
  • BIT1 (2): Under-voltage alarm / under-voltage protection
  • BIT2 (4): MOS over-temperature alarm / MOS over-temperature protection, motor over-temperature alarm / motor over-temperature protection
  • BIT3 (8): Over-current alarm / over-current protection
  • BIT6 (64): End magnetic encoder error alarm / end magnetic encoder error protection

3.8 PID Parameters

Storage area: EPROM, access: read/write, read/write condition: torque switch=0 && read/write lock flag=8

Page Index Function Range Default Value description
8 0 Position loop P 0~1000 48
8 1 Position loop D 0~1000 32
8 2 Position loop I 0~1000 0
8 3 Position loop integral limit 0~5000 0 0 means no limit
8 4 Reserved address 0
8 5 Velocity loop P 0~1000 20
8 6 Velocity loop I 0~1000 20
8 7 Reserved address 0
8 8 Current loop P 0~1000 0 Reserved address
8 9 Current loop I 0~1000 1

Do not reuse addresses across families

This table uses a paged address structure of "page × 64 + index", which is completely different from the linear addresses of the FT-SCS families (SMS/STS/HLS/SCSCL) and must not be applied across families. Return to Bus Protocol and select the matching memory table.