spacer T-Pro SG90 Micro Servo - Autopsy

"Using the PCB from this budget servo and adding some transistors or mosfets onto unpopulated pads you could cobble together your own higher power servo using a gear motor and a 5K potentiometer".

t_Pro SG90 ServoI'm building a walking robot in my PolyPod project. Once I had all the servos (T-Pro SG90's) integrated I noted an odd behaviour. While the servos responded correctly they had also developed an erratic, occasional twitch. At seemingly random times, but more often in some positions than others, the servo would twitch 5 or 10 degrees and then return to its normal position. Sometimes you can chase down a false path before discovering the real cause of the problem and this is why I ended up dissecting an SG90 servo.

While trying to solve this problem I looked at the SG90 servos to see if there was possibly something odd about their driver circuit. The SG90 uses the AA51880 servo driver chip from Agamem Microelectronics Inc. The servo's driver circuit is practically the reference design provided by AMI with only a few small changes (marked in red).

T-Pro SG90 PCB top view T-Pro SG90 PCB bottom view Reference design with deviations
(click to enlarge above images)

Top Components Bottom Components From The Bottom
(click to enlarge above images)

The circuit uses the AA51880's own power stage to directly drive the small motor in the servo. The reference design schematic (above) shows the default values in black. The values in red are what I measured or read from the actual parts in my SG90. Note that the smaller capacitance values are not completely certain as my meter gives slightly different values each time I measure. Values from 33nF and up seem correct.

PCB with top layer opaque  PCB with bottom layer opaque
Top Components  Bottom Components From The Top
Reverse engineered PCB as seen from the top. Left image shows the top pads and traces
as opaque, while the right image shows the bottom pads and traces as opaque.

Above, you can see the PCB that I divined from looking at the actual PCB and tracing routes. All holes are plated through. Except for the two large holes on the left, all other holes are vias. The large capacitor that you can see in the images above is 0.1uF but since it is part of the main timing circuit it is presumably a more precise and temperature stable variant. I couldn't find what the O7L designation on the part means. The resistor marked 300 measures as 20Kohms.

There are pads on the PCB that can accept one or two sets of SOT-23 transistors to provide a half or a full H-Bridge to driver a larger motor. I haven't tested this but it looks like it should work. Only 56ohm resistors are missing on the transistor bases and perhaps these aren't essential since the chip uses PWM (transistors should be saturated). The pads for the upper PNP transistor pads are bridged with 0 ohm chip resistors connecting pins 5 and 3 to the motor. The lower NPN transistor pads are not currently connected as the circuit uses the chip's internal NPN's.

Modification to drive larger motors

Well, that's as far as I went before I discovered that the SG90's were not at fault. For the hacker the most interesting observation is that it seems this diminutive PCB could be easily altered to drive much larger motors if the 4 transistors are added. In fact, the circuit variant that uses four mosfets (two P-channel and two N-channel) looks virtually identical. The pin outs for the SOT-23 mosfets look correct and should work as well. Using the PCB from this budget servo and adding some transistors or mosfets onto unpopulated pads you could cobble together your own higher power servo using a gear motor and a 5K potentiometer or equivalent.

-- The End For Now --