DIY Pick and Place

Cartesian PNP machine using Rails/Carriages for high speed and accurate part placement. Affordable open source pick and place is on the way.

Similar projects worth following
We're building a PNP machine. We need one, but as most startups who are bootstrapping and who have seasoned engineers up to the task, we want something that is better/faster/cheaper. We've tried some of the DIY options for PNP out there, and at the end of the day it became very apparent that if we wanted something that checked our boxes we would need to build it ourselves. Game on.

I'm not looking to try and build the cheapest machine out there, but I am out to build a highly reliable and accurate machine for the least cost possible.

I've been through countless 3D printers, CNC machines, and other various motion projects and have a pretty good feel for what I can live with. For that reason I have chosen to go the rail/slide and belt route as opposed the other various options out there. I think I will be able to find a motion platform for this project that checks all the boxes (cost/quality/simplicity).

Whereas lots of projects have historically started with an XY CNC or 3D printer bones, we're starting from scratch, and we hope that by sharing our findings and making the design available to the community that we'll be able to collectively drive a product that will rival the myriad of expensive machines in the marketplace today.

Happy to say that we've made great progress to this end over the last couple months and are officially placing parts. Lots of tweaking left to make it scream, but we're well on our way.


UPDATE: Eureka! We're picking and placing! (check the video below) In addition, we finally pulled together a BOM and 3D rendering to the point it is ready for you to take and build one yourself. We've tried to consolidate the pieces in order to minimize the number of unique parts on the BOM.

We have heard from several of you who either dont have a mill, dont have a 3D printer, dont have the time, or just would prefer a kit instead we are considering putting together some quick build kits. Still not sure what the kits would include, but likely would be a kit that includes all the custom brackets needed for the machine, and perhaps even a bundle of pre-cut extrusions as well. As for a FULL kit, with all the hardware and electronics, we'd be open to that if there was enough demand.

For now, we'd just like to get as many people enjoying rock solid PNP using OpenPNP, and we feel that this machine accomplishes that and more. To that end we're happy to contribute the design back to the community. We'd love your feedback, collaboration, and know that collectively we can make this thing even better.

  • Drive that passive rail

    anthony.webb03/19/2016 at 05:28 2 comments

    Since we launched the project nearly every nay sayer has the same feedback... "Oh, that passive rail will NEVER work!!" Well, we've proven that it does in fact work, and work very well IF (BIG IF) you have a nice set of rails.

    Well, what if you wanted to roll with the cheap chinese rails instead? First off, I highly suggest getting the nicer rails, its worth the money IMHO. But enough people have asked and so we have added instructions on driving the passive rail.

    The mod to your machine will take about 15 minutes and $20 in parts. It's probably worth the peace of mind although I have not seen any marked improvement to lead me to believe it is necessary.

    The mod consists of a rod which couples to the end of your Y motor. This rod passes through a modified end bracket with a press fitted bearing for support, and holds a toothed pulley that will drive the previously passive rail. NOTE: we were short a 5mm coupler so we used an old toothed pulley we had laying around until our actual coupler arrives.

  • Magnetic parts holder

    anthony.webb01/27/2016 at 00:39 2 comments

    I designed a parametric model in Fusion360 for magnetically holding parts to the bed of our PNP. It has been built to allow you to specify how many lanes of parts you want, how wide the tape is, etc. From there it builds the body of your part which you can then either print or mill. For those of you who need something like this, or would just like to play around with the part, link is here and the covers are here

  • Endstops, Plumbing, and Electrical

    anthony.webb01/26/2016 at 03:06 3 comments

    We've been running with no way to home the machine which has been something we have been putting off until today.

    Its no secret that a lot of these projects, 3D printing, laser cutting, CNC, etc all share very similar components. The good news is that as result these components have dropped in price dramatically. When we went looking for endstops I wanted to stay away from mechanical stops and go with optical endstops. A very popular form factor in the RepRap world are the ones here:

    Of course they were not set up to bolt right on to the aluminum extrusion, but that isnt anything a little printer time wont solve. Here is what we ended up with:

    With endstops out of the way we turned to making sure the plumbing and electrical got all cleaned up. Its not an official enclosure, but definitely makes it easier to cope with. Long term we will do up a proper enclosure which will be really nice, but for now this is clean and tidy. Here a look at the rear of the machine.

  • Camera Setup

    anthony.webb01/25/2016 at 06:28 0 comments

    I've been asked to share some of the details about how the camera is placed and set up. I am using the 6mm lens that came with my device. I dont have an 8mm lens to compare to. It does appear in the camera info that the resolution is 640x480. The lens of my camera is exactly 28mm from the surface of my PCB. The calibration wizard in openpnp calculated values of .23 for both x and y. Distortion does not appear to be a problem.

    I'm unclear on the amount of settle time that is ideal for these ELP cameras as compared to other models, I think we are using 250ms now. What I am shocked at is how well the image looks in simple ambient lighting, the ELP is more of a "microscope" than my USB microscope ever was.

  • A new camera

    anthony.webb01/25/2016 at 06:25 0 comments

    As I mentioned yesterday, we were enable to extend the USB on our microscope camera we had been using for downward vision. This ended up being a huge benefit for us because after looking at the images from the ELP camera (same used in Jasons reference machine) we were blown away at how bad the USB microscope was in comparison to the ELP. So, we went to work designing a bracket to mount the ELP, We recessed in the PCB so it would nice and flat, turned out great.

    The camera I bought is this one:

    They have them all over ebay and amazon. I've seen the 5MP versions as well, mine is only 1MP but I almost think the lower resolution will mean easier/quicker image processing? The picture is beautiful, even with only average lighting conditions.

    The image quality and focus of the endoscope/microscope is not even comparable to the ELP. In addition, the endoscope/microscope did not have the same low light characteristics. Finally we were not able to extend the microscope USB cable enough to route through our cable chain. I had originally planned on only using the ELP on the upward looking camera, but now I may use it on both. I still need to run some PNP jobs with the new camera, but it looks pretty good so far.

    With the new camera in place we were able to return to getting the cable chain wrapped up.

    We're now getting a mount together for all the plumbing and we can return to more testing in a more final type configuration. Wishing there were more hours in the day.

  • Wiring up the machine

    anthony.webb01/25/2016 at 06:21 0 comments

    Spent the day rewiring all the electric in cable chain and generally tying up loose ends. Of course there were some hiccups. First, the USB microscope we were using would not work once we extended the USB cable. This was odd because I think we were overall only like 8-10 feet which should be within spec. I had one of the ELP cameras laying around, and was able to extend the cable on that just fine, so I am thinking we're going to make a new bracket to accommodate that camera instead, the quality of the ELP was strikingly better in every way, it's probably just a superior solution. Designing the mount and will install tomorrow, I'll add a pic once it is done. Milled part holders for both 12mm and 16mm strips. Other than that things will look really nice with all the wires tucked away in the chain.

  • Picking and placing

    anthony.webb01/25/2016 at 06:20 0 comments

    Its starting to feel more and more like we will be able to pick and place board flawlessly. There's very little that is lacking. We placed and entire board flawlessly a couple times now. Just a few little things to iron out, mostly just learning how things work. Here is a shot of us placing parts in a pretty deliberate and steady manner:

  • Unlocking your nozzle stepper

    anthony.webb01/25/2016 at 06:19 0 comments

    We ran into an issue where our NEMA8 steppers for the nozzle tips were not powerful enough to twist the rubber tube attached to it, even with the 180degree limit enabled. Looks like a couple people have gone with NEMA11 and special (expensive) adapters. We opted to print a little boot for the top of the motor that leaves the shaft to freely rotate inside. Problem solved!

    The part is up on thingiverse here

    3D files can be downoaded here

  • Why rails and slides for our PNP?

    anthony.webb01/25/2016 at 06:16 0 comments

    Many people who are looking at this project may notice some similarity between it an the reference design Jason from the project posted. His design (and great software project) gave me the confidence to know that building a cartesian design could work.

    The designs Jason and I have posted are very similar. Let me explain the main difference and why I went the way I did. The main difference is his design uses wheels that ride in a slot on the extrusion, and mine use steel rail and slides. The reasons I chose rail/slide as opposed to openbuilds:

    1. I had experience with other x/y platforms like the shapeoko and quickly grew tired of tinkering with the eccentric nuts dialing in the tension. Too tight and it wouldnt move (or skip steps), too loose and there was slop. And even worse (perhaps because it was CNC) it changed every time you used it so you had to go over the machine regularly tinkering to keep things operational. I have heard from several people that this wasnt their experience, but as I evaluated my options, and give my experience, I knew that if I designed around wheels on extrusion, and it didnt give me the accuracy or precision I needed for small pitch PNP parts, then I would have effectively painted myself into a corner.

    2. The rail/slide option gave me a variety of options in quality/cost which would be easily swapped if an option was not able to deliver the speed/accuracy/precision I was after. Had the cheap chinese rails works (they didn't) they would have been a more cost effective solution than the openbuilds option.

    3. Slide/Rail were already proven to deliver great speed/accuracy/precision over a long lifespan with minimal maintenance, I wasnt sure the openbuilds solution could deliver that.

    4. I wanted to have a passive rail and avoid the complication/expense of having a second stepper to drive the Y axis. Only rail/slide could deliver the kind of butter smooth motion that I would need to do that.

    5. I love clearpath closed loop servos, and wanted to leave the door open to jump from cheap steppers over to the more capable servos which come in a nema23, the openbuilds brackets dont come in a nema23, so building my own gave me that flexibility.

    It obvious that either route will give you the ability to pick and place parts. I would bet that the openbuilds route may come in a little cheaper, but I think long term we will be able to eek out more performance, with lower maintenance, from a rail/slide based solution.

  • First Blood!

    anthony.webb01/25/2016 at 06:11 0 comments

    First pick and place in the books! Note that in our dry run, we enabled both nozzles and it was a lot faster to grab and place both parts in a single pass, but for this video Jason disabled the 2nd nozzle because we have a HIWIN rail/slide on the head that keeps sticking. Not sure if we should get a more powerful spring or what. Robotdigg was kind enough to send us a new rail/slide to replace it with, but it is just a rough as the one it replaces.

    Here is the successful pick/place:

    Here is a dry run with 2 nozzles enabled:

View all 20 project logs

Enjoy this project?



Aleksandr wrote 01/10/2017 at 16:34 point

Thank you. I'm going to ask.

  Are you sure? yes | no

Aleksandr wrote 01/10/2017 at 16:12 point

Thanks for the help. I have left one last question. The machine collected. Everything works, can't configure the operation of solenoid valves ((( there is No information how to connect and what to configure in the program

  Are you sure? yes | no

anthony.webb wrote 01/10/2017 at 16:18 point

HI Aleksandr, if you have specific configuration questions lets discuss them over at the openpnp google group.  There are lots of people over there who can help you get openpnp configured.  Thanks!

  Are you sure? yes | no

Aleksandr wrote 01/10/2017 at 08:03 point

Good afternoon. What material did you cut the mounts for engines and carriages?

  Are you sure? yes | no

anthony.webb wrote 01/10/2017 at 15:13 point

I used delrin, but others have used aluminum.  It should be something pretty stiff in order to maintain accuracy.

  Are you sure? yes | no

Caprisonne wrote 12/07/2016 at 18:17 point

Hi you all,

our question for someone who has already tested the machine:

Is this pnp-machine able to  place accurately and repeatable parts with FINE PITCHES with spaces between the pitches  <= 0.5 mm (such as TSOP-48 or TQFP).

If someone did modifications at the machine to make this thing work, this information would be very helpful for us!Thanks a lot!

  Are you sure? yes | no

anthony.webb wrote 12/07/2016 at 18:49 point

Thanks for the question.  I have not tried some of those parts on the PNP yet.  But I am going to assume that it does.  The platform is very accurate.

  Are you sure? yes | no

Aleksandr wrote 11/30/2016 at 06:54 point

Good afternoon. I liked very much your project. Can you help with the description of the Assembly and setup of the electronics? Is it possible to replace the automatic Smoothieboard 5x?

  Are you sure? yes | no

wulfman wrote 10/12/2016 at 15:00 point

I used 2 of them as they are dual port. I used Chinese rails 800mm long. so far they seem to be ok but only time will tell. they were cheap enough. no pictures yet

  Are you sure? yes | no

bgbock2 wrote 10/03/2016 at 17:07 point

What is the brand and part number for the pneumatic solenoids from RobotDigg in your photos? Maybe I can find them elsewhere. RobotDigg has changed the model on their site.

  Are you sure? yes | no

wulfman wrote 10/12/2016 at 03:19 point

I just did a test run on my pnp tonight. You WANT the valves from robotdig with the new part numbers. Trust me. Less plumbing less wiring. You need to install diodes on the pump and the valves to protect the FETs on your controller, but the valves are much better. Don't take the words on the box that the ports are not what they say I had to go to my ace store and adapt. using creative plumbing.

  Are you sure? yes | no

bgbock2 wrote 10/12/2016 at 14:13 point

Thanks. Do you have pictures? Did you still use four as Andrew did? Also, did you use THK or Chinese rails?

  Are you sure? yes | no

wulfman wrote 09/16/2016 at 14:12 point

After much searching I found

All ( or most ) of the parts with perfect dimensions. It seems that the stp files are ok but if you download the dxf they are all screwed up. Just a heads up for anybody thats going to build these parts.

  Are you sure? yes | no

wulfman wrote 09/13/2016 at 15:02 point

After downloading your plans for the cnc parts i noticed that they seemed to have 2 or more layers with different parts on each layer. might be some 360 thing. do you have the real dxf files for the parts so i dont have to remove all the funky layers ?

  Are you sure? yes | no

Adam Vadala-Roth wrote 09/13/2016 at 16:19 point

are you talking about the STLs? I just 3D printed the parts

  Are you sure? yes | no

wulfman wrote 09/13/2016 at 17:16 point

I downloaded the files from, when i open them up on sketchup or solid works its not pretty. I can send a screen shot if your interested.

I am also seeing that the parts seem to be created in inches but the numbers are in cm. They do not correspond well  lol. When i import the parts and convert to the proper units the measurements are wrong. For instance the motor mount large gear drawing. The distance the holes that mount the part to the extrusions should be 20mm, what i see is the number 2 i can assume that's for cm but as the drawing units of measure is in inch when set to the proper unit of measurements the distance is 51.56 mm. This maybe due to some translation error when downloading them from It would sure be nice to have the original drawings before they were uploaded to that website.

  Are you sure? yes | no

Steve Owens wrote 09/10/2016 at 18:43 point

I am just getting in to the whole mechatronics and am finding it daunting just knowing all the names of the parts and what not.  Is there a way to learn things like what do you call the whatzigigger that fastens the doohickey to the thingamabob?  What is the stuff called that keeps cables so neat and how do you find these parts and get them to work together.  I am really looking for a basic intro.

  Are you sure? yes | no

Jarrett wrote 09/12/2016 at 15:37 point

Honestly, there is no quick way to get introduced to all of this, because there is so much.

Check out the McMaster catalog for pictures, descriptions, and brief intros on small topics, though, it's totally awesome.

They're using cable tray, with ty-wraps (or zip ties, zap straps, whatever) to organize the cables. Spiral loom or split loom are other cable management tools.

  Are you sure? yes | no

Adam Vadala-Roth wrote 06/10/2016 at 23:14 point

would like to know also, I'm print out my parts this weekend :)

  Are you sure? yes | no

bgbock2 wrote 06/10/2016 at 14:27 point

Looks like your BOM has only one vacuum source but the picture looks like you have four. Which is correct?

  Are you sure? yes | no

greg davill wrote 09/13/2016 at 23:52 point

The photos show 4 pneumatic solenoids. The single vacuum source enters through the black fitting. The 2 white fittings are left un-connected to release the vacuum for each tool.

  Are you sure? yes | no

Alexander Goldstone wrote 05/30/2016 at 23:11 point

Hi Anthony. Just started following this project and OpenPNP in general... I wanted to let you know that I would definitely be interested in a kit... especially the parts I don't have the equipment to fabricate myself but I'd also be interested in as complete kit as possible since I'd be using your BOM as my starting point anyway. I look forward to seeing how this progresses. I've just been catching up on the new head design people have been collaborating on in the OpenPNP forum and it looks fantastic.

  Are you sure? yes | no

Oskar Weigl wrote 05/07/2016 at 23:37 point

Hey! I'm working on a project to develop a really cheap brush-less servo motor controller, that should allow the use of cheap brush-less motors that heavily out-perform steppers. This may be useful if you want speed and/or avoid step-skipping. Check it out ;D

  Are you sure? yes | no

anthony.webb wrote 05/08/2016 at 16:34 point

Oh man!  This is cool!  How can I get rolling on a conversion?  I'd definitely be interested in improving performance, this seems like it could work.  Curious what kind of resolution you are able to drive?

  Are you sure? yes | no

Oskar Weigl wrote 05/08/2016 at 16:58 point

I'll send you a PM.

  Are you sure? yes | no

kweisi50 wrote 03/01/2016 at 10:34 point

Did you manage to test the placement of 0401  components yet, since you mentioned that you were having a test PCB made some weeks ago. Excellent project.

  Are you sure? yes | no

Anthony Webb wrote 03/01/2016 at 15:47 point

Hey Man,  We are still waiting on those test PCB's!  Ordered them during the Chinese holiday so I think they are a bit backlogged, but as soon as they arrive we will do a full test for sure!

  Are you sure? yes | no

Gordon Neue wrote 02/28/2016 at 14:11 point

Whao! This machine looks awesome! I especially love how you solved the vacuum connection to the hollow shaft steppers and your rail system. The machine looks very professional. Please keep us in the loop. Is there a github repository for this machine?

  Are you sure? yes | no

Anthony Webb wrote 02/28/2016 at 17:42 point

Thanks for the kind words Gordon.  No github repo set up yet.  If you look at the bill of materials linked here in the sidebar you will find all the cad files in a variety of formats to tweak the design, create your own parts, etc.  There are several people with builds in progress, its fun to see it replicated and solve real world problems for people on a budget they can afford.

  Are you sure? yes | no

georgefomitchef wrote 02/15/2016 at 08:52 point

DIY machine

We would like to know which DIY machine is better in terms of consumer
experience, with Arduino on board or just simply with stepper motors drivers.

Very interesting that software are pretty much the same but we would
like to have more opinions about customer experience.

You can write me here:



  Are you sure? yes | no

ottoragam wrote 02/01/2016 at 22:47 point

Hi Anthony, your project looks very clean! I was thinking that you should give the chinese rails another try (maybe you got some lemons). I'm currently building a desktop milling machine with the same linear rails you are using, but with the shorter blocks. I did find them a bit inconsistent in terms of how easily they would roll on the rail, but overall they work sufficiently well for me (the blocks can be slid by hand with little force). Have you tried using only oil to lubricate them? Also, I torqued the rail screws by hand with the shorter lenght of  an allen key, to avoid excessive deformation of the rail when its pressed against a surface that may not be perfectly flat. I say this because I feel that using brand name rails rises the cost significantly.

  Are you sure? yes | no

anthony.webb wrote 02/01/2016 at 23:00 point

Thanks for the feedback.  It could well be that I got some lemons.  I did lube them up good, and in general they would move fairly well and were accurate about 80% of the time, but I needed better reliability than that.  One way I am pretty confident that they would work is by driving both of the Y rails.  In my application one of the Y rails is passive which ensures that even a little stick here or there is going to give you fits.  I'm not totally opposed to that option, and if I was out to build the absolute cheapest PNP it might be worth another look.  I need my machine to work without fiddling around and be something I can rely on day in and day out so I am fine paying more for the good stuff.

  Are you sure? yes | no

Adam Vadala-Roth wrote 01/29/2016 at 21:38 point

This is amazing, I was thinking about doing a design that is almost exactly the same for my Picki project but I'm using TinyG for motion control.

  Are you sure? yes | no

Adam Vadala-Roth wrote 01/29/2016 at 21:38 point

This is amazing, I was thinking about doing a design that is almost exactly the same for my Picki project but I'm using TinyG for motion control.

  Are you sure? yes | no

anthony.webb wrote 01/29/2016 at 23:07 point

I quickly ran out of I/O on my TinyG, for 2 heads you need 4 I/O ports and the default TinyG2 firmware only has a couple. That is something that they will hopefully be fixing too, because I do love TinyG!

  Are you sure? yes | no

Adam Vadala-Roth wrote 06/08/2016 at 07:17 point

Hey so my machine is basically gonna be a TinyG fork of yours, I'm gonna build it as is for the most part, gonna print the parts. I will share anything I redesign/modify as I go. 

  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