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.

SAM_2315

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

SAM_2317

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.

SAM_2318

SAM_2320

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!

SAM_2321

Remove the potentiometer from the board.

SAM_2322

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.

SAM_2326

 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.

SAM_2327

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.

SAM_2330

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.

SAM_2331

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 <https://fleshandmachines.wordpress.com> 
// This code is in the public domain.

#include <Servo.h>

Servo myservo;

void setup() 
{ 
  myservo.attach(9);
  Serial.begin(9600);
} 

void loop() 
{ 
  myservo.write(55); // forward direction 
  delay(1000);
  Serial.println("forward");

  myservo.write(85); // motor stopped
  delay(1000);
  Serial.println("stop");  

  myservo.write(95); // backward direction
  delay(1000);
  Serial.println("backward");
}

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.

SAM_2334

Advertisements

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:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s