Overview

The SG90 is a ubiquitous 9-gram analog micro servo motor manufactured by TowerPro. It features nylon plastic gears, an internal DC coreless motor, a feedback potentiometer, and control electronics inside a compact translucent plastic enclosure.

It is widely bundled in beginner robotics kits and hobby projects for controlling robot arms, camera gimbals, steering mechanisms, and micro actuators using a standard 50 Hz Pulse-Width Modulation (PWM) signal.

Quick reference

Operating voltage (VCC)4.8 V to 6.0 V DC (5 V nominal)
Stall torque1.8 kgcm1.8\text{ kg}\cdot\text{cm} (at 4.8 V)
Operating speed0.12 s / 60° (at 4.8 V)
Rotation range~180° total travel
Control signalPWM (50 Hz / 20 ms frame period)
Pulse width range500 µs (0°) to 2400 µs (180°)
Weight9 g

Terminals & cable wiring

The SG90 servo terminates in a 3-pin 0.1" (2.54 mm) female JR/Futaba connector cable:

PinCable ColorSignalDescription
1Brown / BlackGNDGround (0 V)
2RedVCCPower supply (+4.8 V to +6.0 V)
3Orange / YellowPWMPosition control signal (50 Hz PWM)

Electrical & mechanical specifications

Electrical Specifications

ParameterSymbolMinTypMaxUnitConditions
Operating VoltageVCCV_{CC}4.85.06.0VDC
Idle CurrentIidleI_{idle}510mAVCC=5.0 VV_{CC} = 5.0\text{ V}, static position
Running CurrentIrunI_{run}100220350mAVCC=5.0 VV_{CC} = 5.0\text{ V}, moving under light load
Stall CurrentIstallI_{stall}500650800mAVCC=5.0 VV_{CC} = 5.0\text{ V}, shaft locked
Dead Band Widthtdbt_{db}710µsPWM pulse resolution limit

Mechanical Specifications

ParameterValueUnitNotes
Dimensions23.0 × 12.2 × 29.0mmL×W×HL \times W \times H excluding mounting tabs
Weight9.0gBare servo
Cable Length~250mm3-wire ribbon cable
Gear TypeNylon PlasticPOM gear set
BearingBushingPlastic shaft sleeve

Control signal timing

The SG90 is controlled by sending a 50 Hz PWM signal (20 ms period). The duration of the positive pulse determines the target shaft position:

  • 500 µs (0.5 ms pulse): Neutral position 00^\circ
  • 1500 µs (1.5 ms pulse): Center position 9090^\circ
  • 2400 µs (2.4 ms pulse): Maximum position 180180^\circ
text
          ┌─┐                                         ┌─┐
          │ │ (0.5ms to 2.4ms)                        │ │
          │ │                                         │ │
     ─────┘ └─────────────────────────────────────────┘ └─────
     ◄─────────────────── 20 ms (50 Hz) ─────────────►

Drive requirements & wiring

SG90 ConnectorPower Supply / MCUNotes
Red (VCC)External 5 V Power SupplyDo NOT power from MCU GPIO or 3.3V pin
Brown (GND)Common Ground (GND)Must connect external supply GND to MCU GND
Orange (PWM)Microcontroller PWM PinGPIO pin output (e.g. Arduino D9, ESP32 GPIO18)
Warning

Stall Current Power Spike Hazard:

  • Driving an SG90 directly from an Arduino 5V pin or 3.3V rail can draw over 650 mA during motor movement or stall. This causes voltage brownouts, resetting the MCU.
  • Always power servos from an external 5 V DC power supply capable of supplying at least 1 A per servo, with a shared ground line to the microcontroller.

Common mistakes

  • Powering from MCU 5V rail: Under load, sudden motor current spikes drop the supply rail, causing random MCU resets and corrupted serial communication.
  • Forgetting common ground: Connecting servo VCC to an external battery without connecting external GND to microcontroller GND results in erratic jitter.
  • Driving past mechanical end-stops: Sending pulse widths below 450 µs or above 2450 µs forces the internal potentiometer into mechanical hard stops, stripping the delicate nylon gears.

Notes

  • For higher torque or heavy mechanical loads, consider metal-gear upgrades such as the MG90S (pin-compatible drop-in replacement).

Assets & downloads