Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

DIY Arduino Robot Arm with Smartphone Control (HC-05 Bluetooth)

August 26, 2026 7 views

Project

Project Overview DIY Arduino Robot Arm with Smartphone Control: Build a 5-DOF robot arm with a gripper — 3D-printed frame, six servos, an HC-05 Bluetooth module, and an Android app with a slider for every joint plus a Save/Run system that records movements and replays them automatically.

Intermediate6 parts

Project Overview

DIY Arduino Robot Arm with Smartphone Control: Build a 5-DOF robot arm with a gripper — 3D-printed frame, six servos, an HC-05 Bluetooth module, and an Android app with a slider for every joint plus a Save/Run system that records movements and replays them automatically.

  • Time: A weekend (printing + assembly + wiring)
  • Skill level: Intermediate
  • What you will build: A smartphone-controlled robotic arm that can memorize a sequence of positions and loop them like a tiny industrial robot.
DIY Arduino robot arm controlled from a smartphone app
Five joints plus a gripper, all driven from sliders on your phone.

Parts List

From ShillehTek

External

  • 3 × SG90/MG90S micro servos (wrist roll, wrist pitch, gripper)
  • 3D-printed arm parts (STLs from the original guide) or an arm frame of your own
  • 5V ≥ 2A supply for the servos (the LM2596 fed from a 12V adapter works great)
  • An Android phone for the control app

Note: Never power six servos from the Arduino's 5V pin — stalled MG996Rs can pull well over an amp each. Give the servos their own 5V rail and tie the grounds together.

Step-by-Step Guide

Step 1 — Understand the Arm

Goal: Know what the six servos do.

What to do: The arm has five degrees of freedom plus a gripper. The three big joints — waist rotation, shoulder, and elbow — carry real load, so they use metal-gear MG996R-class servos. The wrist roll, wrist pitch, and gripper barely lift anything, so light SG90 micro servos handle those. The frame was modeled in CAD and 3D-printed; the STLs are freely available in the original guide.

3D model of the 5-DOF robot arm
The 3D model: waist, shoulder, elbow, wrist roll, wrist pitch, and gripper.
Detail view of the robot arm CAD model
Each joint sandwiches a servo horn between printed parts.

Expected result: You know which servo goes where and why.

Step 2 — Print and Assemble the Frame

Goal: Build the mechanical arm.

What to do: Print the parts (PLA at standard settings is fine), then assemble joint by joint from the base up: bolt the waist servo into the base, attach the rotating platform to its horn, then work up through shoulder, elbow, and wrist, seating each servo before closing its joint. Center every servo (90°) before screwing horns down, or the arm's range will be lopsided. A rubber band looped across the shoulder joint helps the shoulder servo fight gravity on the longest lever.

3D printed robot arm parts laid out
The full set of printed parts before assembly.
Mounting the waist servo in the robot arm base
The waist servo bolts into the base and carries the whole arm.
Assembling a servo joint on the robot arm
Joints assemble around each servo's output horn.

Expected result: A finished arm that moves freely by hand at every joint.

Step 3 — Wire the Electronics

Goal: Connect six servos, the HC-05, and power.

What to do: Servo signal wires go to Arduino pins D5–D10 (waist through gripper). The HC-05 wires VCC→5V, GND→GND, TX→D3, and RX→D4 through a simple 1k/2k voltage divider (the module's RX pin is 3.3V logic). Set your LM2596 to 5.0V and feed every servo's power lead from it — not from the Arduino — then tie the converter's ground to the Arduino's GND so signals share a reference.

Circuit schematic for the Bluetooth robot arm
Six servos on D5–D10, HC-05 on SoftwareSerial, servos on their own 5V rail.

Expected result: Electronics complete, with a servo power rail that won't brown out the Arduino.

Step 4 — Load the Code

Goal: Let the phone command every joint.

What to do: The sketch keeps a Servo object per joint and parses slider messages arriving over Bluetooth. The condensed control loop looks like this — the complete sketch (including smooth-speed moves and the record/replay logic) is on the original guide:

#include <SoftwareSerial.h>
#include <Servo.h>

Servo servo01, servo02, servo03, servo04, servo05, servo06;
SoftwareSerial Bluetooth(3, 4);   // HC-05 TX -> D3, RX -> D4 (via divider)

int servo1Pos = 90, servo2Pos = 150, servo3Pos = 35,
    servo4Pos = 140, servo5Pos = 85, servo6Pos = 80;
String dataIn = "";

void setup() {
  servo01.attach(5);   // waist
  servo02.attach(6);   // shoulder
  servo03.attach(7);   // elbow
  servo04.attach(8);   // wrist roll
  servo05.attach(9);   // wrist pitch
  servo06.attach(10);  // gripper
  Bluetooth.begin(38400);
  Bluetooth.setTimeout(1);
  delay(20);
}

void loop() {
  if (Bluetooth.available() > 0) {
    dataIn = Bluetooth.readString();       // e.g. "s1120" = waist to 120 deg
    if (dataIn.startsWith("s1")) {
      servo1Pos = dataIn.substring(2).toInt();
      servo01.write(servo1Pos);
    }
    // ...same pattern for s2..s6, plus speed,
    // SAVE (record step) and RUN (replay saved steps)
  }
}

Expected result: The arm twitches to its home pose on boot and responds to Bluetooth commands.

Step 5 — Drive It from the App

Goal: Control — then automate — the arm.

What to do: Pair your phone with the HC-05 (PIN 1234), open the control app from the original guide (built with MIT App Inventor, source included), and connect. Each slider drives one joint live, and the speed slider scales how fast moves execute. The magic is the Save button: pose the arm, tap Save, pose it again, tap Save — then hit Run and the arm replays the whole recorded sequence in a loop, like a miniature pick-and-place machine. Reset clears the memory for a new routine.

Android app with sliders controlling the robot arm
One slider per joint, plus Save/Run to record and replay motion sequences.

Expected result: A robot arm that does what your thumbs tell it — and then repeats it on its own.

Conclusion

This build packs a remarkable amount of real robotics into hobby parts: multi-joint kinematics, proper servo power design, wireless control, and motion recording with automatic replay. Once it's running, the same pattern — sliders in, positions stored, sequences replayed — scales to any servo machine you can dream up.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project, check out our IoT consulting services.

Credits

All photos and images in this tutorial are credited to the original guide by Dejan of HowToMechatronics, which served as the reference for this ShillehTek version (adapted via the Hackster.io repost by Webotricks). We thank them for their excellent work in the maker community.