Let's Make Robots!

Continuous rotating/normal servo - all in one

Rotates continuous or moves to desired position

This is a short tutorial how you get a servo for continuous running AND normal servo mode for a few bucks. You can switch between the modes in setting an additional pin high or low.

1) Open the servo and desolder the PCB. Remember the connections for motor and potentiometer

2) Remove the mechanical stop on the gear

3) Remove the potentiometer and modify it according to picture below. At least Hitec servos have this kind of potentiometer. Assemble the potentiometer and put it back on its original place

4) Prepare the servo as following

5) Make a small additional perfboard according to this circuit diagram and connect everything accordingly

I am using a TAKAMISAWA A5W-K PCB relay. They are very tiny, just like a 10 pin DIL chip and they are DIL socket compatible:

This is how my first prototype looked like:

6) You are done. Using a Sharp IR or ping on your servo, your robot can now not only look to the front, left and right, it can also look to the back!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I have seen these relatively new servos that have magnetic inductance sensors instead of the potentiometers. Supposedly when the servo is off it spins 360 degrees, so I was wondering, would it be hard to modd it (or it works this way out of the box?) to be controlable for complete 360 degrees position?

A great idea would be to have the servo with position control for 360 degrees working with pulses from say 1ms up to 2ms and rotate continuously one direction for a pulse less off 1ms and the other way for a pulse greater of 2ms, with adjustable speed for pulses between the position control and min and max pulse ranges (0.1 ms for min and 3 ms for max). 

Oh yeah, the links:



I don't think if the servo is off it spins 360 degrees. Otherwise this servo could not be used for air planes etc. Imagine the servo starting to rotate if you lose contact with the model.

Saw these servos: http://www.robotshop.com/world/specialty-servo-en.html

They have position, temperature, load, input voltage feedback, but the price...

Unpowered or powered without a control signal? I have seen some servos that react differently to the latter condition (stay where they are, center or twitch) and my analog servos offer little resistance to being moved when unpowered. When they are still on a plane, I believe they are powered and receiving a steady control value. 

Here is a quote from the reviews:

I bought this servo and just received it. Compared to other 0.08s servo nothing much different. but for price this servo wins a lot. Quite fast and the rotation can do 360 degree when it off. The only bad points is this servo does not come with heat sink. after 10min of use this servo become hot. But overall, Great servo for money.

I believe "off" means unpowered (or unplugged) and rotated by hand. As we all know from Anton's magnetic servo sensor (http://letsmakerobots.com/node/18615) it has no stop, so perhaps the manufacturers did not include a hard stop for the gears (usually used to protect the potentiometer from breaking). Also, if one looks at the "exploded" picture from the HobbyKing site, the PCB of the servo looks different than for a regular servo. So I was thinking "what if..."

A regular servo has a built in oscilator, who's period is adjusted by the potentiometer. This period is fed to a comparator that compares it to the control signal. The difference is fed to the motor so it spins one way or the other until the signals match. Now think about this for a little. If the range of the built in generator is fixed (say from 1ms up to 2ms), feeding an out of range signal would make the motor spin continuously, as there will always be a difference. It's as simple as that. So theoretically, it should work, but it all depends how the board was designed.


Edit: While going to work I was still thinking about this and figured that as the servo horn rotates over 360 degrees, the sensor will adjust the internal oscilator period and I figured the motor will start to turn the other way, but I was wrong. A greater control singnal period will never be matched by the internal oscilator, so the motor will still be spinning. But the speed might be affected if the motor's speed is proportional with the difference between the 2 signals.


So here are the things that need to be addressed:

- clamping of the internal oscilator period so it works only in the 1ms-2ms range;

- adding an extra comparator(s) that looks at the period of the control signal and if it is in the 1-2 ms range it compares it further with the internal oscilator period, or it compares it further with a fixed value, say 1.5 ms period and feeds the difference as a proportional speed to the motor.

The last part is still blurry in my mind on how can be implemented with comparators, a microcontroller can simplify things a lot, but it will result in something similar with Anton's method. I'll keep on thinking, perhaps some of you guys can chip in some ideas...


I want to preface my statement with the fact that I have as yet to produce any thing, at all.

arbarnhart mentioned in the shoutbox that it would be even better if the position the servo stopped in when switching from continuous rotation to standard servo. I suggested that if one would read the pot you could in fact do just that. I realize there is a lot more in the background that would have to occur as the pot adjusts from 0 to 5 or 10k, but, it should still be feasible. I also suggested that rather than utilize another pin the output pin that changes the direction could be used. It would need to be an analog pin though to read the pot position.

I do not mean to demean what Markus has done. There are lots of applications, most notably pistons and other eccentric mechanisms, where a position relative to the way the motor is mounted is always correct. But if it is driving a wheel on the ground, if I stop I really want to stop exactly where I am and be able to make adjustments relative to where I am.

It was suggested that I put my opinion, for what it is worth, in the comments and I decided to mention from where my opinion came.

I often come across as an old crank because I always want more features and it seems like nothing is ever good enough. What Markus did is quite good. When it was first posted, I had hopes it might do what I wanted, so I asked hoping there might be a good answer (I know there are ways to do it with the optics and marks on wheels or with the position sensor). I do appreciate the usefulness of what he did for a lot of applications.

Well done =)

Anton has already done this;