How to generate BOM and Pick & Place File in Proteus 8.9
In this tutorial, let’s see how to generate BOM (Bill of Materials) and CPL (Component Placement List) [Also known as a Centroid file, Pick and Place File, XY File, etc.] for JLCSMT service in Proteus.
This tutorial was written for Proteus 8.9 and the "Chameleon Mega Avr" sample project shipped with Proteus is used.
Generating the BOM
First, click the Bill of Materials icon (the Dollar sign icon) on the toolbar and the Bill of Materials tab will show up.
At the moment, you can see the Menu has been changed accordingly for BOM generation, as shown below.
Proteus supports BOM Template and allows importing predefined BOM templates. The BOM template for JLCPCB SMT can be found here. Just download the file JLCPCB.bomt and save it.
Execute Template → Import Template to import the template.
Browse and find the file JLCPCB.bomt.
After JLCPCB.bomt has been imported, you may notice the following changes.
LCSC Part # Field has been added (this field is used for precise matching).
Footprint Field has been added.
Select "Individual (R1, R2…)" as the references style.
In the Property Editor, you can fill in the LCSC Part # for components. For example, C1 is 1uF with 0603 size, if you search in SMT Part Library with the keyword of "1uf 0603 50v" you can find a capacitor with LCSC Part # of C15849 just fit. Copy this CXXX code and paste it in the LCSC Part # field, then click the Apply Changes button.
This operation will forward this LCSC Part # property back into the schematic.
If you click on C1 in the BOM, it will switch to C1 in the schematic automatically, double-click C1, you can see the LCSC Part # has been added:
Continue adding LCSC Part # for other components if you want precise matching [This LCSC Part # is optional, when you place the order, the parts in the BOM will be scanned and matched, but LCSC Part # tells JLCPCB exactly which part to use. If LCSC Part # exists, all other information will be ignored.]
After you finish this, it’s time to generate the BOM.
Menu operation: Generate → CSV
Now save this CSV file. If a spreadsheet program is installed, the CSV will be opened automatically.
Now this BOM is JLCPCB-SMT-Ready.
Edit BOM Manually
If you want to modify this BOM, this auto-imported CSV file cannot be used because the leading 0s for package names have been removed without asking us!
Open the spreadsheet program and press Ctrl+O to open the BOM file. You’ll see the following dialog and set the options accordingly:
Use "Comma" as a separator.
Scroll to Footprint column and use Text as the Column type to keep leading 0s.
After editing, save the CSV file and use CSV as the file format.
Generating the Pick and Place File
First, switch to PCB Layout Tab and click the Toggle Metric/Imperial icon to change the unit to metric. JLCPCB’s system only recognizes Pick and Place file in metric (unit: mm).
Execute Output → Generate Pick and Place File
Now a window appears and you need to do a little bit of configuration:
Change PKP file extension to csv.
Un-check "Include Stock Codes?" option as it’s not needed.
Check the "Exclude Thru-hole?" option as we only want SMD parts.
Select the side (Top or Bottom) as JLCPCB currently can only solder one side.
Click Save button to save the file.
| The reason we change the default file extension from PKP to csv it’s because this PKP file is a plain text file, and Operating Systems generally associate csv file with spreadsheet programs. You can also use the default PKP extension and change it manually later.
If you open the file with a text editor, you can see the content, which is some sort of a CSV file.
<code>LABCENTER PROTEUS PICK AND PLACE FILE ===================================== Component positions for chameleon_avr_rev_a_sample.pdsprj Fields: Part ID, Value, Package, Stock Code, Layer, Rotation, X, Y Units: Rotation - degrees, X, Y - mm Notes: The X, Y value is the centre of package as drawn in ARES. The origin for these values is the Output Origin. The values are a guide only and must be checked manually when setting up automatic insertion equipment. "U1","TI TLV1117-50","SOT223-4","",TOP,90,-33.6508,-8.3162 "U2","TI TLV1117-33","SOT223-4","",TOP,90,-33.627,-0.5698 "U3","PROPELLER QFP44","QFP44","",TOP,180,-3.6253,0.4434 "U4","24LC256/512","TSOP8","",TOP,0,6.5656,-6.869 "U6","FTDI FT232R","SSOP28","",TOP,90,-22.6986,11.0656 "U7","74HC138","TSSOP16","",TOP,0,15.9402,-5.9996 "U8","AT26F00X","SO8","",TOP,0,25.527,-5.6388 "C20","0.1uF","0603","",TOP,-180,17.9324,-2.3368 "C21","0.1uF","0603","",TOP,-180,27.3304,-2.413 ...
But at this stage, this raw Pick and Place file still cannot be uploaded to JLCPCB website directly, we need to clean it up.
Three cleaning methods can be used:
Edit it in a text editor manually.
Edit it in a Spreadsheet program manually.
Process it with a computer program.
Edit in a Text Editor
The Pick and Place file is nothing else but a plain text file so we can edit it with a text editor.
Open the file with your favorite text editor.
Change "X" to "Mid X"
Change "Y" to "Mid Y"
Save the file.
Edit in a Spreadsheet Program
Sometimes it’s more intuitive to edit a tabular file in a spreadsheet program.
Launch the Spreadsheet program (LibreOffice Calc, Microsoft Excel, Google Doc etc.)
Click the Open icon to locate and open the CSV file (Menu operation: File → Open… or just use the standard short-cut key Ctrl+O)
|Double click the CSV file will also invoke the spreadsheet program if CSV is associated correctly.|
Here we need a little bit setting again:
Use Comma as the separator.
Scroll to Package column, and select Text as the Column type otherwise the leading 0s for package names 0603, 0805… will be removed.
Then click OK.
Now do the following changes:
Change X to Mid X
Change Y to Mid Y
Do the other changes you want.
Now, click the Save button to save the work (Or just press Ctrl+S)
Confirm to use CSV as the file format.
Now we have the CPL file which can be used to place the SMT order.
The Rotation Problem
After uploading Gerbers, BOM and Pick and Place files, if everything goes well, you’ll see a preview window that has a rendered PCB with components on it.
Figure 23. Wrong Rotation
You can see the orientations for lots of parts are incorrect. You can change the rotation in the Pick and Place File and upload it again.
In Proteus PCB Layout Help, it writes:
<code>The rotations are in anti-clockwise values in degrees relative to the orientation of the package when it was defined. Since there is no standard for default orientations of packages these values may be of limited use unless they can be combined with a translation table that is specific to ARES packages including ones you have defined yourself. This is a matter between yourself and whoever is providing the auto-insertion facility.
|If you use a script or a spreadsheet program to process the Pick and Place file, a translation table can be set up and maintained to fix the rotation automatically.|
Fix the rotations and go back to the BOM/CPL uploading page, upload the CPL file again, now you can see some rotations has been fixed!
Get a Blank Board in Preview Window
If you see a blank board without any components on it, one possible reason is the unit is not metric.
Solution: Toggle to metric before generating the Pick and Place file.
Figure 25. Blank Board
It’s easy to forget to switch to metric before generating the Pick and Place file, and here’s a trick:
You can set the Start-up units to Metric, then save the project, in this way you don’t need to switch the unit every time when you generate the file.
Designators are Messed Up
When you see designators are out of order, for example X1 and X2 are crystals, but now they are in the same line with a 0603 resistor…
The reason is JLCPCB only can recognize the interval notation style of R1-10 instead of R1-R10 (Proteus uses this style) for designators.
Solution: check if "Shortened" is selected as the reference style when generating the BOM. Use "Individual" style instead.