Opentorque project - new design

Hello all,

I wanted to share the new design of the opentorque project with you. The original version was created by Gabrael Levine, more info here.
Skyentific had allready made some small improvements, so I started this redesign with his model.

The original design uses a very expensive and hard to find cross roller bearing. This is the main reason for the new version, which now only uses cheap bearings. But eventually I have changed allmost every part in this design, and added improvements where I could.

Here is a picture of the final design:

In what follows I will quickly run through the assembly process.

BOM (what you will need)

  • ball bearing 70mm ID, 90mm OD, 10mm thickness (2x), for example see here
  • ball bearing 15mm ID x 28mm OD x 7mm thickness (6x) for example see here
  • M3 x 20mm, socket head (19x)
  • M3 nut (32x)
  • M3 flat head x 20mm (14x)
  • M3 flat head x 10mm (10x)
  • M2.5 x 10mm, socket head (4x)
  • M2.5 nut (4x)
  • M4 flat head x 10mm (4x)
  • M4 socket head x 20mm (4x)
  • M4 nut (10x)
  • AMS AS5048A-TS_EK_AB encoder
  • Herlea X8318S KV100 (Multistar 9235) brushless motor (or similar, see thread here )
  • cable for encoder

Building instructions:

  • find the 3D print parts here and print them out. For orientation see picture above. Make sure the planet gears have the chamfer oriented to the bottom of the bed.

  • if needed you can find the step files here

perhaps this section view will also help during the build:

First print the parts. See the picture above for the orientation on the bed. I printed everything in PET-G, with 3 perimeters, 15% gyroid infill, 4 solid bottom layers and 5 solid top layers.

You can allready mount all the M3 nuts in the little slots and hexagonal indentations. There are quite a lot of them. The large planet carrier has M4 nuts instead of M3.

next, place the small bearings in the planet gears:

mount the sun gear on the motor using the m3 screws with flat head, length 10.

First test to see if the planet carrier fits nicely in the large bearing. I use some tape to take away any play…

place the small spur gears in the housing with the ring gear. Try to get them in the right position. Now try and align the carrier with the 3 gears and push it in. It takes a bit of fiddling around.

Once ok, place the large bearing on the other carrier part. Again take away any play if needed.

Now install it onto the other carrier part, using 6 flat head screws M3x10 (or a bit longer)

install the big housing part on the other housing part, using 8x socket M3x20

install the back plate on the motor using the flat head M4 screws length 10 or longer

place the magnet into the magnet holder, and push it on the nut of the motor

install the encoder on the encoder holder, using the M2.5 screws and nuts (note: i still need to attach a cable to it :slight_smile: , and the screws I have used are way too long…)

install the motor, carefully push the sun gear into the planet gears. secure back plate on the housing using m3x20 (8x)

place encoder holder on back plate with socket m3 x 20

install on base plate



Nice work! Wish I had seen this before printing an opentorque actuator of my own. If you don’t mind me asking, what motor parameters are you using? Last time I tried to get things to work I ended up damaging my odrive board (I believe). Odrive was kind enough to send a replacement but I haven’t powered things up yet, partially out of fear that I’ll fry things again trying to get the correct parameters.

1 Like


Well I still need to wire up everything… I forgot that I need some bullet or banana connectors for the motor and I just discovered that the encoder uses an SPI interface which I still need to experiment with… Hopefully I get it all running somewhere this week.

But, I was just planning to do the usual, setting the correct pole pairs, encoder CPR count etc… And probably limit the current to control the torque in position mode… And I will see from there on… :man_shrugging:

Do you know how you ended up damaging your board? Or do you have a theory of what could have done that?

This thread basically covers it so far: Calibration procedure not completing

To be honest I don’t know what I did wrong, I don’t think I set anything way off but it is possible. I believe I put in the wrong number of pole pairs on one of my initial test runs, so it is possible that caused a failure? I am not sure how catastrophic it is if the wrong number of pole pairs are selected. I also ordered a smaller motor to play around with lower currents, but I haven’t really dived in yet.

Doh, I am in the midst of printing the original open torque actuator and yeah $70 for a used cross roller bearing was the best I could find. The Alibaba link in the BOM seems to be dead, and really I have never had success ordering from an alibaba supplier anyways. They claim they will do single quantities but then my orders always get “canceled”. There doesn’t appear to be any suppliers on aliexpress for the RA8008 either. They have the smaller RA7008 though, but those are more than the motor.

I thought the cross roller bearing was used because of the axial forces that the sharp helical gears cause. Was that a consideration in your design?

I think the cross roller bearing is just a way to take on lot’s of axial and radial forces in a very small and lightweight form factor. This is good if you want to use it in a robot arm, but for me it has no big advantage since I will mount it on a table.

This design is a bit heavier and longer but can also take on high forces. I actually think that if you would put a heavy torque on this motor, you would probably end up destroying the 3D printed parts before actually damaging the bearings…

I didn’t perform any calculations, but I’m sure the forces of the helical gears are small compared to what such a bearing can take. See for example the load ratings in this table from SKF

12.4 kN dynamic rating, this gives you an idea about the order of magnitude of the forces this bearing can take.

1 Like

Very nice design & write-up! :smiley: I have nearly finished printing one of my own.

I did the output planet-carrier part in polycarbonate (black) but the bottom face has warped slightly. Probably still usable.
Also, I did the polanet gears in TPU. They are tough but slightly rubbery/compliant, but also a bit of a tight fit. No backlash whatsoever and very quiet, but might have to scale them down slightly for the friction. I removed the seals from the inside-facing sides of the bearings to try to reduce friction there.

In total I’d guess it’s about 0.2Nm of friction back-driving the gearbox - not measured properly yet, but I can back-drive it if I press the palm of my hand against the output side. Will be interesting to see if it’s still back-drivable with a motor attached.

A couple of things I have noticed so far:
The back-side of the planet carrier doesn’t seem to mate with the front-side, but that may be because my front side is warped slightly.
The sun gear spline could be longer. If it is flush with the gears on the output side and the gears are pushed all the way towards the motor, then there is hardly any clearance above the back-side of the planet carrier. That might work for your motor which has a raised section there, but mine is flat on top so it might foul against the planet carrier.

1 Like

Hi Towen, thanks for sharing!

As for the feedback, normally the pieces should mate nicely, so I think indeed it’s because your part was warped. I think I understand your second point, let me know if it does not work well, I can revise the deign if needed.

I did not progress a lot on this project myself, but I plan to pick it up again soon. But I did attach a big rod to the motor (fun fact: its actually a part of a toilet roll holder, and it is not nearly as strong as it looks)


Hello !
First of all I really like your new design from the Open Torque project !
I had the same problem as you with the OpenTorque project: the price / rarity of a cross roller bearing.

I was looking for an Actuator to do my new project of doing a quadruped. I need something low cost! ^^
(I will use 3 Actuators per leg)

To start with, I only focus on creating a single leg.
I created a github repo : GitHub - SylvJalb/Quadruped-Robot-Leg

I have finished designating the leg (it is normally fully 3D printable, but I haven’t print yet…).

I ordered everything you recommend in your first post to make 3 OpenTorque. I’ll receive everything on February …

As you said, the cross roller bearings were there to support lot of axial and radial forces. I’ll test if it’s possible to use your design version for a “robot arm”.
If that does not work, I would reinforce with a second point of support (as I did on my shoulder design).

I’ll keep you informed if it works or not :wink:
Thanks for your work!

(sorry for my bad english ^^ I hope it’s readable anyway)


Hi acisre,

thanks for sharing your design! I have just finished printing one :slight_smile:

Since I use a smaller motor and a MJBots Moteus for motor control, I have redesigned some things.
I adapted the sun gear to the other motor and the planet carrier.
Because the motor does not build up so far, I had to adapt the housing as well. The actuator is now about 10 mm less high.
The backplate, where normally the encoder is mounted, I adapted to the Moteus board.

I printed everything in PETG. All gear parts, however, with carbon reinforced.
I had problems because the gears are a bit tight. This is mainly due to the ring gear and the filament used. With a different filament, the gear was much smoother. With a little post-processing, however, it worked.

The gear can be easily moved by hand and I can not detect any backslash. However, moment peaks can be felt during the movement. It could just run smoother. Does anyone have a tip for me to minimize this?


Hi there, I was wondering if the motor you adapted it for is the MJ5208 from MjBots. I have the same motor and I would like to 3d print this transmission, so it would be great if you could share your design!

Yes that right. I adapted the design to fit the MJBots MJ5208 motor.
You can download the adapted design via this link: Fusion360

1 Like

Hi @acisre, your actuator is working really well I must say. I have tested it so far up to 18 Nm which is pretty impressive.

However, I have two pieces of feedback:
One, the M4 nuts inside the planet carrier can sometimes seize on the end of the screw, and then start to spin in place, meaning that the screw will not go in and it is almost impossible to remove the screw. I found a (horrible) way to remove it using a drill, spinning it and applying tesnion so that it melts its way out, at least it’s not destructive to the rest of the part… I printed in PETG, so maybe the seizure is caused by stringing. Do you have a way to avoid this?

Two, would it be easy for you to make a version for 8308 motors?
These motors are very similar, except 10mm shorter in height. I printed an adapter piece to use the 8308 in the big actuator, like bernhard did for the little mjbots motor, but it would be great if the actuator itself could be made shorter. This is a lower torque motor so you could reduce the length of the planet gears by half or more (and only use one bearing in each) which should also reduce friction by about half.
Then obviously you could reduce the motor housing by 10mm, so overall the actuator should be about 20-25mm shorter, but the same diameter.

1 Like

Hi Towen,

I am going to look into this. Not sure if I completely understand the first issue, and also not sure how I could solve it… Could you include a picture that shows the issue? I probably need to design a different way to insert the nuts, or perhaps make them a bit bigger (M5 or so…)

I will take a look at the 8308 motors and your remarks about making the planet gears shorter. That should not be a lot of work… It will only cost you my right to ask you a stupid question about motors in the future :smile:

The fact that it can reach 18Nm is still to the credit of the original designer of the actuator I should add, I just updated it with some new bearings. Glad it is working well!


This is after I have removed the stuck screw with the drill.
So you can see that the screw went fully into the nut (so it is not cross-threaded) but for some reason the screw and nut seized together, and the nut then rounded out its slot.
One thing you might try would be to put a full hexagonal pocket , like this:

Alternatively, I wonder if a tapped hole might actually work better than a captive nut here, since there’s plenty of depth for the thread to grip into.

Nice, thank you! :grin:
BTW, someone has made an incredibly detailed model of the 8308 motor that might be of use to you.
My motors are identical except for the hex nut at the back.

ok it’s done!

see here for step Free CAD Designs, Files & 3D Models | The GrabCAD Community Library
see here for stl opentorque redesign for 8308 motor by RevisonNr3 - Thingiverse

the model of that 8308 had some problems, you will see when you open the step but I think everything should work (even though I did this one really fast)

to be tested…

I did this, and also added another pocket for a nut on top, so you can choose.

actually it does not matter if you have plenty of thread, only the first 7 threads actually matter…

Perhaps this is a bit different in PETG, but besides the theory I am also a bit lazy and prefer to just use nuts to avoid all the work of threading the holes :wink:


here is a picture of a section view

1 Like

Amazing thanks. Already on the printer… :grin:
BTW, do you have an updated (with new hex pockets) planet carrier for the original 8318 motor?

Yes, I updated the planet carrier as well in the old design, just download the model again from thingiverse or grabcad :slight_smile:

1 Like

So, the updated side pockets seem to work really well - no fouled screws yet.
However, I’m not so sure about the hex pocket on top.
For one: Even with a 0.2mm nozzle there is a tiny gap:
And for two, there is only about 2mm of tolerance in the screw length: too short and it won’t go into the nut, too long and it will foul against the gears
And for three the nuts fall out, making it really hard to assemble that way. :joy:

1 Like

ok, let’s remove the pockets on the top again :slight_smile: I also prefer side pockets because you can not push the nuts out of them… With the top pockets you would need to use hotglue or something else to keep them secured.

By the way,I also found an interference with the stand, so I updated this model (stand.stl) as well…

1 Like