In this article, we will explore how to get a KiCAD design fabricated and assembled by the JLCPCB SMT Assembly service.
Prerequisites
If you're reading this article, you'll probably have KiCAD installed on your computer. But if not, download and install KiCAD 6 from the official website.
The following contents of this article is tested with KiCAD version 6. Older versions or Nightly builds are not tested.
There are several plugins to export JLCPCB compatible fabrication files (Geber, BOM, CPL). As we can see in the table, KiCAD JLCPCB tools has the best reputation and community support (at this time of writing).
GIthub Repository | Star | Fork | Contributors | Last Updated |
---|---|---|---|---|
KiCAD JLCPCB tools | 244 | 28 | 10 | Feb 2022 |
KiCad JLCPCB BOM Plugin | 110 | 25 | 3 | 2021 |
KiJLC | 12 | 8 | 2 | 2021 |
KiCad BOM CPL Plugin | 3 | 2 | 1 | 2020 |
Install KiCAD JLCPCB tools on KiCAD as described in the doc.
- open KiCAD
- go to menu Tools > Plugin and Content Manager
- in the Plugin and Content Manager dialog, click the Manage button
- in the opened Manage Repositories dialog, click + button
- copy and paste the following repository metadata URL https://raw.githubusercontent.com/Bouni/bouni-kicad-repository/main/repository.json
- Click Save button
- Click the dropdown named KiCad official repository and select Bouni's KiCad repository
- Click the Install button of the KiCAD JLCPCB tools item on the left panel
- close the Plugin and Content Manager dialog
If installation worked, you could see a blue JLCPCB tools icon on the toolbar of PCB Editor.
Starting from an Existing Design
Immature poets imitate: mature poets steal. by T.S. Eliot
Just like graphics designers start from templates and software developers start from boilerplates, hardware designers can also start from a template or existing designs. There are already many resources we can use, including the official Raspberry Pico design. To help you to choose the right starting point, the following table summarizes some open-source hardware designs at the time of this writing.
>td >Pro Micro RP2040
Project/Board Name | Author | Resource | Designed with | Note |
---|---|---|---|---|
Raspberry Pico | Raspberry Pi Foundation | Design File | Allegro | The official hardware design of Raspberry Pico |
ItsyBitsy RP2040 | Adafruit Industries | GitHub | Eagle | ItsyBitsy footprint |
RPi Pico Debugger Shoe | Shawn Hymel | GitHub | KiCAD | Raspberry Pico footprint |
We'll use RPi Pico Debugger Shoe as a starting template, because
- it's designed with KiCad
- it has the same pinout as the official Raspberry Pico board
- this article is not for replacing other Raspberry Pico design howto guides like the official guide.
But you can choose other resources as there are ways of importing Eagle and Allego designs from KiCad, or even you can create the design from scratch.
Editing the design
Since we started from an existing design, let's say editing the design instead of designing the hardware.
First of all download and open the design in your KiCad. Some may do it by simple mouse clicking on the web browser, others would do it using the Git command line. No matter how you downloaded it, you could see the following result after opening it.
You could change whatever in the design as your need. But before publishing and using it in production, be sure to check the license of the original project.
We will assume that you changed something and are ready to go for prototyping with the JLCPCB SMT Assembly service.
Generating the Files for JLCPCB
Unlike some other PCBA manufacturers where the BOM, Geber, CPL files are treated manually by the sales and engineering employees, JLCPCB offers the online form to upload the files to get PCBA ordering done. JLCPCB was one of the early suppliers that supported online ordering on the website. Online PCBA ordering has pros and cons.
- Pros
- transparent pricing, no hidden costs
- 24/7 instant ordering
- progress checking
- Cons
- the files must be in the correct format
The Geber and CPL files are generated by the EDA software and hardly edited manually. The problem comes from the BOM list file.
- Often the BOM file is edited manually after generating to meet the stock status of part suppliers. This can cause the BOM file format to break.
- JLCPCB SMT Assembly requires selecting parts from JLCPCB SMT Parts Library. It has a global sourcing feature in part manager, it takes some lead time for the parts sourced from global suppliers to be ready for assembly.
To make this easier, we installed KiCAD JLCPCB tools already in the beginning. We can start using this handy tool now.
On the opened popup window named JLCPCB Tools, you would see the BOM table with an empty LCLC column. As you might know, if you have some experience in JLCPCB ordering, the JLCPCB parts library is linked to the LCSC parts.
You need to choose a part (or multiple parts) in the list then click the Select part button on the right sidebar. For example, we'll choose RP2040 in the list.
After repeating these steps for all the parts you want to assemble, you could get the BOM list is filled with the right information. We can assure you that our BOM is the most updated and has no shortage issue because we checked JLCPCB's stock status in live while filling in the BOM list.
After you finished filling the BOM list, just click the Generate fabrication files. The files are generated in the jlcpcb
folder in the project's root. You may need to compress the jlcpcb/geber
folder to upload to the ordering form, if the zip file is not generated automatically (for example, as Geber-<your-project-name>.zip
).
Now we have all the 3 files ready to upload to the JLCPCB SMT Assembly service page.
Geber-<your-project-name>.zip
BOM-<your-project-name>.csv
POS-<your-project-name>.csv
Conclusion and Further Readings
We've come through how to make a KiCad-designed RP2040 PCB ready to be made by the JLCPCB SMT Assembly service. Although KiCad and RP2040 are mainly discussed, the above method can be used for any kind of PCB design. For example, you can choose one of your own KiCad projects to generate JLCPCB-compatible fabrication files.
If you have any questions directly related to JLCPCB, please read JLCPCB SMT Assembly FAQs first. Most of the common questions are already answered.
Thank you for reading to this end of the long text!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.