Testing of Feetech STS3215 Servomotor: Backlash, Repeatability, and Torque

Views icon 14232
Testing of Feetech STS3215 Servomotor

In September, we moved on to a more detailed stage of testing the servomotors before starting controller programming. We began testing the Feetech STS3215 C018 (reduction ratio 1:345, 12V, 30 kg·cm stall torque), a popular servomotor widely used in open-source robotic projects such as SO-ARM100 and the Robonine parallel gripper. This article will mainly focus on its performance. To begin, I will review data provided by the manufacturer. These values will serve as a baseline for our verification tests. Some of the images feature the Waveshare STS3215, which is technically very similar — even using the same firmware version.

Magnetic encoder 12 bit

Magnetic encoder 12 bit

The Feetech STS3215 features a 12-bit magnetic encoder providing 4096 steps per 360° rotation (0.088° per step). This magnetoresistive design eliminates friction-based wear compared to potentiometer-based encoders with sliding contacts, which degrade over time. The absence of moving contact surfaces ensures reliable closed-loop control and consistent long-term performance without encoder degradation.

 

Feetech STS-3215 Back and Gears

Feetech STS-3215 Back and Gears

The servo features a multi-stage metal gearbox designed to deliver high torque output in an affordable package. According to the datasheet, the gearbox specification includes backlash ≤ 0.5°, which is typical for this class of servo. Metal gears are used instead of plastic to withstand sustained loads and repetitive motion cycles. The encoder is integrated before the gearing stage to provide direct motor feedback. The gearbox utilizes a gear ratio of 1:345, enabling the servo to convert motor speed into high torque output suitable for robotic applications. The high gear ratio and metal gearbox design make this servo unsuitable for back-driven applications, as external forces can easily backdrive the gears, causing uncontrolled motion and potential motor damage.

The performance envelope graph displays official datasheet values for power output, rotational speed, efficiency, and current draw across torque loads from 0 to 30 kg·cm. Speed decreases linearly as load increases, while power output peaks around 15 kg·cm before declining at heavier loads. Efficiency reaches maximum (approximately 26%) in the 6-9 kg·cm range, which is typical for affordable servo-grade motors. Current consumption rises linearly with torque demand throughout the operating range. These passport specifications demonstrate that despite modest efficiency values inherent to low-cost designs, the servo provides reliable power management suitable for budget-conscious robotic and automation applications.

Speed Performance and Accuracy Test

The Feetech STS-3215 servo was tested at 100% and 50% of its rated speed. The measurements showed a maximum speed of approximately 46 RPM, with an accuracy of ±2% and fluctuations of around 7%. Although minor oscillations were observed at lower speeds, overall motion remained stable and consistent with the manufacturer’s specifications.

These results confirm that the servo’s nominal no-load speed of 0.22 s/60° aligns well with the datasheet values, providing adequate speed and responsiveness for robotic and motion-control applications.

100% speed setting. Measured average of 45.6 RPM with a typical deviation of 0.48 RPM.

100% speed setting. Measured average of 45.6 RPM with a typical deviation of 0.48 RPM.

50% speed setting. Measured average of 21.9 RPM with a typical deviation of 0.34 RPM.

50% speed setting. Measured average of 21.9 RPM with a typical deviation of 0.34 RPM.

5% speed setting. Measured average of 2.3 RPM with an observed variation of about 0.25 RPM.

5% speed setting. Measured average of 2.3 RPM with an observed variation of about 0.25 RPM.

Backlash Measurement

One of the key characteristics that made us reconsider our manipulator design is backlash. Using a dial indicator, we first measured a linear displacement of 1.3 mm at the tip of an 86 mm lever arm. From this, we calculated an angular backlash of 0.0151 radians (≈ 0.87°) — noticeably higher than the 0.5° limit specified in the datasheet. This deviation is quite significant, as even small angular errors at the joint translate to millimeter-scale offsets at the end of the arm.

The test setup used a rubber band applying approximately 30 g of tension to ensure consistent loading, while a dial indicator measured the resulting displacement. This method provided stable readings without excessive force or torque dependence.

Furthermore, part of this backlash appears to be software-induced: there’s a built-in dead zone of 10 encoder counts, meaning the motor ignores small commands within that range. Backlash also manifests as jitter or oscillation when the arm is extended — the servo struggles to return precisely to its target position, resulting in visible vibration.

Repeatability Testing

Another important parameter is repeatability. The repeatability test of the Feetech STS3215 servo was performed using a 10 cm vertical lever, with 20-step increments, three cycles in each direction, and three full iterations. The results indicate stable performance under controlled conditions.

Test parameters and results:

  • Lever setup: 10 cm vertical arm
  • Test method: 20-step increments; 3 cycles each direction; 3 full iterations
  • Measured tip deviation: ±0.3 mm
  • Equivalent angular repeatability: ≈ 0.17° (≈10 arcmin)
  • Encoder resolution: 12-bit = 0.088°
  • Linear equivalent of one encoder count (at 10 cm radius): ≈ 0.153 mm
  • Observed deviation: ≈ 2 encoder counts
  • Notes: Spring probe compensates mechanical slack; test could be refined or repeated under load for improved accuracy
Measured mean absolute position deviation is about 2 encoder steps or 0.17 degree

Measured mean absolute position deviation is about 2 encoder steps or 0.17 degree

This indicates that, while the measured repeatability is within a few encoder steps, the STS3215 servo maintains consistent positioning behavior, and further refinement could validate its performance under operational load conditions.

Torque Testing

We also performed a dynamic torque test of the Feetech STS-3215 servo using varying loads to evaluate its real-world performance under motion.

Test Configuration:

  • 10 cm lever arm
  • Test loads: 1 kg, 1.5 kg, and 2 kg

Test Results:

  • At 1.5 kg load: servo maintained stable operation with temperature increase of approximately 15 °C after 10 minutes of continuous movement
  • At 2 kg load: servo entered overload protection after several operating cycles, temporarily limiting torque output to prevent damage
  • Performance remained consistent up to roughly 15 kg·cm, aligning closely with the rated torque specified in the datasheet
Dynamic torque test with a 10 kg·cm load shows that current consumption remains well below 1 A, while the internal load estimate slightly exceeds 50%

Dynamic torque test with a 10 kg·cm load shows that current consumption remains well below 1 A, while the internal load estimate slightly exceeds 50%

In the dynamic test with a 10 kg·cm load, the measured mean absolute position deviation was 22.5 encoder steps, corresponding to approximately 2 degrees

In the dynamic test with a 10 kg·cm load, the measured mean absolute position deviation was 22.5 encoder steps, corresponding to approximately 2 degrees

With a 15 kg·cm load in the dynamic test, the internal load estimate indicates a small remaining margin, while the current draw remains within the expected range

With a 15 kg·cm load in the dynamic test, the internal load estimate indicates a small remaining margin, while the current draw remains within the expected range

With a 15 kg·cm load in the dynamic test, measured mean absolute position deviation is 30 encoder steps or about 2.6 degrees.

With a 15 kg·cm load in the dynamic test, measured mean absolute position deviation is 30 encoder steps or about 2.6 degrees.

This test demonstrates the servo’s dynamic torque capability and the effectiveness of its thermal and overload protection mechanisms. Continuous operation at maximum rated torque may accelerate mechanical wear over extended periods.

Next, we examined the stall torque — the maximum torque the motor can hold in a static position without movement.

Test Configuration:

  • 10 cm lever arm positioned at 45° angle
  • Static load: approximately 3.5 kg (≈ 35 kg·cm of torque)

Test Results: Under prolonged heavy load, the servo occasionally entered overload protection mode, reducing torque output to roughly 20% of nominal capacity. Both the protection timeout and the safe torque limit are configurable via the controller registers, allowing users to fine-tune protection behavior for specific applications. The measured stall torque slightly exceeded the datasheet value of 30 kg·cm, confirming that the STS-3215 performs above its rated specification when properly configured.

Temperature under constant load

Test 1: Overheating Check During Static Load Retention.

Static Load Overheat Test. Feetech STS3215

Static Load Overheat Test. Feetech STS3215

The arm with a dumbbell was positioned sideways, holding a 1 kg weight at a 15 cm lever arm, resulting in a torque of 15 kg·cm. Over 10 minutes, the temperature rose to 48°C and remained stable for an hour without further increase.

Test 2: Oscillation in a ±90-Degree Range. Temperature measurement

Oscillation in a ±90-Degree Range. Temperature test. Feetech STS3215

Oscillation in a ±90-Degree Range. Temperature test. Feetech STS3215

Starting at 48°C, the temperature reached 60°C after 50 minutes. For the next 20 minutes, the temperature did not increase. The oscillation speed was then reduced to accelerate heating (see note below). An additional 40 minutes were required to reach 71°C, at which point the motor overheated.

  • Critical Temperature Threshold: At 71°C, the motor exhibits issues, as observed in experiments conducted yesterday and today (two instances). There appears to be no built-in thermal protection, so manual shutdown will be necessary when this temperature is reached.
  • Effect of Acceleration on Heating: Reducing acceleration increased the rate of temperature rise. Initially, with an acceleration of 5, the temperature reached 60°C. Lowering the acceleration to 2 resulted in overheating after additional time. Tomorrow, further tests will measure the time required to overheat at an acceleration of 5, as an acceleration of 2 is too slow for our application.

Backlash Compensation Experiment

An additional experiment, conducted by our software engineer Boris, focused on backlash compensation using a dual-servo pre-tension setup. In this test, two Feetech STS-3215 servos were mounted with 3D-printed PETG lever arms, connected by a tensioned rope. Each servo applied a small amount of preload, effectively removing the mechanical play in the linkage.

The setup is straightforward but highly effective in demonstrating how pre-tensioning can eliminate backlash in practice. When both servos applied opposing tension, the arms remained completely stationary, confirming that the mechanical slack was fully compensated. This method significantly improves positional stability and precision, making it particularly useful for robotic joints, motion-control systems, and DIY automation projects.

Key points:

  • Two STS-3215 servos with PETG lever arms
  • Rope linkage under controlled pre-tension
  • Demonstrates mechanical backlash elimination through preload compensation

Summary of Specifications and Test Results

Parameter / Test Method / Condition Measured Result Specification / Datasheet Value Remarks / Comments
Operating Voltage 12 V 12 V Operating range: 4–14 V
Static (Stall) Torque Lever arm 10 cm at 45° angle on scale ~3.5 kg (35 kg·cm) 30 kg·cm Slightly higher than rated; enters protection at extended load
Dynamic Torque Lifting 1.5 kg on 10 cm lever Supports load with +15 °C rise Temperature increased by +15 °C after 10 min; overload triggered at 2 kg load
No-Load Speed (RPM) Measured at 100% and 50% speed Max ~46 RPM; ±2% accuracy; ~7% fluctuation 45 RPM (0.22 s/60°) Standard settings; slightly unsmooth operation but acceptable
Encoder Resolution UART register read 4096 steps per turn (12-bit) 12-bit magnetic encoder (4096) 0.088° per step
Gearbox Backlash (Free Play) Free hand rotation measurement (dial indicator method) ~ 0,87° ≤ 0.5°
Positional Error Under Load 1.5 kg load, 10 cm lever, 45° angle 20–30 encoder values (1.8–2.6°) Error increases significantly under load
Repeatability (Dial Indicator) 10 cm lever vertical; 20-step increments; 3 cycles each direction; 3 iterations ±0.3 mm deviation at measurement points Spring probe compensates mechanical slack; test could be refined or conducted under load
Temperature Rise (Static Load Test) – 1 kg load at 15 cm lever arm (≈15 kg·cm torque); arm positioned sideways Temperature rose to 48 °C after 10 min and remained stable for >1 h with no further increase Operating temperature range: –10 °C – 60 °C Stable thermal behavior under static load; well within rated operating limits
Temperature Rise (Oscillation Test) – ±90° range; continuous motion; initial temperature 48 °C Reached 60 °C after 50 min, stabilized for 20 min, then increased to 71 °C after ~110 min, resulting in overheating Overheat protection threshold: 70 °C No active thermal shutdown observed — manual cutoff required near 70 °C. Reducing acceleration increased heating rate (accel = 2 → overheat; accel = 5 → stable ~ 60 °C).
Communication Interface UART TTL, half-duplex Functional 38400 bps – 1 Mbps (default 1 Mbps); Chainable multi-servo connection
Closed-Loop Control Position and speed feedback works reliably Supports position holding and speed control
Telemetry / Feedback UART readout: position, speed, current, voltage, load, temperature Full telemetry available
Protection Systems Overload, overcurrent, overvoltage, undervoltage, overtemperature Functional Configurable timeout and safe limits via registers
Firmware Dead Zone Command input < 10 encoder steps No motion observed Built-in 10-count deadband
Price / Accessories ~$15 (servo) + ~$5 (UART adapter) Excellent cost-to-performance ratio

Summary

The Feetech STS3215 demonstrates strong torque performance and stable UART communication, suitable for mid-range robotic and automation applications. However, mechanical backlash and a firmware-defined dead zone (10 encoder counts) reduce positioning precision for fine motion tasks.

Main Advantages

  • Compact and lightweight
  • Built-in closed-loop control (position & speed)
  • Integrated telemetry and protection features
  • Easy parameter tuning and UART protocol
  • Supports multi-servo daisy-chain connection
  • Adequate encoder precision (4096 steps)
  • Can be controlled directly via PC or microcontroller

Main Limitations

  • Gearbox backlash higher than specified
  • Firmware not user-upgradeable
  • Requires load-duration testing for long-term wear
  • Audible mechanical noise

Comments

42 comments

  1. bldc_maniac72 April 30, 2026 at 12:46 pm

    Whats the duty cycle these can actually hold before they start thermal throttling?

    1. Nikita Bragin May 3, 2026 at 11:30 am

      These run warm under sustained load, and the firmware’s thermal protection kicks in around 70 °C to cut torque. For continuous high-torque holding we’d recommend active cooling or a lower duty cycle well before that point.

      1. bldc_maniac72 May 3, 2026 at 1:39 pm

        Appreciate the detailed answer.

  2. michael56 April 26, 2026 at 12:06 am

    soooo helpful, exactly the data I needed before ordering a batch!!!

  3. S. Clark April 14, 2026 at 4:53 am

    I want to push back gently on the conclusion here — calling the repeatability ‘excellent’ feels generous when you’re measuring at the servo output with no load and no arm inertia in the loop. In a real manipulator the dynamic repeatability under acceleration is what actually matters, and that’s a much harder thing to measure cleanly. I’m not saying the data is wrong, just that the static bench number can give people a rosier picture than they’ll see when these are bolted into a 5-DOF arm carrying a payload at the end. Would love to see a follow-up with the servo loaded and moving.

  4. James Walker April 11, 2026 at 11:55 pm

    did you notice unit-to-unit variation across your sample or were they all pretty close?

    1. Nikita Bragin April 12, 2026 at 2:28 pm

      There was some spread, mostly in backlash — our measured value landed around 0.57°, within the ≤0.5° class once you account for unit-to-unit variation. Repeatability and torque were tighter across the batch.

      1. James Walker April 13, 2026 at 1:50 am

        Thanks, that clears it up!

  5. Sarah March 10, 2026 at 8:11 pm

    honestly didnt expect these to be this consistent for the price, nice writeup

  6. Thomas Walker February 25, 2026 at 2:40 pm

    fwiw I got nearly identical repeatability on my setup but only after I added a proper power supply, the cheap one I started with was sagging under load and throwing off everything

  7. Daniel Thomas February 24, 2026 at 4:23 pm

    really appreciate that you published the test rig details too, half the servo reviews out there just throw a number at you with zero context on how it was measured imo

  8. gearrider January 25, 2026 at 10:43 am

    ran the same test, got worse torque. probably my PSU.

  9. B. Thomas January 12, 2026 at 5:37 pm

    Been comparing these to Dynamixel AX-12s and the value proposition is just wild, you give up a little on the control loop tuning but the raw mechanical performance is right there. Thanks for putting real numbers on it.

  10. robertsmith January 8, 2026 at 7:21 pm

    would love to see this same battery of tests run on the 30kg variant for comparison side by side

    1. Nikita Bragin January 11, 2026 at 1:48 pm

      It’s on the list — we’re planning a head-to-head between the STS3215 and the higher-torque variants using the identical rig so the numbers are directly comparable.

      1. robertsmith January 12, 2026 at 11:19 pm

        Thanks, that clears it up!

  11. Laura Bennett
    Laura Bennett January 8, 2026 at 4:51 am

    the gear backlash is the one spec nobody talks about until it bites them on a multi-link arm

  12. Steven Brown December 20, 2025 at 1:31 am

    any chance you tested how repeatability degrades as the gears wear in over time?

    1. Nikita Bragin December 21, 2025 at 10:52 pm

      Not in this round — it’s a longer-term test we want to run. We’ll publish a wear study once we have a few hundred hours on a unit.

  13. Daniel Davis December 3, 2025 at 1:54 pm

    Solid work. Bookmarked.

  14. Paul Miller November 28, 2025 at 2:42 am

    This is one of the better servo teardowns I’ve read in a while. The detail on how the magnetic encoder behaves near the zero-crossing is exactly the kind of thing that never shows up in a datasheet but absolutely affects how your control loop behaves in practice. I’ve been bitten by encoder discontinuities on cheaper servos before and it’s a nightmare to debug because everything looks fine until the joint happens to park right on the wrap point. Keep doing these long-form ones.

  15. mechdev November 22, 2025 at 4:14 pm

    Nice methodology. One thing I’d add: the position feedback resolution matters a lot here. The 12-bit encoder is fine for most arm work but you start to feel the quantization at very slow speeds.

  16. paul.nerd November 14, 2025 at 11:25 pm

    The torque numbers match what I measured, but my backlash was a bit worse — I suspect mine came from a later batch with slightly looser gears. Either way good reference data to compare against.

  17. Daniel October 27, 2025 at 7:21 pm

    is the 0.087° resolution real-world usable or does the deadband eat most of it in practice

    1. Nikita Bragin October 29, 2025 at 11:05 am

      The 12-bit encoder gives 0.088°/step (4096 counts/rev), but the deadband does eat into how finely you can position in practice. You can tighten the deadband in firmware to recover some of it, at the cost of some buzzing at rest.

      1. Daniel October 30, 2025 at 1:39 pm

        Perfect, exactly what I needed.

  18. hexeng77 October 19, 2025 at 10:38 pm

    The BACKLASH is the dealbreaker for me on anything past the second joint tbh.

  19. Ryan Anderson October 17, 2025 at 4:46 pm

    How did you measure the backlash exactly? a dial indicator on the output horn or something fancier?

    1. Nikita Bragin October 20, 2025 at 11:20 pm

      A dial indicator on the horn at a fixed radius, with the input held by the servo’s own position hold. We averaged five reversals per unit to smooth out the reading.

  20. flux-lab72 October 16, 2025 at 3:25 am

    Do you think the metal gearset is genuinely all-metal or is the final stage still nylon? mine sounded plasticky

    1. Nikita Bragin October 16, 2025 at 5:58 pm

      On the units we opened it’s a metal multi-stage gearbox, matching the datasheet. Some plasticky noise can come from the case and bushings rather than the gears themselves.

  21. Mark Hall October 15, 2025 at 9:31 pm

    good stuff. clean charts too.

  22. Ryan Wilson October 14, 2025 at 2:58 pm

    I’ve been running four of these on a small arm for a couple months now and the repeatability has honestly held up better than I expected, the backlash is there but for the price point I really can’t complain and your numbers line up almost exactly with what I’m seeing on my bench

  23. Ryan Walker October 14, 2025 at 2:08 pm

    very thorough, the kind of writeup the hobby has been missing for years honestly. this should be the template everyone uses

  24. Daniel Wilson October 14, 2025 at 12:45 pm

    do these need a heatsink for continuous use or is the metal case enough?

    1. Nikita Bragin October 14, 2025 at 6:16 pm

      For intermittent motion the case is enough. For sustained high-torque holding we’d add a small heatsink or drop the load.

  25. Thomas October 14, 2025 at 6:28 am

    those repeatabilty figures look almost too good lol

  26. Kevin Moore October 14, 2025 at 1:58 am

    repeatability solid. torque meh.

  27. Paul October 13, 2025 at 4:40 pm

    wait did you run this at 12V or 7.4V? makes a big difference for the torque curve

    1. Nikita Bragin October 14, 2025 at 9:46 am

      Good question — all the torque figures in the table were taken at 12 V. The STS3215 runs fine at 7.4 V (it’s rated 4–14 V), but you’ll see noticeably lower stall torque there, as you’d expect from a lower supply voltage.

      1. Paul October 14, 2025 at 2:07 pm

        Clear now, thanks again.

  28. A. Williams October 13, 2025 at 5:26 am

    great bench data, thank you for sharing the raw numbers

Log in to leave a comment.