Stepper robot arm

Robot arm designed in freecad

Robot arm designed in freecad

This page is a work in progress.

On this page you can find all the Freecad and stl files of my 3D printable mearm fork. It is inspired by the MeArm but it does not share any parts with it. I designed it from scratch in Freecad 0.15. The arm consists of 13 different parts, one part has to be printed 4 times. I printed my arm on a cheap Chinese Prusa I3 3D printer using PLA. My 3D printed parts fit perfectly and needed very little cleaning up, but this could be a different story on another printer … To built the arm you will need a lot of M3 screws of various lengths and M3 nuts/locknuts.

3D printed parts:

Attribution-ShareAlike 4.0 International License
I’m sharing these files under the Creative Commons Attribution-ShareAlike 4.0 International License.

Download all the Freecad & stl files here.

Part 1: Base plate

base plate

base plate

This is the base of the arm. The bottom stepper motor (that rotates the arm) attaches to it with 2 M3x6-10mm screws / nuts.

Part 2: Box



The box is bolted to the bottom coupling. It has 4 holes in the bottom that correspond to the holes in the bottom coupling. I used only 2 M3x10mm screws/nuts to attach the 2 parts.
Two stepper motors are bolted to the sides of the box, you need 2 M3x6-10mm screws and 2 M3 nuts for each stepper motor.

Part 3: Bottom coupling

Bottom coupling

Bottom coupling

This part attaches to the bottom stepper motor, it is pressed on the axle of the stepper motor. It has a small notch on it to trigger a small limit switch.

Part 4: Left coupling

Left coupling

Left coupling

The left coupling attaches to the left stepper motor, it is just pressed on the axle. It has a small notch to trigger a limit switch.

Part 5: 100mm plate

100mm plate

100mm plate

This part needs to be printed 4 times.
You need to bolt one to the left coupling using a M3x10mm screw and locknut. The second plate attaches to the hole in the back of the right side of the box using a M3x10mm screw and locknut. The third and fourth plate attach to the gripper base and the right top plate using M3x10mm screws and locknuts.

Part 6: right coupling
The left side of the right coupling bolts to the little pole in the middle of the box using an M3x12mm screw and locknut. The right side is pressed on the axle of the right stepper motor.

Part 7: left plate

Left plate

Left plate

The top of the left plate bolts to the top of the 100mm plate that is attached to the left coupling. The second hole in the left plate attached to the right coupling. The bottom hole attached to the gripper base. I used M3x10mm screws and locknuts for all connections.

Part 8: right top plate

Right top plate

Right top plate

The bottom of the right top plate attached to the top of the 100mm plate on the right (M3x10mm), the top of the right coupling (M3x12mm) and the 2 100mm plates that go to the gripper base.

Part 9: gripper base
The gripper base has one hole on the left side that attaches to the bottom of the left plate. On the right side there are 2 holes that attach to the 2 100mm plates. I used M3x10mm screws and locknuts for all connections. There is a hole in the gripper base for a small servo (SG90/MG90). I fixed the servo to the gripper base using small self tapping screws (the ones that come with servos).

Part 10: servo gear

Servo gear

Servo gear

This little part sits on the S90G gripper servo, it is fixed to a little servo arm using a self tapping screw (that comes with the servo).

Part 11: gripper left

Gripper left

Gripper left

Left side of the gripper attaches to the left hole in the gripper base with a M3x20mm screw and locknut.

Part 12: gripper right

Gripper right

Gripper right

Right side of the gripper attaches to the right hole in the gripper base with a M3x20mm screw and locknut.

Part 13: arduino plate

Arduino plate

Arduino plate

You can use this plate to attach (with 2x M3x6-10mm scews/nuts) an Arduino Duemilanove or Uno to the box. The bottom of the plate has 2 holes that line up with the 2 holes in the back of the box. There are 3 more holes in the plate to attach standoffs, the pattern lines up with the holes in an Arduino Duemilanove/Uno. This also acts as a counterweight for the arm. Without it the arm will fall over very easily.

Electrical parts:

    3 28BYJ-48 12V DC stepper motors, I got mine from Elecrow
    1 SG90 or MG90 servo for the gripper, buy one on Ebay or from your favorite hobby store.
    3 mini limit switches, bought mine from Electrodragon
    Arduino Duemilanove/Uno
    Arduino CNC shield, very cheap @ Electrodragon
    3 stepper drivers, I’m using 3 Allegro A4988 stepstick drivers, got them from Electrodragon.


hmmm, not much to share at the moment šŸ™
Goal is to convert the IK code written for the original MeArm so it works with the stepper motors.
You can find the code on Github.

14 responses to “Stepper robot arm”

  1. Mearm forked |

    […] Stepper robot arm […]

  2. viswesh

    nice project sir

  3. TheMike

    very nice Project!! It seems to run quite smoothly!!

    Please allow me to ask you about the Firmware. The Github-link you referred to, is it the one firmware you use to drive the stepper-equipped arm?

    Or is it still a link to the RC-servo-Firmware you are currently modifying and your stepper-Firmware is not published ?

    I would love to get a stepper based arm running, but IĀ“m more a mechanical guy and so please excuse if my question looks trivial to you.

    Kind regards,

  4. TheMike

    OK, do you plan to publish your stepper Firmware version? Or could you please point us a direction how to tackle this conversion?

  5. Rajeev Naik

    Hi. Great application.
    Can you help with CAD file for laser cutting , but with stepper motors?

  6. Kristian Nikolić

    Hi,im doing an robotic arm for a school project,but i have to draw it myself in AutoCAD,so IĀ“m interested in the measures of the parts

  7. Kristian Nikolic

    With what are you controlling the arm?

  8. Dave Albert

    I’m considering adding a thrust bearing between the box and base plate for better stability (something like this: Have you tried/considered that?

    Also, the screw that comes with most servos is too short to fit through the servo gear; do you know what length and type of screw is appropriate?


  9. Tennessee Carmel-Veilleux

    What are the recommended slicing settings ? Are some parts needed to be printed with more accuracy / thinner layers than others ? How much infill did you use ?


  10. Guilherme Fagotti

    Great Job!

    Is it possible to share the arduino code and the electrical connections scheme?

Leave a Reply