Component · Actuator
SG90 Servo Motor
The SG90 is the tiny 9-gram servo behind most beginner robot joints and steering. How a servo holds an angle, what it can lift, and how to drive it.
What it is
The SG90 is a micro servo: a self-contained little actuator that rotates to a commanded angle and holds it there. Where a plain DC motor just spins, a servo aims—tell it “90 degrees” and it drives itself to 90 degrees and resists being pushed away. That makes it the natural choice for anything that needs to move to a known position: a robot arm joint, a gripper that opens and closes, a pan-tilt mount for a camera, or the steering on a small rover.
At nine grams and a couple of dollars it is the servo almost everyone starts with. It is not strong or precise enough for serious work, but it is the fastest way to understand how position control feels.
How it works
Crack one open and you find four things: a small DC motor, a gear train that trades speed for torque, a potentiometer geared to the output shaft, and a control circuit. The potentiometer is the trick—it continuously reports the shaft’s actual angle. The circuit compares that measured angle to the angle you are commanding and drives the motor in whichever direction closes the gap. It is a complete feedback loop in miniature, which is exactly why the inverse-kinematics arm can trust a servo to reach a target pose.
You command the angle with a 50 Hz PWM signal, and the pulse width carries the message: roughly 1 ms for one end of travel, 1.5 ms for centre, 2 ms for the other end. This is PWM used as a position code rather than a speed code. In practice the Arduino Servo library hides the timing and you just write an angle.
When to use it
Use an SG90 whenever a robot part must move to and hold a specific angle under light load: gripper fingers, small arm joints, sensor gimbals, or the steering linkage on a lightweight car. Its ~180° range and instant “go to this angle” control are ideal for learning kinematics and building expressive mechanisms.
Look elsewhere when the joint carries real weight (use a metal-gear or standard servo), when you need continuous rotation for a wheel (use a DC motor and an L298N, or a continuous-rotation servo), or when you need many degrees of precise, high-torque motion (use a stepper).
Wiring and gotchas
- Power it separately. A stalling SG90 can pull 500–700 mA—far more than a microcontroller’s 5 V pin can give. Use a dedicated 5 V supply and tie its ground to the board’s ground, or the board will brown out and reset.
- It is not continuous rotation. A standard SG90 travels ~180° and stops. Commanding “spin forever” does nothing; for a driven wheel you need a different actuator.
- Don’t force it or stall it. The nylon gears strip under overload or a sharp knock. Keep loads light, or move to metal gears.
- Expect a little jitter. Cheap servos hunt slightly around the target. A stable, clean power supply and detaching the signal when the joint doesn’t need holding both reduce it.
Explore the graph
Used in these builds
Projects, learning paths, and simulators that include the SG90 Servo Motor.
Compare
Alternatives
Questions
SG90 Servo Motor FAQ
What is the SG90 servo motor?
The SG90 is a 9-gram hobby servo—a small geared motor that rotates to and holds a commanded angle, rather than spinning freely. It is the cheapest, most common servo for beginner robotics, used for arm joints, grippers, pan-tilt camera mounts, and steering.
How does a servo motor work?
Inside is a DC motor, a gear train, a potentiometer, and a control circuit. The potentiometer tells the circuit the current angle; the circuit compares it to the angle you command and drives the motor until they match. That built-in feedback loop is what lets a servo hold a precise position.
How do you control an SG90 with an Arduino?
You send a 50 Hz PWM signal where the pulse width sets the angle: about 1 ms means 0°, 1.5 ms means 90°, and 2 ms means 180°. In practice you use the Arduino Servo library and just call servo.write(angle)—it generates the timing for you.
How much weight can an SG90 lift?
The SG90's stall torque is about 1.8 kg·cm, meaning it can just hold 1.8 kg at a 1 cm arm, or ~180 g at 10 cm. Usable continuous load is well below that. For anything heavier or a longer arm, step up to a metal-gear servo like the MG90S or a standard-size servo.
SG90 vs MG90S—which is better?
They are the same size and control the same way, but the MG90S has metal gears and slightly more torque, so it survives stalls and load that would strip the SG90's nylon gears. Use the SG90 to learn and for light loads; choose the MG90S when the joint carries real weight or takes knocks.
How much current does an SG90 draw?
An SG90 draws only a few milliamps idle but can spike to 500–700 mA when it stalls or moves under load. That is too much to pull from an Arduino's 5 V pin, so power servos from a separate 5 V supply with a common ground, or you will brown out and reset the board.
Further reading