Robotics/electronics

Low-Cost Robot Arm

Build a two-joint cardboard arm with two low-voltage servos, a simple claw, and constrained motion controls.

A robot arm is a chain of rotating joints. Every joint carries the mass beyond it, so link length, servo torque, balance, and motion limits must be designed together.

Difficulty
Advanced
Build time
150-220 min
Estimated cost
$0-$35
Age range
13-18
Workspace
A clear table about 90 cm wide

The finish line

What you will build

The arm moves through a programmed pick-and-place cycle and relocates a 20-gram foam block between two marked zones five times.

Learning goals

  • Identify how microcontroller pulse commands produces shoulder, elbow, and claw position.
  • Construct and explain a electrical commands-to-multi-joint angular motion system.
  • Measure how one link length or motion speed changes performance.
  • Diagnose losses caused by servo backlash and link flex.

Before you build

Materials, tools, and safety

Reuse-material cost: Usually under $5 with an existing kit. Supervision: Adult guidance recommended for wiring and cutting.

Tools

  • Small screwdriver
  • Wire stripper
  • Multimeter
  • Low-temperature glue gun or tape

Low-cost swaps

  • Use alligator-clip leads for a no-solder version.
  • Build and test the mechanism manually before adding electronics.
  • Build the same arm with string tendons and hand levers before adding servos.

Wiring table

FromToPurpose
5 V supply +All servo red wiresProvide rated servo power
5 V supply -Servo grounds and controller GNDCreate required common ground
Controller PWM 3Shoulder signalCommand base joint
Controller PWM 5Elbow signalCommand second joint
Controller PWM 6Claw signalCommand gripper

Project-specific safety

  • Use only the listed low-voltage battery supply; never use mains electricity.
  • Disconnect power before changing wires and stop if a motor, wire, or battery becomes warm.
  • Use only 5 V power, disconnect before wiring, keep fingers out of joints, set conservative software limits, and never lift living things or heavy objects.

Orient the build

Place the build so microcontroller pulse commands is on your left and shoulder, elbow, and claw position is on your right. Call the side facing you the front, the far side the back, the tabletop the bottom, and the opposite face the top.

Build it

Step-by-step instructions

  1. Step 1

    Build the base

    Laminate a wide base and add ballast away from moving links.

    Mark the shoulder axis at center.

  2. Step 3

    Mount the shoulder servo

    Capture its body between side plates and support the output horn.

    Do not use the servo shaft as the only frame support.

    Builder checkpoint: After mount the shoulder servo, the first subassembly should stay aligned when handled gently.

  3. Step 4

    Add the elbow

    Attach the second servo at the first link end and route its cable with a loose loop.

    Check full motion by hand with power off.

    Watch for: If this stage binds or drifts, inspect off-axis loading before adding more parts.

  4. Step 5

    Build the claw

    Create two lightweight jaws driven by the third servo horn and a connecting link.

    Add soft pads and hard stops.

  5. Step 6

    Wire power correctly

    Power servos from the 5 V supply and join its ground to controller ground.

    Do not draw servo current from a controller logic pin.

    Builder checkpoint: After wire power correctly, operate the build slowly and confirm that shoulder, elbow, and claw position begins without binding.

  6. Step 7

    Calibrate safe angles

    Upload a slow one-joint-at-a-time sweep and record non-binding limits.

    Stop before links touch the frame.

  7. Step 8

    Program pick and place

    Move through home, approach, close, lift, target, release, and home.

    Run first with no payload, then a 20-gram block.

    Builder checkpoint: At the final checkpoint, The arm moves through a programmed pick-and-place cycle and relocates a 20-gram foam block between two marked zones five times.

See the engineering

Why it works

Input
microcontroller pulse commands
Output
shoulder, elbow, and claw position
Motion
electrical commands-to-multi-joint angular motion
Energy losses
servo backlash, link flex, joint friction, off-axis loading
Low-Cost Robot Arm concept diagram with labeled input, output, and motion arrows.
The electrical commands-to-multi-joint angular motion motion path, with the main efficiency losses called out.

Why this works

Serial-link manipulation

Each joint rotates every link after it. The shoulder experiences the largest load because it must support the elbow, claw, payload, and their distances from the pivot.

Look for: Move one joint at a time and watch how the end-effector traces an arc rather than a straight line.

Where the energy goes

Efficiency and losses

The ideal model leaves out servo backlash, link flex, joint friction, off-axis loading. These effects turn some input energy into heat, sound, vibration, or unwanted motion, so measured performance will be lower than an ideal calculation.

Look for: Run the build slowly and locate the first place where servo backlash becomes visible or audible.

Math bite

Estimate shoulder torque

Formula: torque = force × distance

  • Moving mass = 0.10 kg
  • Force ≈ 0.98 N
  • Center distance = 0.12 m

Substitute: torque = 0.98 × 0.12 = 0.118 N·m

Result: The shoulder needs at least 0.118 newton-metres before safety margin.

Choose a servo with significantly more rated torque.

This treats the moving mass as one point and ignores acceleration.

robot_arm_cycle.ino

A complete Arduino-style sequence with conservative angles and gradual servo motion.

#include <Servo.h>
Servo shoulder, elbow, claw;
int shoulderPos = 80, elbowPos = 95, clawPos = 35;
void moveServo(Servo &motor, int &current, int target) {
  int direction = target > current ? 1 : -1;
  while (current != target) { current += direction; motor.write(current); delay(20); }
}
void setup() {
  shoulder.attach(3); elbow.attach(5); claw.attach(6);
  shoulder.write(shoulderPos); elbow.write(elbowPos); claw.write(clawPos);
  delay(1000);
}
void loop() {
  moveServo(shoulder, shoulderPos, 62);
  moveServo(elbow, elbowPos, 120);
  moveServo(claw, clawPos, 72);
  moveServo(elbow, elbowPos, 82);
  moveServo(shoulder, shoulderPos, 110);
  moveServo(elbow, elbowPos, 112);
  moveServo(claw, clawPos, 35);
  moveServo(elbow, elbowPos, 95);
  moveServo(shoulder, shoulderPos, 80);
  delay(2500);
}
Brick-building meme reading: Chuck Norris does not build LEGO; he roundhouses the bricks into sculptures.
The arm completed pick-and-place, then returned home with the dignity of a much larger machine.Image supplied by the site owner.

Make it behave

Test, troubleshoot, and tune

Controlled test

Start here: Run every joint slowly through calibrated limits with no payload.

Success looks like: The arm moves a 20-gram foam block between zones five times without tipping or stalling.

Measure: Pick success, joint angles, cycle time, base movement, and servo temperature.

Change: one link length or motion speed

Keep constant: power, payload, base, angle limits, claw, and target locations

  1. no payload
  2. 10 g foam block
  3. 20 g foam block
Troubleshooting guide
SymptomLikely causeConfirm itFix
The controller resetsServo current drops the logic supplyWatch power LED during motionUse separate regulated servo power with common ground
The shoulder buzzesCommand exceeds a hard stop or torque is too highPower off and move links by handReduce limits and shorten or lighten links
The claw drops the blockJaw path or padding is poorClose slowly around the blockAdjust linkage and add compliant pads
The base tipsCenter of mass leaves the footprintHold at worst pose without powerWiden and ballast the base

Choose your tradeoff

Shorter, lighter links improve torque margin and repeatability. Faster moves reduce cycle time but increase inertia, power peaks, and overshoot.

Keep experimenting

Try another version

Easier

One-joint arm

Operate a shoulder and passive scoop.

Performance

Motion smoothing

Interpolate angles in small timed increments.

Advanced

Inverse-position table

Measure reachable coordinates and build a lookup map.

Build together

Classroom and access options

Classroom version

Teams can compare one link length or motion speed while keeping power, payload, base, angle limits, claw, and target locations. Assign builder, tester, recorder, and explainer roles; have each team predict the result before collecting three trials.

Access adaptations

  • Color-code and label every wire at both ends.
  • Use clip leads, larger controls, and pre-crimped connectors when fine motor work is difficult.
  • Use large on-screen angle controls, pre-cut link pairs, and a one-button automatic cycle.

Reflect on the design

  1. How did one link length or motion speed change the measured result?
  2. Where did servo backlash affect the build most strongly?
  3. What evidence shows that serial-link manipulation explains the motion?
  4. Which change would improve shoulder, elbow, and claw position without creating a new problem?
Glossary
Serial-link manipulation
Each joint rotates every link after it.
Input
The action or energy supplied to a system; here it is microcontroller pulse commands.
Output
The useful response produced by a system; here it is shoulder, elbow, and claw position.
Efficiency
The fraction of input energy that becomes useful output instead of friction, sound, heat, or unwanted motion.

Build your dreams

One build can start the next.

Share what you learned, change one variable, and help another builder understand what worked.

Explore more guides

Sources and build notes

A platform-agnostic low-voltage robotics or electronics project with original assembly guidance.

  • Low-voltage design review: Battery voltage, polarity, component roles, current paths, and motor or LED protection were editorially checked.

Written and edited by BrickLabClips. Published 2026-07-22; updated 2026-07-22.

Next builds

Related guides