Home > Industry Insights >Custom Drive
TECHNICAL SUPPORT

Product Support

SG90 Micro Servo Motor 9g: Complete Guide to Specifications, Wiring, and Programming

Published 2026-04-01

Introduction to the SG90 9g Microservo

The SG90 microservomotor (commonly referred to as the “9gservo”) is one of the most widely used actuators in beginner and intermediate electronics projects. It is a small, lightweight servo that provides precise angular control, making it ideal for robotics, remote-controlled vehicles, and automation systems. Understanding its exact specifications, proper wiring, and programming methods is essential to ensure reliable operation and avoid common failures such as overheating or stripped gears.

This guide provides verified technical specifications, step-by-step wiring instructions, and ready-to-use programming examples to help you successfully integrate this servo into your projects.

1. Core Technical Specifications

All values listed below are derived from the manufacturer’s official datasheet and verified through independent testing. These specifications are critical for selecting the correct power supply and ensuring safe operation.

Parameter Value Notes
Operating Voltage 3.0V – 6.0V 4.8V – 5.0V recommended for optimal torque and stability
Stall Torque 1.8 kg·cm (at 4.8V) Torque decreases significantly below 4.5V
Operating Speed 0.10 sec/60° (at 4.8V) Speed increases with higher voltage
Rotation Range 0° – 180° Mechanical stops limit rotation; do not force beyond this range
Dead Band Width 5 µs Minimal pulse width change required to initiate movement
Weight 9g (±1g) Includes attached wires and connector
Dimensions 22.8 x 12.2 x 27.4 mm May vary slightly between production batches
Connector Type 3-pin female header (JR/Futaba standard) Pin order: Signal (S), Power (VCC), Ground (GND)
Gear Material Nylon Plastic gears; not suitable for high-torque or continuous load applications

> Source:Manufacturer datasheet and standardized servo specifications verified against industry standards.

2. Pinout and Wiring Instructions

Incorrect wiring is the most common cause of servo damage. The SG90 uses a standard 3-pin interface. Identify the pins correctly before connecting.

Pin Identification

Brown or Black Wire:Ground (GND) – connect to system ground.

Red Wire:Power (VCC) – connect to a stable 4.8V–5.0V supply.

Orange or Yellow Wire:Signal (PWM) – connect to a microcontroller PWM-capable pin.

Wiring to a Microcontroller (e.g., Arduino, ESP32, Raspberry Pi Pico)

Servo Wire Arduino Uno ESP32 External Power Supply
Brown (GND) GND GND GND of power supply
Red (VCC) 5V pin (low-current only) 5V pin (low-current only) Positive terminal of 5V external supply
Orange (Signal) PWM pin (e.g., D9) PWM-capable GPIO Not connected to power supply

Critical Power Note:

The SG90 can draw up to250 mA during movementand over500 mA at stall. Most microcontroller onboard voltage regulators (e.g., Arduino 5V pin) cannot safely supply this current, especially when using multiple servos. For reliable operation:

Use a dedicated5V external power supplyrated for at least 1A per servo.

Connect theground of the external supply to the microcontroller groundto complete the signal circuit.

Donotpower the servo directly from the microcontroller’s 5V pin for extended or repeated movements.

3. Control Signal Specifications

The SG90 is controlled by a standard 50 Hz PWM signal. Understanding the pulse width range is essential for precise positioning.

PWM Signal Parameters

Frequency:50 Hz (period = 20 ms)

Pulse Width Range:500 µs to 2400 µs (theoretically); actual mechanical range corresponds to1000 µs to 2000 µson most units.

Pulse Width to Angle Mapping

Angle Pulse Width Duty Cycle (at 50 Hz)
1000 µs 5.0%
90° 1500 µs 7.5%
180° 2000 µs 10.0%

Common Issue:

Some controllers default to a 500 µs – 2400 µs range, which can force the servo against its mechanical stops, causing buzzing, overheating, and gear damage. Always calibrate your signal output to the 1000–2000 µs range.

4. Programming Examples

These examples are designed for immediate use. They assume proper wiring and an external power supply as described in Section 2.

Arduino (Using the Built-in Servo Library)

#includeServo myServo; void setup() { myServo.attach(9, 1000, 2000); // Attach to pin 9, set pulse width range } void loop() { myServo.write(0); // Move to 0 degrees delay(1000); myServo.write(90); // Move to 90 degrees delay(1000); myServo.write(180); // Move to 180 degrees delay(1000); }

MicroPython on Raspberry Pi Pico / ESP32

from machine import Pin, PWM import time # Configure PWM on GPIO pin 15, frequency 50 Hz servo = PWM(Pin(15), freq=50, duty_u16=0) def set_angle(angle): # Convert angle to duty cycle (0-180 to 1000-2000 µs) pulse_width = 1000 + (angle / 180)1000 duty = int(pulse_width / 2000065535) # 20ms period servo.duty_u16(duty) # Test movement set_angle(0) time.sleep(1) set_angle(90) time.sleep(1) set_angle(180) time.sleep(1)

Raspberry Pi (Using pigpio or RPi.GPIO)

The Raspberry Pi’s hardware PWM is recommended for stable operation.

import pigpio import time pi = pigpio.pi() if not pi.connected: exit() # Set pulse width range on GPIO 18 pi.set_servo_pulsewidth(18, 0) # Start with no signal def set_angle(angle): pulse = 1000 + (angle / 180) * 1000 pi.set_servo_pulsewidth(18, pulse) # Sweep set_angle(0) time.sleep(1) set_angle(90) time.sleep(1) set_angle(180) time.sleep(1) pi.set_servo_pulsewidth(18, 0) # Stop signal pi.stop()

sg90 micro servo motor 9g_sg90 micro servo motor 9g_sg90 micro servo motor 9g

5. Common Operational Issues and Solutions

Issue 1: Servo Jitters or Does Not Move

Cause:Insufficient power supply or shared ground missing.

Solution:Ensure the external power supply ground is connected to the microcontroller ground. Verify the power supply can deliver at least 0.5A continuously.

Issue 2: Servo Buzzes at End Positions

Cause:Signal pulse width exceeds mechanical range.

Solution:Limit PWM range to 1000–2000 µs. Do not command angles beyond 0° or 180°.

Issue 3: Overheating or Excessive Current Draw

Cause:Mechanical load exceeds stall torque, or servo is stalled.

Solution:Reduce load. The SG90 is rated for small linkages and lightweight mechanisms (e.g., steering a small RC car, moving a camera gimbal under 50g). Do not use for continuous rotation or heavy lifting.

Issue 4: Servo Does Not Reach Full 180°

Cause:Signal range is calibrated to 500–2500 µs or incorrect library settings.

Solution:Explicitly set pulse width range in your code as shown in the Arduino example above.

6. Application Scenarios and Load Considerations

The SG90 is designed for light-duty, intermittent operation. Understanding its mechanical limits prevents premature failure.

Suitable Applications

Steering mechanism for small RC cars (under 500g vehicle weight)

Pan-tilt camera mounts (camera weight

Robotic arm joints in educational kits (no heavy payloads)

Locking mechanisms, small levers, or indicator needles

Unsuitable Applications

Continuous rotation or wheel driving (requires a continuous rotation servo or DC motor)

Applications requiring metal gears or high torque

Continuous operation under load (e.g., conveyor belt control)

Real-World Example: RC Car Steering

In a typical 1/24 scale RC car conversion project, a single SG90 is used to steer the front wheels. The servo connects directly to a steering linkage. In this scenario, the servo operates at 5V from a separate battery pack. When the wheels are on a low-friction surface, the current draw stays under 200 mA. However,if the wheels bind against a carpet or curb, the servo stalls, drawing over 500 mA and may strip the nylon gears. To prevent damage, users install aservo saver(a flexible linkage that absorbs shock) and ensure the steering mechanism moves freely before operation.

7. Conclusion and Actionable Recommendations

The SG90 micro servo motor is a reliable and well-documented component when used within its design limits. Successful integration depends on three critical factors:

1. Power supply:Always use an external 5V supply with common ground.

2. Signal calibration:Restrict PWM pulses to the 1000–2000 µs range.

3. Load management:Do not exceed the stall torque or apply continuous force.

Recommended Next Steps

Test before installation:Run the servo with your microcontroller and external power supply on a bench to verify movement range and current draw.

Use a servo saver:For any mechanical linkage that may experience shock or binding, add a flexible coupler to protect the internal gears.

Monitor temperature:If the servo becomes too hot to touch after normal operation, re-evaluate power supply stability and mechanical load.

By following the specifications, wiring diagrams, and code examples provided in this guide, you can reliably integrate the SG90 into your projects and avoid the most common failure points.

Update Time:2026-04-01

Powering The Future

Contact Kpower's product specialist to recommend suitable motor or gearbox for your product.

Mail to Kpower
Submit Inquiry
+86 0769 8399 3238
 
kpowerMap