To infinity and beyond…with RC servos!

Do you like RC servos? I hope so because we do. Especially those with metal gear inside for their lifetime and reliability. We have a few TowardPro MG996R servos so I’ll demonstrate the whole process of making a servo able to turn forever with one.


To see where we are going let’s take a quick look at Ms. Piggy dancing around on the servo.

So here’s a quick list of what you’ll need:

  • small screwdrivers
  • helping hand
  • servo
  • pliers
  • smd size resistors (2 pcs)
  • soldering iron


First step is to remove the casing to get to the important stuff. Remove the 4 screws from the bottom of the box and also don’t forget to remove the servo head from the top.



So the main goal here is to remove 2 parts of the servo and also to add two, smaller parts to it.

The two parts the we have to remove are the rotary encoder which is usually implemented with a potentiometer and some protection for it. Carefully lift up the PCB and remove the potentiometer from inside and also desolder it from the board. Make sure you don’t damage anything!


Remove the potentiometer from the board.


Now we go for the second part on the other side. Remove the other side of the case to reveal the gears. You can see these nice metal gears with some silicon-based lubricant.


 The second part to be removed: the peg aka the small metal tube which is blocking the way of the motor can be found on the biggest gear.  Use a plier to remove it.


Now for adding the two extra parts – the smd resistors I mentioned before.

It’s not really important what value your resistors have but it’s a good practice to try to keep it close to the border values of the potentiometer you removed. I measured mine and it showed 4.3kOhm resistance when the potentiometer shaft was at the ends. I have 10kOhm resistors in smd size which turned out to be 6.3k in reality… I ought to notify my supplier 🙂

Anyway, it doesn’t matter that much since it implements a voltage divider so what’s really important is that the two resistors should be of same value.

You need to solder the 2 smd resistors between those 3 soldering points where the potentiometer was attached.


Aaaaand it’s done. Boards of the same type can be different too. The capacitor on this one was kinda too close to the soldering point so I built up a solder bubble to have enough space for the resistor.


Congratulations! You’ve just turned your regular RC servo into a nicely packaged infinite rotation motor with high torque.

Arduino code to test it:

// Infinite rotation servo sample code
// by Bence Magyar <> 
// This code is in the public domain.

#include <Servo.h>

Servo myservo;

void setup() 

void loop() 
  myservo.write(55); // forward direction 

  myservo.write(85); // motor stopped

  myservo.write(95); // backward direction

As a final touch I replaced the red marking tape with yellow just to be on the safe side when next time I’m picking one from the servo box.


One thought on “To infinity and beyond…with RC servos!

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.