Modifying a 99 cent servo for continuous rotation
Joined: May 18, 2008
Topics: 17 Replies: 16
posted on Jan 30, 2018 03:00 AM:
My Archive Category
You can now buy a hobby servo for 99 cents with free shipping from Asia on eBay. This makes it practical and inexpensive to consider using these mechanisms for animations or similar layout enhancements.|
There are countless web resources on servos, how they work, how to apply them, etc. Not so common are descriptions of a modification to standard off-the-shelf servos to make them operate continuously or what is effectively a bi-directional DC gear motor. These seem to have taken on the name of a "Continuous Rotation Servo" or what I'll call a CRS. The idea is you can use the standard 3-wire connection to the servo to make it spin at variable speed in either direction. If using standard R/C plane/car/drone controllers you can use a CRS plug-and-play. Or if using an Arduino or similar controller with servo outputs, you can use the standard servo library functions.
You can buy a CRS from many sources that have modified a standard servo. You can find web resources and videos on DIY modifications. These resources should be a starting point. The contribution here is to show how to modify the specific SG90 99 cent servo available on eBay in early 2018. Apparently the SG90 has undergone revisions so this may not apply to earlier or later revisions.
Remove the two long screws after which the housing can be separated into 3 sections.
There is a tab on the output shaft which mechanically stops the shaft from spinning a full rotation. The tab must be cut off with a hobby knife or razor blade. The output shaft is rounded near the gear but becomes a blade-shape (like a screwdriver) near the end. This end is what inserts into the feedback potentiometer within the servo. Since the potentiometer must be disabled in a CRS, the end of the shaft will also be removed (later) with a hobby knife.
With the tab removed, the final act for the bladed-end of the shaft is to set the internal potentiometer to its mid-point position. Power up the servo and command it to the mid-point position. If using an Arduino, this could be with the standard library command servo.write(90). Or for about $1 on eBay you can buy a servo-exercise which has a so-called "Neutral" mode where it sends the mid-point command.
The internal motor must be dis-engaged for the output shaft.
The bladed tip of the output shaft is inserted into the housing and engaged into the potentiometer. With the servo commanded to its mid-point (via the Arduino or via the servo-exerciser), the potentiometer is adjusted into motion stops. This is shown at about 15 seconds into the video.
After the potentiometer is centered, the blade-end tip of the shaft can be removed. Now the output shaft can spin freely and continuously with affecting the potentiometer position. This is the key to the operation of a CRS.
The gears can be re-stacked and servo re-assembled. The video above goes on to show the CRS action. Additionally, the video shows the modified CRS electronics can be used to drive other than the internal DC motor. The DC winding resistance of the SG90 motor as modified was about 4 ohms. There is just over 1 Volt of drop (due to the bridge driving electronics in the SG90) so the motor only sees just over 3 Volts DC.