You finished the layout, the DRC is clean, and you want JLCPCB to assemble the board — not just fabricate a bare PCB. Whether that assembly run goes smoothly or bounces back with errors is decided long before you upload anything. It's decided by how you designed the board.

Short answer: Design for assembly (DFA) at JLCPCB means choosing parts from their assembled catalog (basic parts first), keeping footprints and courtyards honest, using consistent orientation, leaving the placement machine enough room, adding fiducials on bigger boards, staying single-sided when you can, and handing over a correct BOM and CPL. Get those right and your PCBA order sails through.

Prefer parts JLCPCB can actually place

JLCPCB assembles from its own parts library (sourced through LCSC). If a component isn't in that catalog, they can't place it — so the single most important DFA decision is choosing parts that exist in their inventory while you design, not after.

Within that catalog, parts fall into two classes, and the difference hits your invoice and your lead time:

Basic parts Extended parts
On the machine Pre-loaded feeders Loaded per job
Setup fee None Per-part fee
Lead time impact Minimal Can add delays
Stock stability Very high Varies
Best for Passives, common ICs, connectors Parts with no basic equivalent

Basic parts are already sitting on the pick-and-place machine, so they cost nothing to set up and almost never stall a job. Extended parts have to be loaded onto a feeder specifically for your order, which adds a per-part setup fee and occasionally a delay if stock is thin.

The practical rule: for every resistor, capacitor, LED, and common IC, check whether a basic part covers it before you commit. A 10 kΩ 0402 resistor has dozens of basic options — there's no reason to spend a setup fee on an extended one. Save extended parts for components that genuinely have no basic equivalent, like your specific MCU or a particular connector.

Get footprints and courtyards right

Assembly problems trace back to footprints more than anything else. The machine places a part based on the footprint's origin and courtyard, so if those are wrong, placement is wrong.

  • Match the footprint to the exact part you ordered. A 0603 land pattern for a part that's physically 0805 will tombstone or shift.
  • Keep the courtyard honest. The courtyard tells the machine how much room the body needs. Overlapping courtyards mean nozzles or adjacent parts can collide.
  • Put the footprint origin where it belongs — typically the body center. The CPL exports coordinates from this origin, so a misplaced origin becomes a misplaced part.

Running DRC with courtyard checks enabled in KiCad catches most overlaps before they ever reach the fab.

Keep orientation and rotation consistent

Rotation is the number-one cause of "assembled but backwards" boards. Polarized parts — diodes, electrolytic caps, ICs, tantalums — have a pin 1 or a cathode that must line up with what JLCPCB expects.

Two habits prevent grief:

  1. Be consistent within your own design. Orient all your electrolytics, all your diodes, and all your ICs the same way where layout allows. It makes review far easier and mistakes far more visible.
  2. Verify pin 1 against the datasheet for every polarized footprint. KiCad's 3D viewer helps you eyeball this before manufacturing.

The rotations that actually reach JLCPCB live in your CPL (pick-and-place) file. If a part's rotation in the CPL doesn't match JLCPCB's reference orientation for that package, it gets placed rotated. When you review the placement preview in JLCPCB's ordering flow, check polarized parts specifically.

Leave room for the placement machine

The pick-and-place nozzle needs physical clearance to set each part down. Cram components edge-to-edge and the machine either can't place them or knocks neighbors out of position.

  • Give tall or large parts extra breathing room from their neighbors.
  • Keep components a sensible distance from the board edge — parts hanging over a rail or too close to a v-score can't be placed reliably.
  • Watch spacing around connectors and mechanical parts, which often have generous bodies beyond their pads.

Good courtyards (above) do most of this work for you, but sanity-check the densest corners of the board by eye.

Add fiducials and tooling on bigger boards

Fiducials are small copper reference marks the machine's camera uses to align placement. For a small, coarse-pitch board, JLCPCB can often reference the board edge and skip them. For a larger board, or anything with fine-pitch ICs, add two or three fiducials near opposite corners so the machine can correct for any skew.

For panelized or larger boards, leave room for tooling — the mounting and edge rails JLCPCB needs to hold the panel. If you're unsure, a few millimeters of clear board edge is cheap insurance.

Single vs double-sided assembly

Where your parts sit changes the price. Assembling one side is a single solder-paste-and-reflow pass. Assembling both sides needs a second pass plus extra setup, which costs more and takes longer.

If you can fit everything on the top layer, do it — even if it means a slightly larger board. Reserve bottom-side placement for designs that genuinely need it (dense boards, or parts that must be on a specific side). This one choice often has a bigger cost impact than swapping a handful of extended parts for basic ones.

Hand over a correct BOM and CPL

Every good DFA decision is wasted if the two files JLCPCB reads are wrong. Assembly needs:

  • A BOM that maps each component to a valid, in-stock LCSC part number. A blank or wrong LCSC number is the most common reason a line item can't be placed. See our guide on adding LCSC part numbers to your KiCad BOM.
  • A CPL (component placement list, aka pick-and-place) with correct X/Y coordinates and rotations for every placed part. Our KiCad CPL guide covers exporting it cleanly, and the JLCPCB BOM + CPL format guide covers the exact column layout JLCPCB expects.

Exporting these by hand from KiCad, revision after revision, is exactly where mistakes creep in — a stale BOM here, a wrong rotation there.

Let the outputs generate themselves

This is where GoForFab fits. Connect a KiCad project and every push runs kicad-cli to regenerate the full manufacturing package — Gerbers, a JLCPCB-format BOM with your LCSC numbers, and a CPL with correct rotations — so the files you hand to assembly are always current and always reproducible. It's free forever for solo work, and it means your DFA effort in the layout is never undone by a hand-export slip.

Design the board for assembly, keep the parts in JLCPCB's catalog, and let the BOM and CPL take care of themselves. That's a PCBA order that goes right the first time. When you're ready, here's how to order the PCB from JLCPCB.