What file or data needed from EDA for Pick n Place Assembly? - Page 1
Forum section: electronics / general

author: Mechatrommer
author_rank: Super Contributor
timestamp: September 30, 2016, 07:18:55 am
content: i know for making pcb, drilling holes and solder paste, we have gerber output from EDA, but i dont know a thing about pick n place machine and their GUI, how its done (i pick n place by hand n tweezer), but i want to get general idea of the proper or easier than hand workflow... just in case i want to buy or build the machine... so how is it? do we enter manually in PnP SW about this component goes to where on the board, you need to pick this component at this coordinate where the rail is, or.... is there a file, some sort of gerber or tabulated csv output from commonly used EDA like Altium, DipTrace, KiCAD or Eagle? that we input to PnP SW and it will calculate automatically? if there is, how to produce that file? i'm currently using Altium, but would also like to hear how its done using other EDA, so i get better and more general idea. waiting your reply, thanks...

author: Mechatrommer
author_rank: Super Contributor
timestamp: September 30, 2016, 07:31:41 am
content: lurking in Altium finally i found it yay (attached) csv. but i still find it lacking. such as how the Pnp SW know if R8 and R9 are the same of different component in the rail? do we have to enter manually? its rational to think that rails coordinate are not available in EDA domain so i guess we have to setup manually in PnP SW, correct? and is this csv format standard throughout EDA brand? will KiCAD or DipTrace produce similar format? would like if people can post some of the PnP format variant from different EDA, (readable non-proprietary text format hopefully). waiting your reply, thanks...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 30, 2016, 08:12:17 am
content: Any decent PCB package will be able to export the X/Y locations of the pick/place points of the parts ( or centres if the part library doesn't include specific pick/place points), along with reference, part type, part value and which side of the board it's on.You should do fiducials as components ( pad + resist clearance + pick/place point), so they appear in the pick/place data along with the component locations.

author: Mechatrommer
author_rank: Super Contributor
timestamp: September 30, 2016, 10:12:10 am
content: yup as i just discovered in the attached csv. but i suspect file format will be different across different EDA and i'm not entirely sure how to transfer various format to PnP system. just as example, i sometime saw older but proffesional bulky PnP machine sold as 2nd hand, i dont thing it can import newer EDA like DipTrace's PnP file format that easy unless PnP file out of various EDAs are already standardized. i suspect there will be lot of manual typing to transfer the data and coordinates from EDA's Csv to PnP SW/workstation, no? and probably different PnP machine will have very different interface or workflow, not to mention methods for photographing relevant components for vision recognition, position correction, or miss-pick and re-pick, yes?

author: Mechatrommer
author_rank: Super Contributor
timestamp: September 30, 2016, 10:55:01 am
content: attached is pnp csv format from diptrace (top) and altium (bottom) certainly need some SW brain to translate...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 30, 2016, 11:05:59 am
content: Quote from: Mechatrommer on September 30, 2016, 10:12:10 amWhy manual? Worst-case you'd need to write some simple code to convert.

author: IconicPCB
author_rank: Super Contributor
timestamp: September 30, 2016, 10:28:51 pm
content: Most pick and place machines already support a variety of CAD generated pick and place formats.

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 01, 2016, 04:13:51 am
content: Quote from: mikeselectricstuff on September 30, 2016, 11:05:59 amyes for some programming literate people, they can make simple code to convert to PnP SW compatible format. but to those who doesnt, i guess they have to copy paste manually into, say... a table in PnP SW, from the csv file.Quote from: IconicPCB on September 30, 2016, 10:28:51 pmi guess this concluded the whole topic... i hope so. when i buy a machine, it can readily convert most EDA's file output..anyway is there open or free PnP SW interface available out there?

author: JuKu
author_rank: Frequent Contributor
timestamp: October 02, 2016, 04:17:05 pm
content: Quote from: Mechatrommer on October 01, 2016, 04:13:51 amYes, I know two. OpenPnP (www.openpnp.org) and LitePlacer (www.liteplacer.com). The former is general (configurable to many machines) and more production oriented. The latter is for LitePlacer machine and more for prototyping. I am not very familiar with OpenPnP but I wrote the LitePlacer sw. Although it is for the LitePlacer machine only, it is not that difficult to adapt to other machines. After all, a pnp machine is like a cnc machine; it can be controlled with any four axis cnc controller board that has position feedback. The software shoots regular G-code commands to the machine; feedback is needed to know when the machine is in the desired position for optical measurements. Other than that, you need a couple of control lines for vacuum pump and a valve.About the format: Most (all?) software put out a csv data file. There is a header that tells what data is in what columns. This is easy for software to read. The data itself is simple, you need the designator (ex. R1), footprint (ex. 0805), value, rotation and X, Y position, sometimes a layer info, too. The board needs fiducial marks (like any other component in the data). The software reads the fiducial locations, measures their true world positions optically and can calculate other components physical locations from that.QuoteI'm not sure what you mean by rail here. In your data, you have all resistor values as "resistor". In real life, you would have values. Perhaps by rail you mean the tape strip or reel? The software would combine all components with the same footprint and value, assuming that they come from the same tape. Like if R8 and R9 are both 0805 and 10k, they are the same type. R10 might be 0805 as well, but if the value is 1k, it comes from another strip. And yes, you need to tell the software where the tapes are; in other words, where to pick components up. Details of this is machine specific.