Control Table¶
The control table is the set of registers inside the servo. You read registers with a Read instruction to get status, and write them with Write to control the servo. Every register has a unique address, which goes in the first parameter of the packet.
- EEPROM area
- Non-volatile. Values survive power-off. Writable only when Torque Enable is 0 and the servo is idle.
- RAM area
- Volatile. Reset to the initial value at every power-on.
- Size
- 1 or 2 bytes. 2-byte values are little-endian (low byte at the lower address).
- Access
- RW read and write. R read only, used for monitoring.
- Initial value
- Factory default for EEPROM registers (or the value you last stored); power-on value for RAM registers.
EEPROM area¶
| Address | Size | Name | Description | Access | Initial |
|---|---|---|---|---|---|
| 3 | 1 | ID | Servo ID | RW | 1 |
| 4 | 1 | Baud Rate | Communication speed | RW | 1 |
| 5 | 1 | Return Delay Time | Delay before the status packet | RW | 250 |
| 6 | 2 | CW Angle Limit | Clockwise angle limit | RW | 0 |
| 8 | 2 | CCW Angle Limit | Counter-clockwise angle limit | RW | 1023 |
| 11 | 1 | Temperature Limit | Maximum internal temperature | RW | 70 |
| 12 | 1 | Min Voltage Limit | Minimum input voltage | RW | 60 |
| 13 | 1 | Max Voltage Limit | Maximum input voltage | RW | 140 |
| 14 | 2 | Max Torque | Maximum torque output | RW | 1023 |
| 16 | 1 | Status Return Level | Which instructions get a reply | RW | 2 |
| 17 | 1 | Alarm LED | Errors that blink the LED | RW | 36 |
| 18 | 1 | Shutdown | Errors that cut torque | RW | 36 |
RAM area¶
| Address | Size | Name | Description | Access | Initial |
|---|---|---|---|---|---|
| 24 | 1 | Torque Enable | Motor torque on / off | RW | 0 |
| 25 | 1 | LED | Status LED on / off | RW | 0 |
| 26 | 1 | CW Compliance Margin | CW position error margin | RW | 1 |
| 27 | 1 | CCW Compliance Margin | CCW position error margin | RW | 1 |
| 28 | 1 | CW Compliance Slope | CW torque slope near goal | RW | 32 |
| 29 | 1 | CCW Compliance Slope | CCW torque slope near goal | RW | 32 |
| 30 | 2 | Goal Position | Target position | RW | – |
| 32 | 2 | Moving Speed | Speed toward the goal | RW | – |
| 34 | 2 | Torque Limit | Torque limit (goal torque) | RW | = Max Torque |
| 36 | 2 | Present Position | Current position | R | – |
| 38 | 2 | Present Speed | Current speed | R | – |
| 40 | 2 | Present Current | Current draw | R | – |
| 42 | 1 | Present Voltage | Supply voltage | R | – |
| 43 | 1 | Present Temperature | Internal temperature | R | – |
| 44 | 1 | Registered | Reg Write pending | R | 0 |
| 46 | 1 | Moving | Movement in progress | R | 0 |
| 47 | 1 | Lock | EEPROM write lock | RW | 0 |
| 48 | 2 | Punch | Minimum drive current | RW | 32 |
Register details¶
ID (3)¶
Identifies the servo on the bus. Values 0–252 (0xFC) are usable; 254 (0xFE) is the
broadcast ID, which reaches every servo at once.
Note
Never give two servos on the same bus the same ID. Their replies collide and you may not be able to detect either of them.
Baud Rate (4)¶
| Value | Baud rate (bps) | Error |
|---|---|---|
| 1 (default) | 1,000,000 | 0.000 % |
| 3 | 500,000 | 0.000 % |
| 4 | 400,000 | 0.000 % |
| 7 | 250,000 | 0.000 % |
| 9 | 200,000 | 0.000 % |
| 16 | 115,200 | −2.124 % |
| 34 | 57,600 | 0.794 % |
| 103 | 19,200 | −0.160 % |
| 207 | 9,600 | −0.160 % |
An error below 3 % does not affect UART communication.
Return Delay Time (5)¶
Delay between receiving an Instruction Packet and sending the Status Packet.
| Unit | Range | Notes |
|---|---|---|
| 2 µs | 0–254 | Default 250 (500 µs), maximum 508 µs |
Example: a value of 10 gives a 20 µs delay.
CW/CCW Angle Limit (6, 8)¶
Restricts travel. Same range and unit as Goal Position. CW Angle Limit is the minimum Goal Position, CCW Angle Limit the maximum. The pair also selects the operating mode:
| Mode | CW / CCW |
|---|---|
| Wheel mode (continuous rotation) | both 0 |
| Joint mode (position control) | neither 0 |
Temperature Limit (11)¶
| Unit | Range |
|---|---|
| about 1 °C | 0–99 |
Caution
Do not change this from the default. After an overheating shutdown, let the servo cool for 20 minutes before using it again. Running hot causes permanent damage.
Min/Max Voltage Limit (12, 13)¶
Operating voltage window.
| Unit | Range | Meaning |
|---|---|---|
| about 0.1 V | 50–160 | 5.0–16.0 V |
A value of 80 means 8.0 V. If Present Voltage leaves the window, bit 0 of the status packet error byte is set and the alarm configured in addresses 17 and 18 is triggered.
Max Torque (14)¶
Maximum torque output, 0–1023 (0x3FF), unit about 0.1 %. 1023 uses 100 % of the
available torque, 512 (0x200) uses 50 %. Copied to Torque Limit at
power-on.
Status Return Level (16)¶
| Value | Replies to | Notes |
|---|---|---|
| 0 | Ping only | No status packet for any other instruction |
| 1 | Ping and Read | |
| 2 (default) | All instructions |
Note
Packets sent to the broadcast ID 0xFE never get a reply to Read or Write, whatever
this register says.
Alarm LED (17), Shutdown (18)¶
Selects which errors blink the LED (Alarm LED) and which cut motor output (Shutdown). Uses the same bit layout as the status packet error byte:
| Bit | Error |
|---|---|
| 7 | – |
| 6 | Instruction |
| 5 | Overload |
| 4 | Checksum |
| 3 | Range |
| 2 | Overheating |
| 1 | Angle limit |
| 0 | Input voltage |
Bits combine with OR: 0x05 (0000 0101) enables input-voltage and overheating
detection. The default 36 (0x24) enables overload and overheating. On Shutdown,
Torque Limit is set to 0 so the motor output drops to 0 %.
Torque Enable (24)¶
| Value | Meaning |
|---|---|
| 0 | Torque off (free-running) |
| 1 | Torque on; EEPROM area locked |
LED (25)¶
| Value | Meaning |
|---|---|
| 0 (default) | LED off |
| 1 | LED on |
Compliance Margin (26, 27)¶
Allowed error between goal and present position, one value per direction. Range 0–255, same unit as Goal Position. Larger values allow more error.
Compliance Slope (28, 29)¶
Sets how torque ramps near the goal position, per direction. Seven steps; higher values are softer. The servo uses the representative value of each step — writing 25 results in 16.
| Step | Data value | Representative |
|---|---|---|
| 1 | 0–3 (0x00–0x03) |
2 (0x02) |
| 2 | 4–7 (0x04–0x07) |
4 (0x04) |
| 3 | 8–15 (0x08–0x0F) |
8 (0x08) |
| 4 | 16–31 (0x10–0x1F) |
16 (0x10) |
| 5 | 32–63 (0x20–0x3F) |
32 (0x20) |
| 6 | 64–127 (0x40–0x7F) |
64 (0x40) |
| 7 | 128–254 (0x80–0xFE) |
128 (0x80) |
Goal Position (30)¶
Target position, 0–1023 (0x3FF), unit 0.29°. 512 is centre. A value outside the angle
limits sets the angle-limit error bit (bit 1) and triggers the configured alarm.
Note
Not used in wheel mode.
Moving Speed (32)¶
Speed toward the goal. Range and unit depend on the mode.
0–1023 (0x3FF), unit about 0.111 rpm. 0 means no speed control (maximum motor
speed). 1023 is about 114 rpm; 300 is about 33.3 rpm.
The servo cannot exceed its own maximum speed, whatever value you write.
0–2047 (0x7FF), unit about 0.1 % of output. Bit 10 is the direction:
- 0–1023: counter-clockwise, 0 stops
- 1024–2047: clockwise, 1024 stops
Only output is controlled in wheel mode, not speed. 512 means 50 % output CCW.
Torque Limit (34)¶
Torque limit, 0–1023 (0x3FF), unit about 0.1 %. 512 limits output to about 50 %.
Initialised from Max Torque at power-on.
Note
A Shutdown alarm sets this to 0 and the motor goes limp. Clear the cause, then write a non-zero value to drive again.
Present Position (36)¶
Current position, 0–1023 (0x3FF), unit 0.29°.
Warning
In wheel mode this value cannot be used to measure distance or count revolutions.
Present Speed (38)¶
Current speed, 0–2047 (0x7FF). Bit 10 is the direction: 0–1023 CCW, 1024–2047 CW
(0 and 1024 both mean stopped). Unit about 0.111 rpm in joint mode, about 0.1 % output in
wheel mode. 300 in joint mode means about 33.3 rpm CCW.
Present Current (40)¶
Current draw in mA. 1000 (0x3E8) means 1 A.
Present Voltage (42)¶
Supply voltage × 10. 100 (0x64) means 10 V.
Present Temperature (43)¶
Internal temperature in °C. 85 (0x55) means 85 °C.
Registered Instruction (44)¶
| Value | Meaning |
|---|---|
| 0 | No Reg Write pending |
| 1 | A Reg Write is waiting for Action |
Returns to 0 when Action executes.
Moving (46)¶
| Value | Meaning |
|---|---|
| 0 | Goal position reached |
| 1 | Moving toward goal position |
Lock (47)¶
| Value | Meaning |
|---|---|
| 0 | EEPROM area writable |
| 1 | EEPROM area locked |
Warning
Once set to 1, Lock only returns to 0 after a power cycle.
Punch (48)¶
Minimum current used to drive the motor, 0x20–0x3FF.
Need samples, a custom build or a volume quote? Contact us — we usually reply within one business day.