The goal of this Instructable is to help you build your own 3D printed robot arm. My motivation for building this robot arm comes from an interest in mechatronics and the lack of good documentation for building a 4-axis arm with stepper motors, Arduino and a 3D printer.
I hope the CAD files will guide or inspire you to build your version of this arm!
At the moment there are 3 axis finished. I am still working on the 4th axis and gripper.
Step 1: Hardware
The robot arm is mostly 3D printed and is belt driven. All non 3D printed parts like bearings, pulleys, belts and motors can be bought off the internet.
The shafts are made from 8mm and 5mm steel rods, this can be done by hand if required.
- 3x GT2 pulley 20 teeth
- 2x GT2 pulley 60 teeth
- 1x GT2 pulley 16 teeth
- 2x GT2 belt 232 teeth
- 1x GT2 belt 400 teeth
- 4x 22x8 mm ball bearing
- 2x 16x5 mm ball bearing
- 4x 10x3 mm ball bearing
- 1x 98x4 mm needle bearing
- 1x 32x2 mm needle bearing
- 4x M3x250 mm
- 4x M3x140 mm
- 1x 8x98 mm
- 1x 8x105 mm
- 1x 5x88 mm
- 2x 3x30 mm
- 3x 42x42x40 mm NEMA17 bipoler stepper motor (45 Ncm)
Nuts and screws:
- 12x M3x10 mm (hex socket) button head screw
- 2x M3x25 mm (hex socket) button head screw
18x M3 self locking nut
- 3x M6x15 mm (hex socket) cap screw
- 3x M6 nut
- 9x 3x15mm self tapping button head screw
Step 2: Electronics
The stepper motors are driven by three DRV8825 stepper motor drivers and an Arduino Uno. There are multiple options available on the internet for a driver shield for the Arduino Uno.
- 1x Arduino Uno
- 1x driver shield
- 3x DRV8825
- 12-24V Power supply
Please watch the Youtube tutorial on how to set the current limit on the DRV8825 motor driver.
Step 3: Software
The Arduino Uno can be programmed using the Arduino IDE and the AccelStepper library to control multiple stepper motors using acceleration for smooth movements.
This part is still under construction. You have to experiment with different settings for your motors to run them smoothly and make coördinated movements.
Step 4: Building the Robot Arm - the Base
Before printing any parts, experiment with the tolerances of your 3D printer. The ball bearings should snap nicely in to place, without using too much force. So print some samples with different sizes to check which dimensions give the best results.
I got the best results by dimensioning the holes 0,5 mm larger than the outer diameter of the ball bearing.
The base consists out of four parts:
Step 5: Building the Robot Arm - Second Axis
Start with assembling the belt tensioner.