Waveshare ST3025 bus servo (40 kg-cm): specs
A metal-case serial bus servo with a brushless motor and a 360 degree magnetic encoder, documented by Waveshare as the ST3025. It is addressed by ID on a TTL serial bus, can be daisy-chained, and reports position, load, speed, voltage, current and temperature back to the controller.
Specs
| Spec | Value | Source |
|---|---|---|
| Input voltage | 6 V to 12.6 V (typical 12 V) | source Specification |
| Locked-rotor torque | 40 kg.cm | source Specification (Locked Rotor) |
| Idle speed | 0.117 s/60 degrees (85 RPM) at 12 V | source Specification |
| Current | Static 6 mA; non-load 380 mA; rated 1.5 A; locked-rotor 4.4 A | source Specification |
| Control interface | TTL serial bus servo interface; baud rate 38400 bps to 1 Mbps (1 Mbps default) | source Specification; page header |
| Angle resolution | 0.088 degrees (360/4096); 360 degree absolute control in servo mode, continuous rotation in motor mode | source Specification |
| ID range | 0 to 253; up to 253 servos on one bus in theory, provided enough power | source Specification; Feature |
| Feedback | Position, load, speed, input voltage, current, temperature | source Specification |
| Torque constant | KT 9 kg.cm/A | source Specification |
| Size | 40 mm x 20 mm x 40 mm | source Specification |
Power
| Value | Source | |
|---|---|---|
| Supply | 6 V to 12.6 V (12 V recommended on the wiki's driver board DC port); a 2S or 3S lithium battery range | source Specification; How to Use the Software, servo ID setup |
| Current | 380 mA non-load; 1.5 A rated; 4.4 A locked rotor | source Specification; How to Use the Software, servo ID setup |
Pinout
We don't publish a pin table for this part: no official source we could verify gives one. Check the labels printed on your module, and see the notes below.
The wiki does not list the pins of the servo's two connectors in text; it refers to a schematic of the serial bus servo drive circuit. No pin table is given here. Use a Waveshare driver board and cable so the connectors match.
Build with it
Project ideas for the Waveshare ST3025 bus servo (40 kg-cm). Each link opens Soldr with the prompt filled in; Soldr assigns the pins, checks power and shows how to wire every part.
- A one-joint robot arm test that turns a bus servo to set angles typed over serial using a Waveshare bus servo adapter board and an ESP32: The wiki lists ESP32 as a UART host for the adapter. Power the adapter at 12 V on its DC port: that is inside both the servo's 6 V to 12.6 V and the adapter's 9 V to 12.6 V range. One servo draws 380 mA unloaded and up to 4.4 A if the arm is blocked, so keep it from stalling and use a 12 V adapter whose barrel plug fits the driver board's DC5521 (5.5 x 2.1 mm) power header, or its green power screw terminal; do not wire a bare mains supply. The driver board's DC input current rating is not published, so keep the total draw well below 5 A.
- Servo load and temperature monitor: The servo returns position, load, speed, voltage, current and temperature, which the ESP32 reads over the adapter's UART and shows on the OLED. Keep the test load light so the servo stays well under its 1.5 A rated current. Learning project.
- Two-joint arm on one cable: Each servo has two connectors so they can be chained, and each needs its own ID. At 12 V each servo idles at 380 mA and can reach 4.4 A if blocked, so two servos could approach 8.8 A in a stall; a 5 A supply is enough for moves but not for both stalled, so design the poses to avoid blocking. Learning project. The 12 V supply plugs into the driver board's DC5521 (5.5 x 2.1 mm) power header or connects to its green power screw terminal; the board's DC input current rating is not published, so keep the total draw well below 5 A.
Common mistakes
- Under-sizing the supply: the locked-rotor current is 4.4 A per servo and the rated current is 1.5 A, so several servos need a supply that can give the sum, and the wiki says a large number of servos needs enough current at the driver board's DC port (source: link, Specification and servo ID setup).
- Giving the driver board a voltage below its range: the wiki's Bus Servo Adapter (A) lists a 9 V to 12.6 V input that should match the servo voltage, while the servo itself is rated 6 V to 12.6 V, so a 12 V supply fits both (source), Specification).
- Having two servos with the same ID on one bus: set a distinct ID on each servo with only that servo connected, since the factory ID is shared and the new ID is stored permanently (source: link, servo ID setup).
Not covered by the official source
- The model name (ST3025) is inferred from the specifications: Waveshare's ST3025 page matches the 40 kg.cm figure, 6 V to 12.6 V range and brushless magnetic-encoder description. Confirm it against the servo's label.
- Connector pin order and wire colours are not given in the wiki's text.
- Operating temperature and the temperature at which the servo's protection acts are not stated in the wiki's specification list.