Project Files:
Onshape CAD Files • Bill of Materials • Blueprint Journal
I made this to learn more about how robot arms work, how they are designed, controlled, and the types of end-effectors that can be used on them. Once I finish this arm, I want to be able to design different types of end-effectors that can go on the end of this. I also wanted to learn how to design a custom PCB as well as a custom wireless UI that can control this.
- 5 Degrees of Freedom: The base rotates and tilts, the arm tilts, and the wrist rotates and tilts, allowing for easy movement.
- Cost-Effective: This robot arm with a custom PCB and all parts included costs around $300 to build, making it cost-effective.
- Wireless Control: This arm is powered by an ESP 32 microcontroller with has WIFI capability
- Custom UI: This project also includes a custom UI that will connect to the ESP to control the arm wirelessly from a laptop.
- Encoder Compatibility: This arm uses AS5600 encoders on each stepper motor joint, which allows you to get absolute encoder values and create programs to make the arm go to certain positions.
- Mostly 3D Printed: This arm is mostly 3D printed and doesn't require any machined parts or gearboxes.
- Includes an Emergency Stop
- Will include a fully wireless handheld control panel in the future.
The Onshape link can be found at the top of the README. Each part of the arm is printed separately and then put together using M3 and M4 hardware and heat-set inserts that melt into the plastic using a soldering iron. Bearings are press fit. The pulleys each use a specific belt size, which means there is no need to cut belts. The pulleys are spaced to perfectly fit the belts and tension them properly, which also means no belt tensioners are needed..
This is the base. The top part rotates on bearings and is screwed in from the bottom so it doesn't fall off.
This is the big pulley that tilts the arm. It sits in the bearings, which are shown in the part above.
This is the Arm and the part that holds the arm. It includes a mount on the right side for the AS5600 encoder.
This is the wrist and the part that mounts the wrist onto the arm. The wrist just connects to a stepper motor that allows it to rotate. The wrist uses an MG996R Servo to tilt up and down.
This is the full assembly:
This is the schematic for the custom PCB. The arm is powered from a bench power supply. There is a buck converter that converts into 5V. The main microcontroller is an ESP32 and there are three stepper drivers, slots for servo motors, an external Nema 23 driver, an I2C multiplexer for encoders,s and an expansion slot to add another PCB later on. There is also a screw terminal for an E-Stop. The PCB also has a GND pour and VIA's connecting the layers.
These are the components needed. The prices and links can be found here: Bill of Materials Google Sheets
- 1 PCB
- All 3D printed parts
- 3 x Nema 17 Motors
- 1 x Nema 23 Motor
- 3 x TMC2209 Drivers
- 1 x ESP32 Dev Kit
- 1 x TB6600 Driver
- Solder
- Solder Flux
- 3 x AS5600 Magnet Encoders
- 8 x 4x10x4 Bearings
- 8 x 20mm x 47mm x 14mm Bearings
- 1 x GT2 600mm Timing Belt
- 2 x GT2 400mm Timing Belt
- 1 x GT2 420mm Timing Belt
- 5 x 20t Pulleys
- 3 x 5mm to 5mm Shaft Couplers
- 1 x 5mm Shaft
- 8 x 5mm Shaft Collars
- 1 x E-Stop Button
- 1 x TC9548A I2C Multiplexer
- 1 x LM2596 24v to 5v Buck Convertor
- 1 x KF301-2P Screw Terminal
- 1 x XT60 to Banana Plug Cable
- 1 x XT60 to PCB Connector
- 1 x LED
- 1 x 1x3 Headers Pack
- 1 x 1x6 Headers Pack
- 1 x JST-XH-4Pin Connectors Pack
- 1 x 6 Pin Screw Terminals Pack
- 1 x 220R Resistor
- 3 x 0.1uF Capacitors
- 3 x 100 uF Capacitors
- 1 x SS54 Input Diode
- 1 x Pack of M3 M4 Hardware
- 1 x Pack of M4 Heat Set Inserts
- 1 x Pack of Jumper Cables
- 1 x Pack of Heat Shrink for Cables
- 1 x 12x12 Piece of Wood for Base
- 1.5kg x PLA Filament
- 1 x Pack of M2x6mm Philips Head Screws