Introduction: Convert Towerpro MG995 Servo to Continuous Rotation


Do you need some relatively powerful and very cheap servos for continuous rotation? Well, here I will tell you how to go about converting the Towerpro MG995 servo (rumoured to be 10kg/cm Torque) to continuous rotation.

Any constructive advice on the project or on the instructable would be appreciated - this is my first so be gentle :)

Step 1: Items Required

To start with, you need some Towerpro MG995 servos to convert.
I purchased 2 with metal gears here http://www.dealextreme.com/p/towerpro-mg995-metal-servo-with-gears-and-parts-10kg-torque-20089

2 each of 2.2 k Ohm resistors per servo motor. (Optionally a 5 k Ohm pot... or even the one in the servo. More about this later)

Then you need a soldering station and solder.
Helping hands help.
Wire cutters.
Small Phillips screwdriver.
Small awl (not pictured in tools photos)
Dremel and cutting disk
Goggles for safety of course.

Some means of testing and driving the servos. I used an arduino perfboard clone, a breadboard and some batteries.

Step 2: Open the Servo

To start we need to open the servo.

Use your small phillips screwdriver to unscrew the 4 screws from the back of the servo.

Remove the back of the servo case.

Remove the front of the servo case.

You will then have exposed the gears and the circuit board.

Step 3: Remove the Gears, Motor and Circuit Board

Extract the motor, circuit board and gears from the servo body.

Take note of the order in which the gears are mounted, but if you are doing this then you are probably quite capable of determining their positions when putting it all back together by how they fit.

Cut the wires running from the circuit board to the 5kOhm pot

Step 4: Remove the 5kOhm Pot


The 5kOhm pot is not a continuous rotation pot and because the drive gear is mounted on it, this will prevent the druve gear from rotating 360 degrees.

So we need to remove it.

Looking at the photos you can see there is a small screw and some clear glue holding the pot in place.

Unscrew the screw and scratch out the glue - I used an awl included in my screwdriver set.

Finally remove the pot from the servo body and put it aside for use in another project.

Step 5: Remove Protrusion Preventing 360 Rotation

In addition to the pot itself not rotating 360 degrees and therefore preventing continuous rotation of the drive gear, there is also a protrusion which will also prevent rotation. This protrusion needs to be removed.

Here you need to use your goggles to protect your eyes. Don't be stupid and try do it without. Your eyes are way too valuable and you are not invincible - even if you think you are.

I placed some serviette in order to keep the metal particles away from the rest of the gears.

I held the hears in my hand but in retrospect it may be better to leave the pot in to prevent the gear rotating fully while you are removing the protrusion.

Be sure to wear your goggles and ensure the side of the cutting disk you are using is rotating away from you so any sparks are thrown away from you. Take your time.

Step 6: Add Resistors

We now need to add the resistors which will act as a voltage splitter and allow the servo to be controlled.

Remove the remains of the wires from the circuit board.

bend the resistor leads as shown in the photos and solder as indicated.

cut off the excess leads.

solder the legs of your resistor voltage splitter to the circuit board as shown. Note the middle pin is the reference voltage and runs to the join between the two resistors.

Step 7: Test the Motor for Continuous Rotation


Before putting the servo back together we need to test the motor and servo to ensure we can control it.

I used an arduino clone to test the servo.

Ideally sending a servo.write(90) should hold the motor still. In my case this did not happen.

This is why it might be useful to solder in a 5k pot instead, send a command to 90 degrees and then turn the pot until the motor does not turn any more. Then glue the pot position with some hot glue.

Since I had the resistors I needed to determine where the centre point of my servo was. I wrote a simple arduino sketch to read an angle input in the serial monitor and to write this angle to the servo. Doing this I found for the two servos I converted the centre point angle was 104 and 106 degrees respectively. Sending an angle greater than this will cause the servo to rotate in one direction, and an angle less than that would cause the servo to rotate the other direction.

Unfortunately I have scrapped the script.. so I cannot post it. Never-mind, I am sure you are capable of writing such a script yourself.

Speed control is in terms of the size of the difference between the centre point and the angle you have written.

So, for my servo with 106 degrees as the centre point 126 degrees would turn slower than 136 degrees but both would be in the same direction.

86 degrees would turn the servo at the same speed as 120 degrees, but in the opposite direction.

Step 8: Put It All Back Together

Final step is to put it all back together.

Put the gears back in place.

Turn the gears by hand to ensure everything rotates smoothly.

Insert the motor and circuit board back into the servo body.

put the front and back covers back on.

Screw it all back together.

Test it again using your script as explained in the previous step.

Step 9: Thoughts and Conclusions - Credit Where Credit Is Due


These tower pro servos are cheap - not only in their cost but also their construction - you get what you pay for.

I certainly would not use them for important tasks, but as a continuous rotation motor with adequate torque they are fine.

I do find the zero point angle of my servos seems to change from time to time. Probably because of static electricity and maybe even humidity and temperature. Using a pot which was mounted on the body and accessible from the outside would be useful to fine tune the servo centre point when in use.

Credits

I used these instructions as a guide - thanks dude wherever you are. http://www.laureanno.com/RC/servo-rotate.htm

My battery holders you saw were printed on my reprap printer using a design by obijan - see http://www.thingiverse.com/thing:5079

And the caterpillar tracks design by Olalla see http://www.thingiverse.com/thing:8559

Further information about the bot itself will be posted on Lets Make Robots - link to be provided when the info has been published.

If you are looking for an interesting and challenging project you could consider building a reprap 3D printer - see http://www.reprap.org