Skip to main content
STACKUP & LAYERS · AS OF KICAD 10.0.6 (2026-08)

Preserve PCB stackup when moving from Altium to KiCad.

The physical stack — layer count, copper and dielectric layers, thicknesses — usually comes across. Where a standard migration quietly goes wrong is in the layer roles and the board outline: a layer with no clean KiCad equivalent can be silently remapped, and an unusual layer name can drop Edge.Cuts entirely — neither reported as an error. Crosspad accounts for every layer and the outline, repairs the map where it can prove it safe, and flags the rest — so a remapped plane is a finding, not a surprise at the fab.

Free analysis on one Altium .PcbDoc — one board file, not a project. Files are processed as described in our Security policy.
WHY THIS MATTERS

A stackup that opens isn't the stackup your fab will build.

Open the migrated board and the layers look right — the copper is there, the plane is where you left it, the outline traces the shape. But the stackup is the one part of a design that a fab reads literally: layer order, copper weights, dielectric, and which layer means what. A role silently remapped, a plane assigned to the wrong layer, an outline dropped because its layer name didn't translate — none of it throws an error, and none of it is visible until Gerbers, a fab query, or a scrapped panel. Both failures below are documented in KiCad's own issue tracker — real, reproducible, and quiet by nature. Crosspad exists to make each one visible before it costs you a build.

The stack usually comes across. The roles and the outline are where it breaks — silently.

THE SILENT PART

Does the PCB stackup survive an Altium → KiCad migration?

Mostly yes — and then, in a few specific places, no. Give the importer its due: the physical stack is in the part KiCad handles well. The danger is narrow and manufacturing-critical — layer roles and the board outline — and each failure below is documented in KiCad's docs and issue tracker, cited as proof it's real. Crosspad checks every one against your source.

Physical stackCARRIES

Layer count, copper and dielectric layers, thicknesses and board primitives (tracks, arcs, vias, pours) generally come across — this is the part KiCad's importer handles well and keeps improving.

documented: KiCad dev-docs
  • No-equivalent layer rolesREMAPPED

    An Altium layer whose role has no clean KiCad equivalent can be silently remapped to a different layer — so a plane, a mechanical or a documentation layer quietly lands somewhere it shouldn't.

    documented: KiCad #17351 (open, as of 10.0.6)
  • The board outline (Edge.Cuts)DROPPED

    An invalid or unusual layer name has caused the board outline itself to be dropped on import — a board with no Edge.Cuts, and no error to say so.

    documented: KiCad #18756 (open, as of 10.0.6)
  • Layer names & orderingREVIEW

    Altium layer names and stack order don't always map one-to-one; a renamed or reordered layer changes which copper the fab associates with which position.

    documented: KiCad #17351 + dev-docs
  • Controlled-impedance & material intentENGINEERING DECISION

    Impedance profiles and material assignments that drive the fab's build are not carried as an enforceable, equivalent stackup spec — the geometry can arrive while the intent behind it doesn't.

    documented: KiCad dev-docs (import scope)

“Docs and issue tracker” — the physical-stack credit and the impedance-intent gap come from KiCad's own import documentation; the remap and outline-drop are specific tracker issues. Version-specific behavior is re-verified each refresh.

LAYER ROLES

What happens to Altium layer roles in KiCad?

A stackup isn't just a pile of copper — each layer has a role: signal, plane, mechanical, keepout, documentation, the board outline. Altium and KiCad don't describe those roles the same way. KiCad has a fixed set of canonical layers (its copper layers plus named technical layers like Edge.Cuts, the fabrication and courtyard layers); Altium's model is more open, with mechanical and named layers that a design can use for almost anything. When a standard migration meets an Altium role with no clean KiCad home, it has to choose — and the choice is made silently: the layer is remapped to the nearest fit (KiCad #17351), or, when the name itself confuses the importer, the layer's content — including the board outline on Edge.Cuts — can be dropped (KiCad #18756). The copper is all still on the board; what changed is the meaning of the layers it sits on.

How Altium layer roles map to KiCad layers, and where a standard migration breaks — grounded in KiCad’s documentation and issue tracker.
ALTIUM ROLEWHAT A STANDARD MIGRATION DOESKICAD LAYERSTATE
Signal / copper layersmap cleanlyKiCad copper layersCARRIES
Internal planesmap, but a remap can move a plane's roleKiCad copper (plane)REVIEW
Board outlinedropped on an invalid layer name (#18756)Edge.CutsDROPPED
Mechanical / documentationno fixed equivalent — silently remapped (#17351)User.* / Dwgs / CmtsREMAPPED
Keepout layersrole can shift; may become an over-broad keepoutKiCad keepout / rule areaREVIEW
Scroll to see all columns

Crosspad accounts for every layer's role against your source and names each remap explicitly — see the process below. A deeper layer-role reference is coming; for now, the specific issues live in the tracked issue database.

THE CROSSPAD PROCESS

Every layer, and the outline, accounted for.

Crosspad doesn't hand you a longer worry list about your stackup — it resolves it. It reads your Altium layer stack and roles directly, migrates the board, compares the result back layer by layer, and returns a verdict for each: verified, repaired, or flagged for a decision.

  1. 01
    ANALYZE SOURCE

    Read the Altium stackup and every layer role directly — copper, planes, mechanical, keepout, documentation, and the board outline.

  2. 02
    COMPARE

    Match the result back to the source by meaning: is every layer present, on the right role, in the right order — and is the outline still there?

  3. 03
    REPAIR — OR ROLL BACK

    Correct a provably-safe layer remap, then re-parse and re-validate. A remap it can't prove equivalent is rolled back and flagged, never silently kept.

  4. 04
    EXPLAIN

    Produce an evidence report: which layers verified, which were repaired, and which — a no-equivalent role, an impedance intent — need an engineering decision.

If Crosspad can't verify a layer's role or the board outline, it doesn't mark it safe.

Read the full methodology
WHAT AN EVIDENCE REPORT LOOKS LIKE

A remapped layer you can see is a build you don't have to scrap.

Stackup section of an Altium → KiCad evidence report, by finding.
FINDINGDETAILOUTCOMEREPORTED AS
Layer stackcopper and dielectric layerscount & order matchedVerifiedVERIFIED
Edge.Cuts outlineclosed outlinepresentVerifiedVERIFIED
Mechanical13 (fab notes)no KiCad equivalentmapped → Dwgs.User; the mapping is statedExpressed differently in KiCadTRANSLATED_EQUIVALENTLY
Internal plane GNDrole shifted on importreassigned, then revalidatedFixed and re-checkedREPAIRED_AND_REVALIDATED
Keepout layerrole ambiguousconfirm the intended roleNeeds your answerACTION_REQUIRED
Controlled-impedance stackimpedance intentnot provable in the targetNeeds your callENGINEERING_DECISION_REQUIRED
Layer “MidLayer_π”unusual name dropped outlinere-attached, flagged for confirmationNeeds your answerACTION_REQUIRED
Scroll to see all columns
The report structure: every finding and the state it is reported in — what verified, what Crosspad repaired, and the calls left to you before the board goes to fab.
HONEST SCOPE

What we account for — and what we don't pretend to.

Crosspad targets modern Altium projects (.PrjPcb / .PcbDoc), version 6 or later. The physical stack usually comes across on its own; Crosspad's job is the part that silently goes wrong — layer roles and the board outline — plus naming the limits honestly. Where target equivalence can't be proven — a controlled-impedance profile, a material assignment, an Altium layer role with no KiCad home — Crosspad marks an engineering decision and hands it to you, rather than quietly reducing your stackup to whatever fit. Pre-Version-6 (Protel) board files are named as unsupported, not silently skipped; the ASCII text form is converted and then reconciled against an independent count of the board. The promise here is that every layer and the outline are accounted for — not that a stackup is preserved perfectly.

FAQ

Frequently asked questions.

Does the PCB stackup survive an Altium to KiCad migration?

The physical stack — layer count, copper and dielectric layers, thicknesses — usually comes across; KiCad's importer handles that part well. What a standard migration can silently get wrong is narrower and more dangerous: a layer role with no clean KiCad equivalent can be remapped (KiCad #17351), and an unusual layer name can drop the board outline on Edge.Cuts (KiCad #18756) — neither reported as an error.

Why would the board outline go missing after import?

The outline lives on the Edge.Cuts layer. When an Altium layer name doesn't translate cleanly, the importer has dropped that layer's content — including the outline — leaving a board with no defined shape and no warning (KiCad #18756). Crosspad checks the outline is present explicitly and re-attaches or flags it.

What happens to Altium layer roles that KiCad doesn't have?

KiCad has a fixed set of canonical layers; an Altium mechanical, documentation or otherwise non-standard layer with no equivalent is silently remapped to the nearest fit (KiCad #17351). The copper stays on the board, but its layer's meaning changes. Crosspad names every remap instead of passing it silently.

Is controlled impedance or my material stack preserved?

No honest tool can guarantee that. The geometry of the stack generally imports, but impedance profiles and material assignments aren't carried as an enforceable, equivalent stackup spec — so Crosspad marks them an engineering decision and surfaces them for you, rather than implying the intent came across.

Are these KiCad bugs, and are they fixed?

They're documented tracker issues — the layer remap (#17351) and the Edge.Cuts drop (#18756) — treated as open as of KiCad 10.0.6 (2026-08-29). KiCad's Altium import improves most releases, so several stackup behaviors are version-specific; this page is re-verified and re-dated per release.

How do I know if my stackup is affected?

The failures here are general; your stack is specific. Point Crosspad at your project and get evidence of exactly which layers verified, which it repaired, and which need a decision before fab.

CHECK YOUR OWN STACKUP

Know your layers survived — before the fab does.

Point Crosspad at an Altium project and get evidence of exactly what happens to your stackup: every layer and the board outline verified, repaired, or flagged for you.

Free analysis on one Altium .PcbDoc — one board file, not a project. Files are processed as described in our Security policy.

Stackup and layer behavior reflects a standard Altium → KiCad migration as of KiCad 10.0.6 (2026-08-29). Layer import changes across releases; #17351 (layer remap) and #18756 (Edge.Cuts drop) are treated as open at this anchor and re-verified each refresh. This page is updated per release.