6-DOF Robotic Arm
Project · 2026
- Robotics / Mechanical Design
- Onshape
- ESP32-S3
Overview
A custom 6-DOF robotic arm integrating mechanical design, embedded electronics, and closed-loop joint control. The arm has a 500 mm reach, 600 g payload capacity, and approximately 1.5 mm end-effector repeatability across 10 return-to-point trials. The system combines custom mechanical components, absolute encoder feedback, a custom ESP32-S3 PCB, and a Bluetooth-based control interface for real-time multi-axis operation.
Mechanical Design
The arm was designed in Onshape around six 3D-printed joints driven by NEMA 17 stepper motors. Each motor drives the joint through a custom 3D-printed 25:1 cycloidal gearbox. The gearbox went through five FDM design iterations to resolve binding, axial compression, and excessive backlash. The final design achieved approximately 0.67° of backlash and 3.15 N·m of measured output torque in a lever-arm load test. Each motor shaft is fitted with a magnet and paired with an AS5600 absolute encoder, providing joint-position feedback to the ESP32. This allows the controller to compare commanded and measured joint positions and correct for skipped steps or position error caused by increased loads, improving repeatability and positioning accuracy.
Electronics
The arm is controlled by a custom PCB that was designed in EasyEDA and hand-soldered to incorporate the arm’s electronics onto a single board. The PCB has an ESP32-S3 as the main controller, six TMC2209 stepper drivers to drive each NEMA 17, AS5600 absolute encoders, and JST connectors for each motor and encoder output to allow for simple wiring. The board is powered by 24 V from a bench power supply. A 5 V buck converter on the PCB powers the ESP32. The PCB also includes outputs for a cooling fan and LED lights, along with a fuse and reverse-polarity diode.
Software & Control
The arm is controlled through a Bluetooth-based interface that supports wireless multi-axis jogging and live joint-position feedback. ESP32 firmware reads the AS5600 encoder data and uses the measured joint positions to provide closed-loop control of the stepper-driven joints. The control system allows commanded joint motion to be compared against actual encoder position rather than relying only on open-loop step counting.
Testing & Performance
The completed arm was tested for repeatability, payload capacity, and gearbox performance. End-effector repeatability was evaluated through 10 return-to-point trials using a dial indicator against a fixed reference position, producing an average repeatability of approximately 1.5 mm. The arm was also validated with a 600 g payload. The cycloidal reducer was separately tested using a lever-arm load setup, producing 3.15 N·m of measured output torque. Backlash was reduced to approximately 0.67° after multiple mechanical revisions.
Iteration & Challenges
A major challenge was developing an FDM cycloidal reducer that could operate smoothly without excessive backlash or binding. Early versions experienced binding and axial compression caused by geometry, bearing constraints, and shaft-bore tolerances. Across five design iterations, the gearbox geometry and clearances were refined to eliminate binding and substantially reduce backlash while preserving compact packaging. The project also required repeated mechanical and electrical integration changes as the arm, PCB, wiring, and control system were developed together.
Demo
Technologies Used
- Onshape
- ESP32-S3
- EasyEDA
- 3D Printing