RSBL Servo - Memory Table Explanation
1. Servo Memory Table Definition
If a function address uses two bytes of data, the low byte is at the earlier address, and the high byte is at the later address.
1.1 Version Information
| Address DEC | Address HEX | Function Name | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 0 | 0x00 | Firmware major version number | 1 | - | Read-only | - | - | - |
| 1 | 0x01 | Firmware minor version number | 1 | - | Read-only | - | - | - |
| 2 | 0x02 | END | 1 | 0 | Read-only | - | - | 0 indicates little-endian storage structure |
| 3 | 0x03 | Servo major version number | 1 | - | Read-only | - | - | - |
| 4 | 0x04 | Servo minor version number | 1 | - | Read-only | - | - | - |
1.2 EPROM Configuration
| Address DEC | Address HEX | Function | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 5 | 0x05 | Servo ID | 1 | 1 | Read/write | 0 - 253 | Number | Unique primary ID identifier in the bus |
| 6 | 0x06 | Baud rate | 1 | 0 | Read/write | 0 - 7 | None | 0 - 7 respectively represent baud rates: 1000000(0), 500000(1), 250000(2), 128000(3), 115200(4), 76800(5), 57600(6), 38400(7) |
| 7 | 0x07 | Response return delay | 1 | 0 | Read/write | 0/50 - 253 | 2us | Maximum settable return delay 254*2=508us; 0 indicates the minimum return delay; setting a value <50 still defaults to 50 (100us) |
| 8 | 0x08 | Response status level | 1 | 1 | Read/write | 0 - 1 | None | 0: except for read commands and the PING command, other commands do not return a response packet; 1: return a response packet for all commands |
| 9 | 0x09 | Minimum angle limit | 2 | 0 | Read/write | 0 - 4094 | 0.087 degree | In multi-turn absolute position control, this value is 0 |
| 11 | 0x0B | Maximum angle limit | 2 | 4095 | Read/write | 1 - 4095 | 0.087 degree | In multi-turn absolute position control, this value is 0 |
| 13 | 0x0D | Maximum temperature upper limit | 1 | 70 | Read/write | 0 - 100 | °C | - |
| 14 | 0x0E | Maximum input voltage | 1 | - | Read/write | 0 - 254 | 0.1V | - |
| 15 | 0x0F | Minimum input voltage | 1 | 40 | Read/write | 0 - 254 | 0.1V | - |
| 16 | 0x10 | Maximum torque | 2 | 1000 | Read/write | 0 - 1000 | 0.1% | Assigned to address 48 torque limit at power-on |
| 18 | 0x12 | Phase | 1 | - | Read/write | 0 - 254 | None | Special function byte; do not modify unless specifically required |
| 19 | 0x13 | Unload condition | 1 | - | Read/write | 0 - 254 | None | Setting the corresponding bit to 1 enables the corresponding protection; setting the corresponding bit to 0 disables the corresponding protection |
| 20 | 0x14 | LED alarm condition | 1 | - | Read/write | 0 - 254 | None | Setting the corresponding bit to 1 enables the flashing light alarm; setting the corresponding bit to 0 disables the flashing light alarm |
| 21 | 0x15 | Position loop P proportional coefficient | 1 | - | Read/write | 0 - 254 | None | Proportional coefficient controlling the motor (1/4) |
| 22 | 0x16 | Position loop D derivative coefficient | 1 | - | Read/write | 0 - 254 | None | Derivative coefficient controlling the motor (1/8) |
| 23 | 0x17 | Position loop I integral coefficient | 1 | 0 | Read/write | 0 - 254 | None | Integral coefficient controlling the motor |
| 24 | 0x18 | Minimum starting torque | 1 | - | Read/write | 0 - 254 | 0.1% | Set the servo's minimum output starting torque |
| 25 | 0x19 | Integral limit value | 1 | 0 | Read/write | 0 - 254 | None | Maximum integral value = integral limit value * 4; 0 indicates disabling the integral limit function; effective in position mode 0 and mode 4 |
| 26 | 0x1A | Positive dead zone | 1 | 1 | Read/write | 0 - 16 | 0.087 degree | The minimum unit is one minimum resolution angle |
| 27 | 0x1B | Negative dead zone | 1 | 1 | Read/write | 0 - 16 | 0.087 degree | The minimum unit is one minimum resolution angle |
| 28 | 0x1C | Protection current | 2 | 511 | Read/write | 0 - 2047 | 6.5mA | Maximum settable current is 500 * 6.5mA = 3250mA |
| 30 | 0x1E | Angle resolution | 1 | 1 | Read/write | 1 - 128 | None | Amplification factor for the sensor's minimum resolution angle |
| 31 | 0x1F | Position offset | 2 | 0 | Read/write | 0 - 8191 | 0.087 degree | 0 - 2047 represents 0 - 2047; 2048 - 4095 represents 0 to -2047; 4096 - 6143 represents 2048 - 4095; 6144 - 8191 represents -2048 to -4095 (representing offset positions -4095 - 4095) |
| 33 | 0x21 | Operating mode | 1 | 0 | Read/write | 0 - 3 | None | 0: position servo mode; 1: motor constant speed mode; 2: PWM open-loop speed control mode; 3: stepper mode |
| 34 | 0x22 | Holding torque | 1 | 20 | Read/write | 0 - 254 | 1% | Output torque after entering overload protection; for example, setting 20 means 20% of the maximum torque |
| 35 | 0x23 | Protection time | 1 | 200 | Read/write | 0 - 254 | 10ms | The timing duration during which the current load output exceeds the overload torque and is maintained; for example, setting 200 means 2 seconds, with a maximum settable value of 2.5 seconds |
| 36 | 0x24 | Overload torque | 1 | 80 | Read/write | 0 - 254 | 1% | The maximum torque threshold that triggers the start of the overload protection timing; for example, setting 80 means 80% of the maximum torque |
| 37 | 0x25 | Speed closed-loop P proportional coefficient | 1 | - | Read/write | 0 - 254 | None | In motor constant speed mode (mode 1), the speed loop proportional coefficient |
| 38 | 0x26 | Overcurrent protection time | 1 | 200 | Read/write | 0 - 254 | 10ms | Maximum settable value 254 * 10ms = 2540ms |
| 39 | 0x27 | Speed closed-loop I integral coefficient | 1 | - | Read/write | 0 - 254 | None | In motor constant speed mode (mode 1), the speed loop integral coefficient |
1.3 SRAM Control
| Address DEC | Address HEX | Function Name | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 40 | 0x28 | Torque switch | 1 | 0 | Read/write | 0, 1, 128 | None | Write 0: disable torque output; write 1: enable torque output; write 128: calibrate any current position to 2048 |
| 41 | 0x29 | Acceleration | 1 | 0 | Read/write | 0 - 254 | 8.7 degree/s² | Servo running acceleration/deceleration; 0 indicates maximum acceleration |
| 42 | 0x2A | Target position | 2 | 0 | Read/write | -32767 - 32767 | 0.087 degree | Absolute position control method; the maximum corresponds to the maximum effective angle; BIT15 is the direction bit |
| 44 | 0x2C | PWM open-loop speed | 2 | 1000 | Read/write | 0 - 1000 | 0.1% | Effective in PWM open-loop speed control mode; BIT10 is the direction bit |
| 46 | 0x2E | Running speed | 2 | Servo factory default maximum speed | Read/write | -32767 - 32767 | 0.732 RPM / 0.0146 RPM | Control the motor's maximum running speed; BIT15 is the direction bit; speed 0 by default indicates the maximum speed, and can be set through the phase so that 0 indicates stop; the speed unit can be set through the phase, with two units 0.732RPM / 0.0146RPM; when the speed unit is set to 0.0146RPM, its precision is also 0.732RPM. 0.732RPM = 50 steps/second; 0.0146 RPM = steps/second |
| 48 | 0x30 | Torque limit | 2 | Maximum torque (16), default 1000 | Read/write | 0 - 1000 | 0.1% | Users can modify this value through programming to control the stall torque output |
| 50 - 54 | 0x32 - 0x36 | Undefined | 1 | - | Read/write | - | - | - |
| 55 | 0x37 | Lock flag | 1 | 1 | Read/write | 0 - 1 | None | Write 0 to disable the write lock, and values written to EPROM addresses are saved after power-off; write 1 to enable the write lock, and values written to EPROM addresses are not saved after power-off |
1.4 SRAM Feedback
| Address DEC | Address HEX | Function Name | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 56 | 0x38 | Current position | 2 | - | Read-only | - | 0.087 degree | Feedback of the servo's current absolute position; BIT15 is the direction bit; in stepper mode 3, returns the step difference between the current position and the target position; BIT15 is the direction bit |
| 58 | 0x3A | Current speed | 2 | - | Read-only | - | 0.732 RPM/0.0146 RPM | Feedback of the current motor rotation speed; the speed unit is set according to the phase; BIT15 is the direction bit |
| 60 | 0x3C | Current load | 2 | - | Read-only | - | 0.1% | Current control output voltage duty cycle driving the motor; BIT10 is the direction bit |
| 62 | 0x3E | Current voltage | 1 | - | Read-only | - | 0.1V | Current servo operating voltage |
| 63 | 0x3F | Current temperature | 1 | - | Read-only | - | °C | Current internal operating temperature of the servo |
| 64 | 0x40 | Asynchronous write flag | 1 | 0 | Read-only | - | None | Flag bit when using asynchronous write commands |
| 65 | 0x41 | Servo status | 1 | 0 | Read-only | - | None | Setting the corresponding bit to 1 indicates that the corresponding error has occurred |
| 66 | 0x42 | Moving flag | 1 | 0 | Read-only | - | None | The flag is 1 when the servo is moving, and 0 when the servo reaches the target and stops; it remains 0 when the servo does not update the target position |
| 67 | 0x43 | Target position | 2 | 0 | Read-only | - | 0.087 degree | Current target position |
| 69 | 0x45 | Current current | 2 | - | Read-only | - | 6.5 mA | Feedback of the current motor phase current |
| 71 | 0x47 | Undefined | 2 | - | Read-only | - | - | - |
2. Special Byte Explanation
2.1 Servo Status
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 65 | -- | -- | Load status | -- | Current status | Temperature status | Magnetic encoder status | Voltage status |
| -- | -- | (0) Load normal | -- | (0) Current normal | (0) Temperature normal | (0) Magnetic encoder normal | (0) Voltage normal | |
| -- | -- | (1) Load overload | -- | (1) Current overcurrent | (1) Temperature overheating | (1) Magnetic encoder abnormal | (1) Overvoltage/undervoltage |
If multiple statuses occur at the same time, the servo status value is the sum of the individual bit values. For example: overvoltage/undervoltage and servo overheating give a servo status value of 4+1=5.
2.2 LED Alarm Condition
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 20 | -- | -- | Load overload alarm | -- | Overcurrent alarm | Overheating alarm | Magnetic encoder alarm | Voltage alarm |
| -- | -- | (0) Disable load overload alarm | -- | (0) Disable overcurrent alarm | (0) Disable overheating alarm | (0) Disable magnetic encoder alarm | (0) Disable voltage alarm | |
| -- | -- | (1) Enable load overload alarm | -- | (1) Enable overcurrent alarm | (1) Enable overheating alarm | (1) Enable magnetic encoder alarm | (1) Enable voltage alarm |
If multiple bits are set at the same time, the servo's LED alarm condition value is the sum of the individual bit values. For example: enabling both the voltage alarm and the overheating alarm gives an alarm condition value of 4+1=5.
2.3 Unload Condition
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 19 | -- | -- | Load overload | -- | Overcurrent protection | Overheating protection | Magnetic encoder protection | Voltage protection |
| -- | -- | (0) Disable load overload | -- | (0) Disable overcurrent protection | (0) Disable overheating protection | (0) Disable magnetic encoder protection | (0) Disable voltage protection | |
| -- | -- | (1) Enable load overload | -- | (1) Enable overcurrent protection | (1) Enable overheating protection | (1) Enable magnetic encoder protection | (1) Enable voltage protection |
If multiple bits are set at the same time, the servo's unload condition value is the sum of the individual bit values. For example: enabling both the voltage protection and the overheating protection gives an unload condition value of 4+1=5.
2.4 Servo Phase
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 18 | Position feedback direction phase | PWM frequency | Voltage sampling | Angle feedback mode | Speed mode | Speed unit | Driver bridge mode | Driver direction phase |
| (0) Forward | (0) 24kHz | (0) 1.5K low-voltage sampling | (0) Feedback single-turn angle | (0) Speed 0 indicates stop | (0) 0.732RPM | (0) Brushless, effective after restart | (0) Forward | |
| (1) Reverse | (1) 16kHz | (1) 1K high-voltage sampling | (1) Feedback full angle | (1) Speed 0 indicates maximum speed | (1) 0.0146RPM | (1) Brushed, effective after restart | (1) Reverse |
If multiple bits are set at the same time, the servo's phase value is the sum of the individual bit values. For example: with the original phase value at 0 and the servo running in reverse, the phase value is 128+1=129.