YOU CAN 3D PRINT YOUR OWN 6-AXIS ROBOTIC ARM AT HOME
A desktop robot arm with six degrees of freedom, printed entirely in PLA and driven by hobby servos.
by Ángel LM
RoboticsWorkshop
- difficulty
- ●●●●○
- time
- a long weekend
- license
- CC-BY-SA-4.0
- repo
- repo ACTIVE1,545 stars
●●●●○ · a long weekend · CC-BY-SA-4.0 · 1,545 stars · repo ACTIVE
WHAT YOU’LL NEED
- 3D printer + filament — printable parts — files are in the repo
- Electronic parts — full list with part numbers in the repo BOM
- Dev board / microcontroller — runs the project firmware
- Soldering kit + basic tools — one-time buy, serves every future build
Partner
COMPAREE VERDICT
Thor is a genuine six-axis arm that moves like an industrial robot, but scaled down to hobby servos and a desktop footprint. The kinematics are real — it solves inverse kinematics in firmware and can be programmed with G-code or controlled via a Processing GUI. The entire structure prints in PLA on a modest printer, and the BOM is clear: six MG996R servos, a handful of 608 bearings, M3 hardware and an Arduino Mega. The assembly is not trivial — you are building a kinematic chain with six joints, and each one must move freely without binding. The documentation assumes you understand how a robot arm works; if you have never assembled a multi-axis mechanism before, expect to pause and reason through the order of operations. The single biggest risk is not mechanical — it is that the servos are hobby-grade and will hunt under load or drift over time. This is not a production pick-and-place; it is a learning platform that behaves like one. If your goal is to understand robot kinematics and you are comfortable iterating on mechanical assemblies, this is worth the weekend. If you need reliability or payload capacity, you are building the wrong arm.
IN THE REPO
NOT IN THE REPO
- —STL files for all printed parts are in the repository, along with STEP files for remixing.
- —Full bill of materials is provided with part numbers for servos, bearings and fasteners.
- —Firmware is Arduino-based and includes inverse kinematics; control software runs in Processing.
- —Assembly instructions exist but are spread across README, images and a PDF — not a single consolidated guide.
- —Licensed CC BY-SA 4.0 for hardware, GPL-3.0 for software — both permit commercial use with attribution and share-alike.
- —Repository has not been updated since 2019; community forks exist but the original is finished, not maintained.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Partner · KickstarterHeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.
Gallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Read the repository README and the assembly PDF in the Documentation folder (the PDF has exploded views of each joint assembly; the README explains the overall structure)
- 2.Print all STL files from the STL folder — parts are organized by subassembly(no supports required for most parts if oriented as provided; total print time around 40 hours at standard settings)
- 3.Source the BOM from the repository's Components list (MG996R servos are listed with approximate specs; verify torque ratings before ordering — some clones are under-spec)
- 4.Flash the Arduino firmware from the Firmware folder(requires Arduino IDE and the Servo library; inverse kinematics are pre-implemented)
- 5.Install and run the Processing control software(provides a GUI for jogging each axis and teaching positions; Processing 3.x required)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- Buying cheap servo clones that do not meet the MG996R torque spec — the arm will sag under its own weight or stall mid-move; verify the stall torque is at least 9.4 kg·cm.
- Printing with the wrong orientation or insufficient perimeters — the shoulder and elbow joints see the highest stress and will crack if under-extruded or printed with thin walls; 4 perimeters minimum, 40% infill recommended.
- Assembling joints without checking for free rotation first — if a bearing seat is too tight or a servo horn binds, the entire kinematic chain locks up; test each joint individually before stacking the next.
- Skipping servo calibration before running kinematics — the firmware assumes servos are zeroed at 90°; if they are not, the arm will move to the wrong coordinates and may hit itself.
- Expecting payload capacity beyond a few hundred grams — hobby servos hunt under continuous load and overheat if stalled; this arm is for light pick-and-place, not lifting tools or heavy objects.
- Not securing the base — the arm is top-heavy and will tip over during fast moves unless bolted or clamped to a stable surface.
What is the reach and payload?
Reach is approximately 500mm from base to gripper tip when fully extended; payload is around 200–300g depending on how far the arm is extended — the servos are hobby-grade and will sag under heavier loads.
Can I use different servos?
Yes, but you must verify torque and physical dimensions — the STL files are sized for MG996R form factor; swapping to larger servos will require modifying the CAD, and using weaker servos will reduce payload and cause sagging.
Does it support ROS or other robot frameworks?
Not out of the box — the firmware is Arduino-based and the control software is Processing; the community has written ROS nodes but they are not in this repository.
How accurate is the positioning?
Hobby servos have roughly ±1–2° repeatability, which translates to a few millimeters of error at the gripper tip — this is not precision robotics, it is a learning platform; expect to teach positions manually rather than rely on absolute coordinates.
What happens if the repository is abandoned?
The repository has not been updated since 2019 and is marked as finished by the creator; all files are present and licensed for reuse, so the project is complete but not actively maintained — community forks exist if you need modifications.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
The repository lists MG996R servos at around $10 each, but the clones vary wildly in actual torque — some builders report sagging even at rest. What servo did you use, and did it hold position under load?
Ángel LM
Ángel LM designed Thor as a desktop-scale robot arm that moves like an industrial one but costs what a hobbyist can afford. The design was published in 2017 and has been built by makers worldwide as a kinematics learning platform.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.


CompareeTEAM1mo agoedited
Practical notes from our verification: the repository is complete but has not been updated since 2019 — Ángel LM considers it finished rather than abandoned. The assembly PDF in the Documentation folder is the clearest guide, but it assumes you understand the order of operations for a kinematic chain — there are exploded views, not step-by-step photos. The single biggest variable is servo quality: genuine MG996R units hold position well enough for pick-and-place demos, but many clones sold under that name are under-torque and hunt continuously. If you are buying servos, verify the stall torque is listed as 9.4 kg·cm or higher — anything less and the arm will sag under its own weight. No official video walkthrough exists; the best community builds are on YouTube but not linked here.