The Direct Answer: What Does a Servo Motor Actually Do?

A servo motor is a closed-loop rotary actuator that uses internal feedback to precisely control angular position, velocity, and acceleration. While a standard brushed DC motor spins continuously when voltage is applied, a hobby servo (like the widely used MG996R) reads a pulse-width modulation (PWM) signal to move and hold a specific shaft angle, typically between 0° and 180°.

Think of it like driving a car. A standard DC motor is like driving with your eyes closed and pressing the gas pedal; you move, but you have no idea where you are ending up. A servo motor is like driving with your eyes open, constantly checking your lane position and adjusting the steering wheel to stay exactly where you want to be. This closed-loop feedback is what allows a servo to hold a robotic arm joint at exactly 45° even when gravity is pulling it down.

Servo vs. Stepper vs. DC: Which Motor Fits Your Load?

Makers frequently confuse servos and steppers because both can achieve precise positioning. However, their torque curves and control architectures dictate entirely different use cases. Treating them as interchangeable will result in stalled motors or missed steps.

Motor Type Torque Curve Control Needs Avg Cost Best Load Profile
Hobby Servo (e.g., MG996R) High torque at zero speed, drops off rapidly past rated RPM. Closed-loop PWM (50Hz, 1-2ms pulse). Single signal wire. $5 - $15 Robotic arms, pan-tilt camera mounts, RC steering.
Stepper (e.g., NEMA 17) High holding torque, severe torque drop-off at high speeds. Open-loop step/direction pulses. Requires dedicated driver (A4988/TMC2209). $12 - $25 3D printers, CNC routers, linear actuators.
Brushed DC (e.g., 775 Motor) Low stall torque, peaks at mid-range RPM, high top speed. Simple voltage control or H-bridge for direction/PWM speed. $8 - $20 Drive wheels, conveyor belts, high-speed spindles.

Which motor type fits this load profile? If your project requires holding a heavy static load at a specific angle without continuous power draw (like a camera gimbal), choose a servo. If you need continuous, high-precision linear motion over long distances (like an X-axis gantry), choose a stepper. If you just need to spin wheels fast, choose a DC motor.

Sizing Rule of Thumb and a Worked Load Example

Undersizing a servo is the most common cause of project failure. The golden rule of thumb for servo sizing is to calculate the maximum stall torque requirement and multiply it by a 2.0 safety factor. Servo manufacturers rate their motors at stall torque (the maximum force before the motor stops moving), but running a servo continuously near its stall limit will destroy the internal plastic or metal gears.

Worked Load Example: Robotic Arm Joint

Let us size the shoulder joint for a robotic arm. The arm segment is 20 cm (0.2 m) long, and it needs to lift a 300 g (0.3 kg) payload at the very tip, held horizontally.

  1. Calculate Force: Mass × Gravity = 0.3 kg × 9.81 m/s² = 2.94 Newtons.
  2. Calculate Torque: Force × Distance = 2.94 N × 0.2 m = 0.588 Newton-meters (Nm).
  3. Convert to kg-cm: Hobby servos use kg-cm. 0.588 Nm × 10.197 = 6.0 kg-cm.
  4. Apply Safety Factor: 6.0 kg-cm × 2.0 = 12.0 kg-cm required.

A standard SG90 (1.8 kg-cm) will instantly fail here. Even an MG996R (10 kg-cm) is slightly underpowered. You need a servo rated for at least 12 kg-cm, such as the DS3218 (20 kg-cm) or a high-voltage FT5335M.

Recognizing Failure Signatures:
  • Humming / Hunting: The servo oscillates back and forth around the target angle. This indicates a noisy PWM signal, mechanical backlash in the gears, or an underpowered supply causing brownouts.
  • Overheating: The casing exceeds 60°C. This happens when the servo is stalled against a hard physical limit while still receiving a position command. The motor draws maximum stall current continuously.
  • Jitter: Random micro-movements at rest. Usually caused by shared ground loops between the microcontroller and the servo power supply.

Wiring, Terminals, and Controller Demands

Standard hobby servos use a 3-wire interface. Miswiring these will instantly fry the internal control board or your microcontroller.

Wire Color (Standard) Function Connection / Notes
Brown or Black Ground (GND) Must share a common ground with the microcontroller and power supply.
Red Power (VCC) 4.8V to 6.0V for standard servos; 6.0V to 8.4V for high-voltage (HV) servos.
Orange, Yellow, or White Signal (PWM) Connects to a digital GPIO pin capable of hardware PWM output.
Critical Power Warning: Never power an MG996R or larger metal-gear servo directly from the Arduino 5V pin. At stall, these servos can pull 2.5A to 3.0A. This will instantly overheat and destroy the Arduino's onboard linear voltage regulator. Always use a dedicated 5V/6V buck converter (like an LM2596 module) wired directly to the battery or main power supply, ensuring the GND is tied back to the Arduino GND.

What Driver or Controller Does It Demand?

Unlike steppers that require external chopper drivers (like the TMC2209), standard hobby servos have the driver built inside the housing. They demand a 50Hz PWM signal with a pulse width varying between 1.0 ms (0°) and 2.0 ms (180°).

For Arduino (ATmega328P / Uno / Nano): Use the built-in Servo.h library. It utilizes the microcontroller's hardware timers to generate rock-solid 50Hz pulses, ensuring zero jitter.

For ESP32: The ESP32 architecture handles timers differently. The standard Arduino Servo.h library can cause conflicts with WiFi/Bluetooth radios. Instead, use the ESP32's native LEDC (LED Control) peripheral API, or the wrapper ESP32Servo library which safely maps the LEDC channels to mimic standard servo behavior without dropping your WiFi connection.

Frequently Asked Questions

What does a continuous rotation servo motor do compared to a standard one?

A continuous rotation servo has its internal potentiometer disconnected or removed, breaking the closed-loop position feedback. Instead of moving to a specific angle, the PWM signal now dictates speed and direction. A 1.5ms pulse stops the motor, 1.0ms spins it full speed counter-clockwise, and 2.0ms spins it full speed clockwise. It effectively acts like a geared DC motor with a built-in speed controller, making it ideal for drive wheels on small rovers, but useless for robotic joints.

What does a servo motor do when it hits its mechanical limit?

When a servo reaches its physical hard stop (usually around 0° or 180°), the internal potentiometer can no longer rotate. If the microcontroller continues to command an angle beyond this physical limit, the internal DC motor stalls. The motor will draw maximum stall current (often 1A to 3A), rapidly converting electrical energy into heat. If left in this state for more than a few seconds, the internal H-bridge MOSFETs will melt, or the plastic gear teeth will strip. Always limit your software commands to the tested safe range (e.g., 10° to 170°).

How does a servo motor know its exact position without an external encoder?

Hobby servos use an internal potentiometer (a variable resistor) physically attached to the output shaft. As the shaft turns, the potentiometer acts as a voltage divider, sending a varying analog voltage to an internal error amplifier chip. The chip compares this internal voltage (representing the actual physical position) against the incoming PWM pulse width (representing the desired position). If there is a difference (an error), the chip drives the internal DC motor in the correct direction until the error reaches zero. This is why standard servos are limited to roughly 180° of rotation; the potentiometer physically cannot spin continuously without snapping its internal wiper.