Pick and place machine - Smoothieboard/OpenPnp

A dual head PNP machine that uses Openbuilds hardware, a Smoothieboard controller, dual camera vision, automatic/drag feeders, and OpenPnp

Similar projects worth following
A dual head PNP machine that uses Openbuilds hardware, a Smoothieboard controller, dual camera vision, automatic/drag feeders, and OpenPnp

This PNP build pulls ideas from many different machines that came before this one. I used the OpenPnp Openbuilds as a starting point. I wanted to have a usable machine without spending thousands, while being able to add things (like auto feeders, and a nozzle changer) as needed.

View all 6 components

  • Now up to 1200 parts per hour

    John08/12/2019 at 13:24 0 comments

    For some reason I didn't realize that running the Smoothieboard via ethernet was significantly slower in transmitting commands vs USB serial. I'm not sure exactly where the bottleneck was, but it probably had something to do with my router. Switching to USB made a significant improvement in speed, especially with anything related to vision. 

    Recently I also printed some new tape peelers for the existing auto feeders while making some new ones. These peelers were published here. I used sg90 servos, but gutted them so they are just motors. I'm sure I could've figured out how to use them or mg90 servos, but it was easier to just modify off brand sg90's, and cheaper than buying new faster n20 motors. 

    With these two modifications, the machine is now up to 1200 parts per hour with bottom vision off for 0603 parts. Accuracy is pretty good, but still needs some fine tuning. The recently added runout calibration to OpenPnp helps too! 

  • The machine in action

    John03/24/2019 at 11:56 0 comments

    Here are some test runs of the machine doing its thing. This is after a lot of calibration and cussing. 

    In the first video, you'll see moves between picking a component and going to the board are slow. This is because the head is rotating on the move, and the component is oriented to correct way by the time it arrives at the board. It doesn't really need to rotate the part in most cases. If you have a resistor or non-polarized cap set to 270 or 180 - changing the rotation values to 90 and 0 will make things go much faster. 

    For the second video, I had bottom vision turned on for testing. This was for LEDs (which really don't need to be precisely oriented), so things are significantly slower than they would normally be. I do need to adjust the feeders a little more though. They're somewhat inconsistent, especially with LEDs. 

  • Drag Feeder & Top Camera Issues

    John01/11/2019 at 16:57 0 comments

    I would have loved to have all auto-feeders, but that would increase the cost significantly. Especially since I don't have a 3d printer (I realize the Ender 3 is under $200 and could do the job, but one thing at a time). 

    So, I found this metal drag feeder on Robotdigg. After getting it, I realized that it sat too high on the table for the nozzles to clear it. That meant, I would have to mount it to the frame directly and cut out space in the table. 

    I had already cut a space in the table for the auto feeders. They also needed to be raised a bit, but that was solved by mounting them to a 20x20 extrusion, that was then mounted to the legs.

    Here is the drag feeder being positioned to mount to the frame. You can see how I ended up mounting the drag feeders as well. Note that the front and rear frame rails were moved to the legs from the initial spot under the pulley and motor mounts. This is because they were too high to mount the feeders to. This way I count mount the table to them as well.

    Here is the table cut (and the up camera mounted in the 3d printed case):

    There was another issue though. With the top camera mounted to the back of the head, it wouldn't be able to "see" the auto-feeders. Since the auto-feeders do not need vision, this would have been okay, but it is nice to be able to see where things are on all parts of the usable space. That and it couldn't see anything for the second nozzle when it was over the drag feeder either. 

    The solution? A different camera mounted between the nema 8 motors. It's slightly lower quality than the ELP camera, but it works. The only downside is it loses focus - I have no idea why, but it can be adjusted easily on the top. 

    The mount originally had a ball on the end of it. That was cut off and run through an M5 die. It screwed perfectly into the head where a nylon stop was located. Two nuts on it and it was pretty sturdy. The thumb screw was later replaced with a set screw.

  • Calibration & Auto-Feeder Assembly

    John01/11/2019 at 16:33 0 comments

    No matter how square you think something is, a couple mm in either direction can really throw things off. Luckily OpenPnp has a setting for this. It's easy to figure out with some graphing paper.

    Here are some other ways to make things more accurate.

    I found some auto feeders I liked here. There's a lot of parts to assemble, but there's a lot of well thought out features to make sure the tape is fed and peeled consistently. Check out the site linked above for details.

    This is the part that actually peels the tape with the N20 motor:

    Here are the assembled feeders mounted to the frame in the first thought of where they could be placed:

    Here they are all wired up:

    To the controller:

    Which also has two vacuum sensors.

  • Initial framework

    John12/07/2018 at 13:40 0 comments

    Starting out the build with the Openbuilds frame and mounting the head. Note that the gantry plate threads have to be drilled out to mount the x axis like this. It's a bit tricky to get assembled.

    The 3d printed camera mount is from the OpenPnp design. It didn't work too well in this location on the head and was rubbing on the nozzle plate.

    The solenoids and vac pump mounted. Flyback diodes were used at the connections for each.

    I had to disassemble the head to drill out the mounting holes a bit more to mount to the OpenBuilds mini gantry. They were m3 sized and needed to be m5 and countersunk a bit to clear the nema 8 mount.

    Running everything through the chain. I later realized that the tubing I used here was too rigid, so I switched it out for something softer just in the chain. The rest is still this tubing.

    After figuring out that the camera wouldn't work next to the head, I mounted  the (ELP) camera under the X axis. I later switched this out with another camera that fits between the Nema 8 motors on the head. I found that having the camera far away from the nozzles made the usable space less when the top camera needed to be used to align with the feeders.

    When originally purchased this was a 4x Smoothieboard. I purchased the parts to make it a 5x and soldered them on.  The BOM for that is located here. In the top left you can see where I let out some magic smoke from a MOSFET due to some reversed polarity on the power input for the small MOSFETS. When I turned on the LED light, POOF!  Whoops!

View all 5 project logs

Enjoy this project?



Mark wrote 09/04/2022 at 19:14 point

Hi John, I saw from your YouTube video that you added some upgrades to this.  Do you by chance have an updated BOM?  

  Are you sure? yes | no

tamimi wrote 01/20/2021 at 17:45 point

Excellent Job..Thank you so much......I would like to build a similar PNP machine, It would a great project. but I would like to know if you have any details about electrical schematics, assembly manual and the software 

I look forward to hearing from you soon

Best Regards 


  Are you sure? yes | no

Andrey V wrote 09/12/2019 at 14:09 point

It's too impressive to be true. Congrats!

  Are you sure? yes | no

John wrote 09/12/2019 at 14:56 point

I wouldn't go that far

  Are you sure? yes | no

Andrey V wrote 09/12/2019 at 15:43 point

I'm a little bit slower, than your machine)

  Are you sure? yes | no

sylv20_78 wrote 09/12/2019 at 13:50 point

It's verry impressive project. It's many years that i think to make something like this!!
I am mecractonique ingenier but now i make electronic devellopement, but when i have seen you pick and place machine.... I love that!!! I with with my CNC and 3D printer, i can build omething like this.
Congretulation it's verry nice projet, and that motivates me :-)

  Are you sure? yes | no

John wrote 09/12/2019 at 14:56 point

Thanks for the kind words! Glad I could motivate!

  Are you sure? yes | no

shane.snipe wrote 08/17/2019 at 16:43 point

Hi John, We are doing something similar with Fox.Build PNP. You show a real preference for the feeders. We have not started running ours yet and I do not understand the advantage of the feeder over the 3D printed cut tape holders. Making the feeders looks like a lot of work. Is it easier for setup?

  Are you sure? yes | no

John wrote 09/12/2019 at 14:54 point

Sorry I didn't see your question sooner!  I have some cut tape feeders too, and they're fine, but a pain to reload and recalibrate. The auto-feeders are a lot of work to assemble, but once they are setup and tuned a bit, I can put a whole reel on one and not have to worry about it much. 

I've had a couple of the new tape pullers jam and burn out the motor. The only reason that happened is because the tape bunched up in the gears - this wouldn't have happened if I had a little weight on the end, but  99% of the time it's fine without anything.

  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