To connect a standard 3-wire hobby servo (like a TowerPro SG90 or MG996R) to an Arduino Uno, wire the brown or black wire to GND, the red wire to a 5V source, and the orange or yellow wire to a PWM-capable digital pin (such as Pin 9). While the physical connection takes less than a minute, understanding the electrical path from the microcontroller to the servo’s internal H-bridge and potentiometer is what separates a reliable build from one that suffers from jitter, brownouts, and stripped gears.
This walkthrough traces the exact node-by-node path of a servo wiring diagram, decodes the schematic symbols you will encounter, and provides a strict multimeter verification protocol before you apply power.
Decoding the Servo Wiring Diagram Symbols & Physical Terminals
Before tracing the circuit, you need to map the physical connector on the servo to the abstract symbols used in electrical schematics. Standard RC servos use a 3-pin JST or standard 0.1-inch pitch connector. Looking at the connector with the locking tab facing you, the pins are universally ordered as follows:
- Pin 1 (Ground): Brown or Black wire. Connects to the common circuit ground.
- Pin 2 (VCC / Power): Red wire. Connects to the positive DC voltage rail (nominally 4.8V to 6.0V).
- Pin 3 (Signal / PWM): Orange, Yellow, or White wire. Receives the Pulse Width Modulation control signal.
When reading a formal wiring diagram or schematic for this setup, you will encounter three specific symbols:
- The PWM Square Wave Symbol: Often drawn as a small square wave icon next to the signal line, or simply indicated by a pin label with a tilde (~) on the Arduino block. This represents the 50Hz digital pulse train (a 20ms period with a 1ms to 2ms high-state pulse) that dictates the servo’s shaft angle.
- The Ground Symbol: Depicted as three descending horizontal lines or a downward-pointing triangle. In servo diagrams, this symbol must appear at both the Arduino GND pin and the external power supply GND, indicating an equipotential bond.
- The VCC Rail Symbol: A solid horizontal line or an upward-pointing arrow labeled +5V. This represents the DC power source feeding the servo’s internal brushed DC motor.
Node-by-Node Wiring Trace & Pin Mapping Table
A wiring diagram is only useful if you can trace the current and signal paths from source to load. Below is the exact node-by-node trace for a standard low-torque micro servo (SG90) powered directly from the Arduino, followed by the critical modifications needed for high-torque metal gear servos.
Terminal and Pin Mapping Table
| Arduino Uno Pin | Wire Color | Servo Terminal | Electrical Function |
|---|---|---|---|
| GND | Brown / Black | Pin 1 (GND) | Current return path and signal reference ground. |
| 5V | Red | Pin 2 (VCC) | DC power source for internal motor and control IC. |
| Digital Pin 9 (~) | Orange / Yellow | Pin 3 (Signal) | 5V logic-level PWM control signal (50Hz). |
Textual Node-by-Node Trace (Source to Load)
1. The Ground Path (Return): Current and signal reference begins at the Arduino’s ATmega328P GND plane. It flows out through the GND header pin, travels along the brown/black wire, and splits inside the servo. One branch grounds the internal DC motor’s H-bridge driver, while the other branch grounds the internal 5K potentiometer used for positional feedback.
2. The VCC Path (Power): Power originates at the Arduino’s onboard 5V linear regulator (if powered via the barrel jack) or directly from the USB 5V bus. It flows out the 5V header pin, travels along the red wire, and enters the servo’s internal motor driver IC. This path must handle the motor’s stall current, which can spike to 700mA on a micro servo.
3. The Signal Path (Control): The Arduino’s hardware timer generates a 5V logic-level square wave on Pin 9. The signal travels along the orange/yellow wire and enters the servo’s internal comparator IC. The IC measures the width of the high pulse (e.g., 1.5ms for 90 degrees) and compares it against the voltage divider reading from the internal potentiometer to drive the motor forward or backward.
If you are using a high-torque servo like the MG996R (which pulls 2.5A at stall), you must use an external 5V power supply. When doing so, the external power supply’s GND terminal must be physically wired to the Arduino’s GND pin. Without this common ground bond, the PWM signal from the Arduino has no reference return path to the servo’s control IC, resulting in erratic snapping, jitter, or total failure to respond.
Verifying Connections with a Multimeter Before Power-Up
Plugging a servo in backward or applying power to a shorted breadboard will instantly fry the Arduino’s onboard 5V regulator or the servo’s internal control IC. Use a digital multimeter (DMM) to verify your physical wiring against the diagram before uploading code.
Step 1: Continuity Check (De-energized)
With the Arduino completely unplugged from USB and external power, set your DMM to the continuity setting (the diode/sound wave icon). Place one probe on the Arduino’s GND pin metal header and the other probe on the metal contact of the servo connector’s Ground (brown/black) wire. You should read less than 1 ohm and hear a continuous beep. If it reads open (OL), your ground path is broken.
Step 2: Polarity and Short Check (De-energized)
Keep the DMM on continuity. Place the red probe on the servo’s VCC (red) wire contact and the black probe on the GND (brown/black) wire contact. A healthy servo will typically read between 500 ohms and 2K ohms due to the internal circuitry. If you read near 0 ohms, you have a dead short in your wiring or a blown internal component. Do not apply power.
Step 3: Voltage Verification (Energized, Servo Disconnected)
Plug the Arduino into your PC via USB, but leave the servo unplugged from the breadboard or jumper wires. Set your DMM to DC Volts. Probe the red (5V) and brown (GND) wires at the end of your jumper cables. You must read between 4.8V and 5.2V. If you read significantly lower (e.g., 4.2V), your USB port is current-limiting or your breadboard contacts are degraded. Once voltage is confirmed, unplug the Arduino, connect the servo, and proceed to testing.
Frequently Asked Questions
Can I power an MG996R metal gear servo directly from the Arduino 5V pin?
No. The Arduino Uno’s onboard 5V linear regulator is typically rated for a maximum of 800mA to 1A (and much less if powered via the barrel jack at higher input voltages due to thermal dissipation limits). An MG996R metal gear servo can draw 2.5 Amps under stall conditions. Connecting it directly to the Arduino’s 5V pin will cause an immediate voltage brownout, resetting the ATmega328P microcontroller mid-cycle, and can permanently damage the board’s voltage regulator or USB polyfuse. Always use an external 5V buck converter or a dedicated battery eliminator circuit (BEC) for high-torque servos, ensuring you bond the grounds.
Why is my servo jittering even when the Arduino code says hold position?
Servo jitter is almost always a power integrity or grounding issue, not a code problem. The internal control IC is highly sensitive to voltage ripple on the VCC line. If you are powering multiple servos from the same breadboard rail, the inductive kickback and current spikes from one servo moving will cause micro-brownouts on the VCC rail, confusing the potentiometer feedback loop of the adjacent servos. To fix this, add a 470µF electrolytic capacitor directly across the VCC and GND pins at the servo’s connector to act as a local energy reservoir, and ensure your power supply can deliver at least 1 Amp per micro servo or 2.5 Amps per standard servo.
What happens if I swap the VCC and GND wires on a standard SG90 servo?
Applying reverse polarity to a standard hobby servo is usually fatal to the internal electronics. Unlike some modern industrial drivers, cheap micro servos like the SG90 lack reverse-polarity protection diodes on their main power input. Reversing the red and brown wires will instantly forward-bias internal parasitic diodes and push reverse voltage through the motor driver IC and the 5K feedback potentiometer. You will likely see a brief spark or smell burning plastic, and the servo’s control board will be permanently destroyed, though the brushed DC motor itself might survive if quickly disconnected. Always verify wire colors against the physical locking tab orientation before applying power.






