This website requires JavaScript.

How to generate BOM and Centroid files from KiCAD 8?

How to generate BOM and Centroid files from KiCAD 8?

If you're looking to get your PCB's assembled after the manufacturing process, in that case, few additional files are required. That process is called generating BOM (Bill of Materials) and CPL (Component Placement List / Centroid) files.


Understanding BOM File


The BOM file is a type of file that has listed all components and parts used for the assembly of the specific board. BOM file can contain every type of parts/components, from simple SMD resistors to screws, washers, nuts, etc, depending on what you want to be assembled on the PCB itself. Every manufacturing / assembly house has it's own type of BOM file, listing all of the necessary information about each component. Those information can be component case, component MPN, barcode of the component, component designator and similar… BOM is essentially a simple text file, separated into columns.


To get your PCB's assembled by JLCPCB, it's required to generate BOM following the standard. Example BOM file can be downloaded from JLCPCB website.


Looking at the example BOM file, you can see that components are sorted into the rows, each of them having certain type of information:


  • Comment - Specify the type, specification, value, tolerance, etc.. (e.g. 100uF 10% +105C 50CV)
  • Designator - Mark the location of components on your board. (e.g. C1, R5, R6, DC1, U1, P2 )
  • Footprint - The part package. (e.g. 0402, 0805, SSOP-8)  
  • LCSC PN - Exact component part number from JLCPCB part supplier LCSC


Recommended file formats are - .csv, .xls and .xlsx.



Understanding CPL File


The CPL file is a type of file that is in close relation to a BOM file. In comparison with the BOM, CPL has all the component information related to the placement on a board. BOM and CPL files are related to each other usually through the component designator, as they both contain it. As the name suggests, Component Placement Location files collect information like X position, Y position, rotation, side of the board, etc… Same as a BOM, CPL is essentially a simple text file, separated into columns. To get your PCB's assembled by JLCPCB, it’s required to generate CPL following the standard.






Looking at the example CPL file, you can see that components are sorted into the rows, each of them having certain additional type of information:


  • Mid X, Mid Y - Component position on the board
  • Rotation - Component rotation on the board
  • Layer - Side of the board on which component is placed


Recommended file formats are - .csv, .xls and .xlsx.



Generating BOM and CPL File


Manually creating BOM or editing directly generated files can be a very slow and boring task, with high risk of making the mistake. To directly generate a JLCPCB compatible BOM file from KiCAD, it is recommended to use a pre-made script that does everything automatically. There are two options for installing it:


  1. Installing the script through "Plugin And Content Manager"


To install the script, open KiCAD and click to open the manager as shown in the Figure 1. :


(Figure 1. Plugin and Content Manager)



After successfully opening "Plugin and Content Manager" start scrolling through plugins and install "JLCPCB Fabrication Toolkit" as shown in the Figure 2. :



  (Figure 2. JLCPCB Fabrication Toolkit)



After successfully installing the plugin, you're all set to export JLCPCB compatible fabrication files.


  2. Installing the script manually


To install the script manually, go to
bennymeg GitHub repository and select to download . zip file as shown in Figure 3. :




After downloading the .zip file, unpack it and install it manually through the Plugin Manager.



LCSC PN compability


If you are looking to be fully compatible with the installed "JLCPCB Fabrication Toolkit" script, it's very important to add "LCSC PN" section to each component, as well as it's related barcode. This can be done through the "Schematic editor" by clicking on each component.


Having LCSC PN directly in the BOM will significantly speed up part finding and be very accurate.


(Figure 4. LSCS PN section)



Last updated on Aug 8, 2024