How to Convert Altium to KiCad — 2026 Migration Guide

KiCad 8 Has a Native Altium Importer
Unlike the reverse direction, KiCad 8 (released February 2024) reads Altium .PcbDoc and .SchDoc files directly via File > Import > Non-KiCad Project. The importer parses Altium's binary OLE2/CFB format, extracts copper geometry, nets, and components, and writes a clean KiCad project. Most boards convert in minutes; the post-import work is 3D model relinking and rule restatement, not the geometry conversion itself.
What the Importer Actually Reads
Altium files are Compound File Binary (CFB) containers — the same OLE2 storage format used by old Microsoft Office documents. KiCad 8's importer walks the CFB tree, parses each binary stream (Board, Components, Nets, Polygons, Tracks, Vias, Pads, Strings), and reconstructs the design in KiCad's native S-expression format. The work was open-sourced and integrated into KiCad's main branch in 2023, so the parser is auditable. The importer also handles .PcbLib (footprint libraries) and .SchLib (symbol libraries) for partial migrations.
What Transfers and What Needs Fix-Up
- Copper layers — clean transfer including blind/buried vias, polygons, thermal reliefs. Layer mapping is automatic for standard 2/4/6/8-layer stacks.
- Nets and components — placements, references, values, and net assignments transfer cleanly. Cross-probe between schematic and PCB works after import.
- 3D models — Altium STEP references don't auto-link. Either use KiCad's official 3D library (covers most common packages) or MakerSuite 3D's auto-inference which derives model URLs from footprint names.
- Design rules — track widths and clearances per net class transfer. Differential pair rules, length matching, and impedance constraints need restating in KiCad's syntax (half-day for high-speed boards).
- Custom pad shapes — Altium's complex pad shape library doesn't have 1:1 KiCad equivalents. Most exotic shapes degrade to closest standard; visually verify before fab.
- Schematic graphics — text frames, custom symbols, and decorative elements may render slightly differently. Functional content (nets, symbols, references) is faithful.
Five-Step Migration Workflow
- Open pcbviewer.app — drop your .PcbDoc on MakerSuite 3D first to capture a baseline view of the original Altium board. This becomes your reference for verifying the conversion.
- Open KiCad 8 > File > Import > Non-KiCad Project, point at the Altium project folder. Wait for the importer to walk all binary streams. A clean import takes 30 seconds to a few minutes depending on board complexity.
- Open the imported .kicad_pcb in KiCad. Visual check: does the layer count match, do components show up where expected, are nets named consistently. Run DRC to find geometry issues the importer flagged.
- Relink 3D models — for footprints with empty 3D references, use KiCad's official library or auto-inference. Check the 3D viewer (View > 3D Viewer) to confirm components render.
- Verify by dropping the imported .kicad_pcb back on MakerSuite 3D and comparing tab-by-tab against the original .PcbDoc. Layer drift, missing zones, rotated parts, lost vias — all show up immediately in side-by-side 3D view.
Drop both the original .PcbDoc and the converted .kicad_pcb in MakerSuite 3D — visual diff catches importer regressions before they reach the fab.
Try MakerSuite 3D FreeWhy This Migration Path Is Smoother
KiCad has strategic incentive to grow by accepting Altium projects, so the importer is actively maintained. The reverse path (KiCad → Altium) has no equivalent because Altium has commercial incentive against making it easy to leave. This asymmetry means: switching to KiCad is a one-afternoon job for most boards. Switching from KiCad to Altium is a multi-day rebuild. Plan accordingly when choosing your team's primary EDA.
When Altium to KiCad Conversions Happen
- License cost reduction — small team finds Altium subscription too expensive, KiCad delivers same capability for free
- Cross-platform workflow — Mac and Linux engineers can't run Altium natively, KiCad runs everywhere
- Open-source mandate — corporate or grant requirements specify open-source EDA tooling for delivered designs
- Hiring constraint — KiCad-trained engineers are easier to find than Altium-trained, especially for entry-level roles
- Long-term archival — KiCad's text-based S-expression format is human-readable, version-controllable, and won't bit-rot like binary CFB
Verify the Conversion in Your Browser
Both Altium and KiCad source files contain full design IP. Uploading them to cloud-based converters or viewers is a real risk for NDA work. MakerSuite 3D parses both formats entirely in your browser via JavaScript — no server, no upload, no cached copy. Drop the original .PcbDoc on one tab and the converted .kicad_pcb on another to compare layer by layer. Any silent regression shows up immediately in the 3D view, and your geometry never leaves the machine.
Frequently Asked Questions
Does KiCad have a real Altium importer?
Yes — KiCad 8 (released February 2024) ships with native Altium Designer import for .PcbDoc, .SchDoc, .PcbLib, and .SchLib files. File > Import > Non-KiCad Project handles full project conversion. The importer reads Altium's binary OLE2/Compound File Binary format directly. Unlike the reverse direction (KiCad→Altium), which requires third-party tools, KiCad has invested in this importer because growing the user base by accepting Altium projects is strategically aligned with KiCad's mission.
What transfers cleanly and what needs fix-up?
Clean transfer: copper layers, tracks, vias (including blind/buried), pads, through-hole pads, polygons, board outline, drill data, schematic nets, and component placements. Needs fix-up: 3D models (Altium's STEP references don't auto-link to KiCad), some custom pad shapes (Altium's complex shape library doesn't have 1:1 KiCad equivalents), schematic graphic decorations (text frames, custom symbols may render slightly differently), and rule-driven design constraints (KiCad's DRC engine has different rule semantics, so high-speed rules need restating).
How do I handle 3D models?
Altium projects reference STEP models via the Component > 3D Models tab, but the model paths are absolute or relative to the Altium installation. KiCad uses .wrl or .step files referenced from footprints with environment variables like ${KICAD8_3DMODEL_DIR}. After import, footprints will have empty 3D references. Either: (1) use MakerSuite 3D's auto-inference which derives KiCad-CDN model URLs from footprint names automatically, or (2) re-link models manually via Footprint Editor > 3D models tab. The KiCad official 3D library covers most common packages.
Will design rules and constraint classes survive?
Partially. Altium's rule-driven engine (ApplicableTo/Net/NetClass/Layer scoping with priorities) doesn't map 1:1 onto KiCad's NetClass + custom rule system. Track widths and clearances copy over per net class. Differential pair rules, length matching, and impedance constraints require restating in KiCad's syntax. For high-speed boards (DDR, USB 3, PCIe), budget half a day for restating rules in KiCad and validating with the Differential Pair tools. For low-speed digital and analog boards, the default imported rules are usually fine.
Can I verify the converted board before committing to migration?
Yes — open both files in MakerSuite 3D's browser viewer side by side. The .PcbDoc parser and .kicad_pcb parser both render in the same 3D scene format, so visual diffs are immediate. Layer by layer comparison catches silent regressions like missing zones, flipped layers, rotated parts, or lost vias. This pre-commit check is the cheapest way to catch importer bugs before you invest weeks in adapting the design to KiCad's workflow. No install required, runs entirely in the browser.
Related Articles
Drop your Altium or KiCad files — verify the migration visually
Launch PCB Viewer