Posted on

How to Build a Robot Arm with ESP32 and Servo Motors

ESP32 DevKit V1 30-pin WROOM-32 development board

How to Build a Robot Arm with ESP32 and Servo Motors

Build a robot arm with an ESP32 board, one servo per joint, and rigid M3 hardware. The ESP32 drives each servo with a PWM signal, and a 12 kg.cm servo holds the base joint under load. A display shows joint angles while you test. The ESP32 DevKit V1 costs $11.99 and carries WiFi and Bluetooth.

Quick facts

Fact Value
ESP32 DevKit V1 $11.99, 30-pin WROOM-32, WiFi and Bluetooth
Base joint servo 12 kg.cm at 6V, SPT4412LV, $53.99
Heavy servo option 60 to 160 kg, DSSERVO, $53.24 to $56.69
OLED display $7.49, 128 by 64 pixels, I2C
M3 hardware kit $10.56, 150 pieces, 8 to 25mm
Servo horn set $8.37, 4-point aluminum 2-pack

Which servos does a robot arm need?

A robot arm needs one servo per joint, with the most torque at the base. The base joint carries the whole arm, so it needs the strongest servo.

The SPT4412LV gives 12 kg.cm of stall torque at 6V for the base joint. It moves in 0.09 sec per 60 degrees at 6V.

The DSSERVO range gives 60 to 160 kg for a large arm base. Servo options run $53.24 to $56.69 by torque class and travel.

How does the ESP32 drive the servos?

The ESP32 drives each servo with a PWM signal on a GPIO pin. A 50 Hz signal with a 1 to 2 ms pulse sets the servo angle.

The Espressif LEDC driver gives 16 PWM channels on the ESP32. That covers a 4 joint arm with channels to spare.

The Arduino Servo library wraps the same PWM setup in simple calls. Use servo.attach on a pin, then servo.write to set the angle.

How do you power servos and the ESP32?

Power the servos from a separate 5V to 6V supply, not from the ESP32 board. Servos draw far more current than a board pin can give.

Join the grounds of the servo supply and the ESP32. A missing common ground makes servos jitter and ignore commands.

The MG996R datasheet lists 1400mA of stall current for one standard servo. Size the supply for stall current across all joints.

How do you mount the arm joints?

Rigid joints need bolts that match the arm plates. The M3 kit in this guide costs $10.56 and holds 150 pieces from 8 to 25mm.

Fit a 4-point aluminum horn on each servo spline. The $8.37 set is a 2-pack with a ball link for the arm rods.

Tighten each joint until it holds, then back off a quarter turn. A joint that binds will stall its servo and drain the supply.

How do you add a display to show joint angles?

A small OLED shows each joint angle while you test the arm. The $7.49 display in this guide measures 0.96 inch with 128 by 64 pixels.

It runs on I2C with 4 pins and takes 3.3V to 5V. That suits the ESP32 DevKit V1 without extra level shifting.

Update the display once per loop after you move the servos. A display that updates too fast will flicker and hide the numbers.

How the options compare

Part Role Key spec Price
ESP32 DevKit V1 Controller 30-pin WROOM-32, WiFi and Bluetooth $11.99
SPT4412LV servo Base joint 12 kg.cm at 6V $53.99
DSSERVO range Heavy base joint 60 to 160 kg $53.24 to $56.69
4-point horn set Joint links Aluminum 2-pack $8.37
OLED display Angle readout 128 by 64 pixels, I2C $7.49
M3 hardware kit Joint bolts 150 pieces, 8 to 25mm $10.56

How do you build the robot arm?

  1. Mount the base servo and fit its horn at center.
  2. Assemble the arm plates with M3 bolts and check each joint.
  3. Wire each servo signal pin to a separate ESP32 GPIO pin.
  4. Connect the servos to a 5V to 6V supply with a common ground.
  5. Load the test sketch and move each joint through its range.
  6. Fit the OLED display and show the joint angles while you test.

Parts that fit this guide

In-stock parts ship from the New York, USA warehouse in 1-2 business days. Prices below are the live store prices we verified on November 10, 2026.

ESP32 DevKit V1 Development Board, 30-Pin WROOM-32, WiFi + Bluetooth ($11.99)

ESP32 DevKit V1 at $11.99. It is a 30-pin WROOM-32 board with WiFi and Bluetooth.

Dilwe SPT4412LV 12KG Digital Servo Large Torsion Metal Gear for 1:10 RC Drift Car ($53.99)

Base joint servo at $53.99. It gives 12 kg.cm of stall torque at 6V.

DSSERVO High Torque Waterproof Digital Servo 60KG / 80KG / 150KG / 160KG for 1/5 1/6 Redcat HPI Baja 5B ($2.25)

Heavy servo option, listed from $53.24 to $56.69 by torque class. The $2.25 option is a hardware set only, not a servo.

4-Point Aluminum Servo Arm Horn Set with Rudder Angle Ball Link, RC Aircraft, 2-Pack ($8.37)

Aluminum horn set at $8.37. It is a 2-pack with a ball link for arm joints.

0.96 Inch OLED Display Module, SSD1306, I2C, 128×64, for Arduino / ESP32 / ESP8266 ($7.49)

OLED display at $7.49. It measures 0.96 inch with 128 by 64 pixels on I2C.

M3 Stainless Steel Hex Socket Screw, Bolt & Nut Assortment Kit, 150-Piece (8-25mm) ($10.56)

M3 hardware kit at $10.56. It holds 150 pieces from 8 to 25mm in an organizer box.

Shop the full range: Robot Arms at Quality RC Parts. See also: Related guide.

Frequently asked questions

How many servos does a robot arm need?

One per joint. A 4 joint arm needs 4 servos, with the strongest at the base.

Can an ESP32 drive 4 servos at once?

Yes. The LEDC driver gives 16 PWM channels, so 4 servos leave channels to spare.

Why do my servos jitter when the ESP32 boots?

The grounds are not joined, or the supply is too weak. Join the grounds and size the supply for stall current.

What torque does the base joint need?

At least 12 kg.cm for a small arm. The SPT4412LV gives 12 kg.cm at 6V and costs $53.99.

Sources

Last updated: November 10, 2026.