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

FULL CAD BOM FIRMWARE DOCS

RoboticsWorkshop

difficulty
●●●●
time
a long weekend
license
CC-BY-SA-4.0
repo
repo ACTIVE1,545 stars

WHAT YOU’LL NEED

  • 3D printer + filamentprintable parts — files are in the repo
  • Electronic partsfull list with part numbers in the repo BOM
  • Dev board / microcontrollerruns the project firmware
  • Soldering kit + basic toolsone-time buy, serves every future build

Partner

Reach your Pi from anywhereRemote desktop to the machine running this build — no port forwarding, works right from the browser.Try Getscreen.me
1

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.

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?

Printall structural parts — base, forearm, upper arm, wrist and gripper assemblies, approximately 40 hours of print time at 0.2mm layer height
Buy6× MG996R servos, 6× 608 bearings, Arduino Mega 2560, assorted M3 screws and nuts, 12V power supply
Tools3D printer (200×200×200mm minimum build volume), soldering iron, hex keys, screwdrivers, calipers for checking fit
Skillsintermediate 3D printing, basic Arduino and Processing, mechanical assembly experience — you must understand how bearings, servos and linkages fit together without step-by-step photos
Timea long weekend: two days printing, half a day assembling and wiring, another half-day troubleshooting servo calibration and software setup
Cost$$ — servos dominate at roughly $60 for six MG996R units; bearings, hardware and electronics add another $40–50; assumes you already own a 3D printer
Safety12V DC only, no mains voltage exposed; hobby servos can pinch fingers when powered — treat the gripper as you would any motorized clamp

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

A desktop 3D printer that prints in full colorPartner · Kickstarter
A desktop 3D printer that prints in full color

HeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.

See how it prints

Gallery

upload://cmrvtadh60ghxri1zqrlgtwbe/upload-a786bc2c.jpg

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 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. 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. 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. 4.Flash the Arduino firmware from the Firmware folder(requires Arduino IDE and the Servo library; inverse kinematics are pre-implemented)
  5. 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?

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.

Á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.

GitHub

Star the project on GitHub

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.