Unitree Brushless Digital Servo Motor User Manual
Unitree Brushless Digital Servo Motor User Manual
1. Digital Servo Package Contents
Digital Servo × 1
PH 2.0 Cable × 1
2. Digital Servo Installation Instructions
The mounting plate needs to be designed and prepared by the user. The fixing screw specification is M2.
Front Mounting Diagram
Rear Mounting Diagram
2.1 S288
Digital Servo Dimension Drawing
2.2 J288
Digital Servo Dimension Drawing
3. Digital Servo Interface Description
Pin No. | Signal | Description |
① | SIGNAL | Signal Communication |
② | VCC | 12V / 25.2V Power Supply |
③ | GND | Ground |
4. Single-Bus Serial-to-USB Board Interface Description
5. Overview of Digital Servo Encoders
An encoder is a sensor used to measure rotational angle. Encoders can be classified into several types, including incremental encoders, multi-turn absolute encoders, and single-turn absolute encoders. Here, we will focus specifically on the single-turn absolute encoder used in practical digital servo applications.
The single-turn absolute encoder of a digital servo is mounted on the servo rotor. For a single-turn absolute encoder (hereinafter referred to as the encoder), it can be understood as a “clock dial.”
Whenever we check a clock, we can read the current date and time. For example, suppose the current time is 11 PM on April 1st. If another 2 hours pass, the clock moves past 24:00 on April 1st, the date increases by one day to April 2nd, and the time restarts from 0:00, becoming 1 AM on April 2nd. For convenience in time calculation, we may also describe this as “25:00 on April 1st.” Although 25 exceeds the normal 24-hour range of a day, this is valid because the date has advanced by one day.
The same principle applies to a single-turn absolute encoder. Each time the system is powered on, the rotor may initially be at any position, and the encoder reports the current angular position of the rotor (a value between 0 and 2π). If the rotor continues rotating past the 2π position, the encoder can also record that the rotation count has increased by one turn, thereby outputting an angular position value that exceeds the 0 to 2π range.
At first glance, the encoder appears capable of outputting angular positions greater than one full revolution. So why is it called a “single-turn” absolute encoder? The reason is that this type of encoder cannot retain the accumulated rotation count after power loss. The following example illustrates this behavior.
Assume the encoder currently outputs an angle value of 2.3π. This means that after power-on, the rotor has rotated through 2π, causing the rotation count to increase from 0 to 1, while the encoder is currently positioned at 0.3π within the current revolution.
Now suppose the encoder is powered off without any further rotation, and then powered on again. After restart, the encoder output becomes 0.3π instead of 2.3π. This is because the accumulated rotation count is reset to 0 after power loss, so the encoder can only report the current position within a single revolution, namely 0.3π.
6. Hybrid Control of Digital Servos
The brushless digital servos J288/S288 are highly integrated power units with low-level servo control algorithms embedded internally. Unlike conventional servo control methods, these servos adopt a hybrid control strategy commonly used in robotics applications.
As a user, you only need to send the corresponding commands to the digital servo, and the servo will complete the entire process from command reception to joint torque output autonomously.
For the low-level control algorithm of the servo, the only essential control objective is torque output. However, in robotic systems, it is usually necessary to specify joint position, velocity, and torque simultaneously. Therefore, hybrid control is required for the digital servo.
The digital servos from Unitree Robotics include the following five control commands:
- Feedforward Torque: τ_(ff );
- Desired Angular Position: p_(des );
- Desired Angular Velocity: ω_(des );
- Position Stiffness: k_p;
- Damping Coefficient: k_d;
In the hybrid control scheme of the digital servo, a PD controller is used to feed the output position error back into the torque output:
In the equation, τ represents the output torque of the digital servo rotor, p represents the current angular position of the servo rotor, and ω represents the angular velocity of the servo rotor. In practical use of the digital servo, it is necessary to properly convert the control target values at the servo output side into the corresponding commands sent to the servo rotor.
7. Wiring Connection of Digital Servos
We use a single-wire bus (1-Wire) as the physical layer. The physical layer refers to the physical phenomenon used to represent and transmit information. In essence, the single-wire bus can be regarded as a serial interface based on single-line communication.
The single-wire bus uses only one data line (plus a shared ground) for bidirectional data transmission. It adopts a special communication timing scheme, enabling data exchange over the same wire. This single-wire connection significantly simplifies cable routing, improves hardware connection reliability, and reduces wiring cost.
The single-wire signal uses the same timing format as TTL serial communication to represent logic levels. Since the single-wire bus uses only one data line for bidirectional communication, only one direction of transmission can occur at any given time, i.e., it operates in half-duplex mode. The bus is typically controlled by a master device (host) that manages the communication timing. The commands sent by the master include the target device address, and all devices on the bus receive the command; however, only the device with the matching address responds and returns data, thereby completing one communication cycle.
The J288/S288 servos support up to 15 servos on a single bus (addresses 0–14, with address 15 reserved as a broadcast address). No two servos on the same bus are allowed to share the same address; otherwise, the entire bus communication will become abnormal.
To send motion control commands to the servo, instructions are transmitted via a serial port. The servo communicates with the host through the single-wire interface, and the communication baud rate is fixed at 6 Mbps (8N1).
Figure 2: Digital Servo Wiring Connection
As shown in Figure 2, the interface is connected via a PH 2.0 cable to B (the single-bus serial-to-USB module), which is then connected to a computer via A (USB Type-C cable). Power is supplied through C (XT30 power cable). The digital servo package only includes the PH 2.0 cable; all other components must be purchased separately.
When using a personal computer to control the servo, the single-bus interface should be connected to the host computer via a USB-to-single-bus adapter. After connecting a 12 V DC power supply, the green indicator light on the servo will start flashing, indicating that the servo has powered on successfully.
8. Servo Configuration and Quick Start
Using the servo debugging assistant, you can perform the following configuration operations on the servo:
- Query and modify the ID
- Enable the auto-guidance function
- Update firmware
- Query version number
- Restore servo mode
- Temporarily disable guidance
With the servo debugging assistant, you can also quickly operate the servo and implement the following functions:
- Servo motion control
- Data curve plotting
For detailed operating procedures, please refer to the Servo Debugging Assistant User Guide.
9. Servo Protocol
Considering that some users may use specialized platforms to control the servo, this section explains how to write a custom servo control program. Following the method described here, users can send control commands and receive servo status feedback on any platform that meets the hardware requirements.All parameters in the protocol are rotor-side data. The gear reduction ratio is 288.35. If conversion to output-side data is required, the values must be multiplied or divided by this reduction ratio.
The J288/S288 servo uses serial communication based on a single-wire (1-Wire) bus. The communication standard is 6.0 Mbps. The serial format is 8 data bits, no parity bit, and 1 stop bit.It should be noted that, in order to improve communication frequency, a very high baud rate of 6.0 Mbps is used. Users must verify whether their hardware supports such a high baud rate. If the hardware cannot support it, the Unitree USB-to-single-wire (1-Wire) module can be used instead.
When controlling the servo, a 20-byte command packet is transmitted via the serial interface. The servo then returns a 26-byte response packet. If no command is sent to the servo, it will not output any status data. The command transmission format and response format are defined in the structures below, which specify the meaning of each byte in detail. Several key details are explained as follows.
First, in the command sent to the servo, bytes 5 and 6 represent the feedforward torque τ_(ff ), where 256000 corresponds to 1 N·m. This means the feedforward torque value is multiplied by 256000 and then assigned to a 2-byte signed short integer. During this assignment process, truncation occurs, allowing the feedforward torque τ_(ff ) to be transmitted using only two bytes. After the servo receives this data, it simply divides the value by 256000 to recover the actual feedforward torque τ_(ff ). Although this method introduces some loss of precision, it is fully acceptable for practical applications.
In addition, it should be noted that for a 2-byte (16-bit) variable, one bit is used as the sign bit to represent positive and negative values, leaving only 15 bits for magnitude representation. This means that the value of τ_(ff ) in the command cannot exceed a certain upper limit of 2^15 . Given that we previously multiplied the raw torque value by 256000, the absolute upper bound becomes:
It should also be noted that due to truncation during assignment, the larger the value of τ_(ff ), the lower the resulting precision.The statement “256000 corresponds to 1” in the structure comments refers to the multiplication scaling described above. Similar “xx corresponds to 1” annotations for other variables follow the same principle.
Furthermore, for the 2-byte torque variable, the lower byte comes first (byte 5), and the higher byte comes second (byte 6), i.e., little-endian format.At the end of both command transmission and response packets, a 4-byte CRC32 checksum is included. Before sending a command, a CRC value is computed over the outgoing command bytes and transmitted together with the packet. After receiving the command, the servo also computes a CRC value based on the received data.
If no transmission error occurs during communication, the pre-transmission CRC value will match the post-reception CRC value. If any data corruption occurs during transmission, the computed CRC after reception will differ from the original transmitted CRC value. This allows the servo to detect corrupted data and helps prevent the use of erroneous commands.
10. Servo Fault Code Table
Fault Code | Bit(bit) | Description | Fault Code | Bit(bit) | Description |
0x01 | 0 | Overcurrent | 0x02 | 1 | Transient overvoltage |
0x04 | 2 | Continuous overvoltage | 0x08 | 3 | Undervoltage |
0x10 | 4 | Chip over-temperature | 0x20 | 5 | MOS overheat / overcool |
0x40 | 6 | MOS temperature anomaly | 0x80 | 7 | Housing overheat / overcool |
0x100 | 8 | Housing temperature anomaly | 0x200 | 9 | Winding overheat |
0x400 | 10 | Rotor encoder 1 error | 0x800 | 11 | Rotor encoder 2 error |
0x1000 | 12 | Output encoder error | 0x2000 | 13 | Storage data error |
0x4000 | 14 | Abnormal reset | 0x8000 | 15 | Waiting for unlock |
0x10000 | 16 | Driver validation error | 0x20000 | 17 | Calibration mode |
0x40000 | 18 | Communication checksum error | 0x80000 | 19 | Driver version too low |
0x100000 | 20 | Firmware model error | 0x200000 | 21 | Encoder angle abnormal |
0x… | … | Unknown error |
Table 1. Servo Fault Code Table
11. Warning Code Table
Fault Code | Bit(bit) | Description | Fault Code | Bit(bit) | Description |
0x01 | 0 | Low-voltage power supply abnormality | 0x... | ... | Unknown warning |
Table 2. Servo Warning Code Table
← Previous
Unitree IM6014 Motor User ManualNext →
Unitree Motor DocsOn this page
- Unitree Brushless Digital Servo Motor User Manual
- 1. Digital Servo Package Contents
- 2. Digital Servo Installation Instructions
- 2.1 S288
- 2.2 J288
- 3. Digital Servo Interface Description
- 4. Single-Bus Serial-to-USB Board Interface Description
- 5. Overview of Digital Servo Encoders
- 6. Hybrid Control of Digital Servos
- 7. Wiring Connection of Digital Servos
- 8. Servo Configuration and Quick Start
- 9. Servo Protocol
- 10. Servo Fault Code Table
- 11. Warning Code Table