UStepper Robot Arm

21,438

171

30

Introduction: UStepper Robot Arm

About: Electronics and Controls engineer with a passion for developing both electronics, control and mechanics! See more of my stuff on my webpage www.nengineering.dk !

This instructable takes you through the process of building your own cool robot arm!

The Robotic Arm is developed entirely by me, the nut covers are however, from a guy on thingiverse. All STL files are avilable for you to print (for personal use - not for selling!) on our GitHub.

So let's get to it!

Step 1: Parts Needed

First you will need some parts. Besides the 3D printed parts, which I will introduce in the next section, you will need bearings, nuts and bolts. I have spent some time on reducing the number of unique items on the BOM, but there is still a few.

Bolts:

  • 1 pc. M8 x 40 mm
  • 1 pc. M8 x 70 mm
  • 4 pcs. M4 x 20 mm
  • 4 pcs. M4 x 35 mm
  • 20 pcs. M3 x 10 mm
  • 3 pcs. M3 x 16 mm
  • 10 pcs. M3 x 20 mm
  • 9 pcs. M3 x 25 mm

Nuts:

  • 21 pcs. M3
  • 8 pcs. M3 self locking
  • 8 pcs. M4 self locking
  • 2 pcs. M8 self locking

Washers:

  • 2 pcs. M8, OD: ~15.8 mm
  • 2 pcs. M4, OD: ~8.8 mm

Bearings:

  • 4 pcs. 608Z
  • 12 pcs. 624Z

Rods:

Aluminium rods, the diameter is outer diameter, they are of 1 mm material, making the inner diameter of the 15 mm rods = 13 mm. I found these rod sizes (diameters) in the local hardware store.

  • 1 pc. 15 x 200 mm
  • 1 pc. 15 x 150 mm
  • 2 pc. 6 x 170 mm
  • 1 pc. 6 x 165 mm

Additional items:

  • Super glue
  • Micro servo
  • 3 pcs. NEMA 17 stepper motor
  • 3 pcs. uStepper control boards (optional)

Tools:

  • Adjustable wrench
  • Hex Keys (if you use hex bolts like I did)
  • Philips screwdriver

Step 2: Printed Parts

Now for the 3D printed parts. First of all, I printed all of them in PLA. The infill was set to 25% for all parts, besides the three motor gears which are printed with 100% infill. The numbers on the parts will be used in the assembly instructions given in the following section. All STL files are available on our GitHub for personal use.

Step 3: Assembly

Just follow the instructions in the pictures here. The only thing to notice is that the motor gears has changed since I took these pictures. This was done to make them more robust, and get a better grip on the motor.

Step 4: Electronics

For the robot arm to run, you will need some stepper driver. I recommend uStepper, but there are plenty of other solutions out there. What I go through here is based on the uStepper setup.

The three uSteppers are connected as shown here on the diagram. One uStepper is master, receiving data through the UART and distributing this to the two slaves.

To make it easy, I used a prototype shield on the master so that I could easily connect bluetooth module, servo and slaves.

If using USB cable for communication, it is essential that it is secured properly to avoid breaking the USB on the uStepper when rotating the arm.

Step 5: Programming

Programming the arm is relatively easy, since I have already made a working sketch :) The sketch is based on a teach mode operation principle. That is, you move the robot arm around and record positions, which you then play back. The code setup is shown in the video below, and the code is found on our GitHub.

In the video, you can also see how to interface with the Robot Arm using the example code.

The code does not make closed loop movements, but this is possible with the new uStepper library, by adding the PID in setup like shown in the video:

Step 6: Final Words

That is pretty much it! All the rod lengths can be adjusted to give the robot arm a different range than that shown in this instructable.

As it is now, no inverse kinematics has been implemented, but we are working on it together with a suitable protocol between master and slaves.

More information about uStepper and the Robot Arm can be found on www.ustepper.com

Design Now: In Motion Contest

Participated in the
Design Now: In Motion Contest

Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017

Be the First to Share

    Recommendations

    • Back to School: Student Design Challenge

      Back to School: Student Design Challenge
    • Retro Tech Challenge

      Retro Tech Challenge
    • Lamps and Lighting Contest

      Lamps and Lighting Contest

    30 Comments

    Hello sir, I am trying to build the 3rd version of the ustepper and I found that the given small gear design in the stl folder doesn't quite attach to the motor Shaft and is able to rotate freely. However the gear fixture design in the instructions pdf seem to be different. Where can I find that version of the gear?

    0
    RunG1
    RunG1

    Question 3 years ago

    Hi,

    Nice project, How accurate and repeatable the position using stepper motors?

    Regards,

    Robert

    0
    nicengineering
    nicengineering

    Answer 3 years ago

    Hi Robert,

    With stepper motors you can achieve a positioning of ~0.12 deg with regular microstep drivers. The repeatability is however dependent on that you do not end up loosing steps by putting to much load on the motors. With the uStepper boards, missed steps are corrected for so the repeatability is ~0.12 deg. As I remember it I achieved less than 1 mm error on positions. The main reason is mechanic tolerances.

    Best regards,

    Mogens

    0
    edvin.eshagh
    edvin.eshagh

    Reply 9 months ago

    Great work indeed...
    I noticed in Rev4 you moved away from printed gears to GT2 pulley/belt & compression bearings when looking at BOM. Ver3 is great as it minimizes supply needs...
    1) What kind of repeatability do you observe in ver4 when comparing to ver3?
    2) Do you know if a counterweight system was ever considered?
    It seems easy enough to add it for this design using a spring (https://en.wikipedia.org/wiki/Balanced-arm_lamp#Two_tension_springs). In another design, I find that the stepper motor is used for counterweight (https://www.sainsmart.com/products/4-axis-robotic-arm-with-nema-17-stepper-motor). I must admit, I like being able to laser cut as apose to print when possible.

    0
    nicengineering
    nicengineering

    Reply 8 months ago

    Hi!
    Yes I moved to belt drives to reduce backlash and make movement more smooth and silent.
    You could argue that the mechanical stability of the rest of the system contributes more to repeatability error than the gears did. It is a chain of inaccuracies that impacts the repeatability and the drives do have some impact of course.

    Repeatability is comparable on rev 3 and 4 when the arm is fresh assembled and gears are adjusted to give minimum backlash. However over time the gears will wear, but can be readjusted of course. So, in reality there is no noticeable difference since the rest of the structure contributes more to the error (at least if loaded with weight). But on noise and smoothness there is a noticeable difference :)

    I have looked at counterweight systems but due to simplicity and the limited impact I believe it would have in the applications I designed this arm for (even though I know I cant imagine all applications) I did not put much thought into adding it.

    But, you are free to adjust and adapt ! I have shared my source files so that people have an easy way of adjusting the design instead of just posting STL files :)

    Best regards,
    Mogens

    0
    edvin.eshagh
    edvin.eshagh

    Reply 8 months ago

    Thank you for the background and additional insight.

    0
    Vegetish
    Vegetish

    2 years ago

    Can you please make a tutorial to have a master stepper control one or more slave steppers? The github kickstarter demo code does not work for making the same mimic setup as shown in the kickstarter video.

    0
    wytsemiedema
    wytsemiedema

    Question 2 years ago

    Hi Mogens,

    What a really nice project you have built, I'm trying to build it myself but I've a question about de end link for the 6 mm aluminium rod. I can't seem to find the stl file in the github repository. Am I missing something or looking for the wrong name?

    With kind regards,
    Wytse

    Edit: Nevermind I've found it... and it was called link.... I must have confussed it with the gripper link and overlooked it the whole time.

    Again thanks for the great work!

    0
    uStepper
    uStepper

    Answer 2 years ago

    Super :)

    0
    MubarakH
    MubarakH

    3 years ago

    Dear respected sir, Hope you are in good health with success and happiness. I am really happy for your awesome works.

    I'm doing my project on this robot arm.

    I'm not using close loop system and using A4988 stepper motor Driver. Please could you help me to do my arduino code to control the robot?

    I will be grateful to you.

    0
    nicengineering
    nicengineering

    Reply 3 years ago

    Sorry for the late reply... You can have a look at the code on Git, and take what you need to get it working. I simply do not have the time to do custom coding for people :)

    0
    AlessandroG2
    AlessandroG2

    4 years ago

    HI,

    uStepper OPTIONAL means that I can use even other boards to control the arm, in this case I should write my own sketch right?

    0
    nicengineering
    nicengineering

    Reply 4 years ago

    Hi,

    Yes, you could use any other stepper driver solution out there, be it GRBL shields, 3D printer controllers etc.

    Of course the sketch I wrote was done for the uStepper, but the principles would be the same as long as you have feedback. If you don't have feedback, then you will have to run it open loop (like a 3D printer og GRBL machine does).

    0
    MubarakH
    MubarakH

    Reply 3 years ago

    Dear respected sir, Hope you are in good health with success and happiness. I am really happy for your awesome works.

    I'm doing my project on this robot arm.

    I'm not using close loop system and using A4988 stepper motor Driver. Please could you help me to do my arduino code to control the robot?

    I will be grateful to you.

    0
    aaffoyon
    aaffoyon

    4 years ago

    Really nice work!! Thanks for sharing.

    I just have a question about programming. I don't understand why do you have to comment in one of the two functions (master or slave) in the loop.

    Thanks again.

    0
    nicengineering
    nicengineering

    Reply 4 years ago

    Hi!
    Thanks for the nice words. Two of the controllers are slaves and one is the master. Commenting in either of the two in the loop will configure the board as one of these. It just calls the appropriate function. Scroll up in the code, and you will see :)

    Best regards,
    Mogens

    0
    drone it73
    drone it73

    4 years ago

    how much does it cost

    0
    nicengineering
    nicengineering

    Reply 4 years ago

    If you wan't to buy it, kits are available at www.ustepper.com If you wan't to build it yourself, you just have to get the parts listed in the instructable. The highest cost is the stepper and drivers.