Connecting a standard RC servo to an Arduino requires routing a 50Hz PWM signal to the control wire, but the most common point of failure isn't the code—it is the power delivery. The Arduino's onboard 5V linear regulator maxes out around 500mA to 800mA (depending on the board variant and input voltage). A standard micro servo like the SG90 draws 200mA at idle but can spike to 700mA under load, while high-torque metal-gear servos can pull 2.5A at stall. If you wire a high-torque servo directly to the Arduino's 5V pin, you will trigger a brownout, reset the microcontroller, or permanently damage the voltage regulator.

The direct answer for a robust setup: use an external 5V/6V Battery Eliminator Circuit (BEC) or buck converter to power the servo's red wire, connect the servo's ground to both the BEC and the Arduino's GND to establish a common reference, and route the signal wire to any PWM-capable digital pin (like D9). From there, selecting the right motor comes down to matching the torque curve to your mechanical load.

Motor Type Comparison: Which Actuator Fits Your Load Profile?

Hobbyists often use the word 'servo' interchangeably for any motor that moves to a position, but the internal architecture dictates the control needs and torque delivery. Here is how the common actuators compare when driven by a microcontroller.

Motor Type Torque Curve & Holding Control Needs Approx. Cost Best Application
Standard RC Servo High stall torque, drops off at speed. Holds position via internal pot feedback. 50Hz PWM (1-2ms pulse). 1 control wire. $4 - $15 Robotic arms, pan/tilt cameras, RC steering.
Serial 'Smart' Servo High stall torque. Can report real-time load, temperature, and exact position. UART Serial (1Mbps). Half-duplex TTL. $15 - $45 Hexapods, humanoid robots requiring feedback.
Stepper (NEMA 17) Maximum holding torque at zero speed, drops sharply at high RPM. Open-loop. Step/Dir pulses via driver (e.g., A4988). $12 - $25 (motor + driver) 3D printers, CNC routers, linear actuators.
Coreless DC Motor Low stall torque, high speed. Requires external encoder for position holding. H-Bridge (PWM for speed, Dir for polarity). $8 - $20 Fast mobile robot drivetrains, flywheels.

If your application requires holding a specific angular position (0-180°) against gravity without complex external drivers, the Standard RC Servo is the correct choice. Steppers are superior for continuous multi-turn precision, but they require constant current to hold position and demand a dedicated stepper driver board.

Sizing Rule of Thumb and Worked Load Example

Servo torque is rated in kilogram-centimeters (kg-cm) or ounce-inches (oz-in). This rating represents the maximum weight the servo can hold at a specific distance from the output shaft's center. The universal sizing rule of thumb for dynamic robotic loads is to apply a 100% safety margin (2x multiplier) to your calculated static torque. This accounts for acceleration forces, mechanical friction, and voltage sag.

Worked Load Example: Robotic Gripper Arm
  • Arm Length (Distance): 10 cm (0.1 m) from the servo horn pivot to the center of mass of the payload.
  • Payload (Force): 200 grams (0.2 kg, which exerts roughly 1.96 Newtons of force due to gravity).
  • Static Torque Calculation: 0.2 kg × 10 cm = 2.0 kg-cm (approx. 0.196 Nm).
  • Dynamic Sizing (2x Margin): 2.0 kg-cm × 2 = 4.0 kg-cm minimum required torque.

For this load, a micro servo like the TowerPro SG90 (rated at 1.8 kg-cm) will strip its nylon gears or stall. You must step up to a standard-size servo rated for at least 4.0 kg-cm, such as the MG996R (rated at 10-13 kg-cm depending on voltage).

Wiring Terminals, Pinouts, and Power Delivery

Standard RC servos use a 3-pin JR-style connector. While the physical plug is standardized, wire colors vary slightly by manufacturer. Always verify the pinout against the datasheet, but the industry standard layout (looking at the bottom of the connector with the tab facing away from you) is:

Pin Function Standard JR Color Futaba Color Voltage / Signal Spec
1 (Edge) Ground (GND) Brown or Black Black 0V (Must be common with Arduino GND)
2 (Middle) Power (VCC) Red Red 4.8V to 6.0V DC (External BEC required for high torque)
3 (Inner) Signal (PWM) Orange or Yellow White 3.3V or 5V logic, 50Hz, 1000-2000µs pulse width
Callout Tip: The Common Ground Rule
The most frequent cause of servo jitter is a missing common ground. The external power supply's negative terminal must be wired directly to one of the Arduino's GND pins. The PWM signal is a voltage reference; if the Arduino and the servo do not share the exact same 0V baseline, the signal wire will read erratic voltages, causing the servo to twitch violently or sweep to its mechanical limits.

The Decision Tree: Pick Your Exact Servo Part Number

Stop guessing at the hobby shop. Use this decision matrix to select the exact component for your build. For general-purpose Arduino projects where size is not a strict constraint, the default recommendation is the TowerPro MG996R.

If your project requires... Then choose this architecture... Concrete Part Pick (Model) Approx. Price
< 2 kg-cm torque, ultra-compact size (e.g., micro latches, lightweight camera tilt) 9g Micro Metal Gear Servo TowerPro MG90S $4.00
2 to 15 kg-cm torque, standard robotic arms, pan/tilt mechanisms (Default use case) Standard 55g Metal Gear Servo TowerPro MG996R (or DS3218 for 20kg-cm) $6.00 - $14.00
Continuous 360° rotation for drivetrains or winches (no position holding) Continuous Rotation Servo Parallax Continuous Rotation Servo (#900-00008) $14.00
Absolute position feedback, daisy-chaining 10+ motors on a single UART pin Serial Bus 'Smart' Servo Feetech SCS15 (requires SCSer library) $16.00

Failure Signatures: Hum, Overheat, and Stall

Servos fail in predictable ways. Diagnosing the acoustic and thermal signatures will save you from burning out your driver board or stripping gears.

  • Constant Humming or Jittering at Rest: This is almost always a power supply issue. The internal potentiometer is reading noise on the VCC line, or the PWM signal is unstable. Fix: Add a 470µF electrolytic capacitor across the VCC and GND wires near the servo connector to smooth out voltage ripple, and verify your common ground.
  • Rapid Overheating (Too hot to touch within 30 seconds): The servo is being commanded to a position that is physically blocked by a mechanical hard stop. The motor is in a continuous stall state, drawing maximum current (often 2A+) without moving. Fix: Check your mechanical linkages for binding. In code, ensure your write() values stay within the physical limits of your specific horn setup (usually 10° to 170°, not the full 0-180°).
  • Clicking Sound and Loss of Position: The internal nylon or brass gears have stripped, or the wiper on the internal potentiometer has lost contact due to dirt or wear. Fix: The servo is dead. Replace it with a metal-gear variant (like the MG996R) if the load caused the stripping.

Code Implementation and Driver Demands

For 1 or 2 standard servos, the built-in Arduino Servo Library is perfectly adequate. It handles the 50Hz timer interrupts required to generate the 1000-2000 microsecond pulses.

However, if your project demands 4 or more servos (like a quadruped robot), using the standard Servo.h library will consume multiple hardware timers, which will break functions like analogWrite() on certain pins and interfere with IR remote libraries. Furthermore, standard PWM resolution can cause micro-stuttering at slow speeds.

The Driver Solution: Offload the PWM generation to an I2C PWM driver board. The PCA9685 16-Channel PWM Breakout (approx. $3) communicates over I2C (using only the SDA and SCL pins on your Arduino) and generates rock-solid 12-bit PWM signals for up to 16 servos independently. This frees up your microcontroller's timers for sensor polling and kinematics calculations, and it allows you to use the Adafruit_PWMServoDriver library to set precise pulse widths without jitter.

When wiring a servo to Arduino, respect the current limits, calculate your torque with a 2x safety margin, and share your grounds. If you follow this framework, your actuators will run smooth, cool, and exactly where you command them.