Pick and Place Machine software project

Page 1 of 3 123 LastLast
Results 1 to 20 of 52

Thread: Pick and Place Machine software project

  1. #1
    Registered
    Join Date
    Sep 2009
    Location
    US
    Posts
    119
    Downloads
    0
    Uploads
    0

    Default Pick and Place Machine software project

    Here's an opening post in the thread that I would like to dedicate to the discussions around the software package that I'm working on.

    First of all, the bad news. While the main idea is to make it as cheap as feasible, at this stage it's not going to be free or open source for several reasons. One of them is the commercial machine vision library that the software is built around.

    The good news is that the software is designed to work with any type of webcam and this fact alone will reduce the total cost of the machine rather significantly.

    Here I will list the goals and non-goals for the first version that I'm planning to release before the end of the year.

    Goals for V1.0:
    • Develop a program that would be used to turn a typical CNC router table into a fully featured PPM
    • Make every parameter adjustable by the user to accommodate for a wide range of machine configurations
    • Implement vision correction for component pick up and placement
    • Support simple tape (drag), strip, tray and vibratory feeders
    • Support two USB cameras for teaching and component alignment
    • Use simple fiducials for PCB placement correction
    • Simple automatic nozzle changer
    • 0402 or larger components
    • 0.5mm pitch IC's, including BGA
    • component placement at any angle of rotation
    • Support stepper, servo and linear servo motors with and without encoder feedback
    • Placement throughput up to 1,500 CPH with vision alignment


    Additional major features planned for the V2.0 which will be coming later next year:
    • Panelized PCB
    • Up to four USB cameras
    • 0201 and 0.4mm pitch components including micro BGA
    • Advanced feeder control
    • Advanced nozzle changers with visual correction
    • Gerber converter
    • Up to three placement heads
    • Throughput up to 4,000 CPH with three heads


    Here's a shaky teaser video showing basic 0603 capacitors being placed in a row at around 1,000 CPH with 0.05mm accuracy. The machine that I'm using is pretty fast and rides on linear motors. Here it is moving with 1.0G acceleration. Higher quality videos and screenshots are coming later, so be sure to subscribe to the thread for the future updates.
    "http://www.youtube.com/watch?v=UI93vLnBAjU"]YouTube - PPM.

    Beta testing can begin as soon as next week and I know that some folks have already expressed their interest. I think I can handle up to three beta testers at this point. In addition to the software package, you will need to order KFlop motion controller from Dynomotion and purchase a bunch of some cheap webcams to play with. I will make another post in a couple of days covering webcams specifically. One other requirement for the beta program is that you should have your machine ready, equipped with basic home switches and motor drivers. The PC requirements will not be very dramatic. Any modern dual core CPU should be able to handle the workload. The monitor resolution should be 1280x1024 or greater.

    And finally, the price for the beta is $400. Released version will probably be under $1,000 and will include some extra parts, like drilled stepper for the placement head, webcams, illuminators and quality optics.

    And by all means, shoot out all your feature requests and suggestions while it's not too late. I will try to implement as many as possible before the release.

    Regards,
    SCSI

    Similar Threads:
    Last edited by scsi; 11-30-2011 at 02:58 AM. Reason: url


  2. #2
    Member guru_florida's Avatar
    Join Date
    Nov 2007
    Location
    United States
    Posts
    277
    Downloads
    0
    Uploads
    0

    Default

    I've been following your work, and we emailed a few times about diy pnp. Great work! I would love to be a beta tester, if only it was 2 or 3 months ago I would have jumped at the chance and could have made some contribution too. I just bought a Samsung CP20CV though.

    Still I can contribute ideas on the sidelines based on what I get with the CP20. $400 for beta (or $1000 for release) and including the stepper is a deal! I would have jumped on that in a second.

    Not sure why you would want to have a gerber converter? To get the placement centroids or just to show the artwork to the user for visual appeals? If for centroids, how would it know what is a SMT placement versus throughhole, part height, etc. I think having both a flexible txt and csv import would be suitable. (dev time better used for other features.) If the user's software cant output assembly files you probably need to look at a better PCB package. lol. Even manually entering a file wouldnt be difficult for simple circuits.

    When you get to fudicial recognition. You should also be able to recognize fudicials that control certain assembly options. For example, for multi-unit panels a fudicial that determines if a single unit should be placed or not. If the fudicial is blacked out with a black marker or sticker then the system will skip that unit. Very handy! Most PCB houses will mask the fudicial for you if you make it clear on the biscuit/panel and order electrical testing.

    Because this software is going to go on massively customized hardware, I think it would be nice if the machine control can be scripted. So the software is just calling subroutines, and the underlying script is doing the actual motion commands to the motion controller. This could be handy in many ways. (1) Differences between machines is implemented in script. (2) Even the underlying motion controller could be replaced and only the script changes (and some interface plugin between script and motion controller). (3) This opens up an important part of your software to be like open-source (the scripts) without opening the main binary, and I have no problem with the software not being open-source. Also, sometimes the script may call back into the main binary, to use the visual correction or fudicial recognition for example.

    The scripting language could be ruby, python or many others, they all have embeddable capability like this. Or you can also roll your own PnP specific language using compiler tools like flex and bison.

    What language are you writing the main binary in? Is it only windows?

    C



  3. #3
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    Very nice.
    May I add some features I would love to see on future machines.

    Feeder set up optimization:
    With a single head machine feeder set up is not as important as with multiple heads machines. As soon you add another head you need to consider optimized travel path over the board and from the feeder bank.
    Preferable you have some sort of reader, bar code or better RF ID, in order to read the component label. Much better the feeder has RF ID and "knows", which component is loaded and how many are left in the reel.
    Further, many customers require a time stamp, which component is processed at what time and date for traceability. These information should be written back to the feeder.

    The software is dull and not interactive. If you write a new placement program you know how to do it, but is it easy for novice? Are there interactive help bubbles? How about kind reminders, that you forgot to set up a feeder for one or the other component (you fool)? Why do you even have to write a set up file? Isn't it enough to enter a placement file or convert it from Gerber and all other files like BOM, feeder set up and vision are written by itself from a component library?

    When the machine is running and populating parts, how easy is it to see what is going on, if the machine stops? Most likely it ran out of components, how quickly do you detect, which ones are empty? Why even did the machine stop for this reason and didn't give you an early warning for a chance to splice in a new tape, before the feeder run on empty?

    Mapping software and calibration files:
    You'll have some sort of machine data with machine offsets and camera calibration. How easy is that to create? Does it require an engineering degree? Is it in English?

    I know, you write the software for you and some other hobby users. However, if you want to go after the big guys and commercial market, you need to be better than their software.


    I watched your video and again promote square nozzles, which have better vacuum seal. I'm actually surprised, that your vacuum sensor did not reject this component: See attached pic

    Attached Thumbnails Attached Thumbnails Pick and Place Machine software project-vacuum4-jpg  


  4. #4
    Registered
    Join Date
    Sep 2009
    Location
    US
    Posts
    119
    Downloads
    0
    Uploads
    0

    Default

    Thanks a lot for the kind words and great feedback! Keep it coming!

    @guru_florida:
    The Gerber converter idea is still up in the air. I know that most of the industrial machines have it and thought it would be useful to enter centroids automatically. There is still too many open questions with it and it may very well slip into a V3. In the mean time, TXT and CSV import is going to be there. The database I'm using is a very popular SQLite and one can use many of the free 3rd party tools to perform CSV import/export. The database format will be open.

    Great idea on masking fiducials for panelized boards. I will definitely incorporate it in V2 or even V1.1

    I have been thinking about scripting and such and decided against it for now. It makes the system very complicated and I wanted it to get off the ground rather quickly. Still, I will implement some scripting in V2 for advanced feeder and tool changer support. Luckily the KFlop motion controller supports c-like scripting language and I will simply call user programs to perform certain actions.

    The complete hardware abstraction is still on the table for the future releases, but for now it's tightly coupled with KFlop.

    For development I'm using C# with .NET 4.0 and yes, it's only Windows (XP through 8)

    @stewi
    Feeder intelligence is definitely a nice option, but for now (V1, V2) I'm targeting a low-end hobby market. RFID and scanners can come in later.

    I'm trying to make the software very user friendly. Those help bubbles are called tooltips and there is at least sixty of them explaining things like "Max Rot Error" and such. Most of the numeric parameters, like coordinates, are entered automatically at a press of a button. All you need to do is to aim the camera and hit "Set XY" or "Set Z" and so on.

    Running out of components and machine stop conditions will be incorporated in V1. Right now it simply retries up to N times to pick up a part and then stops asking for help.

    The engineering degree won't be necessary. It's all in plain English and there is a button for everything, except probably for the basic machine parameters, like speeds and acceleration and such.

    Square nozzles would be nice, but can you get them for $20 e.a.? The picture you attached with the component hanging from the side is not the worst one. The vacuum threshold detection is not implemented yet as it needs an analog input to read from. KFlop supports it through an extension board and I will add it to the V2 for sure along with many other analog goodies. For now everything is heavily reliant on machine vision and if the component can be recognized reliably, it will be placed accurately, no matter how far off center it sits on the nozzle. At the same time, if the component is picked sideways, it will fail vision inspection and will be discarded.

    Speaking of inspection. I forgot to add it as a major feature to the V2 list. The machine will be able to perform post placement inspection.

    Thanks,
    SCSI



  5. #5
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by scsi View Post
    Square nozzles would be nice, but can you get them for $20 e.a.?
    SCSI
    60 nozzles for $25 Siemens Vacuum nozzles 00321854-06 | eBay



  6. #6
    Registered
    Join Date
    Sep 2009
    Location
    US
    Posts
    119
    Downloads
    0
    Uploads
    0

    Default

    I saw that bag of nozzles and was seriously considering it. Question is what to do when the bag runs out. As far as I understand, those tiny things are very fragile.



  7. #7
    Registered
    Join Date
    Feb 2007
    Location
    USA
    Posts
    88
    Downloads
    0
    Uploads
    0

    Default

    One thing I always do on my automation software jobs is to include one screen that allows manual testing of motion, encoder feedback, air cylinders, proximity sensors, analog inputs, etc. This is mainly used for initial machine setup, but is also useful for diagnosing when there are problems. All inputs that change in value have some sort of indicator by them (text turns from red to green, add an an asterisk next to the value, or whatever). Add text labels to your outputs and inputs that describe the functionaility, rather than say "input 3". That way when you exercise an output (say for an air cylinder you use for indexing the tape), and the vacuum solenoid gets actuated instead, it is immediately apparent what is wrong. I group the outputs together, the inputs together, and the motion control jogging commands together in their own individual sub-frames.

    The first time a new machine is built and start up, I go to this screen, and verify that everything can be actuated (digital outputs), measured (analog inputs), sensed (proximity sensor digital inputs), encoders count up and down and don't need to be reversed, etc. until everything has been exercised. At that point, you know all your wiring is correct and you have a really high probability that your first initial run will be sucessful. You also can adjust your flow-controls to your air cylinders at this time, and prox. sensors on your air cylinders if they don't turn on when extending/retracting the air cylinder. It makes the initial start-up go really smooth, and provides a nice diagnostics screen when things aren't working as expected. Blindly running a machine and hoping everything is set up and wired correctly is rarely sucessful, and potentially can crash a machine under fully automatic control. At this point, you'd need to debug, so you might as well already have this screen to help you out.

    Don't make this screen do anything else other than low-level diagnostics. For example, you might be tempted to add some buttons which set the offset for a feeder or nozzle based upon the current position, since you already have some jog buttons. Don't do it. Keep it simple and limited to only exercising the hardware..



  8. #8
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by scsi View Post
    I saw that bag of nozzles and was seriously considering it. Question is what to do when the bag runs out. As far as I understand, those tiny things are very fragile.
    These are regular plastic nozzles, which usually cost $120 per pack of 12 directly from Siemens. If Siemens doesn't sell to you, because you are not a customer, let me know and I'll interfere.
    There are also ceramic (fragile) nozzles, which cost much more.



  9. #9
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    Hope you don’t mind, if I use your thread wining about software in general.

    Looking back to the late 90 ties and before US politics encouraged companies to outsource to China all machines I’ve seen on the market were lacking in the sophistication of automation, when it comes to board programming and new job set up.

    Software is often written without the feedback from customers and machine operators.

    If we want to get jobs back into the US we need to automate, whatever required manual labor to generate placement files and to operate the machines.

    OEM usually got a straight path from CAD to placement file, but subcontractors don’t. Starting with the component name such as 112000-30009, which doesn’t mean anything to the operator, contractors have to gather a lot more information, before they can do the job. First, they have to associate the component name with a package size. Package size is likely associated with vision and handling data. All assuming the component is in the library and it is not for military, you may still have to manually key all the numbers in.
    Showing the entire populated board to a camera and let the machine program itself is science fiction.

    I like the component teaching feature as you describe it. Nevertheless, I’ve to have this particular component in my hand first to program the board. Well, at the moment there is only one vendor in Malaysia, which happens to have a few reels, so I can’t complete programming this board until I get this component. Oh, we forgot to tell you on this board version we omit C33 and R127. Sure, no problem and it doesn’t cost you any extra, that I change the placement file. In my science fiction machine I talk to the computer “omit C33 and R127, thank you”. Computer confirms “C33 and R127 will be omitted”.

    Feeder set up is taking forever. That is, because component vendors don’t ship the feeders with the component. How about a disposable feeder, which is attached to the end of the tape? I know, this is all fiction. In practice customers are sending exactly counted 10 components in tape with ten boards to the shop. Now you have to splice in leader tape and cover tape to get that strip in the feeder. If you get a full reel, you could put the component on a feeder, but the feeder has three tracks (Siplace triple feeder), in which track shall I place this component. Go back to the computer, print out the set up file, compare the component name from the print to the component name on the reel and fill the feeder. Oops, sorry the feeder has to be plugged into a power supply, otherwise it doesn’t advance. Now, I’ve this feeder in one hand balancing three reels in the other, where do I put the feeder on the machine or change over table? There is no optical indication (RF reader recognizing, that I’m approaching with components x and y and feeder z) and a LED flashing on the feeder table where to place this particular feeder.
    The flashing LED would also come handy otherwise, for feeder empty or early empty warning.
    Sorry guys, I have to take a leak once in a while. Can I ask the machine if it will stop in the next ten minutes? No problem, there are 10 more boards in the input cassette. Next component track will empty on machine 3, table 2, track 50 in 12 minutes.
    Now, this leads me to the hardware issues.

    Machines are set up in lines, which usually require at least two operators, one on each side of the line. If you have only one operator, be assured the tape always runs empty on the other machine side, where you are not standing.
    In my fiction machine, each machine is stacked on top of each other. Board goes in one side, a paternoster conveyor brings the board to the machine level, finished board comes out the other side.
    One slot in the machine front for the operator to place the feeder with component reel. A robotic arm places the feeder onto the correct feeder table. One slot for the empty feeder. That’s it.

    You need more machine capacity, no problem. You bring in another machine slot into the machine rack. The production is not halted. As soon the machine is connected, it will automatically participate in production.

    For the last few years I was disconnected from the SMT scene and I lost my job on top of it. Did anything happen in that time? New technology, new machines? If I look at the Siplace machines and feeders, they don’t look any different than 10 years ago. I used to see a new machine every two years. Looks to me China is happy with the machines as they are. The more labor intensive the production is, the better for low cost labor countries.

    I guess, there is lot's of room for improvement.



  10. #10
    Registered
    Join Date
    Feb 2007
    Location
    USA
    Posts
    88
    Downloads
    0
    Uploads
    0

    Default

    nothing

    Last edited by Nails; 11-30-2011 at 03:47 PM. Reason: sorry. hit back and refresh, and accidentally reposted.


  11. #11
    Registered
    Join Date
    Sep 2009
    Location
    US
    Posts
    119
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by Nails View Post
    One thing I always do on my automation software jobs is to include one screen that allows manual testing of motion, encoder feedback, air cylinders, proximity sensors, analog inputs, etc...
    This is a very good and timely suggestion, Nails. Thanks for chiming in. It is true that I do know my monster machine in and out but a new user may be simply scared to run even a simplest homing sequence for the first time without first trying with baby steps. I will create a new tab called Diagnostics with all the controls necessary to test each individual axis, inputs and output.

    How is your PPM project going?



  12. #12
    Registered
    Join Date
    Sep 2009
    Location
    US
    Posts
    119
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by stewi View Post
    Hope you don’t mind, if I use your thread wining about software in general....
    I don't mind at all. You are making a very good points and I really like the idea of bringing the development back. Also love the concept of machine stacking. I think it can be applied to a small desktop PPM as well simply for space saving reasons.

    And, by the way, in my system feeding cut tapes manually to the machine will be super easy. The camera will locate the components and iterate automatically. Same concept as with the regular tray feeders, but with vision assistance.



  13. #13
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by scsi View Post
    I saw that bag of nozzles and was seriously considering it. Question is what to do when the bag runs out. As far as I understand, those tiny things are very fragile.
    Next time you see nozzles offered on ebay, here is what you get:

    Attached Thumbnails Attached Thumbnails Pick and Place Machine software project-nozzle1-jpg   Pick and Place Machine software project-nozzle2-jpg   Pick and Place Machine software project-nozzle3-jpg   Pick and Place Machine software project-nozzle4-jpg  



  14. #14
    Registered
    Join Date
    Feb 2007
    Location
    USA
    Posts
    88
    Downloads
    0
    Uploads
    0

    Default

    >> How is your PPM project going?

    Hate to pollute your software thread, but you asked.....

    SLOW. I keep changing my mind about how I want to do things. Figuring out how to do one thing better, leads to another idea, then another.....

    I'm working on a compact 4 nozzle head right now that has a drastic impact on the rest of my design. The nozzles are spaced 21 mm apart (as Stewi had mentioned that standard feeders are 10.5 mm apart for 8mm tape). The width (without camera) is 4 inches wide, and it works with the Lightning nozzle I bought. The motors are nema 11.

    Here is a preview, but I don't have everything worked out yet. I don't plan on having the encoders, but am designing with them to make sure it all fits if I want them later. The cyan colored things are anver vacuum generators. I have all the parts to make this head, but need some more design time.

    I also did a little testing with cover tape peeling with a wedge. It appeared to work well at around 7 degrees angle. That is just what I started with and since it seems to work, I am sticking with it. I still plan on indexing with a mechanism underneath. There will be springs underneath the yellow and gold pieces which serve to accomodate different tape thicknesses and hold it in place after indexing.

    Attached Thumbnails Attached Thumbnails Pick and Place Machine software project-compact-placement-head-1-jpg   Pick and Place Machine software project-compact-placement-head-2-jpg   Pick and Place Machine software project-compact-placement-head-3-jpg   Pick and Place Machine software project-simple-feeder-jpg  



  15. #15
    Registered
    Join Date
    Sep 2009
    Location
    US
    Posts
    119
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by Nails View Post
    >> ...The cyan colored things are anver vacuum generators.
    Looks great. Can that vacuum generator also provide blow off air? It looks like their larger units do. You definitely need to make blow off air pulse at high placement speeds.

    Still going with the megapixel camera? What I found is that with proper vision algorithms, the resolution does not matter much. In my case a regular 640x480 webcam with Bayer pattern is effectively producing only 320x240 resolution, but even that seems to be more than adequate for fine positioning down to a single micron. I'm currently using 10um step size on my machine and feel I can go even lower without loosing repeatability. The subpixel pattern matching does wonders and it can easily go down to 1/20th of a pixel even on blurry images.



  16. #16
    Registered
    Join Date
    Feb 2007
    Location
    USA
    Posts
    88
    Downloads
    0
    Uploads
    0

    Default

    Air pressure goes in the top, and vacuum comes out the bottom. Will have to T off the vaccum side to provide an air puff if needed.

    I already have the cameras, so I will use them as is. They can be programmed to skip X number of rows and pixels, so I can make it less resolution if image processing time is a bottleneck. I can also program a subwindow and have it extract data only from the middle of this image, so this might be used like a 2X zoom for small parts.



  17. #17
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    Nails, you may already know, that I'm not a fan of the inline nozzle configuration.

    In order to pick larger components you need longer nozzles not to collide with the other nozzles. unless you can control the z-stroke for all nozzles independently.
    Most larger nozzles (Siplace, Universal) are also shorter and you’ll need an adapter to make them longer.

    You should carefully look at your PCBs you want to process with your machine and make up your case, how many times you can indeed pick up from the feeder bank simultaneously 2,3 or even 4 components in one stroke.
    If you use the head in a collective pick mode, than a rotary head has many more benefits.
    How do you advance the tapes? 4 pneumatic plungers or one tape at the time?
    If you want more performance, you’ll need automatic feeders.

    With all the motors and pistons the 4 nozzle head will become quite heavy requiring strong X and Y motors.

    I would consider using a plain single nozzle head but dual gantries and adjacent feeder banks. One head picks the other places and vice versa.
    The investment in motors and rails may be the same than the 4 nozzle inline head. However, with the reduced weight of the heads, the gantries can be lighter and with the same motor performance you’ll get higher speed. At the end you’ll likely get more performance out of two independent heads than out of 4 dependent heads.



  18. #18
    Registered
    Join Date
    Feb 2007
    Location
    USA
    Posts
    88
    Downloads
    0
    Uploads
    0

    Default

    Stewi - thanks for the insight. I never considered very large components. I will consider a single nozzle and dual gantry. I don't understand how the rotary heads can be constructed. Do you have any insight into that?

    After thinking about it, preventing larger parts from colliding with adjacent nozzles can easily be solved by simply returning the adjacent nozzle(s) to the tool holder before picking it.

    Last edited by Nails; 12-01-2011 at 02:37 PM.


  19. #19
    Registered
    Join Date
    Jul 2011
    Location
    usa
    Posts
    214
    Downloads
    0
    Uploads
    0

    Default

    I'll make up some drawings for a rotary head. It will take a few days.



  20. #20
    Registered
    Join Date
    Feb 2007
    Location
    USA
    Posts
    88
    Downloads
    0
    Uploads
    0

    Default

    When you do, I think we should start a new thread called something like "P&P Head Design" so this thread can continue to focus on the software. Thanks.



Page 1 of 3 123 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Pick and Place Machine software project

Pick and Place Machine software project