PCB & manufacturing
How to Release a KiCad PCB for Manufacturing
The checks before exporting, how to generate fabrication and assembly files, and the DNP gap between the schematic and the layout.
What does "releasing" a KiCad board actually mean?
It means producing a set of files that somebody else can manufacture from, and recording which state of the design they came from — so that six months later you can tell whether the boards on your desk were built from this release or the one before it.
KiCad will happily generate manufacturing files from a project with unsaved changes, an unannotated schematic and a failing DRC. Nothing stops you. The release process is the part you add.
KiCad's menu layout and plugin ecosystem change between major versions, so exact menu paths here may differ from your build. The sequence and the checks do not.
Before you export anything
Four things, in this order. Each one catches errors the next one cannot.
1. Annotate the schematic. Every symbol has a unique designator. If annotation is incomplete, the BOM and the board will disagree about what exists.
2. Run ERC. Electrical rules on the schematic — unconnected pins, conflicting outputs, missing power flags. Most warnings are noise; read them anyway, because the one that is not noise is usually a real connectivity error.
3. Update the PCB from the schematic. This is the step that is skipped. If you changed the schematic and did not push it to the layout, your Gerbers describe an older design than your BOM.
4. Run DRC with the manufacturer's constraints loaded. Not the defaults. Minimum trace width, clearance, annular ring and drill sizes come from the fabricator you are actually using. A board that passes default DRC can be unmanufacturable at your supplier.
Generating the fabrication files
From the PCB editor, plot the Gerbers. The settings that matter:
Layers: all copper layers, both soldermasks, both silkscreens, paste if you need a stencil, and the edge cuts. Format: RS-274X unless your fabricator asks for X2. Edge cuts: include the board outline. In KiCad this lives on its own layer, which makes it easy to get right — and easy to forget to plot. Drill files: generate separately. Decide PTH and NPTH in separate files or one, according to what your fabricator wants.
For the drill file, note whether the output uses finished or tooling diameters and put that in your fabrication notes.
Generating the assembly files
BOM. KiCad's BOM output is driven by symbol fields, which means the quality of your BOM is decided months earlier, when you fill in the symbol fields — not at export time. At minimum, each symbol needs a manufacturer and an MPN field. If those fields are empty in the library, they will be empty in the BOM.
Centroid. Exported from the PCB editor as position data. Two things to check immediately:
the origin — set the drill/place origin explicitly rather than relying on the default; DNP parts — KiCad can mark components as DNP, and whether they appear in the position file depends on your export options. Check the file.
The gap nobody warns you about
KiCad will export a BOM from the schematic and a centroid from the layout. It does not guarantee that the DNP status is the same in both.
If a part was marked DNP in the schematic after the layout was last updated, the BOM says DNP and the centroid may still carry the position. The machine places it. This is the same class of error described in DNP and DNI components, and KiCad makes it easy to hit because the two exports come from two different documents.
Compare the designator lists. Two minutes.
A release procedure
1. Commit or save all project files
2. Annotate schematic
3. ERC — read every warning
4. Update PCB from schematic
5. DRC with the fabricator's rules
6. Plot Gerbers (all layers + edge cuts)
7. Generate drill files
8. Export BOM
9. Export centroid
10. Open the Gerbers in an independent viewer
11. Cross-check BOM designators against centroid designators
12. Write the release note
13. Zip, with the revision in the folder name AND inside the filesStep 10 matters more than its position suggests. KiCad's own plot preview shows you what KiCad intended. An independent Gerber viewer shows what the fabricator will receive. They are not always the same picture, and the difference is where missing layers hide.
What goes in the release note
A short text file inside the package, which is the cheapest insurance in this whole article:
ORION CONTROL UNIT — Main Control Board
Board revision: C
Release: MCB-C-002
Date: 2026-03-14
Generated from: KiCad 8.x project, commit a1b2c3d
Drill diameters: finished size
Rotation: CCW, pin 1 reference
Notes: R7 and C19 are DNP in this revision.
Impedance control on layers 1 and 6, 50 Ω ±10%.Sample data. Anyone who opens this package in two years knows what they have.
What to keep in version control, and what not
Briefly, since this has its own article:
Keep: schematic, PCB, project file, custom symbols and footprints, and your fabrication notes. These are the source. Keep, separately and tagged: the generated release packages. They are outputs, but they are the outputs somebody manufactured from, so they need to survive. * Think twice about: regenerated Gerbers on every commit. They change constantly and diffing them tells you nothing useful.
Does XKEMA integrate with KiCad?
No. There is no plugin, no native import and no connection to a KiCad project. Anything you read suggesting otherwise is wrong.
What XKEMA does is hold what comes out of the tool. You export the package from KiCad as described above, and the files are stored against the board and its revision, with the BOM attached to the element it describes. The export step is manual, the same as it would be into any folder.
That is a smaller claim than "integration", and it is the accurate one.
Hardware documentation PCB manufacturing package checklist * BOM, Gerber, CPL and drill files