The inner workings of servo motors

Servos seem to be the go-to option when adding motors to hobby projects. They’re easy to hack for continuous rotation for use in a robot, but with the control board intact they are fairly accurate for position-based applications. But do you know how the hardware actually works? [Rue Mohr] recently published an article that looks at the inner world of the servo motor.

As you know, these motors use a voltage, ground, and signal connection for control. The position of the horn (the wheel seen on the servos above) is dependent on that control signal. The duty cycle of a 20 ms pulse decides this. Inside the housing is a control board capable of measuring this signal. It’s got a chip that monitors the incoming PWM pulses, but that’s only half of the equation. That controller also needs feedback from the horn to know if its position is correct or needs to be changed. Integrated with the gear box that connects the motor to the horn is a potentiometer. It’s resistance changes as the horn turns. Knowing this, it is possible to fine tune a servo by altering that resistance measurement.

18 thoughts on “The inner workings of servo motors

  1. I once took apart some servos and wired the motor and (via an H-bridge) and pot to a micro-controller to see if I could get a faster update rate i.e. not have to send goofy pulses in but just move whenever I wanted.

    Long and short of it was that while I made a PID loop which worked okay after tuning, it wasn’t nearly as good as the in built circuit could handle.

    I suspect the commercial controllers may also use current sensing and maybe PID + feed forward or some other refinement.

  2. Servos are designed to respond to control pulses 1.0-2.0ms long by moving within a 90-180 degree range, depending on the manufacturer. Within this range, linearity is pretty good. When new, positioning is also pretty good, but degrades with use.

    Most servos will still respond to a 0.5-2.5ms pulse range by moving through as much as a 300 degree range of motion (but your milage may vary). Linearity is not real good, but for such an extreme motion range, you generally don’t care.

    The last tip. When servos do not receive pulses (usually after 100ms), they power down the motor. Power consumption falls to a couple mA, but the horn can be easily pushed to a new position. This can also extend the life of a servo if otherwise would be continuously driving against a stop.

    Robotic servos offer a few interesting features. For the same physical size, they often have more than twice the power (torque). Their position can be interrogated if triggered correctly (they output a pulse whose width indicates position). During the reply pulse, the servo motor is not driven. Alternatively, they can be controlled, interrogated, and configured using serial data and your controllers UART.

    Look for the open servo project. This embeds a microcontroller and motor driver onto a small PCB. The PCB and code are open source.

  3. >>>They’re easy to hack for continuous rotation for use in a robot,<<<

    Yeah, or if you're a bit smarter just buy sailing winch continuous rotation servo for the same price a regular ones (or cheaper on DX…)

    1. Using a sail winch servo isn’t a bad idea for continuous rotation applications, but they cost about two or three times as much as a general purpose servo. Granted, they are often nicer servos, but a modified GP servo usually gets the job done for half the cost.

  4. great for rc cars bad for real cars like toyota (remember the toyota scare?)

    i suspect that a servo was used either attached directly to the throttle or connected to the cable to pull it.

    the problem i suspect is the potentiometer in the servo or pedals would get noise ( remember old radios where the volume control would crackle) bad enough on a radio but a car it may cause the car to rev up and/or rev up and get stuck at the end of the travel range.

      1. Pretty much, like the ‘accelerator stuck while on the freeway’ idiot.

        People pressing the accelerator instead of the brake was the rest, my favourite was the woman who did it, then claimed the CCTV recording of her crashing was fake.

    1. Re: Toyota Accelerator

      Eventually, NASA became involved in the investigation. They found the cause. See their write-up here.

      The short description – Tin grows whiskers (about 0.2mm diameter). Given time, whiskers can grow 10-20 mm long. Lead inhibits whisker growth. Why is this important? Lead was banned from most consumer items, including the solder used to assemble electronics.

      Toyota had assembled the accelerator sensors using lead-free solder. The solder would eventually grow whiskers, shorting out the sensor, sometimes causing uncontrolled acceleration.

  5. I did wonder about substituting a linear HE sensor, PIC and a few components to make a CR AND precision servo.

    Turns out that the A-D on the 12F683 won’t work because it can’t detect such small changes in voltage which is the same reason why PIR sensors won’t work on this micro.
    However, if you were to make a simple differential amplifier using a dual opamp then this could be connected directly to the existing pot pins.
    To switch between CR mode and normal you just put a frequency sensor on the input, so if it switches to 25Hz PWM (out of spec) then the opamp disables the limit.

    Digiservo on the cheap anyone? (g)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.