A standard 9g micro servo (like the SG90 or MG90S) draws roughly 100mA at idle and can spike to 700mA or more under stall conditions. The most critical rule for integrating a micro servo Arduino setup is that you cannot reliably power it from the Arduino's onboard 5V regulator. You need a dedicated 5V/2A power supply sharing a common ground with your microcontroller. Once power is solved, control is straightforward: a single GPIO pin outputting a 50Hz PWM signal with a 1000–2000µs pulse width dictates the shaft angle.

Sizing a Micro Servo for Your Arduino Load

Micro servos are rated by stall torque, typically measured in kg·cm or oz·in. To select the right motor, you must calculate the worst-case static torque your mechanism will exert and apply a safety margin.

The Sizing Rule of Thumb: Calculate the required holding torque at the pivot point, then multiply by 1.5 to 2.0. This margin prevents the servo from operating at its absolute mechanical limit, which causes gear stripping, current spikes, and premature potentiometer wear.

Worked Load Example: Camera Pan Mechanism

Suppose you are building a pan-tilt head for a lightweight 80g action camera. The camera's center of mass sits 4cm (0.04m) from the servo's pivot shaft.

  • Force (F): mass × gravity = 0.08 kg × 9.81 m/s² = 0.78 N
  • Torque (τ): Force × distance = 0.78 N × 0.04 m = 0.0312 N·m
  • Convert to kg·cm: 0.0312 N·m × 10.197 = 0.32 kg·cm

Applying a 2.0× safety margin gives a required servo rating of 0.64 kg·cm. The ubiquitous TowerPro SG90 micro servo is rated for 1.8 kg·cm, making it mathematically sufficient. However, if this mechanism will experience dynamic shock loads (like a walking robot), you should upgrade to the metal-gear MG90S (2.2 kg·cm) to prevent the plastic teeth from shearing.

Motor Type Comparison: Why Choose a Micro Servo?

Choosing the right actuator depends entirely on your load profile. Beginners often treat steppers and servos as interchangeable, but their torque curves and control architectures are fundamentally different. Here is how a micro servo stacks up against other common hobby motors.

Motor Type Torque Curve Control Needs Cost (Approx) Best Load Profile
Micro Servo (9g) Maximum at zero speed (stall), drops slightly as speed increases. Single 50Hz PWM pin (1000-2000µs). Internal closed-loop PID. $2 - $8 Low-inertia, limited-range angular positioning (robot arms, RC steering, camera gimbals).
Stepper (NEMA 17) High holding torque at zero speed, drops rapidly as RPM increases. Specialized driver (A4988/TMC2209) with step/dir pulses. Open-loop. $12 - $25 High-precision, continuous rotation, or high-load linear motion (3D printers, CNC).
DC Gear Motor Zero torque at zero speed, peaks at mid-range RPM, drops at max speed. H-Bridge (L298N) for direction/speed. Requires external encoder for positioning. $5 - $15 Continuous rotation, high-speed traction (wheeled robots, conveyor belts).

Which motor fits your profile? If you need to move a light load to a specific angle and hold it there without complex external drivers, the micro servo wins. If you need continuous, precise multi-turn rotation under heavy loads, use a stepper. If you just need wheels to spin, use a DC gear motor.

Wiring, Terminals, and Power Delivery

Micro servos universally use a 3-wire JST or DuPont connector. Identifying the terminals correctly is critical to avoid frying your microcontroller.

Wire Color Function Connection Target
Brown or Black Ground (GND) Common ground rail (Power Supply GND + Arduino GND)
Red Power (VCC) External 5V source (4.8V - 6.0V acceptable)
Orange, Yellow, or White Signal (PWM) Arduino/ESP32 PWM-capable GPIO pin

The Controller and Power Demands

A micro servo contains a small DC motor, a gear train, a potentiometer for position feedback, and an internal control IC. It demands a stable 5V rail. The Arduino Servo library handles the 50Hz timing, but the microcontroller's GPIO pin only provides the logic-level signal; it does not source the motor current.

Power Delivery Best Practice: Use a dedicated 5V buck converter (like an LM2596 module adjusted to exactly 5.0V) or a 5V/2A USB BEC (Battery Eliminator Circuit). Connect the BEC's positive output to the servo's red wire, and crucially, tie the BEC's ground directly to the Arduino's ground. Without a common ground reference, the PWM signal will float, causing erratic servo behavior.

Failure Signatures: Diagnosing Hum, Overheat, and Stall

Micro servos lack the thermal protection and robust construction of industrial actuators. Recognizing failure signatures early will save your hardware.

  • Humming or Jittering at Rest: This is usually caused by a noisy power rail or a worn internal potentiometer. If the jitter happens across multiple servos, your 5V rail is sagging under load. Add a 470µF electrolytic capacitor across the VCC and GND rails near the servo to smooth out current spikes. If only one servo jitters, its internal carbon-track potentiometer is likely worn, creating a deadband that the internal PID loop is constantly trying to correct.
  • Overheating: Micro servos do not have thermal shutoffs. If a servo is commanded to an angle that is mechanically blocked (e.g., a robot arm hitting a limit stop), it will stall. In a stall, the motor draws maximum current (700mA+) and converts it entirely to heat. The internal plastic housing will warp within minutes. Always implement software limits to prevent commanding angles beyond your mechanism's physical travel.
  • Stalling and Gear Stripping: If you hear a harsh grinding noise followed by a loss of holding torque, the gears have stripped. On the SG90, the final output gear is plastic and will shear if subjected to shock loads exceeding 1.8 kg·cm. Upgrade to the MG90S, which uses brass/steel gears for the final drive stage.

Frequently Asked Questions

Can I power a micro servo Arduino directly from the 5V pin?

Technically yes, but practically no. The Arduino Uno's onboard 5V regulator (often an AMS1117 or NCP1117) can safely supply about 500mA to 800mA total, and that assumes you are powering the board via the barrel jack with a low input voltage. A single micro servo can pull 700mA during a stall or rapid acceleration, which will cause the Arduino's 5V rail to brown out, resetting the microcontroller. If you are using an ESP32, the situation is worse: the 3.3V LDO cannot handle servo current, and routing 5V from the USB pin directly to the servo risks tripping your computer's USB port overcurrent protection. Always use an external power supply.

Why is my micro servo Arduino jittering when connected to an ESP32?

Unlike the ATmega328P on the Arduino Uno, which uses dedicated hardware timers for the Servo library, the ESP32 handles PWM differently and is highly susceptible to interrupt starvation, especially when WiFi or Bluetooth is active. If your ESP32 is connected to a network, the RF interrupts can delay the software-generated PWM pulses, causing the servo to jitter. To fix this, use the ESP32Servo library, which leverages the ESP32's hardware LEDC (LED PWM Controller) peripheral. The Espressif LEDC documentation details how hardware-backed PWM remains stable regardless of CPU load or WiFi interrupts.

What is the difference between analog and digital micro servos for Arduino?

Analog servos (like the standard SG90) process the incoming 50Hz PWM signal and update the motor drive 50 times per second. Digital servos (like the DS90 or MG90S digital variants) feature an internal microcontroller that processes the incoming signal but drives the motor at a much higher internal frequency (often 300Hz to 500Hz). This higher internal update rate gives digital servos a tighter deadband, faster initial acceleration, and significantly better holding torque. However, digital servos draw higher peak currents and are more expensive. For basic camera pans or slow-moving indicators, analog is fine. For robotic walking gaits or high-vibration environments, choose digital.

For deeper insights into selecting the right actuator for your specific robotics project, the Adafruit Motor Selection Guide provides excellent visual breakdowns of servo internals and gear materials.