586,674 active members*
2,892 visitors online*
Register for free
Login
IndustryArena Forum > Hobby Projects > RC Robotics and Autonomous Robots > Pick and Place Machine software project
Page 1 of 2 12
Results 1 to 20 of 52

Hybrid View

  1. #1
    Join Date
    Sep 2009
    Posts
    119

    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.
    [ame="http://www.youtube.com/watch?v=UI93vLnBAjU"]YouTube - PPM.[/ame]

    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

  2. #2
    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
    Join Date
    Jan 2013
    Posts
    4

    Re: Pick and Place Machine software project

    Is there any thought to using ODB++, Gerber X2, IPC-D-356A or any of the other data formats? ODB++ can have everything needed to build a PCB including part reel specs.

  4. #4
    Join Date
    Jul 2011
    Posts
    0
    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 vacuum4.jpg  

  5. #5
    Join Date
    Sep 2009
    Posts
    119
    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

  6. #6
    Join Date
    Jul 2011
    Posts
    0
    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

  7. #7
    Join Date
    Sep 2009
    Posts
    119
    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.

  8. #8
    Join Date
    Jul 2011
    Posts
    0
    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
    Join Date
    Jul 2011
    Posts
    0
    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 nozzle1.jpg   nozzle2.jpg   nozzle3.jpg   nozzle4.jpg  


  10. #10
    Join Date
    Feb 2007
    Posts
    88
    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..

  11. #11
    Join Date
    Sep 2009
    Posts
    119
    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
    Join Date
    Feb 2007
    Posts
    88
    nothing

  13. #13
    Join Date
    Oct 2004
    Posts
    147
    Quote Originally Posted by scsi View Post

    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.

    SCSI
    Machine Manager is nearly ready for beta and has complete support for IronPython/IronRuby scripting as well as custom user interfaces. It is designed to be hardware agnostic, so your handled if you ever wanted to implement other hardware configurations.

    Mostly just CNC stuff is implemented, but I would be happy to provide whatever is needed to make it a viable platform for this type of application.

    -Brad

  14. #14
    Join Date
    Sep 2009
    Posts
    119
    Quote Originally Posted by bradodarb View Post
    Machine Manager is nearly ready...
    Hi Brad - welcome to the thread!

    I should let everybody know that I'm using your KMotion_dotNet.dll in my project. It greatly simplifies things and was one of the reasons why I picked KFlop as a motion controller for the task.

    -scsi

  15. #15
    Join Date
    Oct 2004
    Posts
    147
    Hello scsi,

    No credit needed here, I only wrote the driver wrapper; what you are doing with it is way cool!

    Keep the videos coming, looking forward to seeing some of that multi spindle magic.


    -Brad

  16. #16
    Join Date
    Jun 2009
    Posts
    38

    New Software

    SCSI,
    Looks fantastic. We bought the cheapest pick and place out there years ago, and the software is full of bugs, is not user configurable, limited to 4x control card, looses it's place at random and crashes... We've had to rebuild the machine/feeders several times, and the whole thing has just been a pain. I'm excited to see what happens with your software.

    A couple of questions.
    1. Will you be able to place QFN IC's?
    2. Will the webcams have enough resolution, or would I have to purchase like a microscope or something like that? Have you done testing on these?
    3. Why is it limited to 1000 CPH? If you had a faster machine could it place more, or is this about the limit of what a single nozzle can place per hour without flinging parts all over the place?
    4. What will you do about software updates?

    I love the flexability that you are trying to incorporate.
    Press on
    Dave

  17. #17
    Join Date
    Jun 2009
    Posts
    38

    New Software

    SCSI,
    Looks fantastic. We bought the cheapest pick and place out there years ago, and the software is full of bugs, is not user configurable, limited to 4x control card, looses it's place at random and crashes... We've had to rebuild the machine/feeders several times, and the whole thing has just been a pain. I'm excited to see what happens with your software.

    A couple of questions.
    1. Will you be able to place QFN IC's?
    2. Will the webcams have enough resolution, or would I have to purchase like a microscope or something like that? Have you done testing on these?
    3. Why is it limited to 1000 CPH? If you had a faster machine could it place more, or is this about the limit of what a single nozzle can place per hour without flinging parts all over the place?
    4. What will you do about software updates?

    I love the flexability that you are trying to incorporate.
    Press on
    Dave

  18. #18
    Join Date
    Aug 2013
    Posts
    1
    hi to all
    Very interesting topic.
    Is was founded V2.0?
    I'm curious about this software.
    How can I get the beta version?
    Regards JP

  19. #19
    Join Date
    Aug 2013
    Posts
    1
    Hello again
    Can anyone help me get a beta version of the software?
    As for me, it's OK can not knock guys with thick wallets on my knees but I'm curious and I want to test them in your design.
    Pick & Place Machine software teaser video - YouTube
    It is true that there is no comparison to the industrial version but to have a beer you do not have to buy the brewery
    For amateur and hobby use will give the same time.
    My compliments to the author, and all participants in the discussion.
    Regards JP

  20. #20
    Join Date
    Oct 2005
    Posts
    2392
    Quote Originally Posted by stewi View Post
    ...
    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.
    ...
    My thoughts on that is that it's better to pick a market segment and tailor the software to it.

    So it would be better to make the software cheap, and with a reasonable amount of functionality and trimmings to suit that price. If it starts to get expensive then in the hobby and small business end of the market people will look for other solutions like writing their own software, or getting Mach3/EMC to do it, or just writing g-code and using some g-code interpreter etc.

    So it should be reliable, simple, easy to use and inexpensive as a first release. Then there can always be an option to make a "pro" version at increased price and increased trimmings.

    I'm not interested in being a Beta tester etc as I made my own software, but I wanted to say I have no intention of releasing PC PNP software in any form, either freeware, shareware or commercial.

    SCSI- what's the deal with the commercial license on the vision library? Do you need to use that? It might be worth getting rid of that from the start so you have greater flexibility in features and greater profitability (or lower the price for increased sales). I was a 2D graphic programmer for a while back in the early 90's so if it's about the image recognition and decoding stuff that's really not that hard, nor is active managament of image parameters like contrast etc. Provided you can decode the vid signal to a raster image then the processing of centroid and rotation etc it not that hard to do. It's just a thought.

Page 1 of 2 12

Similar Threads

  1. What cad/cam software do I need for pick & place positioning?
    By Vee Block in forum Uncategorised CAM Discussion
    Replies: 7
    Last Post: 01-25-2015, 07:12 PM
  2. Router using old PCB pick & place machine
    By celephicus in forum Open Source CNC Machine Designs
    Replies: 2
    Last Post: 12-10-2010, 05:02 AM
  3. pick & place machine
    By gombault in forum LinuxCNC (formerly EMC2)
    Replies: 6
    Last Post: 09-19-2009, 07:19 AM
  4. pick & place software
    By gombault in forum Digitizing and Laser Digitizing
    Replies: 0
    Last Post: 09-06-2009, 11:53 AM
  5. who has smd pick place software???
    By C++ in forum Printing, Scanners, Vinyl cutting and Plotters
    Replies: 2
    Last Post: 03-04-2009, 08:43 PM

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
  •