Mammoth ARM

Another open source robot arm you can 3d printed and do serious things for you

Similar projects worth following
I know there are a couple of open source robot arms, they are all great project, but why reinvent the wheels? Because I want that be different, and learn things from it( maybe you can too).So I designed Mammoth ARM from scratch.

I will update the project soon, stay tuned.

Let's talk about reduction gear

Reduction gear is the main part of an industrial robot arm. As a hobby project, nobody wants the parts too expensive , 3d printed reduction gearbox is definitely a good way to do that. Other robot arm projects are using timing belts and pulleys that is hard to achieve high reduction ratios in small space. Normal used gearbox is also hard to get high ratio and hard to assembly. So I decided to use something else.

Planetary gear

Planetary gear( is a good way to get high ratio reduction in small space. I've tried to design one of these. But if I want to get higher ratio, say more than 20:1, that's hard using one stage system in small space. And to reduce friction, we must add lots of small bearings. That's not what I want.

Animation of a planetary gear.

Harmonic Drive

Harmonic Drive( is another kind of reduction gear system, this is a good solution for robotics, because harmonic drive can achieve high ratio in small space. Lots of industrial robot arm are using harmonic drive as those reduction gear. So I decided to use harmonic drive in my design.

In harmonic drive system, the most difficult part is the flex spline part. Because the flex spline gear need to be flexible, so that's really hard to manufacture. Leading harmonic drive is very expensive. That's not suitable for hobby projects. Another drawback is harmonic drive in the market is very large in footprint, not really good for small system like our robot arm.

So we can't buy one, how about we design one and print it. That's what I've thinking. The result turned out working great. In the next section , I will talk about how I designed and printed the harmonic drive.

Design and Print Harmonic Drive

That's not very hard to design a harmonic drive. Just like normal gear design using any CAD tools( like solidworks, autodesk fusion 360, sketchup, etc).

First, pick up the gear's teeth numbers. I want build a 1:50 ratio (for ARM1), so I set the outer(circular spline) teeth to 102, so the flex spline should be 100 teeth. The ratio is (102-100)/100 = 1:50.

The module I selected 0.8 for easy to print and not very large in diameter.

I printed out, but turned out it's not very usable, because that's not very smooth. You can see the picture, the flex spline and circular spline are too tight. The motor is hardly to move.

So, I reduced the flex spline's teeth numbers to 98, the ration became to (102-98)/98 = 1:24.5. You can see the picture, added lots space to move. So that's pretty smooth.

Here is all the printed parts

Base parts:

ARM1 parts:

ARM2 parts:

ARM3 parts:

ARM4 parts:

ARM56 parts:

All the print files for BASE, small update

Zip Archive - 969.75 kB - 12/10/2016 at 18:42


All the print files for ARM2, small changes update

Zip Archive - 4.87 MB - 12/10/2016 at 15:14


All the print files for ARM56

Zip Archive - 110.26 kB - 12/09/2016 at 12:29


All the print files for ARM4

Zip Archive - 275.80 kB - 12/09/2016 at 12:29


All the print files for ARM3

Zip Archive - 471.54 kB - 12/09/2016 at 12:29


View all 6 files

  • 1 × ARM2_bearing_holder For ARM2, print parts
  • 1 × ARM2_slew_bearing_outer For ARM2, print parts
  • 1 × ARM2_slew_gear_inner For ARM2, print parts. Flex PLA is recommended,but PLA is workable too
  • 1 × ARM2_slew_gear_out For ARM2, print parts
  • 1 × ARM2_wave_generator For ARM2, print parts

View all 14 components

  • ARM1 assembly

    Andy12/14/2016 at 20:15 0 comments

    What you need:

    bearing 608zz2
    M3X306 ~ 12
    M3X78(or 80)6~12
    M3 nuts several
    ∅5mm steel ballseveral
    all the printed parts(including one ARM2 part)

    put two 608zz on the ARM1_wave_generator

    add 12 nuts to the ARM1_slew_inner_b

    and 3 nuts on back of inner_b

    Put two parts together

    A M3X6 bolts will do the job

    put ARM1_bearing_holder on top of the bearing.

    And install 2 M3X20 to fasten the bearing holder.

    Like the BASE parts, slew bearing( there are two slew bearing in ARM1) need ∅5mm steel balls

    add steel balls to the slew bearing, small gap is needed. (PS. don't forget apply some grease/lubricant.)

    Put ARM1_slew_inner_a_with_gear_1mX60 in place, and 6 ~ 12 M3X14 bolts to fasten the parts.put ARM1_input_gear_1mX15 to the NEMA 17 motor( high torque one is needed).4 M3X14 to fix the motor.Another slew bearing, as before.6 M3X14 to fasten the ARM1_slew_bearing_inner_part1 and ARM1_slew_bearing_inner_part2, 6 M3X20 fasten ARM1_slew_bearing_inner_part1 , ARM1_slew_bearing_inner_part1 and ARM1_flex_08mX98_v2.

    We also need ARM2_connector_to_arm1( belongs to ARM2 parts) for easy assembly ( because we must fasten this to add other parts). Put those together. Don't forget nuts on ARM1_slew_bearing_outer ( If you don't have M3X80 bolts, you can apply M3X40 before you fix ARM2_connector_to_arm1) .Put all the parts together, done.

  • BASE Assembly

    Andy12/10/2016 at 20:40 0 comments

    Printed parts:

    other parts:

    M3X306(at least)
    NEMA stepper1
    M3 nutsa few

    Insert a nut to BASE_motor_input_gear:

    put the motor gear to the stepper.
    The hole is too tight, so I'm using a vise to push the gear to the motor.M3X3mm set screw to secure the gear. 4 M3X8 screws to mount the stepper.apply 5mm ball to the slew bearing parts.Don't put too many balls here. Little gap will be fine.A little grease (lubricant) will be great.Put those parts together.put 2 of M3X30 screws in there but don't go too much, we need another part.Put 12 nuts in the outer nut-holes. Put those parts together.fasten the screws, done.

  • All the STL files uploaded

    Andy12/09/2016 at 12:31 0 comments

    All the STL files uploaded. Happy printing.

  • Print parts BOM for BASE

    Andy11/27/2016 at 11:52 0 comments

    All the BASE parts don't need supports. BASE_slew_bearing_outer_with_gear2 Layer height should <= 0.15mm

    base print time lapse :

  • First Upload(ARM2 print parts)

    Andy11/26/2016 at 18:30 0 comments

    Just uploaded the print parts for ARM2. You can start print, those parts will need days to complete.

    If you have any questions, leave me a comment.

View all 5 project logs

  • 1
    Step 1

    First thing first, print all the parts accordingly.

View all instructions

Enjoy this project?



reef1944 wrote 12/31/2021 at 11:30 point

What's the status of this project?  Why hasn't the world flocked to this??? :-)

  Are you sure? yes | no

Peter lovell wrote 04/28/2017 at 08:47 point

Hi very busy coping you Mammoth the only problem I have had is the bearings being to tight once they we screwed together. So using TinkerCad I deleted 99% of the Arm1 slew bearing to give me a 1mm spacer this works well so I did it with the base slew bearing (up or down does not matter) which work well and if I need it on the others I can do the same  .Did you have you have this problem?. I check the size of the bearings and they are OK, so I think it probably my 3D printer is making them slightly smaller than it should be. If any body wants these STL files for the spacers please ask Andy if its OK and I will post them .

P.S thank you for your hard work I'm really enjoing building the Mammoth Arm.  

  Are you sure? yes | no

Andy wrote 04/28/2017 at 16:38 point

Hi, Peter, you can post your STL files. Very glad you enjoy the Arm.

  Are you sure? yes | no

scott.nortman wrote 12/10/2016 at 14:56 point

Fantastic work, very impressive.  How is the performance of the 3D printed harmonic gear boxes?  Any backlash or slipping?

  Are you sure? yes | no

Andy wrote 12/10/2016 at 15:26 point

thanks , If the payload too heavy , slipping is happening. This is the first version, next version I will trying to move the heavy motor back. But that will introduce new transmission system, like timing belt.

  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