Tower Pro MG90S Micro Servo

Buying a genuine TowerPro Servo Motor is not an easy task nowadays. There are countless online suppliers all over the web selling counterfeit Tower Pro servo motors!

Electronic components can now be cloned so well they cannot be easily distinguished from a genuine one. It is crucial to compare your parts to a known example to avoid dangerous consequences of using counterfeit electronics!

Tower Pro MG90s Micro Servo

Tower Pro’s MG90S metal gear micro servo may be the most widely used RC hobby servo today. This is a tiny and lightweight servo with high output power, and its metal gears (with one bearing) add better strength and reliability.

Below you can see its specifications:

  • Weight: 13.4g
  • Stall torque: 1.8 kg/cm (4.8V) & 2.2 kg/cm (6 V)
  • Operating speed: 0.1s/60° (4.8V)
  • Operating voltage: 4.8V to 6.0V (5V Typical)
  • Rotation: 180°
  • Dead band width: 5μs

This is the datasheet https://components101.com/asset/sites/default/files/component_datasheet/MG90S-Datasheet.pdf

This servo, comes with three servo horns (arms) and hardware, can rotate approximately 180° (90° in each direction) – position 0° (1.5ms pulse) is middle. The general idea is simple. 1.5ms pulse is what we consider “neutral” position. Increasing the (1-2ms) pulse width will make the servo go one way, and decreasing the pulse width will make the servo go the other way.

Counterfeit MG90S

The MG90S servo is widely copied, cloned, and counterfeited. Generally speaking, servos marked MG90S and generally compatible with applications that use the genuine Tower Pro MG90 servos. But most of them have some drawbacks, which will be addressed later.

For a comparison I bought a pair of fake MG90S Micro Servos at a low price from Flipkart and made a few quick trials. Before we get into that, let me say a few things about regular servos.

Analog vs Digital Servo

What is the difference between an analog servo and a digital servo?

First off, there is no physical difference between them! The difference between the two is in how the input signal is processed and how that information is used to send power to the servo motor.

An analog servo receives the input pulse and then outputs a power signal to the servo motor. The frequency at which the output occurs is 50Hz. This means in one second an analog servo would only apply an output every 20ms. On the other hand, in a digital servo, this happens at a much higher speed. A small microprocessor inside the servo analyzes the input signal and processes it into a very high frequency power signal to the servo motor. We can expect that a digital servo would send a pulse to the servo motor at a rate of 300 to 500Hz.

To sum up, a digital servo is the same as a standard/analog servo, except for an onboard microprocessor that analyzes the incoming signal and controls the motor.

It is worth noting that one major drawback of an analog servo is its delay in reacting to small commands. That means, it does not get the motor spinning quickly enough, and also makes a sluggish torque. This is referred to as “dead band”.

Since a digital servo has a different way of sending pulse signals to the servomotor, it decreases the amount of dead band. This provides a quicker response and faster acceleration. According to Tower Pro datasheets, dead band width of SG90 9g Micro Servo (analog) is 10us whereas it is 5us for MG90S Micro Servo (digital)!

Clones & Counterfeits

How to distinguish genuine Tower Pro MG90S from counterfeits? To be frank, there is no proven method to do that. Also, some fakes are just analog servos!

Anyway, there are some useful pointers to help us, as revealed in this blogpost https://vorpalrobotics.com/wiki/index.php/Tower_Pro_MG90S_Vs._Clones. The red flags are label colour, label layout, servo housing, shaft & washer atop, etc.

Quick Evaluation

As the first test, I ran my MG90S micro servo (supposed to be fake) through a cheap Servo Consistency Tester. Much to my surprise, it woke up😜

But there’s quite a bit of wiggliness observed. Another problem is that, often the exact position requested with the pulse can’t actually be handled by the servo aright (seems like chattering caused by positioning error, if not, the servo most likely has a feedback error).

Raspberry Pi Pico & Servo Test

Second, I tried the same MG90S servo with a simple Raspberry Pi Pico setup and MicroPython for more clarity. Simply run the below script in your Thonny IDE and you can see your servo start sweeping while Thonny shell will print the logging info (thanks https://peppe8o.com/)!

from machine import Pin, PWM

from time import sleep

servoPin = PWM(Pin(16))

servoPin.freq(50)

def servo(degrees):

# Limit between 0 and 180 degrees

if degrees > 180: degrees=180

if degrees < 0: degrees=0

# Set duty cycle max/min

maxDuty=9000

minDuty=1000

# New duty cycle is btwn min and max duty in proportion to its value

newDuty=minDuty+(maxDuty-minDuty)*(degrees/180)

# Servo PWM value is set

servoPin.duty_u16(int(newDuty))

while True:

# Start forward loop

for degree in range(0,180,1):

servo(degree)

sleep(0.001)

print(“forward — “+str(degree))

# Start reverse loop

for degree in range(180, 0, -1):

servo(degree)

sleep(0.001)

print(“reverse — “+str(degree))

The servo control signal comes out from GP16 of RPi Pico, and the servo is powered through the VBUS pin (+5V) which is available when the board is connected to a USB port. At this point, note that servos are power-hungry monsters. It would be better to pick an independent 5VDC power supply for them.

Finally…

I still have a question – is the TowerPro MG90S digital or analog? I saw conflicting descriptions all over the web. Can anyone answer this?

I opened one servo to investigate the build quality. This is an internal view of my counterfeit MG90S Micro Servo included in this post.

In addition to the use of plastic gears (there’s a single metal gear), the gear geometry and the tooth count raise many questions!

Stay tuned for my next level (a bit serious) servo teardowns. See you then 👍

Leave a Comment