I am using 18 of this hobby servos for a hexapod, that are going to run simultaneously. Now I need to decide the power source, and need to determine the current needed. I know that the maximum current that a motor draws is its stall current, and it should run with lower current than the stall current. But no datasheet mentions the stall current. All of them mentions the stall torque, 1.6kg-cm(at 4.8V) in this case. And I cannot find any equation that calculates the stall current from stall torque and applied voltage. Some people suggested to actually stall the servo and find the current with an ammeter, but I'd rather find it by calculation. So how can I find the stall current?


3 Answers 3


I cannot find any equation that calculates the stall current from stall torque and applied voltage.

There is an equation that calculates motor current from torque and voltage, but you also need the motor's torque constant (Kt) or velocity constant (Kv). Kv can be roughly derived from the servo's operating speed at a particular voltage, so you might think that the published servo specs are enough. Problem is these specs were not intended for calculating current, so their relevance is suspect (eg. torque rating may not be at stall, operating speed includes starting and stopping time) and being cheap Chinese servos their specs probably aren't accurate anyway.

The easiest safe way to calculate stall current is to take the bottom off the servo and measure the motor's resistance (Rm) with an ohmmeter. Then divide voltage by resistance to get current. However this will probably overestimate the stall current because:-

  1. The H bridge transistors have some loss, so the motor won't get the full supply voltage.

  2. The servo doesn't power the motor continuously, but with pulses whose width is proportional to the difference between commanded and actual positions. At normal frame rate (50Hz) there is always a gap between motor drive pulses, so even at stall the motor may only be on 70~80% of the time.

So if you want to find out how much current the servo really draws, you will just have to measure it. Measuring supply current while stalling the servo at one end of its travel and commanding it to go to other end will give you the worst-case average current at stall, but not the peak current. This test is also very hard on the servo. A better way is to put a current shunt in one supply lead and measure instantaneous current while the servo is operating.

The motor in the HXT900 I tested measured 4.1Ω. When the servo was powered with 5V the motor pulses were 3V high (2V drop in the H bridge and wiring!). This equates to 0.73A peak current. Here's a scope trace of supply current measured with a 0.1Ω shunt resistor, while the servo was making rapid small reversing movements.

enter image description here


V = IR

To the first order, stall current = Applied drive voltage divided by the DC resistance of the coil.

The stall current occurs when the motor is stalled (not moving), so there is no reactance and no "back electromotive force (EMF)". It's literally only the resistance of the wiring in the servo motor that is resisting the flow of current... just like a resistor in a DC circuit.

  • \$\begingroup\$ If I measure the resistance between the power and ground terminal, I get the internal resistance,right? Then I use this R and V=4.8V and calculate I? \$\endgroup\$
    – Nafis
    Sep 9, 2016 at 22:23
  • 1
    \$\begingroup\$ Servos have other electronics besides just the motor coil in the power path (because the Servo has an internal control circuit which has an effective power switch/gate on the motor coil). Measuring the power-ground DCR is not likely to (e.g. it will not) yield an accurate measure of coil resistance (it will be way too high as the "switch" in the power path will be in the off state). \$\endgroup\$ Sep 12, 2016 at 0:45

Power=torque x angular velocity Power in watts Torque in Nm A. Velocity in rd/sec

That is the mechanical power that the motor is delivering to move an arm of the robot

So its not that easy to calculate but if you know the angular velocity from the datasheet you can calculate the power

Bow the electrical power consumed by the motor is given by: Power=V x I V: Volts I: amps

Ofcource the mechanical power isn't ecactly equal to the electrical power as some of the electrical power is lost due to friction (especially because of gears) and heat (elextrical resistance of coils inside motor) and the ratio of the used mechanical power over the total consumed power is the effeciency of the motor.

Actually there are special expensive equipment needed to find the torque and velocity of the motor..They use these equipments to model the motor. So it's not as simple as you may have thought

Now to find the stall current, the electrical energy supplies at stall is all converted into heat due to the internal resistance of the motor. But you can't actually access the leads of the actual motor because there is a driver inside the servo and that driver is connected to the motor. Theoratically you could have stalled the motor at a low voltage and simply use u=ir to find r. But you can't do that for a serco as it's actually made up of a microcontroller, a driver, a feedback sensor(potentiometer) and a motor. The stall current may not be the actual stall current but maybe a limit imposed by the microcontroller in the servo motor. Summary: stall the motor and measure the current!!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.