A pick n place machine to finish jigsaw puzzles

Similar projects worth following

Every winter my family starts a 1000+ jigsaw. They get about 200 pieces in and then leave it. I can't NOT finish it. To end this problem once and for all I'm building a machine to let the internet join in our fine family tradition. If a robot can finish one jigsaw puzzle it can finish all jigsaw puzzles and I can relax.

JigSolve is a CNC pick-and-place machine with an air pump, a rotation system, and a web camera. Users online can see the camera feed and send commands in an IRC channel monitored by the machine. Think "Twitch solves a jigsaw puzzle". Maybe an order of magnitude more difficult than playing Pokemon.

When running, the IRC bot is on Freenode. Flooding is prevented by executing commands once a second, and tallying votes between executions. The IRC bot is a mod of an open source Java bot.

Basic commands are:

* N: move Y+1mm

* S: move Y-1mm

* E: move X+1mm

* W: move X-1mm

* U: pick Up a piece.

* D: Drop a piece.

* L: turn nozzle +1 deg (ccw)

* R: turn nozzle -1 deg (cw)

The original machine was a corexy gantry I designed with ~80cm working area and about 2cm of Z travel. It had an Arduino clone running Makelangelo-firmware from the Makelangelo robot project. The camera was a Logitech webcam, stripped of it's plastic shell and mounted on the gantry head.

The new version is an Inventables X-Carve with a Raspberry Pi B and a PiCam. It has at least 75cm travel XY and ~4cm Z travel.

  • 1 × logitech webcam
  • 1 × RAMPS controller with at least 2 stepper drivers
  • 1 × Arduino MEGA 2560
  • 1 × 12v30a power supply overkill
  • 2 × NEMA17 stepper motors

View all 17 components

  • IRC bot rewrite; monetization; assembly photos

    Dan Royer07/07/2017 at 02:20 3 comments

    Since the last update

    I fought a hell of a long time with my DIY Prusa i3. Nothing sticks to any bed, and I blame the nozzle. I've ordered two new Prusa i3s from Prusa himself, so fingers crossed that'll go better.

    Meanwhile, back at the farm

    While we wait for delivery I've been using the Tinkerine printer at the Vancouver Hack Space to print parts from my design.

    and I've attached the Raspberry Pi B to the side of the X-Carve collet. I've also modelled a place to attach the air pump.

    The Pi camera talks to the pi which Wifi's back to the PC 3 feet away. The PC runs a Java IRC bot which listens to user commands and then translates them into GRBL, the firmware running on the X-Carve.

    Either the PC or the Pi will upload the camera image to the internet - I'm not sure which yet, but Pi would be more straightforward. I wonder about bandwidth. There is a separate special PCB that runs the stepper driver to rotate pieces when they are picked up and turn on the air pump. This PCB could not be connected to the X-Carve directly with ease. I could reuse some of the extra connections on the back of the X-Carve (coolant system?) but that makes me uncomfortable.


    At some point this robot has got to start paying for itself. I considered banner ads on the video feed, corporate sponsors, and a few other options. All of them seemed like a lot of long term work. I want to turn this on, scatter the jigsaw pieces, and then walk away. So instead I'm taking a page from and to sell off the squares under the jigsolve. There are 75x75 1cm squares, and I'm thinking $2 each is very fair. 300dpi print covering the whole table should be 118 pixels on each side of each square (300*10/25.4). Plenty for all kinds of messages or fun pics! Plans are already being drawn up for a short kickstarter video to promo this project.

    I'm glad we had this talk

    I'm heading out right now to pick up the last mounting hardware for the air pump. If it fits then tomorrow I rewire all the components and try to get through the unit tests. Maybe even an integration test! God laughs at the plans of mortal men.

  • modelled and added camera

    Dan Royer06/14/2017 at 16:08 0 comments

    TBH I have no idea if the camera can see the nozzle tip from there or if the image will be in focus. More than a little important! I'd be very grateful to our lizard overlords if I did NOT have to build a mirror system to get the image to the camera.

    The M2*20 screws were hidden when I took this screen shot. ( •_•)>⌐■-■ (⌐■_■)

  • X-Carve assembled

    Dan Royer06/13/2017 at 22:33 0 comments

    I bought and assembled an X-Carve CNC. I am now designing a few parts to hold the rotating air nozzle that will pick up jigsaw pieces. (purple plate, pin, plate, yellow tube.) once I can turn and suction up pieces I'll add a few more bits to hold a raspberry pi camera, which will be mounted to look down at the nozzle.

    Here's the X-Carve mostly assembled.

  • X-Carve to the rescue

    Dan Royer05/18/2017 at 16:57 0 comments

    This has been on the backburner for too long, sitting in a corner and taunting me with it's unfinished business. The problem is not the suction nozzle or the camera or the code - it's the janky gantry I built, partly to save money and partly to learn about CoreXY systems.

    Business is good and the money is there, so I've purchased an Inventables X-Carve machine. Once it arrives I'll mount the suction nozzle instead of a cutter and run the system like that. Later when the thrill of jigsolving is gone I'll repurpose the X-Carve as a traditional CNC machine.

    More when the X-Carve assembly happens.

  • iterating on gantry design

    Dan Royer11/15/2016 at 23:30 0 comments

    The suction is tested; the up/down is tested; the rotation is tested. Now the working head has to be mounted on the gantry, which is forcing @lethic to redesign the side carriages:

    and then make the corner mounts of the gantry change to match as well. Both have to be changed before we can test. It's not a one-at-a-time kind of deal. Boo!

    So! We have progress, which is nice. I have to resurrect the IRC bot and check all that software that was ready a year ago is still working. I'm also trying to make a new jigsaw puzzle that won't have the tight fitting pieces, as well as organize a collaboration with an art gallery or science museum to host our robot while the "game" is running. (I lost the game.)


    Somehow I've gone from being a person who makes robots to a person who talks about the awesome robots he is paying other people to make. Is that a step up? Only if I can find a way to do it even more.

  • testing piece separation

    Dan Royer10/18/2016 at 20:58 0 comments

    Yesterday eve LZ and I printed springs made from ABS and cobbled together a springing ring. Ideally the spring holds the jigsaw down while the target piece is being added/removed.

    So far it looks like the suction power of the air pump fails before the springs or the jigsaw separates. Back to the drawing board!

    Please like, share, and subscribe!

  • tested rotation, picking, and placing

    Dan Royer10/17/2016 at 22:25 0 comments

    Controlled rotation, picking, and placing demonstrated. I've built a Z axis with a linear actuator and have not tested it yet.

    I'm now building and testing a spring loaded mechanism that keeps neighbor pieces on the table when the current piece is inserted or removed.

    If you're enjoying this robot coming together please tell instagram to put me on their robots channel so I can bring this kind of cool stuff to more eyeballs.

    "Hi @Instagram! Please put @i-make-robots on your #robots channel. Thank you!"

    Thank you in advance for sharing with your friends and following along. Your support keeps me strong!

  • Rotate + vacuum assembly

    Dan Royer10/11/2016 at 18:09 0 comments

    Here are the 3d printed blocks from the previous post and the rotation/nozzle assembly together on a car that will ride on the X axis of the corexy frame. Currently I'm building and testing the lifting mechanism. The lifter moves Z0-2cm.

    Now anyone who's ever done a jigsaw puzzle knows they're not well cut pieces. Sometimes I lift a piece and the neighbor pieces stick to the one I want. The robot has to deal with this undesirable behavior. my lifter has a spring-loaded ring around and slightly below the nozzle. When a piece is being lifted the ring should be holding the neighbor pieces down. When the nozzle is placing a piece the ring should not interfere. When the head is moving across the table, with or without a jigsaw piece, the ring should not touch the pieces on the table.

    Today I'm 3D printing and laser cutting the wood parts to assemble this version and do a live test.

  • nozzle mounting

    Dan Royer10/05/2016 at 21:28 0 comments

    We're waiting for parts to be delivered from our suppliers, and since the website is moving smoothly and tutorials are getting written I've taken a few days to prototype mounting systems for the pick and place nozzle. Above are some of the test prints.

    I'll probably leave it open-faced and zap-strap around the parts to hold them in place while still being accessible. The next step is to mount them on a system that can be raised and lowered. Then that system has to mount on the gantry and I can finally get back to lifting a jigsaw piece.

    The biggest question right now is which way to point the web camera. I think straight down, but still able to see the nozzle tip is the best. I suspect the camera should NOT move up/down, to make it easier to aim the nozzle.

  • New pnp nozzle arrived

    Dan Royer09/22/2016 at 22:40 0 comments

    The new nozzle arrived from RobotDigg. It's two months late and never included the tracking number I asked for. Also I told them I wanted 150cm wire from the motor and I got 25. Also I told them my hose is 1/4" ID. Did they include a male/male 1/4" connector? No.

    On the plus side the manufacturing of the part seems OK. @Aidan Leitch's soft nozzle seems to fit like a dream.

    Every design problem trickles down from the nozzle. Tomorrow I hit the local hose & fitting supplier to get the missing adapter. Once nozzle tests pass, then i mount the camera above the nozzle and build a new z actuator. Then redesign the X carriage to hold the actuator. Then the Y axis. Then the cable management. With a little luck this thing will be working for the holidays.

    These days... I find my patience is short and life moves WAY too slowly. I will pay for talented help. Marginally Clever is doing well and could be going so much faster.

View all 21 project logs

Enjoy this project?



Sam P wrote 01/25/2016 at 15:03 point

Awesome project! I can't wait to see this working.

One issue you might have is the NESW controls resulting in random movement from indecisive people. If that doesn't work then a grid system might work. You could divide the space into a grid and give the users a few seconds to choose a square. Once a square has been picked divide that into a smaller grid and let them choose again. Repeat until the required resolution has been obtained.

You could also remove the need to have pickup/place commands if you force a set sequence to follow: move->pickup->move->rotate->move*->place. The fewer options the user has, then the less chance there is of disagreements ;)

*move after rotate would allow the position to be refined

  Are you sure? yes | no

tankueray wrote 01/22/2016 at 07:39 point

Also, if you don't need all of the functionality of the RAMPS, I would suggest the Arduino CNC Shield v3 or 3.10, which uses GRBL and is more compatible with a PNP machine:  Protoneer (Bertus Kruger) is also always willing to answer questions.  No idea whether it's compatible with the firmware that you've chosen though.

Or you might be able to use his Raspberry Pi CNC Hat?

  Are you sure? yes | no

Dan Royer wrote 01/22/2016 at 19:08 point

I had a ramps in stock, it's pretty convenient.  You've given me a plan B. Thanks

  Are you sure? yes | no

tankueray wrote 01/22/2016 at 07:30 point

This might also be a ready-made solution for your nozzle/vacuum if you can add a 3D printed soft tip to it, or maybe a piece of latex tubing: (possibly also a cool desoldering pen somehow).  Hobby Lobby in the US sells them in-store (and you can use their nearly-always-available 40% off coupon for it).  There's also a professional version that has a much bigger control box.  I think I can get you in touch with the manufacturer through one of their importers in Philadelphia. (Nevermind, Aliexpress has them now:  Also, you might be able to build the nozzle prototype and silicone mold it (Hobby Lobby also carries those supplies, or make your own with silicone caulk, corn starch, and food coloring - videos abound on YouTube).

For the robotics, contact Matteo Borri (; he was on Team Bronco on Battlebots, does contract work for NASA, and is the inventor of the L-Cheapo laser attachment  (FD - I'm a distributor).  He seriously knows robotics and is almost always willing to help out if he has the time.  Also check out for other PNP designs and assistance.

  Are you sure? yes | no

Juha Kuusama wrote 01/10/2016 at 14:00 point

SMD pick and place manual pens come with a set of rubber suction cups. My SMD pick and place machine is an open source design and might give some inspiration:

  Are you sure? yes | no

Barny Relph wrote 01/10/2016 at 09:12 point

Very interesting project! I'm looking to use CoreXY on a medium format (where I'd consider your project large and the average 3D printer small) laser engraver. What diameter rods are you using and how much sag are you seeing on them when the carriage is at mid-travel? 

I'd imagine for your project sag may not be too critical, but I'd be very curious to know. I'm currently wondering whether I can get away with steel rod or whether to use 2020 extrusion. 

  Are you sure? yes | no

Dan Royer wrote 01/22/2016 at 19:01 point

3/16"? It works out to 7.95mm, so 8mm linear bearings fit great.

  Are you sure? yes | no

Stephen Downward wrote 01/09/2016 at 22:41 point

Have you considered a 3D printed nozzle made of ninjaflex?

  Are you sure? yes | no

Aidan Leitch wrote 01/23/2016 at 12:10 point

Unfortunately, parts made with FDM printers are not very air tight.

  Are you sure? yes | no

Stephen Downward wrote 01/23/2016 at 14:51 point

If you make them thick, while printing hot, slow, and at .1mm layer height, they could be.

  Are you sure? yes | no

jklu wrote 01/09/2016 at 18:49 point

Now we only need to wait for the next smart guy to use an algorithm to puzzle your jigsaw based on the image of the pieces ;-)

  Are you sure? yes | no

Alex Rich wrote 01/09/2016 at 13:43 point

actually here you can buy just the vacuum pen cups here:

  Are you sure? yes | no

Alex Rich wrote 01/09/2016 at 13:42 point

Look for a vacuum pen and hack the suction cups on that into your nozzle.  They are tiny.  If you can live with slightly larger, mcmaster sells some that are 1/4" diameter you can trim down to 5mm probably.

  Are you sure? yes | no

Adam Fabio wrote 01/08/2016 at 03:16 point

Ok - this is freaking awesome! I could totally see this being the next "Twitch plays... " as well!  If you're still looking for a nozzle design, rubberized filament like Ninjaflex could be used to make something custom. 

  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