# MG90S servo motor, metal gears

> MG90S servo motor with metal gears, an upgrade over the SG90, for RC projects and robotics. Internal potentiometer for precise control, torque 1.8kg/cm at 4.8V and 2.2kg/cm at 6V, speed 0.1sec/60 degrees (4.8V) or 0.08sec/60 degrees (6V), rotation range 0-180 degrees, supply voltage 4.8-6.0VDC. Weight 13.4g, dimensions 22.8 x 12.2 x 28.5mm.

- Page: https://sigmanortec.ro/en/mg90s-servo-motor-metal-gears
- Price: 16.72 RON
- Availability: In stock; 1-2 zile
- Reference: 33592 · EAN: 5940781109439
- Category: Mechatronics and IoT > Servomotor
- Package (shipping data): 0.014 kg
- Updated: 2026-06-12
- Shop: [Sigmanortec.ro](https://sigmanortec.ro/en/llms.txt)
- Prices: RON, VAT included; prices and stock as of 2026-10-22 01:32 (Europe/Bucharest)

## Description

Robust upgrade for RC and robotics projects, with metal gears for better strength and reliability than SG90. Offers precise control thanks to internal potentiometer, torque up to 2.2 kg.cm at 6V and fast response, covering 0-180 degrees rotation at 4.8-6V.
This servomotor is an upgrade to the classic SG90 version, adding metal gears and being ideal for applications where the extra weight given by the metal components is not a disadvantage.
The servomotor is a precise one, with an internal potentiometer.
Specifications:
Weight: 13.4g
Dimensions mm: 22.8 x 12.2 x 28.5mm
Stall torque: 1.8kg/cm(4.8V), 2.2kg/cm(6V)
Operating speed: 0.1sec/60 degrees (at 4.8v), 0.08sec/60 degrees (at 6v)
Rotation radius: 0 - 180 degrees
Supply voltage: 4.8 - 6.0VDC
Instructions:
There is a possibility that some bookstores do not operate the servo motor in its maximum range (0-180 degrees). The PWM values vary between 0.4 and 2.6 milliseconds. It is possible that some modifications are needed in the library if the servo motor does not rotate between 0 and 180 degrees.
See the code below to position the servo motor in the 0 and 180 degree position:
// the setup function runs once when you press reset or power the board
void setup() {
pinMode(9, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(9, HIGH);
delayMicroseconds(2600); //change here to 400 for 0 degrees or 2600 for 180 degrees
digitalWrite(9, LOW);
delay(18);
}
Library modification in case the servomotor does not act up to 180 degrees:
In the folder C:Program Files-> (x86)->Arduino->libraries->Servo->src
open the file Servo.h with the text editor and replace the following lines of code:
\#define MIN_PULSE_WIDTH 544 // the shortest pulse sent to a servo
\#define MAX_PULSE_WIDTH 2500 // the longest pulse sent to a servo
\#define DEFAULT_PULSE_WIDTH 1500 // default pulse width when servo is attached
\#define REFRESH_INTERVAL 20000 // minimum time to refresh servos in microseconds
with
\#define MIN_PULSE_WIDTH 400 // the shortest pulse sent to a servo
\#define MAX_PULSE_WIDTH 2600 // the longest pulse sent to a servo
\#define DEFAULT_PULSE_WIDTH 1500 // default pulse width when servo is attached
\#define REFRESH_INTERVAL 20000 // minimum time to refresh servos in microseconds
