Electronics Design AU
PCB Design

KiCad

KiCad EDA: schematic capture, PCB layout, footprint libraries, and generating fabrication outputs.

KiCad is a free, open-source EDA suite capable of professional-quality schematic capture and PCB layout, and it is the tool most embedded hardware engineers reach for first. This subtopic covers KiCad at the practical, tool-specific level: the schematic-to-fabrication workflow, library management, and the routing features needed for controlled-impedance and differential-pair designs.

What Is KiCad?

KiCad is a full PCB design suite: a schematic editor (Eeschema), PCB layout editor (Pcbnew), footprint and symbol editors, a Gerber viewer (GerbView), and a PCB calculator utility, distributed under the GPL and developed with contributions from CERN, a dedicated core team, and the wider community. A KiCad project is a set of plain-text files (.kicad_pro, .kicad_sch, .kicad_pcb, plus .kicad_sym/.kicad_mod library files), which makes the entire design — schematic, layout, and libraries — cleanly version-controllable with Git. This subtopic is part of the PCB Design topic, which covers PCB design principles independent of tool choice.

Why KiCad Matters

  • Zero licensing cost removes a barrier to professional layout — a startup or solo engineer can design a production-grade board without a commercial EDA subscription, and design files remain accessible without ongoing licence payments.
  • Plain-text project files enable real version control — schematic and PCB changes can be diffed, branched, and reviewed in Git the same way source code is, which most commercial EDA file formats do not support natively.
  • Library discipline determines long-term maintainability — a project's symbols and footprints, not just its schematic and layout, need the same care as any other design asset; a missing or mismatched footprint is a common source of last-minute fabrication failures.
  • Fabrication output correctness is the last gate before money is spent — an error in Gerber layer selection, drill coordinate origin, or impedance-controlled trace geometry is invisible until boards come back from the fabricator wrong.

Key Concepts

  • Project file structure.kicad_pro (project settings), .kicad_sch (schematic), .kicad_pcb (PCB layout) form the core of every project; all are plain text and diff cleanly in Git.
  • Symbol and footprint libraries — schematic symbols live in .kicad_sym files; PCB footprints live in .pretty directories of .kicad_mod files. Libraries can be project-scoped (travel with the project folder) or global (shared across all designs via the library table). See KiCad footprint and symbol library management.
  • Update PCB from Schematic — the netlist transfer step (F8) that pushes schematic connectivity and footprint assignments into the PCB editor; the standard point where footprint mismatches or unassigned symbols surface.
  • Net Classes — per-signal-group rules (track width, clearance, via size) set in Board Setup → Design Rules → Net Classes; the mechanism that enforces controlled-impedance and differential-pair geometry across a layout. See controlled-impedance and differential-pair routing in KiCad.
  • Gerber X2 — the modern Gerber format KiCad exports by default, embedding layer-function attributes so fabricator tools can auto-identify layers rather than relying on filename conventions. See exporting Gerbers from KiCad.
  • Design Rule Check (DRC) — KiCad's real-time and full-board rule checker, validating clearance, annular ring, and net class compliance before a board is sent to fabrication.

Common Tools and Software

  • PCB Calculator — KiCad's built-in utility (Tools → External Plugins, or standalone) for computing trace geometry against a target impedance, track current capacity, and other common PCB design calculations.
  • GerbView — KiCad's bundled Gerber viewer, used to verify a fabrication output package (layer count, drill alignment, board outline closure) before submission.
  • Interactive router — three routing modes (Interactive, Push and Shove, Walkaround) plus a dedicated differential-pair router with length-tuning meanders for matched-length routing.
  • ngspice — KiCad's built-in SPICE circuit simulator, used at the schematic stage to validate a design's DC operating point, frequency response, and transient behaviour before committing to layout. See KiCad SPICE simulation.
  • kicad-cli and the pcbnew Python API — a headless command-line tool for running ERC, DRC, and exports in CI without a GUI session, plus a Python module for scripting checks and generation tasks the built-in tools don't cover. See KiCad Python scripting and pcbnew automation.

Relevant Standards

  • IPC-7351 — Generic Requirements for Surface Mount Design and Land Pattern Standard. KiCad's official footprint libraries follow IPC-7351 nominal (Class M) density; use it as the reference when creating custom footprints rather than scaling existing ones by eye.
  • IPC-2141A — Design Guide for High-Speed Controlled Impedance Circuit Boards. The basis for the trace geometry KiCad's PCB Calculator computes for a target impedance.

Common Questions

Is KiCad good enough for a commercial, production PCB design?

Yes. KiCad is used for commercial products across consumer electronics, industrial equipment, and open-source hardware. Its practical limitations relative to commercial tools (Altium, Cadence Allegro) are mainly around large-team collaboration features, vendor-managed component database libraries, and advanced signal-integrity simulation for very high-speed designs. Basic schematic capture and layout capability, by contrast, is professional-grade for the vast majority of embedded product PCBs.

Can I import an existing Eagle or Altium design into KiCad?

Yes, with caveats. KiCad can import Eagle .sch/.brd files directly, and can import Altium .SchDoc/.PcbDoc files (import-only, no round-trip back to Altium). Conversion quality varies with design complexity: always verify the imported schematic connectivity and footprint assignments rather than assuming a clean 1:1 conversion, particularly for designs with hierarchical sheets or custom library parts.

How do I keep KiCad libraries consistent across a team?

Use a shared global library (referenced via a common library table checked into version control or distributed via a setup script) rather than letting each team member maintain independent local libraries. Store project-specific parts in a project-scoped library that travels with the repository. Review new library entries against the component datasheet before merging: library errors (wrong footprint, wrong pin mapping) propagate silently into every design that references the part.

What's the difference between KiCad and Altium Designer?

KiCad is free and open-source with plain-text, Git-friendly project files; Altium Designer is a commercial tool with stronger built-in team collaboration (Altium 365, database libraries) and more mature signal-integrity and PDN analysis tooling, at a significant licensing cost. See Altium Designer vs KiCad for the full comparison and decision guide. Zeus Design designs production PCBs in both KiCad and Altium depending on project requirements.

Knowledge Base

Workflow

Library Management

Routing

Fabrication Output

Automation and Scripting

Simulation

Forum Discussions

Forum Discussions

Related Topics