Thor parts list
Open source 3D printed six axis arm driven by NEMA 17 steppers and GT2 belts, controlled with G-code like a 3D printer.
Robot armsadvanced by Ángel LM (AngelLM)
Exploded view
Tap any part to see where to buy it. Diagram is schematic, not to scale.
Every part you need
| Part | Qty | Spec | Where to buy |
|---|---|---|---|
| StepperOnline 17HS15-0404S NEMA 17 stepper motor | 1 | 40 Ncm, 0.4 A, 42x42x39 mm body (BOM lists 40 mm), 5 mm shaft Drives articulation 1 (base yaw) | StepperOnline: $9.80 (unverified) AliExpress: check price (unverified) BOM link; check variant |
| StepperOnline 17HS13-0404S-PG5 NEMA 17 stepper with 5:1 planetary gearbox motor | 3 | 34 mm body, 0.4 A, 5.18:1 gearbox; BOM gives 121.2 Ncm at the output; StepperOnline lists a 6 mm D-cut output shaft Two motors share articulation 2, one drives articulation 3 | StepperOnline: $26.91 (unverified) AliExpress: check price (unverified) BOM link; check variant |
| StepperOnline 17HS13-0404S1 NEMA 17 stepper motor | 3 | 26 Ncm, 0.4 A, 42x42x34 mm, 1 m cable Articulations 4, 5 and 6 (wrist) | StepperOnline: $8.48 (unverified) Amazon: check price AliExpress: check price (unverified) BOM link; check variant |
| MG995 hobby servo servo | 1 | Standard size metal gear servo Opens and closes the gripper | AliExpress: check price (unverified) BOM link; check variant |
| GT2 closed belt 208 mm (104 teeth), 6 mm wide belt | 2 | Closed loop GT2 Belt drives inside the arm | AliExpress: check price (unverified) BOM link; pick 208 mm |
| GT2 open belt, 6 mm wide belt | 1 | 1000 mm length Cut to length for the remaining belt drives | AliExpress: check price (unverified) BOM link; pick 1 m |
| GT2 pulley 20 tooth, 5 mm bore pulley | 3 | 6 mm belt width Motor side pulleys | AliExpress: check price (unverified) BOM link; pick 20T 5 mm bore, 6 mm belt |
| GT2 pulley 40 tooth, 5 mm bore pulley | 2 | 6 mm belt width; set screw lines up with the printed Art56 gear Wrist (articulation 5 and 6) reduction | AliExpress: check price (unverified) BOM link; pick 40T 5 mm bore, 6 mm belt |
| 16014ZZ deep groove ball bearing bearing | 1 | 70x110x20 mm Large base bearing | AliExpress: check price (unverified) BOM link; check variant |
| 625ZZ ball bearing bearing | 11 | 5x16x5 mm Shaft and pulley supports | AliExpress: check price (unverified) BOM link; check pack size |
| MF84ZZ flanged ball bearing bearing | 2 | 4x8x3 mm flanged Small flanged pivots | AliExpress: check price (unverified) BOM link; check pack size |
| 6 mm balls, plastic or steel bearing | 30-40 | 6 mm diameter loose balls Form the printed articulation 4 bearing ring | AliExpress: check price (unverified) BOM link; check pack size |
| Steel rod 4 mm, cut to 14 mm shaft | 2 | 4 mm diameter x 14 mm Pins | AliExpress: check price (unverified) BOM link; buy longer and cut |
| Steel rod 5 mm, cut to 14.5 mm shaft | 1 | 5 mm diameter x 14.5 mm Pin | AliExpress: check price (unverified) BOM link; buy longer and cut |
| Steel rod 5 mm, cut to 32 mm shaft | 1 | 5 mm diameter x 32 mm Shaft | AliExpress: check price (unverified) BOM link; buy longer and cut |
| Steel rod 5 mm, cut to 102 mm shaft | 1 | 5 mm diameter x 102 mm Shaft | AliExpress: check price (unverified) BOM link; buy longer and cut |
| Steel rod 5 mm, cut to 128 mm shaft | 1 | 5 mm diameter x 128 mm Shaft | AliExpress: check price (unverified) BOM link; buy longer and cut |
| M2x4 screw fastener | 2 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M2x6 screw fastener | 3 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M2x10 screw fastener | 2 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x6 screw fastener | 4 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x8 screw fastener | 60 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x10 screw fastener | 4 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x12 screw fastener | 35 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x14 screw fastener | 2 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x16 screw fastener | 37 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x20 screw fastener | 12 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x25 screw fastener | 16 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x30 screw fastener | 8 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x40 screw fastener | 15 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M3x46 screw fastener | 8 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M4x20 screw fastener | 4 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M5x16 screw fastener | 1 | Head type not given in the BOM; socket head cap is a common choice Assembly | Fastenere: check price (unverified) choose length and pack size |
| M2 hex nut fastener | 4 | Standard hex nut Assembly | Fastenere: check price (unverified) choose size and pack |
| M3 hex nut fastener | 155 | Standard hex nut Assembly | Fastenere: check price (unverified) choose size and pack |
| M4 hex nut fastener | 4 | Standard hex nut Assembly | Fastenere: check price (unverified) choose size and pack |
| M5 hex nut fastener | 1 | Standard hex nut Assembly | Fastenere: check price (unverified) choose size and pack |
| Arduino Mega 2560 controller | 1 | Only needed with the Thor ControlPCB Runs GRBL and hosts the ControlPCB shield | Arduino: EUR 52.80 AliExpress: check price (unverified) BOM link; clone |
| Mellow Fly Super8Pro controller | 1 | 8 stepper channels, RepRapFirmware; alternative to Mega plus ControlPCB No-solder option for the electronics | AliExpress: check price (unverified) BOM link; docs say about 60 EUR |
| A4988 stepper driver driver | 8 | Step stick module One per stepper channel on the board | AliExpress: check price (unverified) BOM link; check pack size |
| Micro endstop switch sensor | 1 | Mechanical limit switch Homing for one joint | AliExpress: check price (unverified) BOM link; check variant |
| Optical endstop sensor | 4 | Slot type optical sensor board Homing with the printed optodisks | AliExpress: check price (unverified) BOM link; check variant |
| 12V fan 50x50x10 mm, 2 wire fan | 4 | 12V Cools steppers | AliExpress: check price (unverified) BOM link; pick 5010 12V |
| 12V fan 40x40x10 mm, 2 wire fan | 7 | 12V Cools steppers and electronics | AliExpress: check price (unverified) BOM link; pick 4010 12V |
| DC jack power | 1 | Panel DC power jack Power input | AliExpress: check price (unverified) BOM link; check variant |
| On/off button, 16 mm switch | 1 | 16 mm panel button Main power | AliExpress: check price (unverified) BOM link; pick 16 mm latching |
| Reset button, 16 mm switch | 1 | 16 mm panel button Board reset | AliExpress: check price (unverified) BOM link; pick 16 mm momentary |
| Thor ControlPCB (bare board) pcb | 1 | 2 layer, 99.82x68.2 mm, 1.6 mm FR-4; Arduino Mega shield Open source board for 8 steppers and 8 endstops | PCBWay: check price (unverified) shared project; minimum order applies |
| 100uF 16V SMD capacitor pcb component | 8 | C1 to C8 Driver supply decoupling | AliExpress: check price (unverified) BOM link; check variant |
| 100k ohm resistor, 1206 SMD pcb component | 8 | R9 to R16 ControlPCB | AliExpress: check price (unverified) BOM link; resistor assortment |
| 10k ohm resistor, 1206 SMD pcb component | 8 | R1 to R8 ControlPCB | AliExpress: check price (unverified) BOM link; resistor assortment |
| 620 ohm resistor, 1206 SMD pcb component | 3 | RLED1 to RLED3 LED current limit | AliExpress: check price (unverified) BOM link; resistor assortment |
| LED, 1206 SMD pcb component | 3 | DLED1 to DLED3 Status lights | AliExpress: check price (unverified) BOM link; check variant |
| 1N4004 diode, through hole pcb component | 1 | D1 Reverse polarity protection | AliExpress: check price (unverified) BOM link; check variant |
| MF-R700 resettable fuse, through hole pcb component | 1 | F1 Overcurrent protection | AliExpress: check price (unverified) BOM link; check variant |
| Male pin headers pcb component | 169 | PM, PS, PT, PA, PDIG Board connections | AliExpress: check price (unverified) BOM link; strips |
| Female pin headers pcb component | 128 | U1 to U8 driver sockets Plug-in stepper drivers | AliExpress: check price (unverified) BOM link; strips |
| PCB terminal block 1x2, through hole pcb component | 2 | POWERPIN1, SW1 Power and switch wiring | AliExpress: check price (unverified) BOM link; check variant |
| Jumpers pcb component | 24 | 2.54 mm jumper caps Microstep selection | AliExpress: check price (unverified) BOM link; check variant |
| M3 heat-set insert hardware | 6 | OD 4.2 mm, 3 mm long Threads in printed parts | AliExpress: check price (unverified) BOM link; check variant |
| Magnet 8x1 mm hardware | 12 | 8 mm diameter, 1 mm thick Hold covers in place | AliExpress: check price (unverified) BOM link; check variant |
Quantities follow the official Thor docs: http://thor.angel-lm.com/documentation/. "Unverified" prices come from search listings or older BOMs that we could not confirm on the seller's product page.
3D printed parts
Needed. 3 to 4 kg of PLA or PETG plus about 0.5 kg of ABS for the small parts that touch motors (gears, motor holders). A 200x200 mm bed works if you use the split Art2 parts in mods/; one-piece Art2 needs 200x300 mm. Docs suggest 0.3 mm layers, 3 to 4 walls, 20% infill, supports over 50 degrees. Total print time is around 200 hours. Files: https://github.com/AngelLM/Thor/tree/main/stl
Mistakes builders make
- The BOM has a DC jack but no power supply. The fans are 12V and the board has 12V aux pins, so plan a 12V supply sized for seven steppers.
- StepperOnline lists a 6 mm D-cut output shaft on the 17HS13-0404S-PG5, while the BOM pulleys are 5 mm bore. One builder could not fit them; the author suggests filing or drilling the pulley bore (issue 84).
- The 6 mm balls from the BOM link measured about 5.98 mm, leaving play in the articulation 4 bearing ring that made the motor skip. A 5.96 mm ring mod is in the mods folder (issue 99).
- The 102 mm and 128 mm rods are not sold at those lengths. Buy longer 5 mm rod and cut it (issue 105).
- Some 40 tooth GT2 pulleys have an M4 set screw hole that does not line up with the printed Art56 gear (issue 53).
- Steppers can get hot enough to soften printed gears. Print motor-contact parts in ABS and fit the fans (issue 29).
- On the ControlPCB, the servo signal pin PDIG1 must be rewired to Arduino pin 7 instead of pin 41, or the gripper servo gets no PWM (electronics docs, issue 80).
- Paint the optodisks (primer or nail polish) so light does not pass through the thin walls, leaving the slot clear.
- AliExpress short links in the BOM sometimes redirect to a different product. Check each item before paying.
- The GitHub wiki BOM is outdated; the website BOM is the current one (issue 105).
FAQ
How much does it cost to build the Thor?
About $300 to $450 in parts at current prices, The project FAQ puts components at about 350 EUR. Seven steppers come to about $116 at StepperOnline; the rest is mostly low cost AliExpress parts. Excludes a 3D printer, 3.5 to 4.5 kg of filament, a 12V power supply (not in the BOM), tools and shipping..
Do I need a 3D printer for the Thor?
Yes. 3 to 4 kg of PLA or PETG plus about 0.5 kg of ABS for the small parts that touch motors (gears, motor holders). A 200x200 mm bed works if you use the split Art2 parts in mods/; one-piece Art2 needs 200x300 mm. Docs suggest 0.3 mm layers, 3 to 4 walls, 20% infill, supports over 50 degrees. Total print time is around 200 hours.
Buying guides for this build
- Best 6 axis robot arm kit to build yourself
- Best stepper motor driver for a robot arm
- Cheapest robot arm to build
Similar builds
AR4 (MK5)
Desktop six axis arm with machined aluminum links, geared closed loop steppers and a Teensy controller, built from kits or self-sourced parts.
BCN3D Moveo
Fully 3D printed 5-axis teaching arm with belt-driven joints, NEMA steppers and an Arduino Mega running modified Marlin.
Koch v1.1
Dynamixel-based leader and follower arm pair, the first LeRobot reference arm; pricier than SO-101 but uses ROBOTIS servos.
Moss v1
Metal-bracket STS3215 leader and follower arms for LeRobot; still supported but deprecated in favor of SO-100/SO-101.
OpenMANIPULATOR-X (RM-X52-TNM)
Five-servo DYNAMIXEL desktop arm with a parallel gripper and full ROS 2 support, often paired with TurtleBot3 for teaching.
PAROL6
3D printed six axis desktop arm with industrial style belts, planetary gearboxes and open Python control software.
Last checked 2026-10-25. Sources: thor.angel-lm.com · thor.angel-lm.com · thor.angel-lm.com · thor.angel-lm.com · github.com · github.com · github.com · github.com · github.com · github.com · github.com · www.omc-stepperonline.com · www.omc-stepperonline.com · www.omc-stepperonline.com · store.arduino.cc