How to Generate BOM and Centroid Files from KiCad in Linux

This article will show how to generate BOM (Bill of Materials) and CPL (Component Placement List) files for JLCPCB SMT and hand soldering service in KiCad in Linux.

The method converted in this article utilizes a plugin called KiJLC made by Fully Automated.

The demo project kit-dev-coldfire-xilinx_5213 is used in this tutorial, the whole modified project can be found in this github repository.

This tutorial has been tested in KiCad 5.1.10 in Ubuntu 18.04.

Install the plugin

First, you need to download and install the plugin in your system. The plugin will load the next time KiCad is opened.

Install it manually

1. Download KiJLC from github.

Figure 1. Download KiJLC

2. Unzip and rename the folder

Find the downloaded file and unzip it, change the folder name from KiJLC-main to KiJLC.

3. Copy to the right place

Now copy KiJLC to the folder as shown in the following screenshot. If the target folder/path does not exist, you can just create it manually.

Files and folders starting with a dot (.) are hidden from normal view. In file manager of Gnome, you can just press CTRL+H to show/hide them. If CTRL+H doesn’t work, just google or read the file manager’s manual.
Figure 2. Plugin copied

Install by git cloning

If path ~/.kicad/scripting/plugins does not exist, in the terminal, execute the following command to create it:

mkdir -p ~/.kicad/scripting/plugins

Then cd into the folder and clone the plugin:

cd ~/.kicad/scripting/plugins
git clone

Add a BOM plugin for the Schematic Editor

This is the last step of the installation.

First, open the Schematic Layout Editor. From the menu bar, click Tool → Generate Bill of Materials:

Figure 3. Generate BOM menu item

Now the Bill of Material dialog appears.

Figure 4. Generate BOM menu item

Click the "+" button, and browse to the plugin folder, select then click Open.

Figure 5. Browse and find

Leave the nickname unchanged, click OK:

Figure 6. Plugin nickname

Change command line to:

python3 "/home/atommann/.kicad/scripting/plugins/KiJLC/" "%I" "%O"

Or the full path (you can know the full path by executing command which python3 in the terminal):

/usr/bin/python3 "/home/atommann/.kicad/scripting/plugins/KiJLC/" "%I" "%O"
Figure 7. Plugin command line

Add JLC and LCSC BOM fields

The KiJLC plugin expects two fields to be present: "JLC" which should contain the JLCSMT footprint specifier and "LCSC" which should contain the part number from JLCPCB SMT Parts Library.

"LCSC" part number is used for precise matching in the ordering system, it’s optional but it’s best to have it in the BOM.

Right now KiCad footprint specifiers are not being converted to JLC ones, but this could be implemented in the future.

You can add new fields for a component in different ways:

  1. Double click on a component or just hover the cursor on a component then press E key to invoke the Symbol Properties dialog and add the fields, see Figure 8.

  2. On the menu bar, click Tool → Edit Symbol Fields, in this way you can edit fields in bulk mode, see Figure 9 and 10.

  3. With the help of other KiCad plugins, like KiField

  4. etc.

Figure 8. JLC and LCSC fields have been added for R25

Figure 9. Edit Symbols Fields menu item

Figure 10. Symbols Fields table

Export the files

Generate BOM

Open the schematic in EEschema, select Tools → Generate Bill of Materials.

Figure 11. Generate BOM menu item

Click the Generate button to produce the BOM.

Figure 12. Generate BOM

Generate CPL

Open the board in the PCB editor, select Tools → External Plugins → Generate JLCSMT Placement Files.

Figure 13. Generate CPL
Figure 14. CPL Generated

All generated files can be found in the project folder, as shown below.

Figure 15. The generated BOM and CPL files

Now these files can be uploaded to for manufacturing. Below is the preview of a corner of the board in the ordering system.

Figure 16. Preview in the ordering system
To place the SMT/hand soldering orders, you also need to produce Gerber files, for how to do it, please refer to How to generate Gerber and Drill files in KiCad 5.

Still need help? Contact Us Contact Us