Skip to content

DIY 6-DOF Servo Robotic Arm

A custom 6-DOF robotic arm built from 3D-printed parts, driven by an Arduino Mega and PCA9685 servo driver, with serial servo angle control.

  • Robot arm
  • Open source
  • arduino
  • 3D printable

Suggested by Robotheca, created by @vshreyas121-code (opens in a new tab), from github.com/vshreyas121-code/6-dof-robotic-arm (opens in a new tab). Pinned to commit 258d189 (opens in a new tab).

Photo and 3D model

DIY 6-DOF Servo Robotic Arm, photo from its repository
Photo:@vshreyas121-code (opens in a new tab)MITsource file (opens in a new tab)

3D preview converted from github.com/vshreyas121-code/6-dof-robotic-arm at 258d189, under MIT. View the original files from GitHub (7.3 MB) (opens in a new tab)

Degrees of freedom
6

What it can do

Written by Robotheca from the project's documents.

  • Moves a six-joint (6-DOF) robotic arm, with each servo joint commanded individually
  • Accepts six requested servo angles over the Arduino Serial Monitor from a computer
  • Applies safe angle limits to servo positions before moving the arm
  • Planned future features include autonomous pick-and-place and leader-follower control, not yet implemented

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The creator's steps, each with its instructions.

  1. 1Design the arm in Onshape
  2. 23D print the mechanical components
  3. 3Assemble the arm with servo horns, screws, nuts and washers
  4. 4Wire the power distribution: LiPo battery, fuse, switch and 5V buck converter
  5. 5Wire the Arduino Mega 2560, PCA9685 servo driver and six servos
  6. 6Upload the Arduino code and control the servo angles over serial
  7. 7Test, calibrate and align the servos

The guide appears here as you scroll.

Guide by @vshreyas121-code (README.md), under MIT.

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • Arduino Mega 2560 as the controller
  • PCA9685 16-channel PWM servo driver
  • Four MG995 positional servo motors and two MG90S positional servo motors
  • LiPo battery with fuse, fuse holder and power switch
  • 5V buck converter supplying the Arduino and servo driver logic and servo power rail

Connections

  • Battery feeds the buck converter through the fuse and power switch
  • Buck converter supplies regulated 5V to the Arduino Mega, PCA9685 logic, and PCA9685 servo power rail
  • Arduino Mega talks to the PCA9685 over I2C using the SDA and SCL pins
  • Six positional servos are connected to PCA9685 channels 0 through 5