3D Printed Robotic Arm
Meta Code and Eng DK30 Quarantine 2020 6 5
Description
I want to find and build an open source 3D printed robotic arm. The inspiration / long term goal is automating the 3D printing process so that I can remove printed prints and start the next one without having to tend to the printer manually.
Recent Updates
Testing the arm with pulley+belt+stepper motor all hooked up. Running a test script to move back and forth.
Week “6” updates:
Even though It’s been longer than a week, I’m going to roll some updates into one post and label it week 6, just for cleaner documentation.
Teaser: this is a bread board test set up with ATX power supply.
-
Assembly troubles with the 2nd articulation, ended up getting some lock nuts stuck in the piece and had to use some creative solutions (hot glue and super glue) to get them out. I wrote feedback and solutions for this in my research doc. There is also an issue with the 4th articulation, it’s construction is finnicky. I may temporarily freeze that joint to enable continued progress, losing 1 degree of freedom (rotation at the wrist). I wrote feedback and solutions for this in my research doc.
-
Power supply, good news. After blowing up one breadboard power supply by inputting too many volts, I turned to using an ATX PC power supply (600 watt). I purchased a break out board that allows me to wire the power to what I need. I even ran some tests and was able to successfully power a stepper motor with the TB6560 motor drivers. This represents several great steps in the overall electronics set up.
-
I made a roadmap for the electronics and software aspect of the project, as well as defined what project completion looks like. I will include the end of project statements:
What does project completion look like? This project started out as an exploration of robot arms and open source communities. I believe finishing looks like having a big robot arm moving all of its joints. Flexing all the joints and demonstrating the range of movement.
Next post will be my weekend, and I’ll come up with some more defined Week 7 goals.
It’s been a bit, I have been making some small progress even though I haven’t been posting. I’m trying to figure out if I want to migrate updates to a new platform, since this was designed for the DK30 4 week format.
I have located a suitable power source, and am hooking it up to the stepper motors for the project. Only the timing belt remains unreceived. More to come soon.
Week 5 progress pictures
Week 5 update.
But first, looking at previous week milestones:
Find suitable power source for RAMPS board
Move 3 stepper motors with arduino code
Assemble base and 4 total actuations
Assemble Gripper arm with Servo
How much progress was made on those mile stones during the “lazy week” prior:
- I did end up with a couple of power sources to test with, but i haven’t actually tested them yet.
- I was able to move 1.5 steppers with arduino code, using some one elses code.
- Assembled belt tensioners (which included working with heat insertion, a hurdle that i feel i’ve put behind me), several motors have arrived in the mail, fasteners are ready for pick up (will be picking up tomorrow). Assembly is expected to be unblocked by tomorrow morning.
- see above, blocked until tomorrow.
**Week 5 goals **
New week cadence, since DK30 is over: Starting on Thursdays (my day off). 28th to the 4th.
- Assemble Base platform, mount 3 motors, mount belt tensioners, pick up new fasteners, assemble gripper
- Stretch goal: make my own adruino code to control 1 stepper motor driver + stepper, test monitor power supply
Another update to come, as a mid week 5 update.
Taking a lazy week off while I wait for some stuff to ship, fasteners, motors, belts.
I’ll be shifting all of week 4 goals forward to after the holiday!
Week 4 (15th - 22nd), final week for DK30, updated milestones.
Week 4
-
Find suitable power source for RAMPS board a. Research, does RAMPS back power the Arduino it’s attached to? Or do i need a seperate power plug in for that
-
Move 3 stepper motors with arduino code a. The plan is to use the simple red arm for this, just to get experience driving steppers.
-
Assemble base and 4 total actuations a. Finish cutting steel rods b. Add threaded inserts c. Assemble belt tensioner
-
Assemble Gripper arm with Servo
Ordering stepper motors is intimidating. Both because they have a lot of technical specs that I needed to research, and because it’s hard to find motors with the specs outlined in the Moveo BOM. Someone who is more familiar with steppers might recognize some common motors, but I had to go with my gut on some of the specs. Good news is that stepper motors can generally be cheap, around 5-15 dollars a motor. Bad news is that the best online selection I found is coming from China. The shipping estimate said 2-4 days… we’ll just have to see. Many shipments are delayed, and I have other things I can work on in the meantime.
I also had a last minute experiment with stepper motors and arduino. The small red arm I pictured before came with some demo code which I was able to test. I could control 1 stepper motor from the aruidno. There seemed to be a problem providing enough power to drive more than 1 motor at a time, but overall it’s encouraging. More on that during week 4.
Assembly is being delayed by the fasteners and stepper motors. But I hope to get shipping estimates for both tomorrow.
That’s all for now!
Some assembly required.
That is the mechanical assembly of the first two articulations of the robot arm. This gives the robot a “waist” and a “shoulder” to pivot on. I have noticed a couple errors in the BOM and assembly manual. They are pretty minor and I was able to decipher what I needed without any major set backs. One big one was buying Pan head machine screws, the heads are too big for this design. Most all holes on the robot arm are expecting a socket head screw, pan heads will not fit. Had to reorder all of those. I will likely collect that info for the github. Other than that, assembly is going well. I won’t have the motors or belts anytime soon, but i can get everything else ready for when those arrive.
Tomorrow marks the end of week 3, and it’s guaranteed that this project will run beyond the 30 day mark, which I am perfectly fine with. World events mean shipping delays, especially the electronics/motors coming from far away countries. But here are some updates on the week 3 miles stones:
- All 3d printed parts printed.
- BOM completion is 95%. Out of 228 Items I am missing around 10, mainly stepper motors.
- Assembly is underway, based on the images above the goal of 2 articulations is about 90% complete. This is somewhat stalled by the need to re-order fasteners and of course the motors. From here on out we’ll be referring to the mechanical assembly, and letting the electronics show up when they can.
- No progress on controlling the stepper motor, which is a big deal. A power source should have been a previous week goal in order to facilitate testing the hardware. Luckily I have some leads to research.
I have one day left for week 3, we’ll see where that gets me!
It’s been a few days, but progress has continued:
Banana for scale. Note that these parts aren’t assembled, just laid out together.
Currently working on printing my own parts to replace the ones I can’t easily find online. Fasteners sorted! Assembly can begin very soon.
End of Week 2 update, 5/8/2020
Each of this weeks milestones were completed to an acceptable level. Overall project status is good.
- I have printed a large majority of the parts, estimating around 42 hours left of print time in parts (estimated using the raspberry pi computer driving my printer). For reference for the time remaining, my printer has been running pretty much 24 hours a day for the past 7 days. I’ve printed a lot! The remaining prints are ALL sliced and ready to print. I have 2 new rolls of black plastic filament, one PETG and one PLA.
During this process I also researched slicer settings to try and speed up printing time, turns out there is a lot of room in software to speed things up.
-
I found my red pencil stick robot arm, a picture from the Thingiverse website can be found in a previous post. It is a small, inexpensive, light weight test bed for the control hardware I got recently in the mail.
-
I have ordered and picked up most of the bill of materials, including fasteners, bearings, the RAMPS 3d printer controller board, and more. Because of current world events, shipping delays are abundant, and that’s quite okay with me. Due to the likelihood of needing to ship stepper motors from china on the cheap, this project will likely extend past the 30 days for full arm completion, and I can get a ton done in the meantime.
-
Lastly I shared my project with others!
Here are some re-scoped mile stones for Week 3, which starts tomorrow:
- Finish printing of all 3d printed parts
- Continue sourcing BOM pieces
- Order at least 2 stepper motors
- Buy base board for mounting arm to
- Replace hard to source parts with 3d printed parts
- Begin assembly of Moveo Arm
- Sort fasteners into something organized
- Post process printed parts
- End of week goal is at least 2 articulations assembled
- Test control hardware with a “hello world” equivalent
- RAMPS + Adruino, try to blink a light or equivalent
- End of week goal, turn a single stepper motor
- Stretch goal: Run 3 steppers attached to mini robot arm
The arm is coming together, the big mysteries now are the RAMPS stepper motor driver board, and controlling it all. I’m looking forward to learning more about electronics.
If there are any looming issues for the project, it’s the source of power for the arm, sourcing stepper motors, and the software that will control the arm. I will be looking into converting a spare PC power supply into something I can use for this robot arm. That will require very careful electronics learning and safety. I should look into alternative powering methods as well.
Random tidbit, my next project is going to be developing a plug in for Octoprint, my favorite printer controller software. Inspired by the recent Octoprint discord server opening up.
Mid week 2 update, 5/7/2020
Fasteners picked up, Solved filament shortage with a different material I had on hand, first shipment of amazon parts arrived, and more.
Last post I mentioned a shortage of plastic, specifically black PLA filament since that is what I have been using up to this point. I ordered 2 rolls of black filament when I realized I would be short, not realizing I had accidentally chosen one PETG instead of PLA for one of the rolls. These are similar but different materials, and I had to do some calibration for the right temperatures and speeds. Compared to PLA, I had to increase the nozzle temp to 240c, bed temp to 80c, and reduce infil speeds to 35mm/s. So far it’s printing great. There are some health concerns with increasing 3d printing temps, after reviewing some information online it looks like I’m okay with the hot end at 240c. It does mention that it’s dangerous for birds to be around so I highly recommend you doing your own research.
Although the PETG is performing nicely, I will likely revert back to PLA once the shipment arrives, just because it’s something I have more experience with. I’ve been waiting to print the largest pieces for when I can do them in PLA.
I picked up the order of fasteners from my local supplier, and a big part of today will be figuring out how to sort/store them. I have a storage unit will pull out bins, mostly filled with random electronics I’ve collected since my college days (so mostly junk I will toss).
Here is a dump of 3d printed robot parts, fasteners, bearings, and electronics!
(Ignore the ugly overhang on the foremost piece, more PETG tuning needed)
While printing out the pieces, I’ve been ordering many of the items online. Almost everything besides the motors are ordered. BOM price is up to 300 without motors or fasteners, which is within expectations.
An order for fasteners has been put in.
Next milestones to focus on for this week: Finish slicing the rest of the models Research and order motors Find where I can pick up a base board, (home improvement store?)
Today is the 5th, have 6th, 7th, 8th to round out these milestones.
Printing 50% of the parts may be delayed due to lack of printing plastic. But I have it on the way in the mail.
An interesting wrinkle, turns out I need a lot of plastic to print all of these parts. So much so that I’m going to run out of my black plastic before i’m done. An amazon order was placed to stock up with 2 more rolls, and in the meantime I’ll have to pivot to printing the accent-colored pieces (see image in previous post for coloring ideas).
The pieces of the arm take a long time to print. There are parts that take 10 hours, 21 hours, and even 36+ hours to print. Not surprising, as these are the largest pieces I’ve ever printed.
I’ve begun to look at the BOM and the components needed. I’ve estimated up to 180 dollars so far, and that’s without several motors. In the end I expect the project to cost between 300-400 USD in total.
The biggest challenge I face now is sourcing the stepper motors. The BOM is very specific, and luckily gives specs for me to pivot if I can’t find the specific item on the BOM. I found some decent discussion about motor alternatives from other builders with similar issues (only downside is that the discussion is 4 years old, but I think I can still gleam some strategy from it).
A thought I’ve had recently is that “You get what you pay for” when it comes to free open source designs. The Moveo arm is documented beyond my expectations, but I expect that it would be hard to find up to date council on the motors i’m looking for.
Updated milestones for Week 2:
- Start 3d printing parts of the arm
To focus on the things I can control, I want to slice all of the robot parts and prep them for printing, I want to arrange them into big batches that can run over night. The outcome I can’t control but I’m aiming for is 50% of all parts printed. Week 3 will be focused on finishing up the print and checking for failed prints.
- Find a smaller robot arm design to use as a prototype for bigger one
Last week I realized i might be out of my depth and risking a lot by jumping straight to the Moveo. I want to build a smaller robotic arm along side the Moveo to use as a prototype. I already have 1.5 arms that i printed before, and should work nicely for this task. I plan to use the control hardware for the Moveo with smaller stepper motors that I have laying around. If i can use the control hardware to drive the smaller bot, i should have more confidence approaching the bigger bot. Below is a simple robot arm I already printed, and will most likely use as my prototype (credit link to arm https://www.thingiverse.com/thing:2214090)
- Begin sourcing hardware and components
Amazon, digikey, tacoma screw, all of these are places i plan to start ordering parts online. I already purchased the RAMPS 3d printer controller and I already own an arduino mega. Just for clarity, the RAMPS board is meant to drive a 3d printer, which just happens to make it usable as a stepper motor controller for the robot arm. It’s also dirt cheap at 8 bucks.
- Share my project with others!
If you’re reading this… then I’m doing well with this milestone :).
Misc notes:
My process of documenting this project is a bit messy. Right now I do all the first draft in a google doc, adding onto that doc every week. Then I take that information and post the weekly milestones to the right of this page. Lastly I use both of those posts to put a more detailed update here. Feels like im writing things down in multiple places, meaning when i come back in the future i’m not sure what record is going to be the most reliable. Could maybe look into project management tips. I also plan to keep a bill of materials that represents exactly how much I spent, so I can get an accurate price estimate for the whole project.
As I write this, the first part of the arm is printing, just feet away from me. (One of the leg stands). One small step!
I just realized there aren’t any pictures to give a quick impression of what I’m working on. This is an image of the BCN3D Moveo open source robotic arm, the one that I’ll be 3d printing on my home printer.
Here is the page where you can get all the models needed to print it: https://www.thingiverse.com/thing:1693444
As I write this, I’ve begun printing the very first piece of this arm. Note that some users have ran into problems 3d printing the first articulation, one of the biggest pieces. My Ender3 printer seems to be able to handle it according to my slicer. More to come!
End of week 1:
My updated milestones for week 1 were as follows:
- Get inspired by videos of robotics and robot arms
- Research robotic arms and use that knowledge to narrow down my choices of which robotic arm to build.
- Find and research open source robotic arms, choosing one to join and use as my design for the arm.
Overall I believe that I succeeded this week on all mile stones. For number 2 on the list, I built a google doc to document different robotic arm types and their pros/cons, along with pictures. Most of my research was focused on robotic arms used in industrial manufacturing, which is my long term interest. Of particular note were the SCARA and Articulated robot arm styles, with SCARA being a likely candidate for my eventual 3d printer auto-bed-ejector system. This is because of the simple design resulting in more simple control compared to other systems, as well as increased strength due to sacrificing a degree of freedom.
For number 3, the results of my search were a bit disappointing. There don’t seem to be many open source robotic arm communities, and those that do exist seem pretty light on recent activity. But there were two good candidates in the Thor and Moveo projects, with well documented githubs and STL files ready to go. These are similar articulated robot arms using stepper motors. I will be moving forward with the Moveo due to it’s simple design, simpler looking belt drives, and more recent activity with it’s community of makers.
I should note right away that the Moveo is not really ideal for my intended use case, as it can’t lift much weight, and has far too many degrees of freedom. A SCARA style robot arm would be much more realistic for a “pick and place” type operation like reloading a 3d printer bed. That doesn’t discourage me at all however from choosing the Moveo as my open source community design of choice.
A lot of this research made me feel like i’m jumping into the deep end too fast, and I am considering rescoping the project to a smaller robotic arm, as a more realistic goal. My thought right now is to be 3d printing the parts to the Moveo, and using it’s control hardware to drive a more humble robot arm, with smaller stepper motors I already have on hand. If I am very successful in this smaller arm, I will dedicate time to builing the Moveo for real.
I also snuck in some work on the test parameters i will need to use when i eventually approach a more robust arm. These will be added to future milestones / research.
The next update will contain the updated milestones for week 2.
Mid week update, week 1:
Weekly milestones progressing nicely. I have finished a surface level survey of the different kinds of robotic arms, including Cartesian Coordinate, Cylindrical, SCARA, Delta, and Articulated styles. I found several wiki articles and videos that were very informative, including this one: (four main types of robotic arm geometry) https://www.youtube.com/watch?v=R0eJXe6R8vY&t=347s
I would love to see these different kinds of robotic arms in person, I should scope out local manufacturing companies and see if anyone has a tour I can go on.
The current task I’m on is researching open source 3d printed arm communities. I have two main leads in the THOR and BCN3D robot arm projects. Both are open source, articulated, 3d printed robot arms. I’ll continue to compile their info in my research document. I plan to have one chosen for moving forward by May 1st.
Quick update, finished moving this weekend, so I didn’t get a ton done, BUT I started the research doc, and read some wiki articles on different kinds of robot arms. Next is filling out the doc with more arms and watching some video examples to make sure I got the basics. The SCARA robot arms look very promising, with XY movement with a fixed Z axis. Given my projects movement requirements that could be a good fit. More on this later, just wanted to jam out a quick update.
Some videos watched for inspiration, many kickstarter hopefuls, click bait top list videos, found some interesting styles of arm for further research.
Week 1 additional sub-milestones:
Build gdoc with different arm styles, with pictures + wikipedia links + summary of strengths/weaknesses
After that, ask the narrow question “what style or arm do i need? how many DOF” for my own application
apply those answers to searching for open source communities
Estimated Timeframe
Apr 24th - May 25th
Week 1 Goal
- Get inspired by videos of robotics and robot arms
- Research robotic arms styles.
- Find and research open source robotic arms
- Choose open source robotics community to move forward with.
Week 2 Goal
- Start 3d printing parts of the arm (by end of the week print 50% of the parts, with 100% of them being sliced and prepped for printing)
- Find a smaller robot arm design to use as a prototype for bigger one
- Begin sourcing hardware and components
- Share my project with others!
Week 3 Goal
- Finish printing of all 3d printed parts
- Continue sourcing BOM pieces
- Assemble 2 articulations of the robot arm
- Control a single stepper motor using Moveo hardware
Week 4 Goal
- Find suitable power source
- Drive multiple steppers from Moveo control hardware
- Assemble 4 articulations
- Control gripper tool