For the purpose of DIY robotics, I would like to have an electric motor, which is best for providing torque while not rotating. I imagine my robot will maintain a static balanced torque while maintaining pose, while movements will be implemented as guided disbalancing...

I think I can make the desired motors from one of conventional ones.

First of all, I don't like conventional DC motors, because I think they will overheat if blocked, and also they have a complex relationship between current and torque. Also it is possible the torque can have "jumps" on the relationship plot when the commutator changes coils.

So, I imagine, that the best option is 3-phase (3 dipoles) motors with permanent magnets. I will be able to control the current in each dipole and therefore will be able to orient magnetic field as I wish.

What are the motor types that best fit this description so that I can include them in my design?

  • 2
    \$\begingroup\$ First of all you have to tell us, what type of actuator you want to use. But probably this is not an arduino related question? Can you clarify the connection? \$\endgroup\$
    – Ariser
    Sep 22, 2015 at 15:21
  • \$\begingroup\$ I am convinced that good robotics should not based on steppers or other types of motors, creating movement or changing position. Robot's motor should provide static torque most of time. So I wish to experiment with this idea. \$\endgroup\$
    – Dims
    Sep 22, 2015 at 15:58
  • \$\begingroup\$ "Static torque" with no rotation = zero (mechanical) work. Wasted heat, wasted energy, yes. I wonder if you could achieve the same effect with a mechanical braking system (thinking servo-controlled horseshoe brake) on the motor pulley/flywheel and a torque sensor. Brake holds rotor; if it slips, torque drops, motor is engaged, brake released, torque goes back up, brake set again, motor off. \$\endgroup\$
    – rdtsc
    Sep 29, 2015 at 0:55
  • \$\begingroup\$ Robot should have feedback and control torque appropriate. Big mechanical work can be obtained with non intellectual steam engine. \$\endgroup\$
    – Dims
    Sep 29, 2015 at 11:31
  • \$\begingroup\$ At WEG we have a factory in Germany that manufacturers electrical static torque motors for this purpose. \$\endgroup\$
    – user110953
    May 23, 2016 at 14:18

4 Answers 4


Torque and current have a direct relationship in DC motors (brushed or brushless if driven appropriately). The torque provided by the brushed DC is not really smooth because the rotor and stator magnetic fields are only perpendicular once per transition, but the brush assembly is made such that there are no gaps in the torque available throughout the rotation. Regarding overheating, you'll need to work out the current required to compensate for the load torque, calculate the joule heating and do a simple thermal analysis with the rotor to ambient thermal resistance and the Max rotor temperature that can be both found (hopefully) in the vendor's data sheet. So it's not necessarily a no go. Especially given that you can include a heatsink to the motor in your analysis.

You'll have the same thermal analysis to run on the DC brushless. Don't think that a 10W motor can be run for long at 10W regardless of the torque produced and its speed, the efficiency is variable depending on the speed of the motor and usually the rated power is stated at rated speed, just like DC brushed motors. DC brushless are more expensive though because they have a somewhat complex electronic commutation circuit.

You could also go down the stepper route: if the load torque is lower than the holding torque then it is also an option, even more so if the detent torque (when OFF) is enough. Good thing is, you don't need a feedback sensor in a closed loop with this option (unlike all other motor types), only a home microswitch to know where to count steps from. You'll need a stepper controller though, but it is simpler and cheaper than the DC brushless one.

In both cases a gearbox can be used to increase the motor torque output to meet your needs (or from a different point of view, to reduce the motor torque required), just don't forget to include the gearbox resistive torque in your torque budget (i.e. to ensure the motor torque margin is high enough to absorb mother nature's randomness).

In my opinion you should strike the 3 phase AC synchronous machine (which is basically a DC brushless raw without controller) out, generating 2 or 3 sine of variable frequency and PWM amplify them is just not worth the hassle here, there are simpler alternatives. Personally I'd investigate first a stepper with a gearbox, but that's the quickest, not the cheapest option (DC brushed).

  • \$\begingroup\$ Regarding last paragraph. I found brushless motors have 3 input wires, which means, that their coil pairs are already interconnected in the opposite phases, right? \$\endgroup\$
    – Dims
    Sep 29, 2015 at 15:47
  • \$\begingroup\$ This means the phases are connected in a "star" or a "delta" configuration (looking it up will certainly be more beneficial than me explaining what that means for you), as illustrated in home.solcon.nl/gjkool/brushless5/W-schms-3p-E.JPG. That's not regarding the last paragraph though, which is about my preference for steppers. Aren't you mixing up steppers and brushless motors (given that "opposite phase" for DC brushless doesn't make much sense)? \$\endgroup\$ Sep 29, 2015 at 15:54
  • \$\begingroup\$ this video shows that by doing push and pull with the coils you can achieve constant torque youtube.com/watch?v=bCEiOnuODac&t=2m \$\endgroup\$
    – titus
    Jan 15, 2016 at 0:17

Torque is a function of the current drawn by the actuator (or 'motor', as I use hereon) - most motor datasheets should give this information in one form or another.

In an ideal world, the manufacturer would supply a graph showing how current drawn varies with load resistance. However, in the simplest form the manufacturer might only state something similar to maximum current draw at stall, where the definition of 'stall' is the moment at which the resistance of the load exceeds the maximum torque the motor can produce. There could also be given a stall speed - the slowest speed the motor can turn before it grinds to a halt.

If you have a graph then no guesswork is required. I don't know how linear the relationship is between motor load and current drawn, and I don't know how accurate you need to be. Some things you need to consider if you can only find limited information:

  1. The motor will consume current even at no load;
  2. The motor will typically have a minimum speed, again at no load;
  3. The initial starting current may be much greater than the no load current;
  4. There may be a level of resistance at which the motor will remain turning but would be unable to start turning.

If all else fails, measure the current drawn at no load and the current drawn with the motor stalled. It's crude, but it's better than nothing.

Once you know how current varies with torque, it's a simple matter of making a current sensing device - very straightforward and easy to integrate with an Arduino via an the ADC. Read a little bit about the Burr-Brown INA138 (or any other "Current Shunt Monitor").

moderator note: This answer have arrived to this thread as a result of a merge.

  • \$\begingroup\$ The problem is that conventional motors are not intended to provide just torque. They should rotate. While I wish to create static torque. Conventional motor will overheat I guess. Also the problem is complex unpredictable relation with torque and current while I imagine clear solutions with three phase -like motor... \$\endgroup\$
    – Dims
    Sep 22, 2015 at 16:02
  • \$\begingroup\$ @Dims Can you eloborate on "static torque"? The term 'actuator' suggests, to me at least, a component that only turns a particular angle (like a servo) rather than continuously like a motor. I would also assume that is designed to provide substantial torque (unlike a servo). If you Google current vs torque you'll get plenty of images showing linear relationships between current and torque. Then have a read of this article. \$\endgroup\$ Sep 22, 2015 at 17:31

I would say DC motor, brushless DC motor (BLDC) and permanent magnet synchronous motor (PMSM) are the options. PMSM are quite complex for DIY, so let's exclude from further analysis, the remaining are classic DC and BLDC.
DC motor is simple to control, with H-bridge the torque is proportional to current. The brushes commutation has minimal effect on torque, at least not such big impact as BLDC has when commutating.
BLDC is the DC motor turned arround. It has an electronic commutator device for stator windings instead of old rotor brush commutator on DC motors. Heating of windings is present in both types of motors, the only difference is that BLDC will heat the stator which is also bigger and it has better cooling capability than rotor wound winding in DC motor, that it can cool trough shaft only.
The BLDC needs more complex commutating device with help of rotor position feedback (Hall sensors or back EMF comparators), altrough the other stuff is similar to DC motor - kind of PWM driver. Further BLDC has more torque ripple due to commutation than DC motor.

  • \$\begingroup\$ I wonder if it would be practical to produce a brush-type motor with a permanent magnet in the middle, a stationary commutator which had two concentric slip rings and a ring with one segment per winding tap, and rotating brushes that would short the two slip rings to taps 180 degrees apart? I would think that would make it practical to achieve the thermal advantages of putting the coils on the outside, but make it practical to have the larger number of commutation segments often found on brush-type motors. \$\endgroup\$
    – supercat
    Sep 22, 2015 at 22:13

Then you require a controller with a position sensor or a gyro to give static torques.design a simple control loop with your motor.

  • \$\begingroup\$ Position does not change. Suppose robot handles a weight on it's palm. Then somebody adding extra weight slowly. \$\endgroup\$
    – Dims
    Sep 22, 2015 at 16:37
  • \$\begingroup\$ Suppose you have a position sensor say encoder. Give your position command and subtract it from current position give the error to motor .when it reaches position it stops moving . but oridary controller doesn't give much strength ,have to design specific one. Load strength depends on your motor torque.first decide how much torque required. \$\endgroup\$
    – user76803
    Sep 22, 2015 at 16:43
  • 1
    \$\begingroup\$ Off topic, the OP has asked about the motor type to use, control loops (or absence thereof) flow from it. "Ordinary controller doesn't give much strength, have to design specific one" - you must have meant current and therefore torque, or power, (careful with strength which is a vague word unless you talk about its official definition which relates to material failure), but even then brushless controllers exist in various ranges of capabilities. \$\endgroup\$ Sep 22, 2015 at 18:21

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.