The standard 3-pin hobby servo pinout consists of Signal (PWM), VCC (Power), and GND (Ground). The most universally adopted wire color standard (JR/Hitec) maps these as Orange (Signal), Red (VCC), and Brown (GND). However, legacy Futaba servos and industrial DC harness extensions use entirely different color codes. Plugging a Futaba servo into a standard JR-wired harness backwards will instantly fry the internal MCU or your microcontroller's GPIO pin.
This reference cuts through the confusion, giving you the exact pin mappings, multimeter fallback procedures for unmarked wires, and the decision framework to wire your ESP32 or Arduino safely.
The Complete Servo Pinout & Wire Color Reference Table
Below is the definitive mapping for the 3-pin JST, ZH, or standard 0.1-inch (2.54mm) header connectors found on 99% of hobby servos (SG90, MG996R, DS3218). Read the 'Standard JR' column for most modern applications.
| Pin Function | Symbol / Signal Type | Standard JR / Hitec (Most Common) | Futaba (Legacy / Specific) | IEC 60446 DC (Industrial Panel Context) |
|---|---|---|---|---|
| Signal | PWM (50Hz, 1-2ms pulse) | Orange (or Yellow) | White | Not Applicable (Use shielded data wire) |
| VCC (Power) | +4.8V to +7.4V DC | Red | Red | Brown (IEC DC Positive) |
| GND (Ground) | 0V Reference | Brown (or Black) | Black | Blue (IEC DC Negative) |
Note: Pin 1 is universally GND (closest to the edge of the connector housing), Pin 2 is VCC (middle), and Pin 3 is Signal (closest to the center of the servo body).
Rows People Get Wrong (and How to Fix Them)
Even experienced makers make critical errors when mixing servo brands or integrating them into larger embedded systems. Here are the most common failure points:
1. Confusing Futaba 'White' with Ground
In the IEC and NEC worlds, white is often a neutral or ground conductor. In the Futaba servo standard, White is the Signal wire. If you wire a Futaba servo using standard JR assumptions (treating the lightest wire as GND and the darkest as Signal), you will reverse the polarity across the servo's internal control board, likely destroying the potentiometer wiper circuit.
2. The 3.3V vs 5V Logic Trap
The 'VCC' row in the table above refers to the motor power rail, not the logic level. A standard MG996R requires 5V-6V on the Red wire to drive the motor. However, the Signal wire expects a 5V PWM pulse. If you connect the Orange wire directly to an ESP32 GPIO pin (which outputs 3.3V), the servo may jitter, fail to reach full torque, or draw excessive current from the ESP32's weak 3.3V regulator. Fix: Use a dedicated 5V PWM driver like the PCA9685, or a simple logic level shifter.
3. Assuming All 'Dark' Wires are Ground
Cheap clone servos often use Black for GND and Yellow for Signal, while premium JR servos use Brown for GND and Orange for Signal. When wires are faded, relying on 'dark means ground' is a gamble. Always verify with a multimeter if the color deviates from the primary JR/Futaba standards.
Safe Interpretation When Markings Are Faded or Missing
If you pull a salvaged servo from an RC car or a thrift-store robot and the wire colors are faded, painted over, or non-standard, do not guess. Use this 3-step multimeter protocol to identify the pinout safely before applying power.
- Identify GND: Touch one probe to the metal output shaft or the metal mounting screws on the servo casing. Probe the three wires. The wire that shows continuity (near 0 ohms) to the metal casing is GND.
- Identify VCC: Open the servo housing (usually 4 Phillips screws on the bottom). Locate the main motor driver IC. The wire that connects to the thick power traces or the large bulk capacitor's positive leg is VCC.
- Identify Signal: The remaining wire will trace directly to a high-impedance input on the main IC or to the wiper (middle pin) of the internal feedback potentiometer. This is your Signal wire.
Regional & Standard Variants: Hobby vs. Industrial DC
It is critical to understand that the JR/Futaba color codes are proprietary hobby standards, not legal electrical codes. If your project crosses the boundary from a breadboard prototype to a mounted, enclosed system (like an automated theatrical prop or an industrial sorting arm), you must transition to recognized regional wiring standards for the harness extensions.
According to Electrical Technology's wiring code reference, when extending servo wiring through cable trays, conduits, or control panels, you must adhere to IEC 60446 (Europe/Global) or NEC (North America) DC color codes:
- IEC 60446 (EU/Global): Brown (+VDC), Blue (-VDC/GND), Green/Yellow (Protective Earth). Signal wires should be Black or Grey.
- NEC (US/Canada): Red (+VDC), Black or White (-VDC/GND), Green/Bare (Earth). Signal wires are often Yellow or Blue in industrial control panels.
The Translation Rule: Keep the factory JR colors (Orange/Red/Brown) on the servo pigtail itself. Use a JST connector block inside your enclosure to transition to IEC/NEC compliant wire gauges (e.g., 18 AWG THHN) for the long runs back to your power supply and microcontroller.
Decision Path: Choosing the Right Connector and Logic Level
Stop guessing which driver board or wire harness to buy. Follow this decision matrix to arrive at the exact hardware configuration for your build.
| Condition / Constraint | If True... | Action / Hardware Pick |
|---|---|---|
| Using an ESP32 or Raspberry Pi (3.3V logic) | Direct GPIO connection will cause jitter or brownouts. | Use the Adafruit PCA9685 16-Channel PWM Driver (I2C). It handles 5V logic translation and isolates the MCU from motor current spikes. |
| Using an Arduino Uno/Mega (5V logic) | GPIO can drive the signal, but the onboard 5V regulator cannot supply motor current. | Wire Signal to GPIO, but route VCC and GND to a dedicated external 5V/6V BEC or bench supply. Tie the external supply GND to the Arduino GND. |
| Extending wires beyond 12 inches (30cm) | Voltage drop and PWM signal degradation will occur on thin 22AWG hobby wire. | Transition to 20AWG or 18AWG silicone wire for VCC/GND. Add a 100µF decoupling capacitor at the servo end. |
| Using High-Voltage (HV) Servos (7.4V / 8.4V) | Standard 5V BECs will under-drive the motor; 6V limits will trigger internal over-voltage protection. | Use a 2S LiPo (7.4V) direct feed with an adjustable UBEC set to 7.4V, ensuring your specific servo model (e.g., Savox SW-1210SG) is rated for HV. |
For deeper technical limits on microcontroller GPIO current sourcing when bypassing driver boards, always consult the Espressif ESP32 GPIO API Reference or the Adafruit PCA9685 Servo Shield Guide to ensure your power delivery network can handle the stall current of your specific servo model.






