Building and improving the Thor+ robot arm

Building a 6-axis robot arm based on the AngelLM's Thor robot and the add-on's and improvements of dannyvandenheuvel.

Similar projects worth following
This is the buildlog of the Thor+ robot I'm building right now.
The original author is AngelLM who created the Thor robot.
DannyvandenHeuvel created the Thor+ robot which is an improved version with many add-ons.

I was looking for a 6DOF robot arm to print. 

The first project I found was the Mantis Robot Arm. This is a nice robot arm but the project seams to be abandoned.

Then somebody pointed me to the Thor OpenSource 3D printable Robotic Arm from Angel LM. I loved this design but I was missing the feedback sensors.

And then I found the 'Thor' robot with addons and GUI from Dannyvandenheuvel. This is the Thor robot arm with a lot of addons and improvements. Danny added the feedback sensors in V2.02. 

In this project I will share my building of experience of Danny's version of the Thor robot. 

Day18 (v2).zip

For more info look at the Day 18 log

Zip Archive - 17.57 MB - 11/05/2017 at 15:24


Power Supply Enclosure v1.step

For more info look at the Day 17 log

step - 7.50 MB - 11/05/2017 at 11:57


Zip Archive - 2.33 MB - 09/17/2017 at 15:10



For more info look at the Day 15 log

Standard Tesselated Geometry - 1.22 MB - 09/10/2017 at 17:35



For more info look at the Day 15 log

Standard Tesselated Geometry - 1.24 MB - 09/10/2017 at 17:35


View all 10 files

  • Day 20: Latest Version

    Sepio5 days ago 0 comments

    I am happy with the current setup. I added support for the LPD3806-600BM rotary encoder. Its replaces the potmeter in the Base and in Art3LowerBody. (A rotary encoder makes it possible to continue rotating).

    The wiring.

    Fully assembled

    The PCB in the new compartment:

    The rotary encoder I used (from ebay). It works with 5V and gives a 3.3V output which can be used on both the 3.3v due and the 5v arduino.

    This version of the model is downloadable here:

    (It takes a while for the browser to render. Or press the download button on the right top to download the model).

    If you open this file in Fusion 360 (free for home use) then you are able to open the tree. Under "Printed Parts" you find all parts. Right click and choose "Save to stl" to make it printable.

    Now I'am going to start to connect al wires and start developing the software.

  • Day 19: Taller Art4LowerBody + New Art4PCBBody

    Sepio11/11/2017 at 13:23 1 comment

    Just a small preview. The printer is printing the new components right now.
    I made the Art4LowerBody 15mm taller. Now I should be possible to use the 232-2GT belts instead of the 208-2GT belts. This way a Gap of about 14 mm is created between the Art56MotorCoverRing and the stepper motors.

    I also created a 25 mm PCB compartment below the Art4LowerBody. This compartments is optional. I want to add a PCB to connect the electronics in the Upper part to the slipring in the Art4Transmission column.

    The upper part with room for the PCB. The lower yellow ring and the black ring above are optional. The upper yellow part can also be mounted on the base without it.

    And the lower part. This stays unchanged.

  • Day 18: Redesign of Art3 and Art4

    Sepio11/05/2017 at 13:09 6 comments

    I did a redesign of the Art 3 upper and lower body and the Art4 Axle. In Art 3 I added a fan and 2 bearings. I also changed the orientation of the mounting screws between the upper and lower body so It can be separated without removing the covers of Art 2.

    I changed the Art4 transmission Axle. The gearhead is a separate piece. The shaft itself is wide enough for another 24 wire slipring.

    The Art 3 lower body. I moved the mounting points for the upper body to the upper body. Now it can be printed like below. I also moved the screw holes to the front and the back. It is now possible to leave this part connected to the lower base and add the upper body separately. There is also room for a 40x40 fan.

    The fan intake. The fan is mounted on the inside.

    The fan from the inside.

    Below all the new/changed parts of the Art 3 upper body and the Art 4 shaft.

    The left orange parts can be glued and screwed together. This makes printing easier.

    I used two bearings on the Art4 Axle.

    The upper bearing. (The extra holes around the bearing are just holes to save some plastic). The two holes on the side are for ventilation.

    The lower bearing and the ventilation holes.

    There is some room for the air to escape.

    The bearing fix. The inner ring has to go on the inside and can be used to push the bearing on its place.

    This way the bearing is fixed at its place,

    The extra holes are for setting the belt tension of the ART5 and 6 motors.

    There is a small bump on the axle which can be aligned with the hole on the gear. This way the screw thread will work. (In a later stadium i used a knife to remove the bump. By rotating the gear 60 degrees it is possible to increase or decrease the length of the axle and the force on both bearings. 

    The gear-head can be screwed with 6 self taping screws on the shaft. A printed hollow screw adds some strength and can be used to hold everything at its place during the build. 

    The outside ring of the slipring has to be removed.

    The outside is about 20mm. The hole inside the Axle is 22mm. Is used some foam tape and some electric tape to make the slipring a little bit thicker.

    Now it can be pressed inside the base. 

    I also changed a few parts of Art 5 and 6. I added some holes for the nuts on the ring which fixes the Art 6 Axle. This way it can be tightened better. 

    The art 4 has changed slightly. There is a little bit extra room for the motors in the upper position. This makes adding the belts easier.

    I used two rotation sensors on the Art56MotorCoverRing

    Everything mounted. Look at the two new black spacers on the outside of the axle.

    The STL's and design files

    Below the latest step files and stl's of al the new and changed parts.

    Day18 (v2).zip

    The bearings I used are 6806 2RS (30x42x7mm) and 6810 2RS (50x65x7). I ordered them for 21,50 euro including shipment from

    Next: Another redesign to fix a problem. 

    With the new setup I have created a small problem. There just isn't enough room for all the wires. I am going to change...

    Read more »

  • Day 17: Power supply enclosure

    Sepio11/05/2017 at 11:55 2 comments

    The last few weekends I made an enclosure for the power supply. It's a little bit over designed but it was nice to design something from scratch.

    The enclosure has an emergency button to cut the power of the 5 and 25V line and 2 separate volt and amp meters with a cut of switch for the 5V en the 24V line.

    There are some ventilation holes on the back side. 

    The 24V fan is always on.

    I use a small 24V to 5V DC to DC step down convertor.

    The wiring of the display, the meters and the buttons.

    All the components I used.

    And the design files of the enclosure.

    Power Supply Enclosure v1.step

  • Day 16: Redesign of Body 4, Covers 5 and some small changes to the gripper.

    Sepio09/17/2017 at 14:33 2 comments

    The last few days I changed some parts. I added some 40x40x11mm cooling fans to the ART4BottomBody . There isn't much room but it fits. I have test printed it and everything fits but i made some of the walls too thin (on the left and right side of the vent holes). 
    I also tested if I could fit the GT2 208 mm belts but the motors can go high enough. So i ordered GT2 232 mm belts. If they are too long then I have to change the mounts between the upper and lower body. In the image below on the top the motor mount (and motor) are touching the mount with the screw hole.

    On the left of the left fan hole (and on the right of the right hole) the wall is too thin. The downloadable version (below) is 1mm thicker.

    Because of the fan holes the ART5 covers didn't fit anymore. So I recreated them. Below the Base part.

    And the upper part. I also made them in two parts. This way it is possible to use two colors and it can be printed with less print support.

    This is the way Danny designed it. (But his downloadable STL is different). I added the screw holes for the covers. 

    I changed the gripper mounting plate to a trapezium so both parts will stay together and the existing screw holes will keep them together. The GripServoMount has some extra room for the servo (on the bottom). The GripMountB is a little bit thicker. I also added the GripGear.stl (which was missing in Danny's version). The ART56 interface place also contains a hole for future usage.

    Below the gripper. On the right side of the servo there is some extra room.

    To mount the gripper from right to left:

    - GripServoMount

    - Washer

    - Plastic ring with bearing

    - Large gripper with bearing

    - Washer

    - Small gripper with bearing

    - Plastic ring with bearing

    - Washer

    - GripMountB

    I might redesign Axle 6 again. Olaf made a comment on how to wire the gripper. I would like to do that by making this Axle hollow and use large bearings on the outside of the shaft. 

    So I already added a hole to the Art56Interface (on the right side).

    Danny asked about my printer. Below my print setup. I have a Ultimaker 2 Extended + with top cover and door. I use some Alkotip wipes to clean the glass plate before printing. After cleaning I use a (very) little bit of 3DLAC.

    The Art4UpperBody is currently printing. The Art5Top Covers are almost finished. 

    Below the changed parts:

    - Day The Body4 and Cover5 parts are untested. Next week I can tell if everything fits.

    - Step file of version 3.05

  • Day 15: Redesign of Art56MotorCoverRing

    Sepio09/10/2017 at 10:54 11 comments

    I didn't like the way the ART56 gears are mounted. So I decided to redesign it. Below the renderings of this new design

    Below on the bottom the old version. There is just a few mm to mount the screw which forms Axle 6. In the new version a real axle is used and it is guided by two bearings. There is also room for one or 2 rotation sensors on Axle 6.

    Also the bearings of Axle 5 are removed. I splitted this axle into 2 parts. The axles can be "screwed" into placed by placing them into a electrical screwdriver. They are fixed inside the new part so the rotation sensor will work.

    First put a bearing on the top side. (You can reuse the old bearings).

    Then put the other bearing on the bottom side.

    Use a flat tool to push the bearing in it's hole.

    The axle will be mounted like this. From right to left. 

    - The big gear

    - 2 M5 spacers

    - A bearing on the top side

    - A bearing on the bottom side

    - Another M5 spacer.

    - The Axle6Fixer that prevents the axle from moving up or down.

    - (If there is room another 5MM spacer. I didn't use one)

    - One or two rotation sensors.

    The makerblock rotation sensor doesn't support a full 360 degrees rotation. If you mount 2 of them on the same Axle then it will be possible to measure all directions.

    Use a electrical screw driver to screw the Art56GearPlateAxleHolder_01 on the axle. It will be a tight fit.

    The axle with the holder can now be fitted into the big gear. 

    My version was 15mm and the hole is 16mm so I used some tape to make the axle a little bit wider. The downloadable version is 15.5 mm. (it has to be removable)

    To make the rotation sensor work the Axle has to be fixed inside the gear. This way it is still removable and by using the 3 screws for the Art56Interface it is possible to keep everything in the right place.

    Add 2 M5 spacers.

    And mount everything together.

    Make sure the gears align perfectly. It is possible to remove or add a M5 spacers (two steps up) to change the gap between the gears.

    This is how it will look with the gripper mounted.

    There is enough room for the belts. I will have to find a way to wire the rotation sensors.

    I might drill a hole on the bottom of the ring for the wires. This way the electrical wire will stay out of the belts way.

    I am going to change the small gears also. There is about 29 mm room on both sides of the axle. 2 bearings and the pulley are 27mm.  

    The hole inside the gear is too big. I am going to make the hole smaller for the pulley. And on the other side I will add some plastic to add a bearing. (The gear has to be able to rotate freely on it's axle.

    On the axle it will be mounted like this:

    - 1 or 2 M5 spacers

    - The pulley

    - The small gear

    - Bearing

    - A few M5 spacers


    Below the new gears. This is the first version and there are two small problems. The bearing can't go deep enough and the screw hole to fix the pulley and the gear is 0.5mm off. The second version is printing right now. The second version can be downloaded below.

    I added a bearing. The axle hole in the plastic gear is a little bit bigger. And I made 2 version. One for a 20x6mm pulley shaft and another for a 16x7mm pulley shaft.

    One M5 spacer is needed.

    The final result.

    Below the rendering of the new structure.

    The changed and new parts can be downloaded here:

    - Art56SmallGear_For16x7PulleyShaft_01.stl
    - Art56SmallGear_For20x6PulleyShaft_01.stl      

  • Day 14: Art 5 and 6 test fit.

    Sepio09/03/2017 at 10:44 1 comment

    Below a few photo's of the construction of Art 5 and 6. There is one big axle. The small orange gears and Pulleys are (going to be) connected with a screw. They will freely rotate on the Axle and are driven by two motors.

    The middle part with the ring contains a nut on which the Art 6 Axle with the big orange gear is mounted.

    If both the left and right small orange gear are rotating in the same direction then Art 6 is going up or down. If  the small gear are rotating in the opposite direction then Art 6 is rotating.

    But I don't really understand how it has to be mounted. The hole in small orange gear is much bigger then the GT2 pulley. There is also to much room on the Axle. The small gears are supposed to rotate freely on the axle but the aren't any spacers to prevent them to go up or down the axle.

    There is a nut in de orange part with the axle. A screw is used to hold the big gear of Axle 6 on top of the small gears. But there are no bearings inside Axis6. And if it rotates the screw becomes looser.

    If all parts can rotate and stay into the right place then it will work. So I might redesign this.

    Below a few photo's of the idea I have. I have added a piece of black tape on the Axle 6. I want to cut it on the left side of the tape. Then I have 2 parts. One part with the big gear and one part with the shaft.

    This way I can redesign the "big ring" part and add two bearings (the bearings shown are to big). The shaft is thick enough to use 3 3mm screws to fix both parts together. This way it can still be mounted together and the shaft is fixed between two bearings. (I might even be able to keep the shaft hollow to guide some wires)

    I am also going to redesign the two small gears so the pulley will fit tightly. Small ball bearings will be added to the small gears.

  • Day 13: Building Art 3

    Sepio09/03/2017 at 10:18 1 comment

    Last week I printed al the Art3 Parts. 

    First I had to cut the GT2 belt to length. I used the Art2 body parts as a mounting template.

    After a few tries the pulley was having the right length.

    Now it was time to mount it al together. There is just enough slack to mount the belt. The cover contains the bearing and this will tighten the belt.

    Below the inside of the lower part of Art 3. I already mounted the motor. A potentiometer or optical rotation sensor will be added later.

    This is the top part of Art 3. It contains a custom bearing.

    Below all the parts for this custom bearing. The green ball are 6mm airsoft balls. The small black part is the plug.

    Just hold the inside and the outside of the bearing in place and fill the hole with balls.

    By rotating the inner part the balls are traveling to the bottom and the hole is free to insert the next ball.

    I used some tape to hold the plug in place. The plug will fit in the hole of the outer part on the left side.

    There is a small gap between the orange Art4 part and the Black Art 3 part.

    Below the Art 3 upper and lower part are mounted together.

    In the future I might change the custom ball bearing because it has to much slack. I want 2 bearings to keep this axis as steady as possible. I already ordered a few different sized 6xxx series ball bearings.

  • Day 12: Axle Holder

    Sepio09/03/2017 at 09:46 5 comments

    In my previous blog I told about the weak construction of the Axle between Art1body and Art2BodyB. I also had to find a way to fix the Axle in Art1 because of the rotation sensors in Art2BodyB.

    So I decided to design a custom part. The green AxleHolder part in the photo below is the solution for both problems. It replaces the bearing and the bearing ring holder. The same Axle holder can be used for the axle on the right side. (Note: There isn't room for the Art23OptoDisk anymore. Danny's design doesn't need one).

    The new parts and the place it will fit on. 

    The hole for the Axle is very tight. I did put the Axle in a electrical screwdriver and used it to "screw" it into it's place. Because of the friction the plastic melts a little bit and that keeps the Axle in it's place.

    The other side.

    Both axle holders are mounted. You need 20mm screws.

    After putting everything back together it feels much sturdier. No wobbling axis anymore.

    The AxleHolder part is available for download: AxleHolder.stl

  • Day 11: Mounting Art 2.

    Sepio08/27/2017 at 16:08 1 comment

    Below all the parts of art 2.

    First I had to create the belt tensioner wheel mount. At first I had no clue how to fit those wheels. There is no room for a nut. So I decided to use m3 threaded inserts. I made the hole a little bit bigger. I fitted the insert on a long screw so I could heat up the insert. Then I inserted it into the hole. The plastic melted a little bit and after aligning everything I used some cold water to cool the plastic down. 

    The mounts with the threaded inserts.

    Now it was time to add the belt tension wheels. I also used two halfs of a compression spring (from a pen) to push both belt tensioners to the inside.

    Now it was time to fit all the parts together. I don't like the orange parts for the sensors which have  to be glued on the axles. I am going to make the axle a little bit longer and use that for turning the potentiometers.

    The inside.

    Now it was time to create the axles. I made one side of the 5mm axle a little bit smaller. Just put the axle in a electric screw driver. Use the dremel (or file) to grind the axle to 4mm. Then I used the dremel to flatten one side.

    I fitted the orange parts on art 1 and inserted the axle. The side with the flat area is on the inside. 

    I used some tape on the Axle to mark the length.

    Then I cut the Axle with the Dremel. Use the screwdriver to turn the Axle and keep the running Dremel steady.

    Now insert the Axle the correct way.

    The potentiometer of the sensor fits.

    All three Axles finished. I think I will created an extra plastic part with an extra bearing to mount between art 1 and art 2. This axis uses two small axles because the motors are inside the art 1 housing. On the gear side it is very sturdy. But on the other side it is hanging trough. If I mount a new plastic ring with another bearing to the black or orange part then it will become more firm. But before I will design this I want to be sure that I'am not missing any parts. Without the extra part I'am sure the potentiometer sensor will break.

View all 21 project logs

Enjoy this project?



donskit30 wrote 09/18/2017 at 04:29 point

Were  there any exceptions to the 3D material use for your print on certain parts. AngeL said he used PLA for all parts?

  Are you sure? yes | no

Sepio wrote 11/11/2017 at 09:07 point

Sorry for the late reaction.

Most of the parts I printed are printed with PLA. Some are printed with PETG. I added fans to all the parts with motors because they will get hot. Now it should be no problem to use PLA. 

  Are you sure? yes | no

dannyvandenheuvel wrote 09/03/2017 at 13:25 point

Your doing fantastic work! It's a pleasure to watch your progress, I even want to change my weak parts by your ideas. thanks!

  Are you sure? yes | no

dannyvandenheuvel wrote 08/15/2017 at 16:47 point

Shielding cables:

Generally shielded wires are only grounded on one end. Splicing shouldn't be a problem.That depends. General rule is:If you want to keep EMI inside the cable, ground both ends. If you want to keep the EMI outside the cable, ground one end.So if a signal is small in magnitude (think audio signal like microphone circuit) ground one end to keep interference from outside corrupting the signal inside the cable (including interference created by a ground loop if you were to ground both ends).If you are connecting something like a strobe signal (large AC signal) go ahead a ground both ends as goal is to make sure what is inside doesn't radiate to the outside (groundloop induced corruption of the large strobe signal is a non-issue).In the case of an RS-232 signal you have a fairly large signal [5V or more Peak to peak) running at almost 10KHZ baseband frequency (or more)]. Radiated harmonics could cause all sort of issues. Hence, ground both ends. 
I grounded one side on the ultra board. No problems detected after it.

  Are you sure? yes | no

Olaf Baeyens wrote 08/15/2017 at 19:58 point

I learned something new!

  Are you sure? yes | no

Olaf Baeyens wrote 08/14/2017 at 11:44 point

Nice work!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates