Thursday, August 20, 2009

LiPolys and servos

Lithium-polymer batteries are inconvenient. They're physically fragile, awkwardly shaped (at least for fitting in cylindrical or spherical compartments), prone to turning into fireworks if mistreated, and have a nominal cell voltage of 3.7V. I can work around the shape and fragility, and installed a battery protection board to keep the cell from igniting, but the cell voltage is a real problem. Most cheaply and easily available servos are designed to operate at 4.8V or 6V, running off a 4 or 5 cell NiCad pack. One LiPoly cell is too low-voltage to run servos from, and two will deliver 7.4V nominal, and up to 8V when freshly charged.

I can't afford to use the high-end robot servos designed for 7.4V, but I also can't ignore the fact that LiPoly cells deliver three times the energy density of NiCads. So since 2007 I've been ignoring the manufacturer recommendations and running normal hobby servos off two-cell LiPOly packs. It's worked, mostly, and I think I'll keep doing it.

Looking at the components inside a typical digital servo does not reveal any obvious voltage limitation that would prevent operation over 6V. The components which limit the voltage at which the control circuit can operate are the motor drive FETs and the 3.3V voltage regulator for the microcontroller. The FETs in the MG-5645 servos have a breakdown voltage rating of 20V, which even assuming 2X overvoltage from EMF spikes should run safely off a 9.6V pack. The 3.3V regulator I can't find a datasheet for yet, but typically should have a maximum input voltage of at least 12V. Nothing on the PCB itself should fail to work at 7.4V.

The actual voltage limit seems to be in the servo motor. According to HiTec, the motor in their standard digital servos is limited to 6V. Now, back from my old robot combat days, I learned a lot about how much you could safely overvoltage motors, and just what caused them to fail when pushed to hard. Voltage alone does not destroy a motor. Armature windings can come apart from spinning the motor too fast, magnets demagnetized from too much current and heat, and too much load for too much time without enough cooling can cause the solder joints to simply melt, but voltage alone doesn't fry a motor. The actual point at which a motor will self-destruct is complicated and depends a lot on the gear ratio, actual load on the shaft, and thermal conditions.

It's probable that 6V is the point where these servos are rated for steady operation without failure. Pushing them past that increases the rate of failure, but the actual failure rate is also dependent on a lot of other factors including the quality of construction, load, and duty cycle. Running the MG-5645 servos at 7.4V, I had no failures of the motors or control boards, although I did break a lot of gear sets. The motors did get pretty hot after a few minutes of walking, but I didn't have any actually fail. With the HX12K servos I had two motors simply die, unsurprising considering their cheap construction. The MG996 servos will probably work no better at 7.4V. I may rebuild the robot with MG-5645 servos after all, since they seem to tolerate some degree of overvolting.


  1. Have you considered using a standard hobby BEC? They're more or less just voltage regulators intended to cut common LiPo voltage ranges down to "Servo Happy" ranges such as 6v. I know of a number of robot hobbyists who use them so that they can employ LiPos without fear of burning up their servos.

  2. I've considered it, although rather than use a commercial BEC I'd build up a switching regulator for a bit better efficiency. I don't know for sure what the peak current draw on these servos is yet. I'll have to find some free time at work and do some measurements.

  3. This comment has been removed by a blog administrator.