Kronos Robotics and Electronics
Site Map
 
Home Zeus Projects App Notes Downloads Dios Athena Forums
 

GAN116

Convert a Futaba S148 Servo to Continuous Operation

  By Michael Simpson

Some other Servo Modification Instructions

 

One of the simplest bots you can make is made by converting a couple of servos to free running mode.  You get a small motor, gearbox and speed controller all in one package.

First lets talk a bit about how a servo works.

Most servos are controlled by a series of pulses.  The width of the high state pulse is what determines the actual position of the servo. 

Generally a pulse of 1ms will place the servo at one end of its rotation (see figure 1) and 2ms will place it on the other end (see figure 2)

Figure 1

Figure 2

I say generally because I found that the range can be any where from .2ms to 3ms depending on the servo manufacture and model.  Again generally when the pulse width is 1.5ms the servo will reach the half way point in its swing.

There is a small potentiometer inside the servo that rotates with the main shaft.  This is what tells the electronics in the servo where it is at any given time.  When we convert a servo to free running mode we disconnect the potentiometer from the shaft and set it at its center position.  We also remove any mechanical stops that may keep the servo from turning completely around.

Once the servo can rotate freely we can find the center spot by slowly adjusting the pulse width. I call this the neutral position.  Now by adjusting the pulse width greater than the neutral position we can move the shaft in one direction.  By adjusting the pulse width less than the neutral position we can move the shaft in the opposite direction.

Most servos were designed so that when it gets closer to its allocated position it slows down.   This will allow us to adjust the speed of the shaft by varying the amount that deviates from the neutral position.

Modifying the Servo

Note that the following modifications will void your servo warranty.  

Step 1

Remove the 4 screws on the back of the servo.

Note that its not necessary to remove the back of the servo.

Step 2

Remove the top of the servo by lifting. 

Note that the two pins shown may stay attached to the top of the servo.  If they do remove them and insert into position as shown.

Step 3

Remove the intermediate gear by just lifting.

Step 4

Remove the main shaft by lifting.

Step 5

With your fingers or some small pliers place the potentiometer shaft into the center position as shown.

Update

Step 5b

Using a thin blade of a razor saw or a cutting disk on a rotary tool place a small slot in the main shaft of the servo as shown.   This will allow you to calibrate the servo later.

 

Step 6

There is a small stop that must be removed from the main shaft.  I found that using small wire cutters and then cleaning up with and exact knife works the best.

Update

Step 6b

Use a 5/64" Drill bit and drill through the top of the main gear as shown.   You are making an access for you micro screw driver to adjust the main shaft (potentiometer).

 

 

Step 7

Insert the shaft into the top of the servo case as shown and test that you can rotate the shaft completely.

Step 8

It is now necessary to remove the small catch located on the underside of the main shaft.  You can remove it by simply placing a small screw driver into the shaft and prying out.  The bushing will also pop out.  Just place it back in place once the catch has been removed.

Step 9

A: Place the main shaft back in place.

B: Place the intermediate gear back in place.

C: Replace the servo top.

D: Reattach the 4 rear screws.

 

Update

Step 10

To calibrate the servo just set it to a neutral (center position) 1500us.  Use a small screw driver to adjust the main shaft as shown.  Adjust until the drive shaft stops moving.

You can use the following program calibrate the servo's neutral position.

func main()
   SERVOinit(1)
   SERVO1us 1500
endfunc

include \lib\DiosHSServo.lib

   

 

 

 

 

 

Copyright © 2001 - 2007 Kronos Robotics