"Assisted Manual" Pick and Place Machine - Page 1
Forum section: electronics / general

author: JohnSL
author_rank: Regular Contributor
timestamp: August 02, 2016, 05:06:51 am
content: For a couple of months, I've been working on a pick and place machine that is designed first for building prototype boards, and second for small and medium runs. I've been building prototypes and small runs. Most of these I build by hand, but for some, I designed and built a manual pick and place machine:http://trains.socha.com/2014/07/building-manual-pick-and-place-machine.htmlhttp://trains.socha.com/2014/07/building-fsr-circuit-boards.htmlThe manual machine certainly helped, but I wanted more control and precision. So I decided to design a machine that can go all the way from "assisted manual" to fully automatic. I call it "assisted" because it's using stepper motors for actual movements, with a control pane for the "manual" movements.My new machine is inspired in part by the ProtoVoltaics machine that has two cameras:https://hackaday.io/project/5200-pick-and-place-machineHere is my current design, in CAD:My feeling is that automated pick and places machines take too much time to setup and fine tune a new job. I wanted something that would give me the precision of a stepper-driven machine, but easier to use. And also a machine that could work with OpenPnP for semi-automatic or automatic pick and place. Here are some characteristics I had in mind for the machine:Joystick for large, quick movementsRotary encoder for fine movementsButtons to control which axis would be adjusted by the rotary encoderCameras to help with positioningFor construction, I decided to use the following:Openbuild 20x20 beams (500m for X and Y). However, I may change X to 20x40Carriages using V-Grove wheelsGT2 belts, driven by GT2-16 pinionsNema 17 motors for X and YNema 14 motor for Z, with belt to lift and gravity movementNema 11 hollow motorCP40 holder and nozzle from RobotdiggA bunch of 3D printed parts (some using high-temperature PLA)Motion control using Trinamic 5130A stepper controller/driver chipsI've created some YouTube videos showing my progress:Using a joystick to control Y:https://youtu.be/HQECkO0r9xcUsing Trinamic StallGuard for mechanical end stop detection (no sensors):https://youtu.be/Dkk4of1BMsISome homing and repeatability testing:First Z movement:https://youtu.be/t3GwxIS9a0UInitial control panel with joystick and rotary encoder:https://youtu.be/FHkYLHKZxcMFirst pick and place:https://youtu.be/67yn9of6jFYI'm really, really close to being able to build my first board. This evening I just got head rotation hooked up.I have a longer thread over here in case anyone is interested:https://groups.google.com/forum/#!topic/openpnp/Emf2CoZMfyIThe current BOM is running about $550, based on what I've built. It may go up or down a little as I change the design. First, though, I wanted to get it building boards. Then I'll make any changes as needed.

author: MicroBlocks
author_rank: Contributor
timestamp: August 02, 2016, 12:20:28 pm
content: I can see this assisted manual placing working very well when you add a few buttons that remember a certain coordinate.Like when you pick a part from the tape it would be nice to return to where you were last time.You then only have to move a little bit by hand. Even that could be a button like move x-100 to be right above the next part from the tape.With two buttons this could then be done repeatedly.move to the right spot to pick the part, press the 'Memory' button. then go place it.Then press 'Memory' button again and press Move button. press 'Memory' to remember this new spot.And repeat until all parts form this tape are placed.Very interesting machine you build!

author: technotronix
author_rank: Regular Contributor
timestamp: August 16, 2016, 10:33:05 am
content: Nice designs.I am also planning to build my pick and place machine. This will really help me.Thanks.

author: Kjelt
author_rank: Super Contributor
timestamp: August 16, 2016, 11:09:18 am
content: Very nice! I have been thinking about building something similar but it never came of the ground due to time and other priorities.It would be nice if you open source this eventually so people could rebuild it or pay you for the design/kit or so.Things that would speed it up would be indeed autoreturn to the parts storage but also some kind of place the head in the vicinity of the next placement.Very interested to see how this is evolving.

author: JohnSL
author_rank: Regular Contributor
timestamp: August 16, 2016, 06:40:03 pm
content: Thanks, everyone. Yes, I will be making all the designs and source code open source. I'm still making changes to the design as I learn more about what works and doesn't work. Recently, I've been focusing mainly on the firmware, and I'm about to start designing some custom circuit boards for this machine:https://groups.google.com/forum/#!topic/openpnp/X7frlnuvs0kWhen I first started this project, I was thinking that assisted manual would be the best way to build prototype boards. However, I'm beginning to think that semi-automatic will be much nicer. My plan is to interface my firmware with OpenPnP. I already have some functionality working, but it will be a couple of more weeks before I have time to get it running completely. My idea is that you would open an Eagle BRD file (or exported part file) into OpenPnP and then with a small amount of setup work, start placing parts. The idea is that OpenPnP would move the head to where it thinks the parts are for picking and to about the correct location for placing. Then you would use the rotary encoders to move the head/part into exactly the correct location.Speaking of rotary encoders, I've changed my control panel because I didn't really like how the joystick worked. So in it's place, I now have three rotary encoders, one each for X, Y, and head rotation. I also have a potentiometer for speed/step size. This is a lot easier to use than the Joystick.For the mechanical design, the X extrusion along with the wheels isn't as rigid as I'd like. I'm planning on replacing the 20x20 extrusion with 20x40, which should make it very rigid. This is one reason I haven't released my designs yet--I don't want people building a machine that has issues. I want to work most of the kinks out first.Finally, I probably chose a bad name for this subject. The machine I'm designing and building is actually a multi-modal machine. In other words, you can use it as an assisted manual machine, semi-automatic, or fully automatic. For the latter, I plan to add an up-facing camera. But I will publish the files and instructions as soon as I have the manual and semi-automatic modes working. I believe I'll be able to add automatic without changing the design.

author: Korken
author_rank: Regular Contributor
timestamp: August 17, 2016, 07:48:19 am
content: Very cool project! I really hope that I can build one in the futureA question, how is the rotation of the component currently controlled?

author: Kjelt
author_rank: Super Contributor
timestamp: August 17, 2016, 08:15:01 am
content: Quote from: JohnSL on August 16, 2016, 06:40:03 pmAwesome, this will also be very helpfull for EE's with some hand control shake problems or eyesight problems that will block going to SMT development.QuoteThat would speed things up. Making simple partstorage slots somewhere on the left or top would make it more fixed coordinates.QuoteI was thinking about a gamecontroller like the Xbox controller which has two joysticks and a lot of buttons. Its super ergonomically designed, you can press every button and have still full control over the joysticks, it can be interfaced to a pc with a dongle and no-one has to build a custom controller anymore. Would that be an option for control?QuoteThat last step fully automatic is where the biggest problems arise IMO. Esp. when you have no feeders with fixed position but slots where the device has to pick the component it self. This can take a lot of work. I myself would be very happy with an almost automatic, just manually adjust the last steps before pressing the place button.

author: JohnSL
author_rank: Regular Contributor
timestamp: August 18, 2016, 09:48:25 am
content: Quote from: Kjelt on August 17, 2016, 08:15:01 amI don't currently have the eyesight or motion issues, thankfully (although I do use a stereo microscope). However, I don't enjoy the process of manually assembling boards, which is what drove me to this project.QuoteJason, over on OpenPnP, uses a steel plate with strip holders attached via magnets. That's what I'm going to try initially. I'm going to worry about the part feeding once I have the machine fully working. But for prototypes, strips should be just fine. It should also be fine for small production runs.QuoteI don't know--it's a question for the OpenPnP guys as to how easy it would be to interface an USB controller with OpenPnP.There are several reasons why I'm using my own control panel. One is that I was able to get this working without having to make any changes to OpenPnP. Right now the only part of OpenPnP I'm using is the camera display. So I can start placing boards right now (or as soon as a get some free time). Another reason is that I'll be able to enable semi-automatic pick and place using OpenPnP without having to make any changes to their source. And the final reason is that I found rotary encoders worked far better than joysticks for positioning. Before I built the machine, it seemed like a joystick would work really well. But using it was a different matter. It's great for fast movements. But really bad for fine positioning. The rotary encoders are great for fine positioning. I then added a "speed" potentiometer that allows me to make the step size larger for fast movements with the rotary encoders. I like this approach much better, as it's easier to use. I'll know more once I've used the machine for a while.QuoteJason has done quite a bit of work to support strips in automatic mode. I don't plan to focus on fully automatic until I have semi-automatic completely working. I think semi-automatic will be faster for building a bunch of boards. I have never worked with a real PnP machine, so I don't know how long setup actually takes. But I'm guessing that the break-even point for switching to fully automatic is somewhere between 10 and 100 boards. But right now that is a pure guess.

author: Brutte
author_rank: Frequent Contributor
timestamp: August 18, 2016, 01:39:49 pm
content: Interesting piece of gear.You control XYZ position in open loop.Open loop has some advantages (mainly simplicity of software) but that also generates a ton of other problems. Like for example that rigidity issues, repeatability, tighter tolerances required, backlash. And that adds up to the cost of the gear, thicker beams, lighter alloys, greater forces. I know your plans are to use camera to close the loop but anyway, what I suggest is you should use a direct closed loop control. Preferably incremental encoders + feedback loop + popular (cheap and available) geared DC motors. You do realize your NEMA 19 stepper motors although look solid, peak at perhaps 1W in that design? I suspect a geared DC motor of similar torque would cost 20% of that of stepper motor. Remember this is not a single quantity project but (I hope) reproduced in thousands so that $100 shaved off that $550 is an important point.BTW, why have you used two stepper motors for Y axis?

author: JohnSL
author_rank: Regular Contributor
timestamp: August 18, 2016, 10:05:05 pm
content: Quote from: Brutte on August 18, 2016, 01:39:49 pmI designed this machine to be low cost, and able to build prototype boards and small runs. It obviously won't compete with machines that cost $50,000, but that's not the point. From all the testing I've done so far, it has plenty of accuracy and rigidity to do the job.Also, I'm currently getting 600 mm/second using NEMA 17 stepper motors, which is more than fast enough for a machine like this. These motors are about $15 each, and there are only three of these stepper motors. So I'm not sure how I could save $100 using DC motors when the total for all three stepper motors is $45.As to why I'm using two stepper motors for Y, the structure isn't rigid enough to drive from just one side. Using either two steppers, or one stepper along with a shaft to the other side is very common in lower cost PnP machines.

author: rx8pilot
author_rank: Super Contributor
timestamp: August 19, 2016, 06:09:53 pm
content: Interesting project - obviously a TON of work.I have gone through the long learning curve of SMT assembly from totally un-aided manual to professional P&P in the past couple of years. After manually placing a few hundred thousand parts by hand, I learned a few things for sure. One of the critical things I learned is that is it very difficult for a machine to actually be helpful. I am not saying that machines are never helpful, but rather it is hard for them to beat a well organized manual effort.One of the slowest part of the process has nothing to do with the assembly method - it is the initial organization of parts and supplies. That part of the process can account for a big percentage of the overall assembly time. For placing the parts, it took me a while to figure out a way to place them accurately without shaking too much. The issue of hand shake is obviously different from person to person and I am probably in the middle. I designed and built a few mechanical X/Y rigs to help stabilize but ended up focusing on just using a nice vacuum pen with good tips and working out a technique to minimize shaking. I organized all my parts on trays with labels and put a computer screen in front of me with color coded references to remind me where the parts go. Of course this was all done under a stereo microscope.After some practice, I was rather quick at it and rarely had any placement issues. The various 'assist machines' were too cumbersome and challenging to setup without much actual speed improvement if any at all.With all that said, every component I placed fed my dream of doing it faster and easier. This machine could make things faster and easier but only if the total time spent on the machine., setups, learning, fixing, and placing is faster than a well considered totally manual process. If it is slightly faster, why bother with the time, money, and space requirements? The speed of the motors and the one part placement speed is not an accurate measure of benefit. All the time consumed has to be factored in.As a fun project, this looks like a TON of fun. Really anything that moves and does work is fun for me. For those thinking this could make a massive improvement in build speed, consider this. I have a professional 3600CPH pick and place machine. Not including all the time setting up, programming, loading parts, etc - the P&P is roughly 3x the speed of my totally manual building when the process is measured end-to-end. When I was in the process of getting the machine up to speed I was thinking that my hand-place speed was around 100 CPH and the new machine is 3600 CPH - wow I would make boards 36 times faster! Not really true. If I am making a prototype of 1-2 boards (depending on many factors) it is MUCH faster to just manually build them with my vac pen and microscope. (BTW - vac pen with good hand technique and bracing is far more stable and accurate than tweezers). If my primary concern was prototyping periodically, I don't think I would bother with any machine. If I wanted to do small pilot runs - this concept can be helpful for sure. Probably not so much a time improvement but a quality of life improvement. Manually placing parts under a microscope for extended periods of time is maddening.Hope to see where this goes and how people use it. What is expected of it. good luck.

author: JohnSL
author_rank: Regular Contributor
timestamp: August 19, 2016, 07:18:09 pm
content: Thanks rx8pilot. I think I've read just about all of your posts on your journey with your PnP machine, and I learned a lot from you. Thanks!My primary motivation for this project was to improve the experience building single and small runs of boards. I've been building them by hand, but I really don't enjoy doing that. So quality of life, as you pointed out, was my primary motivator. So far it's been a really fun project. I have a belief, not proven yet, that I'll be able to make building prototypes and small runs much more enjoyable, and perhaps as fast or even slightly faster than hand assembly. We'll see whether or not I can actually achieve this goal, although personally I'm pretty confident that I can (with lots of changes in plan along the way).I've been trying lots of things to see what works and what doesn't. For example, I started with the minimal design that I thought might work, which included a single Y stepper motor driving from one side. It didn't work, so I iterated, adding a second Y stepper.The same thing goes for the user interface, which is the "manual" control panel. After working with the joystick, I realized it didn't work very well. Yes, it's good for really fast moves to get close. But it sucks for accurate positioning. In that same version, I also had a single rotary encoder along with a button to change axes. However, it was hard to keep track of the current axis, so I added a small TFT screen to show that information. But that was clunky. I also had a button to change the joystick and rotary encoder between slow and fast, but the speeds were never quite what I wanted. That's when I got the idea to add a potentiometer to set the speed of the joystick, and the size of the steps for the rotary encoder. I liked how it worked, so my current version has three rotary encoders plus the step size potentiometer. I'm still experimenting with speeds and steps sizes for the range. However, I really like where it's going. With the step size cranked up, you'll be able to move very quickly with a few twists of the knob. Then crank down the step size and get very precise and accurate positioning.That's also about the time when I pivoted on what I thought would be the best workflow for one-off circuit boards. I'm now thinking that opening an Eagle BRD file in OpenPnP will produce the best workflow (again, this is a belief that hasn't been tested yet). Doing this will allow OpenPnP to move the head to where parts should be (or at least fairly close). Then I'll use the rotary encoders for final positioning before placing the part.As to feeders, I know OpenPnP supports strips and it has a way to set these up for different jobs. And talking with Jason, it sounds like it might be possible to dynamically create these "feeders" with position information reported back from the machine after using the encoders to position the head (with the cameras for reference). Again, the idea would be to have OpenPnP move the head to where it thinks the part is, and then I can use the rotary encoders for fine tuning. Doing this, I believe, will be faster and more fun than either manual assembly, or programming the machine to do it all automatically, for a small number of boards. I'll know more as I get my controller integrated with OpenPnP. I'm curious to find out where the break even point is between semi-automatic mode (as described in this post) vs fully-automatic mode. I may also need an up-looking or flying camera in order to do the latter.