A common strategy in the world of hobby robotics is to modify a servo for continuous rotation to use to drive the wheels of a tabletop robot.
On its own, the servo takes power, ground, and a position input and moves the shaft within a range of rotation to match the angle requested on its input wire. It has one or more stops in its gearbox to prevent it from rotating past the end of its range; these need to be removed. It also has a potentiometer as part of its positioning system, which — for the usual modification — needs to be tricked into thinking it’s always centered. The modified servo then runs at full speed forward or backward trying to reach a requested position and thinking it has never succeeded in doing so; and the controller requires extra, external rotation sensing if you want to detect what the servo has actually done so far.
I wanted something a little different — PWM H-bridge control of the servo’s motor for variable speed forward and backward and access to the potentiometer to detect position (crudely and at low speed) and count wheel rotations (acceptably and at high speed). This is actually an easier modification — but, though I’m surely not the first to do it, I’ve not run across it before. I started last night.
The cute little SG90 has four screws holding its case together.
After removing them, the base can be pulled off, revealing the back of the motor and the back of the control board.
With the control board pulled out, it’s easy to see that the motor and potentiometer are wired exactly as would be expected; and nicely color-coded, making it easy to see how to rewire the servo.
The top of the case also pops off to reveal the gearbox. The output shaft is in the lower right and the two nubs on the back side of the output gear are the stop that prevents continuous rotation. I snipped them off in place using a very sharp diagonal cutter.
Next steps: Select wiring harnesses and rewire the motor and potentiometer.