DIY Pick And Place Seems Easy To Build

We’re not saying it’s a simple project, but the build methods that [Alan Sawula] used for this DIY pick and place are probably the easiest we’ve seen yet. As this is just a CNC machine, the methods he used would also work quite well for mills or other machines. Instead of using precision rods for the X and Y axes, he used square tubing. The tubing is oriented more like a diamond, with the ninety degree corners providing the travel surface. Two bearings with a shim between them provide a groove that rides along the corner, and since this is square and not just ‘L’ bracket, the sleds are secured both above and below the tube. Stepper motors provide the movement along X and Y, with a servo motor for Z and another one to rotate the medical grade needle that serves as the vacuum tip. Starting four minutes into the video you can see that this not only works, but it’s lightning fast!


44 thoughts on “DIY Pick And Place Seems Easy To Build

  1. Has anyone seen other examples of the square-tubing-plus-skate-bearings approach? I’ve seen gaspipe stuff, and angle-iron stuff, but I’m not sure I’ve seen the 3-point square tubing stuff before.

    Seems ideally suited to laser fabrication… definitely cool.

  2. Next step: component dispensers that work with commercially available tape packaging.

    The only downside to this is that fact that the usefulness diminishes unless you have a large amount of boards to manufacture. But it is a great alternative for companies that have a need for these kinds of machines.

    What I’d really like to see is a RepRap machine with a solder paste extruder, a SMD part manipulator, and a PCB/flat stock mover all rolled into one. You could feed it parts, a PCB, and plastic, and end up with a finished project as the end result.

  3. Actually, I could totally make use of something like this. For many jobs I do, I need to assemble between 5 and 20 boards. Some of them with a large(ish) number of parts. Putting the solder paste down is fast (stencil), reflowing them is fast (pizza oven). But putting all those damn parts down? Super slow. Too expensive to farm something like that out, but still a large amount of my time to hand place the parts. Yup, I’d make one of these if it all worked well.

  4. Mechanical part has good design ideas. But I am always confused not about mechanical part, it can be done. The problem for me always seems to be software. If there would not be a good open source software, than there is no point of building hardware. Also board design software has to have a feature of putting out G-code for PnP.

  5. I wonder if he has good precision, I mean he never moves in x or y after releasing the part. It is very cool and I hope he succeeds. Makes me want to build something with aluminum and skateboard bearings.. :-)

  6. this looks like a good start – but like the creator says – it’s primarily just a CNC with a modified end effector. the real value will be realized with automated component dispensing, as another commenter pointed out. also, i’d love to see how something like this would tie into known control software, such as EMC2 (especially using feedback from the camera). in order for that to work, the component dispensers would probably need to have the capability of working autonomously with respect to the rest of machine (they’d require too many outputs on a standard parallel port. . . using EMC as an example).

  7. Very cool. I have been working on something similar. Mine is using a stock CNC with a custom head on the Z axis. For software check out EMC2 for CNC control and OpenCV for computer vision. As others have pointed out, the tape feeders are a real challenge. Does anyone have any suggestions on tape feeders?

    I like his Z axis design better then mine. Grumble.. Grumble.. Back to the lab. :-)

    Seriously though, this is very impressive. Excellent work!


  8. good build! of all the DIY methods i’ve seen for linear motion using skate bearings, this one looks like one of the simplest and most practical to me (and affordable). I can see myself having a go at sometthing like this.

    bearmos has a good point, how does this plug into existing control software?

    question: anyone know of an open source cnc software (e.g. like emc2) that runs on windows? or does anyone know if it is possible to run emc2 on linux on windows (by using a virtual linux machine on vmware or virtual pc or such like?)

  9. @twopartepoxy

    from my limited experience, you can run EMC on a virtual machine, but only in ‘simulation’ mode – which disables actually controlling anything. i forget if the real time kernel modules didn’t get installed or if there was some other problem. . . someone with more experience may be able to elaborate.

    however, since the hardware resources required are extremely limited, you can probably dig up some old hardware from *somewhere*. for example, i’m currently using EMC2 on a >10 year old desktop running a 1GHZ processor and (maxed out) 512MB ram. with this setup, i’m controlling a 3 axis machine with half stepping at 12 and 30 ipm and 8th stepping at ~60 ipm. there are some intricacies in the setup, but the point is that it really doesn’t take much of a machine to control things decently.

    the other thing to consider is dual-booting your machine. ubuntu will create a linux partition without harming existing windows data (i’ve done this successfully a few times).

  10. @EmbeddedMan – Thanks! I’m in your position and that’s exactly the motivation that started me on this path. I plan to make kits to sell, since sourcing and shipping are a pain for each component individually.

    @Erik Johansson – The precision is not bad, resolution is dependent on pulley diameter and is currently 0.24mm per step, so with 1/8 microstepping i should get 0.03mm resolution. The motors I am currently using are $5 surplus store motors and don’t respond well to 1/8 stepping, 1/4 is better and being used in this video.
    I’ll show x-y move and pick up parts from a flat cut tape next video.

    @Steve – Great to hear you’re working on something similar! I’ve used EMC2 with a CNC and I think its great, but for my software I need many additional components such as vision feedback, component inventory management, and probably lots of other custom functions, so I thought it would be best to start from scratch. The motion control is done by the atmega328 chip on the Arduino based on serial output from the computer, so the setup is slightly different than EMC2+Parallel port. I’d love to see your OpenCV results, I am using OpenCV too.

  11. i didnt see the “lightning fast” part in the video – it just rotated that part and put it down – no movement involved.

    also why do people DIY pick and place machines? you need so much more to make it useful. like automatic feeding of the smd parts for example. and a huge amount of boards to make it worthwile.

    this is what lightning fast looks like btw:

  12. @Alan Sawula

    hey Alan, do you have a project blog or website for this? those of us that have taken an interest in your project would appreciate a link so we can check back periodically / contribute, etc.

  13. @Swankie – I’ll agree, its speed is dwarfed by pretty much all pick and place machines in existance, that it why it is not suitable for medium-large production runs, and why it can be built for a fraction of a fraction of the the cost. Speed will increase when I upgrade the stepper motors which currently cost me a whole $5 each.
    There was a small movement between picking and placing, it was just a primitive demo though.
    I expect designing and building the feeders will be easier than perfecting the machine vision.

    ps, lightning fast is more like this:

    @bearmos – Currently I don’t have a blog or website for this. When I do I will let you know.

  14. @Swankie
    Your video may show what lightning fast looks like, but it also shows what $100k+ looks like.

    There is a big difference between a commercial PnP machine and a DIY one. I have no use for a commercial machine, but a simple desktop unit that I can use to assemble a half-dozen prototypes? Sure, I could use that (and afford it).

    – James

  15. Hmm, I got a CNC mill kit, and the rails have the bearings mounted on a piece of metal at 90 degrees to each other, and then these rest on a circular rail; so that the bearings meet the rail at the centre of their ‘treat’. This looks like it’s the side of the bearings that touch the rail; won’t this wear them down? Great job anyway.

  16. @CH – You’re absolutely right, I knew that this sandwich could be problematic with an aluminum rail but I thought I’d give it a shot. If it gets to be a problem the two solutions I see are switching to v-groove bearings or using a square rail whose hardness matches the steel bearings.

  17. @Hackius
    here’s an example of how to calculate deflection for parker aluminum extrusion. check out page 14 of this pdf:
    for the 12-020 (20mm x 20mm with internal web) there is virtually no deflection (~.00000003 mm) with a 3m length, fixed at both ends with 5 pounds applied int the middle.

    for a more quick and dirty estimate for deflection of hollow tubing (i’m assuming), check out this calculator someone threw together:

    if we were to use mcmastercarr 88875K523 tubing as an example: 0.75″ square .125″ gauge aluminum tubing that’s 3 feet long and fixed at both ends, you can expect to have about .005″ or .127mm of flex in the middle when you apply 5 pounds of load to it. granted, i imagine most of the time you’d choose an extrusion with an internal web for an application like this.

    as far as straightness goes, i’ve seen 0.0125″ per foot a few places now (here’s one:

    so for a 3′ section, we could expect a deviation of .0375″. for a 2′ section, it’d be more like 0.025″.

    thinking about how this would relate to the usability of the machine. an 0805 resistor is .080″ x .050″, so if we had a DIY pick and place that was 2 feet by 2 feet, we would expect inaccuracies of up to 25 mils (.025″) per axis, so when we went to place our 0805 reistor/cap/whatever, we’d wind up being off by up to 25 mils (half the width of the component). if you had an IPC low density footprint, each pad is ~.063″ x .059″. if our pick-n-place puts down a component and it’s off center by 25 mils , then we’ll have 15 mils of the component hanging off the pad (since we have 10 mils of extra pad space per side).

    someone that’s done DIY re-flow before can probably tell you whether or not having an 0805 component hang off of a pad a little bit matters (i don’t think it does). if you go smaller than 0805 you might start to have problems though, but you’ll have other challenges with tomb-stoning at that size anyway, i think.

  18. would it be worth-while to move this discussion over to a forum thread? if so, could we get an edit to the article that directs interested readers to the thread instead of making them wade through the comments?

  19. thinking more about the implications of straightness. . .if we have .0125″ per foot and a two foot table and went to place a QFP with .5mm (~.02″) pitch pads. it could be off by as much as .025″, which would wind up placing the pins on the wrong pads entirely…this would be a problem.

    has anybody actually worked extensively with aluminum extrusions before (in this context), or know of a more accurate straightness spec?

    my gut feel is that there’s an extrusion out there that would be good for this application – i’ve seen plenty of linear positioning systems based around aluminum extrusions that have accuracy far better than what’s needed for DIY pick-n-place. . .

  20. Very very cool that you’re doing this.

    I am worried about accuracy. Being a bit off for 0805 isn’t a worry; surface tension through reflow drags the component back in. As you say, going smaller may be more tricky. But also what happens with various IC packages?

    Are you going to include nozzle changing? How does a nozzle for 0805 resistors cope with a 16 pin IC?

    Also, if this is for small runs, bear in mind that some component suppliers are awful and will supply 200 resistors in strips of 10, rather than one strip of 200. So, being able to dump them into a bin and have the machine pick, rather than have an operator transfer all 200 components to a single strip, would be good.

    I used to operate a little Europlacer machine. I hated it.

  21. @anonymus – Thanks for the feedback, you have much more experience on this that I do so I really appreciate it.
    I think the machine will max out at 0603 when I change to a smaller diameter drive pulley and a more powerful motor.
    Nozzle changing will be present, currently i have several blunt dispensing needles that can be manually attached and removed from the luer-loc adapter. Rubber tips for the ends will be used for larger chips. This will be a pain without an auto tool changer so the design of one is in the works.
    Depending on the size of the chip the current 0.7deg resolution of the c-axis may prove inadequate,
    Thanks for the heads up on strips of 10, I will have to think about the bin of components situation and see how I can build it in.

  22. @bearmos – I’m not sure your calculation represents the pick and place well, 5 pounds is a huge amount of weight, and any deflection would be in the direction of force (gravity), so only error in z. There are also two rails for x, so they share the load of the y and z, and the load felt by the y rail is. If flex gets to be a problem I will likely increase the size of the tubing.

  23. @Alan

    The main point was that deflection wasn’t nearly as much of a concern as the error in the straightness tubing itself. I was just pointing out the straightness of the tubing over a larger table (~25 mils @ 2 ft) could become problematic (especially for placing something like a 64 pin QFP), so it’s something worth thinking about, depending on your machine’s dimensions.

    I think the work you’ve done so far is excellent, I’m merely trying to provide some helpful facts and possibly an alternative point of view – the goal is to get as much information out there as possible to save other people some time and have more fun!

  24. @bearmos – Oh, ok i misunderstood the point. That could definitely be problematic so I’ll keep an eye out. I have a feeling the low cost version of the machine may not be able to do some of the finer pitch ICs, and those could be done by hand with the machine doing most of the grunt work. We’ll have to see.

  25. While it is true that the extrusion may not be straight this is only a issue on the new machine, once it is calibrated (vision system) the nonliterary can be factored in and the precision can be made equal to the resolution of the vision system or other method used for calibration. So it is a design issue once calibrated it can be minimized. I’ve had many boards professionaly assembled and at least half the boards seem to have one component (resistor, cap, IC) that seemed to be placed off one or more pads so even the 100K machines aren’t perfect.

  26. I’d also like to congratulate the builder as this is obviously a great achievement especially for a first effort. While I think there is a market for a cheap pick and place it would be even more valuable as a function on a machine that can also route PCBs or light milling (wood/aluminum).

  27. Cool! I’ve been doing a very similar project, just built a stepper-based vacuum head that bolts to an arbitrary CNC mill, and have the beginnings of a tape-and-reel feed mechanism designed ( Also, a program for generating tape feed sprockets.

    There seem to be a lot of folks interested in DIY / open source pick & place lately – is there a place where people are collaborating on this, or everyone just kind of rolling their own?

    BTW, I love what you did with the aluminum angle and belt drive – much faster than the leadscrew CNC I’ve been playing on!

  28. Really Kool, will you tell me please which control software you used to interface it with camera detection? forexample if i want to detect positions in it, and the same concept as you did should work automatically, i i dea how should we do it?


    1. @Saw

      Thanks, the control software has no camera integration as of yet. Haven’t worked on this in a while, but the opportunity to work on it again is coming up soon. The general idea is to write a program that interfaces to the usb webcams i’m using, and use computer vision techniques to identify pad locations within the image. The OpenCV library/package is the go to for this kind of work. I have seen implementations using EMC2 and a separate camera application, and I have seen some people buy a complete application from a PNP manufacturer, however I would like to build this application from the ground up.

    2. @Saw

      Thanks, currently the software to interface it is just sending basic g-code-ish commands over serial, there is no camera integrated as of yet. The go to library/package for this kind of work is OpenCV, so I need to write an application to perform the pad detection and also control the machine.
      Haven’t had time to work on this in a while though.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.