JLCPCB PCB fabrication and assembly — BOM/CPL generation, basic vs extended parts, assembly constraints, design rules, ordering workflow. Use with KiCad for JLCPCB manufacturing. Use this skill when the user mentions JLCPCB, wants to order PCBs or assembled boards, needs prototype bare PCBs and stencils, wants to know JLCPCB design rules and capabilities, or is asking about PCB manufacturing costs or turnaround times. For gerber/CPL export, stencil ordering, and BOM management, see the `bom` skill.
JLCPCB is a PCB fabrication and assembly service based in Shenzhen, China. It is a sister company to LCSC Electronics (common ownership) — they share the same parts library.
Typical usage: Order bare prototype PCBs + framed stencil from JLCPCB during prototyping (parts sourced separately from DigiKey/Mouser, hand-assembled in lab). For production runs (100s qty), order fully assembled boards from JLCPCB using LCSC parts. PCBWay is an alternative assembler. For component searching, see the lcsc skill. For BOM management, gerber/CPL export, and stencil ordering, see the bom skill.
| Skill | Purpose |
|---|---|
kicad | Read/analyze KiCad project files, DFM scoring against JLCPCB capabilities |
bom | BOM management, gerber/CPL export, stencil ordering |
digikey | Search DigiKey (prototype sourcing, primary — also preferred for datasheet downloads via API) |
mouser | Search Mouser (prototype sourcing, secondary) |
lcsc | Search LCSC (production sourcing — JLCPCB uses LCSC parts library) |
pcbway | Alternative PCB fabrication & assembly |
| Category | Description | Assembly Fee |
|---|---|---|
| Basic | ~698 common parts (resistors, caps, diodes, etc.) pre-loaded on pick-and-place machines | No extra fee |
| Preferred Extended | Frequently used extended parts | No feeder loading fee (Economic assembly) |
| Extended | 300k+ less common parts loaded on demand | $3 per unique extended part |
Every assembly component is identified by an LCSC Part Number (Cxxxxx, e.g., C14663). This is the definitive identifier for BOM matching. See the lcsc skill for searching parts.
https://jlcpcb.com/parts/componentSearch?searchTxt=<query>https://jlcpcb.com/parts/basic_partsJLCPCB accepts CSV, XLS, or XLSX BOMs with these columns:
| Column | Required | Description |
|---|---|---|
Comment / Value | Yes | Component value (e.g., 100nF, 10k) |
Designator | Yes | Reference designators, comma-separated (e.g., C1,C2,C5) |
Footprint | Yes | Package/footprint name |
LCSC Part # | Recommended | LCSC part number (Cxxxxx) — guarantees exact match |
The column header for LCSC numbers must be exactly "LCSC Part #" or "LCSC Part Number" — typos cause upload failures.
LCSC field to each symbol with the LCSC part numberReference -> DesignatorValue -> CommentFootprint -> FootprintLCSC -> LCSC Part #For gerber export settings, CPL format, and stencil ordering, see the bom skill.
Apply at https://api.jlcpcb.com. Access is gated — requires review based on order history and business profile. Two tiers: Pricing (quote only) and Ordering (full lifecycle, requires monthly volume).
After approval, JLCPCB provides credentials via the developer portal at api.jlcpcb.com:
# Add to ~/.config/secrets.env
JLCPCB_Accesskey=your_access_key_here
JLCPCB_SecretKey=your_secret_key_here
# JLCPCB_AppID=optional_if_different_from_accesskey
Every request is signed with HMAC-SHA256. The signing format:
String-to-sign: METHOD\nURI\nTIMESTAMP\nNONCE\nBODY\n
Signature: HMAC-SHA256(SecretKey, string_to_sign).hexdigest()
Authorization: JOP-HMAC-SHA256 appid="...",accesskey="...",timestamp="...",nonce="...",signature="..."
METHOD — uppercase HTTP method (GET, POST)URI — path portion only (e.g., /pcb/calculate)TIMESTAMP — Unix epoch in seconds (not milliseconds)NONCE — 32-char hex random stringBODY — compact JSON body string (no spaces), empty string for GET/multipart