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)