DIY Pick and Place Machine - Part 1

Be sure to check out the other posts in this series below.
Part 2
Part 3

Well, it sure has been a while since i've posted anything, but that does not mean i've been idling my time away.  One of my projects since my last post has been starting  AIR Patch Cable was setup because I was disappointed with the selection of Aviation Intercom Recording cables on the market.  Everything was either way over priced, of such poor quality, or both, that I didn't want to plug them into my camera, let alone a planes intercom.

For AIR Patch Cables I designed a cable with capacitive coupling and passive attenuator pad to make interfacing to the airplanes intercom simple and sound great.  To fit everything into the phono jack backshell meant that I had to put the attenuator and capacitive coupling passives onto a circuit board.  Below is a picture of these circuit boards.  P.S. If you or someone you know is a pilot, you should check out

So, how are all of these SMD circuit boards going to get populated?  Well, to start out, by hand.  That is no easy task,  however, and so I decided to build a robot to make these boards for me while I attend to other things.

In actuality, this machine probably needs supervision, but there are other benefits to robotic assembly even if I have to sit there and supervise the robot.  A robot, or perhaps more accurately named a "Pick and Place Machine" in this case, is unlikely to place a 100 ohm resistor where the 1000 ohm resistor is supposed to go, or put that diode in backwards, thus rendering the entire circuit useless.  Perhaps the biggest benefit is that my eyes and neck will remain in relative comfort.

OK, so this is where we are so far.  I titled this post "... Part 1" because my machine does not pick nor place just yet.  But what I have achieved is a milestone.  I have programmatic computer control over a 3 axis machine.  This would be considered a starting point for many projects.  From here you could make a laser cutter, a CNC mill, a 3D printer, or in my case a pick and place machine.

Lets cut to the chase and put up the video and we can talk about it a little more later.

Below you can see a shot of the overall setup.  I'll break it down a little later.  For now, just enjoy the pics.

In the top pic you can see the mechanical setup and the computer that controls the stepper motors.  The next pic down you can see the stepper motor drivers.  Finally, in the third pic is a photo of the software, LinuxCNC which are the brains of the operation.

An over simplified explanation of operations is that LinuxCNC reads a G-Code program that you wrote.  LinuxCNC then controls the host computers parallel port where the stepper motor drivers are connected.  The stepper motor drivers are electrically connected to the stepper motors which are in turn mechanically coupled to the XYZ or 3 axes of the machine.


When I first considered making a PnP ( Pick and Place ) machine, I started looking at linear bearings from the usual suspects.  Thompson and Igus, namely.  I quickly found out what I already suspected.  Linear bearings are expensive.  During my search however, I came across a 3 axis mill kit for about $300.

I could not pass this up.  It would suit all of my design criteria for this project and cost less than if I designed my own.  The kit is called a Shapeoko 2, and it is sold by a company called Inventables.  Here is a link the kit.  If you are planning to build the same robot I did, keep in mind I only ordered the mechanical kit as the electronics didn't really suit my needs.

The kit was pretty easy to assemble.  I don't really know how long it took because I did it over the course of a while.  I would strongly consider building future rigs with the "maker slide" linear bearings that Shapeoko 2 uses.  Aluminum extrusions are plenty stiff for this project and I suspect many others.

The mechanical kit from Inventables does not come with all the mechanical components.  I ordered MXL belting and pulleys from ebay to complete the mechanical side of things.


I decided to use the Big Easy Driver for driving my stepper motors.  This is a stepper motor driver designed by Brian Schmalz and sold by Sparkfun Electronics.  Brian was very helpful when I emailed him about some compatibility questions I had.

There is a potentiometer onboard each Big Easy Driver to set the motor current.  Too low and the motor is uncontrollable.  Too high and the driver gets too hot.  This fact must me accomidated for when you are setting up your motors, one by one.

I ordered 5 of the Big Easy Drivers to go with the quantity five, NEMA 17 motors I ordered from ebay.  I am told that NEMA 17 is about the biggest motor the Big Easy Driver should be used for.

I was really impressed with the torque these NEMA 17 motors have when paired with the Big Easy Driver.  I couldn't pinch the 5 mm output shaft with my fingers to stop the motor from turning.  I offer that anecdotal statement in lieu of data sheets or a torque measurement.


I am using LinuxCNC for stepper control.  I was really impressed with how easy everything was to set up.  I'll go ahead and post a couple of setup photos with parameters I have found to work with the Big Easy Driver.

Oh, LinuxCNC runs on Ubuntu 8.04 or 10.04, so be prepared to downgrade.  Having said that, 10.04 is a dream to work on.  You can even download Ubuntu 10.04 with LinuxCNC pre-compiled.  That's what I did.

Below are some screen short of my configuration thru StepperConf in LinuxCNC.

I wrote a CNC program to control the PnP machine.  I stuck a pen on its Z axis, and below are photos of the result.  Pretty good so far I'd say.  The first word I wrote was Gangsta., because, you know, G-Code.  After that, I had my PnP machine pen the Japanese phrase "Domo arigato", leaving off the presumed "Mr. Roboto".

Next Steps:

OK, so we have computer control of a 3 axis machine now, but what is left to make this a pick and place machine?  Well, quite a bit actually.  I need to tidy up the wiring, and properly mount things like the stepper drivers.  We need a method to feed the SMD tape.  A vacuum needle for picking up the parts.  An "A" axis for rotating the picked up part about the Z axis.  Oh, and I'm planning to make this a robotic solder past dispenser too.  Machine vision is a lofty goal that I may revisit a a tertiary upgrade.

If you have any questions or comments, feel free to leave a comment below or send me an email from the "About Me" section in the right pane.


John Canniff said…
For computer vision take a look at open csv. Its complicated but might be worth a look.
Pedestrian said…
OpenCV... Usually PnP machines use fiducial markers on the board to orient themselves. Good Luck!