Toward an open-source Pick and Place machine

So, there’s some really cool, empowering stuff going down these days with regard to manufacturing. Cartesian machines (i.e. CNC mills) are relatively simple to build from off-the-shelf parts; there are a bajillion people doing this and plenty of ready-made open-source designs available. More recently, hobbyists have gotten in on designing open-source rapid prototypers (3D printers); as a result, designs have now crossed the sub-$1000 threshold off-the-shelf, and you can even build a GPL’ed 3D printer that can almost replicate itself!

One thing that I haven’t seen cross the blood-brain barrier of proprietary commercial systems is pick-and-place machines that can assemble electronics. These things are badass; full of automated win and articulating robotic arms, but they’re also damned expensive: the crap ones start at >$10k and use literally a fishing-lure-and-weight type arrangement to peel back the tape covering tape-and-reel parts, so you have to keep resetting the weights. Those with more advanced / less manual feeders scale skyward from there. And of course, the software end of these things, especially machine vision algorithms to place parts more accurately, is some serious $ecret $auce. So… let’s change this!

Most of the “big stuff” is straightforward: The PCB layout software generates a list of coordinates for each part. A small vacuum needle mounted on a Cartesian head picks up each part from a known location, rotates it 90/180/etc. degrees as needed, and sets it down at its coordinates. It does not even need to be 100% accurate: surface tension of the solder during reflow will pull most minorly misaligned parts back into place.

The big barriers are:

1) Low cost / self-manufacturable feed mechanisms:
Electronic parts are packaged in several different ways, most commonly tape-and-reel, plastic tubes, or in trays. Each has a different, maybe cumbersome, way of knowing the location of the next part in the package and freeing the part from the package. Picking up stuff and putting it down is easy compared to dealing with the wide variety of tape and tube sizes reliably. Oh, and if your board uses 50 unique parts, you need 50 feeders. Hence the emphasis on making them cheap and mass-self-produceable, e.g. by CNC or casting or 3D printing.


2) Machine Vision
For larger parts, once the first part is successfully picked (e.g. by human intervention), it is enough to know how many parts per inch of tape, advance the tape a known amount per pick, then just grab blindly for the part and plant it at its destination coordinates. But for smaller and finer parts, this is not accurate enough: the parts can be slightly off-center or crooked in their tape wells, and this becomes significant as the part size decreases. Professional machines use a set of cameras and image processing algorithms to recognize the part, find its dead center and correct any rotational error. In theory, a suitably good vision system would allow you to peel back the tape and just sprinkle the parts on the table, forgoing feed mechanisms entirely at the expense of some small manual labor. Actually programming this algorithm on the other hand…

Another nice thing to have would be:

3) Automatic needle swapping. Many more advanced CNC mills are able to spit out their current tool, e.g. a specific size drill bit (in a known location in a tool rack) and pick up a different tool. It would be nice for the pick and place machine to be able to change to smaller and larger needles/suction cups to handle large and small parts seamlessly. If not, placements can be sorted, e.g. smallest to largest, so that the needle only has to be manually changed a couple times.

I’ve made some very initial feasibility-study stabs at building such a machine, and begun building a bit of hardware. I created a separate page for this project with more detailed specs/documentation and progress so far:
Pick and Place Project







7 responses to “Toward an open-source Pick and Place machine”

  1. DVandervort Avatar

    Hey Tim,

    I have been working on moving the passive components into tubes and using comressed air/gravity to fee them instead of a feeder for each reel(expensive.)

    Where my project is Software/hardware is about 80%. Hardware is slower for me, but is coming along.

    Darren Vandervort

  2. AlanS Avatar

    I like your ideas, you are spot on. Keep at it.
    The logitech c200 webcam is cheap, seems like it will be available for a while, and is compatible with linux. Do you have pictures of the machine you’ve got moving and your suction head?

  3. Tim Avatar

    @AlanS – The machine I will probably do my testing on is my ghetto homebuilt one seen in this post:
    (with the table put back on of course!) Once the hardware and software are in a usable state, I will probably be able (or strongly encouraged :-) to retrofit one of the spare Ozo routers at my work, so I will have access to a ‘good’ machine at some point too.

    I don’t have a placement head yet. There is a design posted at the RepRap wiki which looks promising:
    A camera mount will have to be worked in at some point, but this looks good for now. The actual suction components will most likely be a reversed aquarium pump, Luer lock needle and suction cup from one of those ubiquitous $3 SMD vacuum pens on eBay.

    For cameras, I also found the ‘Cubeternet USB 2.0 Webcam’ – inexpensive, manual focus and a ring of white LEDs for illumination builtin.

  4. AlanS Avatar

    @Tim – Wow, that Cubeternet USB 2.0 Webcam is cheap! and UVC! and built in leds!, thanks for pointing that one out.

    I made a suction head using an Elite 803 Air Pump (modified), and a T-valve secured and cented to a servo horn for rotation, i think its easier than the RepRap head, less parts to make and easy to control, since 180 degree travel is all you need.

    I’ve been spending some time designing and sourcing a timing belt driven set of axes to satisfy the higher speed requirements while staying inexpensive, ill post links when i get things online,

  5. redlored Avatar

    Something else might try, especially for focusing on small chip parts is Celestron(similiar) USB microscope with LED ring lighting. Problem with most webcams is can’t focus on small size components very well. I’ve had good sucess in primitive component identification using USB microsopes and OpenCV.

  6. Eb Avatar

    Not sure if anyone is looking at the posts much anymore but over the last few months made good headway in an Open PnP system. Good headway for a simple low cost vision system to help drive it anyway. Started playing with a linescan camera from Parallax and thier Propeller uCntrlr. Linescan is used on industrial pnp’s but linescan sensors are relatively simple to…Parallax already had source code for deciphering and sending back to a host computer. I think once get a vision system to work(almost there) the Open PnP will be in biz! will post again once I have the beginnings of a vision module using the two linescan’s I’m playing with. (That’s my off from work next week project)

  7. Erik de Bruijn Avatar

    I’ve recently done some work in getting this to work in my Ultimaker and RepRaps. I’ve found that an aquarium/membrane pump has a very inconsistent under-pressure so it didn’t seem useful to me. Perhaps I could put a jar or long hose in line with it to reduce oscillation. I started with your nr. 1 issue, a reliable feed. At least for tape feeding, I think I’ve got something good going on.

    For now I don’t rotate the parts, I just put the feeders in the right orientation. Of course at some point I need to print a rotating toolhead, but using a simple servo an L-angle in the hose, this shouldn’t be too hard. Basing it off your design could get me rolling with a pretty sophisticated design. I could also put the PCB on a rotating table.

    Anyway, after watching the little movie, feel free to comment.
    Also look at this page, where I’ve added some info:

Leave a Reply

Your email address will not be published. Required fields are marked *