Skip to content
ActuatorsServo

MG996R Metal Gear Servo

High-torque metal-gear servo for robotic arms, RC vehicles, and load-bearing joints.

Wiring & code for

MG996R practical reference

A metal-gear servo offering significantly more torque than the SG90, favored in robotic arms and RC vehicle steering.

Key specifications

  • Operating voltage: 4.8V - 7.2V DC (6V typical)
  • Torque: ~9.4 kg·cm at 4.8V, ~11 kg·cm at 6V
  • Rotation: ~120° on most units (some rebadged versions claim 180° — verify with your specific unit)
  • Speed: ~0.17 sec/60° at 4.8V, ~0.14 sec/60° at 6V
  • Control signal: PWM, 50Hz, ~1ms-2ms pulse width
  • Stall current: Up to ~2.5A — needs its own 5-6V supply, not the MCU board's 5V rail
  • Weight: ~55g

Pinout and connection notes

A single MG996R under load can brown out an Arduino running from USB. Power it from a separate 5-6V supply and tie grounds together.

  • GND: Ground — usually the brown wire
  • VCC: Power, 4.8V-7.2V DC — usually the red wire
  • Signal: PWM control input — usually the orange wire

Integration checklist

  1. Confirm the exact part number and breakout-board revision.
  2. Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
  3. Check controller pin assignments and bus address or interface mode against the example code.
  4. Power up with external loads disconnected, then test signals before full integration.
  5. If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.

Troubleshooting and reproducibility

Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.

Board Integration

Library

Servo by Arduino

Bundled with the Arduino IDE core

Wiring

Component pinESP32 pinNote
VCCExternal 5-6V supply, not the ESP32's onboard 5V pinMG996R can draw 500mA-1A+ under load -- the ESP32's regulator can't supply this reliably
GNDGNDCommon ground between the ESP32 and the servo supply is required
SignalGPIO18Any PWM-capable GPIO works

Swipe sideways to see every column →

C++

MG996R needs its own 5-6V supply capable of at least 1A -- powering it from the ESP32's 5V/VIN pin can brown out the board under load. Share ground between both supplies.

View full ESP32 guide