A Cross Platform and Open Source Electronics Design Automation Suite

KiCad

KiCad

  -  1 GB  -  Open Source
  • Latest Version

    KiCad 9.0.4 LATEST

  • Review by

    Sophia Jones

  • Operating System

    Windows 8 (64-bit) / Windows 10 (64-bit) / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    KiCad Team / External Link

  • Filename

    kicad-9.0.4-x86_64.exe

KiCad is an open-source electronic design automation (EDA) software suite used for creating schematics, printed circuit board (PCB) layouts, and more.

KiCad Screenshot 1

Initially developed in 1992 by Jean-Pierre Charras, KiCad for PC has evolved significantly over the years, becoming one of the most popular tools for electronics hobbyists, engineers, and professionals alike.

Its robust feature set, combined with its open-source nature, makes it a versatile choice for PCB design, capable of handling both small-scale and complex projects.

Main Features

Schematic Capture

KiCad's Eeschema module allows users to create complex circuit schematics with ease. It includes a wide range of components and supports custom symbols. Users can easily create and manage hierarchical designs, which is particularly useful for large projects.

PCB Layout

The PCBNew module is where the magic happens for PCB design. It supports multi-layer boards, differential pair routing, and high-speed design. The interactive routing tool offers real-time design rule checking, ensuring that your design is manufacturable.

3D Viewer

It includes a powerful 3D viewer that lets you visualize your PCB in a 3D space. This feature helps in understanding the placement of components and verifying the physical layout before manufacturing.

Library Management

It provides extensive libraries of components, footprints, and symbols. It also allows users to create and manage their own libraries, ensuring that you have the exact parts you need for your design.

SPICE Simulation

This program integrates with Ngspice for circuit simulation, allowing you to test your circuits before building them physically. This feature is invaluable for verifying the functionality of your design.

User Interface

KiCad’s user interface is clean and functional, though it may seem a bit overwhelming to beginners due to the vast array of tools and features available.

KiCad Screenshot 2

The interface is divided into different modules—Eeschema for schematic capture, PCBNew for PCB layout, and more—each with its own set of tools and options.

The learning curve can be steep, but once familiar with the interface, users will find it highly efficient and customizable. It supports multiple windows and tabs, allowing for easy navigation between different parts of a project.

Installation and Setup

Download: Visit the official website or FileHorse and download the installer for your operating system.

Installation: Run the installer and follow the on-screen instructions. The installation process typically takes a few minutes, depending on your system.

Initial Setup: Upon first launch, it prompts you to configure the default libraries and settings. This step is crucial as it ensures you have all the necessary components and tools available.

Getting Started: It offers a range of tutorials and documentation to help you get started. It’s recommended to go through these resources to familiarize yourself with the software.

KiCad Screenshot 3

How to Use
  • Create a Project: Start by creating a new project. It organizes everything into a project directory, making it easy to manage files.
  • Schematic Design: Use the Eeschema module to create your circuit schematic. Add components from the library, connect them using wires, and assign footprints to each component.
  • PCB Layout: Once your schematic is complete, switch to PCBNew to start laying out your PCB. Import the netlist from Eeschema and place your components on the board. Use the routing tools to connect the components.
  • 3D Visualization: Use the 3D viewer to check your PCB layout in a three-dimensional space. This step is essential for ensuring the physical design meets your expectations.
  • Manufacturing Files: Generate Gerber files and other necessary manufacturing files from PCBNew. These files are what you will send to your PCB manufacturer.
FAQ

Is KiCad suitable for professional use?
Yes, this program is widely used by professionals for commercial projects. Its feature set is robust enough to handle complex designs, and being open-source, it receives continuous improvements from the community.

Can I import projects from other EDA tools into KiCad?
It supports importing designs from other EDA tools like Eagle. However, the import process might require some adjustments to ensure compatibility.

Does KiCad have simulation capabilities?
Yes, it integrates with Ngspice for SPICE-based circuit simulation. This feature allows you to simulate and verify your circuits before building them.

Is there a limit to the size or complexity of a project in KiCad?
No, the app does not impose any artificial limits on the size or complexity of your project. It can handle multi-layer boards, high pin-count components, and large designs.

How can I learn KiCad efficiently?
The community offers extensive documentation, tutorials, and forums. Additionally, there are many video tutorials available online that can help you learn the software quickly.

Alternatives

Eagle: A popular EDA tool by Autodesk, Eagle offers similar functionality but comes with a steeper price tag and limitations on board size in the free version.

Altium Designer: Altium is a high-end EDA tool used by professionals in the industry.

Fritzing: Fritzing is an open-source tool designed for beginners and hobbyists.

LTspice: Fast, and free SPICE simulator software, schematic capture and waveform viewer.

Pricing

This software is completely FREE and open-source, with no restrictions on its use.

This makes it an attractive option for both hobbyists and professionals who need powerful PCB design software without the high cost.

System Requirements
  • Operating System: Windows 11, 10, 8 or 7
  • Processor: 1 GHz or faster processor
  • Memory: 2 GB RAM minimum (4 GB or more recommended)
  • Storage: 2 GB of available disk space
  • Graphics: OpenGL 2.1 or higher-compatible graphics card
PROS
  • Free and open-source
  • Robust feature set for professional use
  • Multi-platform support
  • Extensive community resources
CONS
  • User interface can be overwhelming at first
  • Occasional bugs and glitches
Conclusion

KiCad is a powerful and versatile EDA tool that is well-suited for both beginners and professionals. Its open-source nature, combined with a comprehensive feature set, makes it an excellent choice for PCB design.

While it has a learning curve, the benefits of using this program far outweigh the initial challenges. Whether you’re working on a small hobby project or a complex commercial design, it provides all the tools you need to bring your ideas to life.

Also Available: KiCad for Mac

Why is this app published on FileHorse? (More info)
  • KiCad 9.0.4 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    KiCad 9.0.4 Screenshot 1
  • KiCad 9.0.4 Screenshot 2
  • KiCad 9.0.4 Screenshot 3

What's new in this version:

General:
- Fix crash because the infobar button doesn’t have a parent window yet
- Unbind the size event from the parent window while destructing the child window
- Add automatic completion for defined environment variables.
- Fix design blocks memory leak.
- Warp back from context menu before running command
- Properly undo/redo moving hierarchical pins in a sheet block
- Fix library tree pane destruction order crash
- Don’t use EndModal() to cancel a modal dialog that hasn’t been shown yet
- Fix potential radius overflow issue in arc calculation
- Fix potential crash when closing current project.
- Fix assertion when dragging selection area
- Prevent crash when nested settings are not valid on save
- Check file extensions before trying to open project file.
- Prevent assertion when deleting selected row in design block library table dialog
- Change title case to sentence case in Git preferences dialog
- Fix updating embedded drawing sheet
- Do not presume single symbol netlist in footprint chooser
- Do not double delete panels
- Fix assertion attempting to update status bar while closing window (KICAD-506).
- Fix crash in project importer when editor window cannot be created
- Prevent assertion when showing color panel context menu when no color this selected
- Fix assertion attempting to write to a non-editable grid cell
- Be more robust with file systems that don’t support timestamps (KICAD-R7V).
- Prevent excessive file load times due to large clipboard pastes
- Remove temporary file when saving
- Fix HPGL command ordering for older interpreters (TRUMPF laser)
- Fix the ever-growing window bug
- Allow deleting configuration paths that begin with KICAD# that are not the current version
- Force trimming of white space in environment variables.
- Support dash-dot-dot line style in DXF plot.
- Improve hot key handling from search pane
- Do not break grid snapping when "Warp mouse to origin of moved object" is disabled
- Allow multiple netclass assignments with the same pattern

Schematic Editor:
- Fix crash when choosing footprint in symbol properties
- Add Check/Uncheck All buttons to change footprints dialog
- Add Check/Uncheck All buttons to update symbols dialog
- Don’t allow repeat command when one is already running
- Ensure correct duplicate or insert after adding symbol
- Add undefined netclass to ERC severity list
- Fix crash when automatically saving schematic
- Embed fonts used in fields and text items
- Don’t assert on automatic save when directory not writable
- Prevent assertion when attempting to float on parent when there is no parent
- Prevent assertion when resolve symbol field text variables
- Prevent assertion when attempting to sort column not in fields grid
- Prevent assertion attempting to navigate on non-existence schematic
- Ignore visibility and style attributes in instance data
- Prevent DNP and exclude from simulation markers from flashing when moving an object
- Fix broken table row height property panel behavior
- Do not allow entering spaces in label names
- Prevent assertion when building hierarchy navigator tree
- Prevent assertion in symbol chooser
- Prevent assertion attempting to select non-existent symbol SPICE model
- Fix crash when opening footprint chooser in symbol properties dialog
- Fix page order when plotting schematic to PDF
- Allow global labels to be created by clicking on a wire with an existing local name
- Make junctions filter selection the same as wires.
- Fix crash when changing label type
- Properly crop image when exporting drawing to clipboard
- Fix crash in symbol properties dialog after closing footprint chooser dialog
- Don’t flag ERC for similar label names on different sheets
- Increase number of digits when displaying millimeter units
- Fix alternate pin icon current preference from resetting.
- Fix outline drawing of plated through hole pads
- Fix crash when moving parts of schematic
- Footprint Assignment Tool (CvPCB):
- Prevent assertion when attempting to select a non-existent footprint from the list

Spice Simulator:
- Add grammar for SkyWater .subckt parameters
- Fix assertion when trying to select items that don’t exist model dialog
- Do not assert when selecting node while net navigator is frozen
- Don’t clear pin assignments when changing simulation model

Symbol Editor:
- Escape/unescape symbol name in save as dialog
- Fix crash if symbol library no longer exists
- Fix assertion when checking if library is read-only
- Prevent assertion when automatically placing pins
- Fix assertion when attempting to save to missing library
- Prevent assertion when symbol doesn’t have a library
- Prevent assertion when removing selected row from pin alternate list
- Prevent assertion when attempting to remove symbol name not in symbol properties dialog list
- Prevent assertion when library is updated outside KiCad
- Improve "This position is already occupied by another pin" warning message

Board Editor:
- Prevent invalid layers in property editor.
- Support arbitrary layer count in ODB++ output.
- Add unique icon for constraints resolution
- Improve moving footprint performance
- Prefer the active layer when picking tuning patterns
- Fix footprint locking
- Don’t export negative layers to copper
- Fix broken geographical annotation for locked footprints
- Use courtyards for DNP cross-out sizes
- Properly update clearance indicators on rule area change
- Ensure any mapped layers are enabled on Eagle import
- Prevent "Unroute Selected" icon disappearing from context menu for certain selections
- Allow move action when selection contains non-table-cells.
- Fix assertion when calling boolean operations on polygons
- Fix assertion caused by non-existent selections in setup tracks and vias grid.
- Fix crash evaluating DRC rule condition when netclass is missing
- Prevent assertion when plotting pads with undefined layers
- Add table row height and column width to properties panel
- Fix assertion when drawing zone
- Fix assertion in DRC copper clearance test
- Respect "exclude DNP" setting for Gerber X3
- Fix assertion in layer mapping dialog when setting invalid sizer row count
- Prevent assertion in zone filler when arcs have not been cleared before performing boolean operations
- Prevent overflow assertion when drawing ruler tick marks
- Prevent assertion when checking for pad collisions in DRC
- Prevent assertion when setting tuning pattern with arcs
- Prevent assertion for pads having valid Dwg and Eco layers
- Prevent assertion in connectivity algorithm when removing via layers
- Prevent assertion when parsing empty dimension text
- Respect non-free-pads mode for move exactly
- Prevent assertion when printing with non-existent color theme
- Show actual clearance for same net objects
- Fix crash on undo after creating outset from selections
- Properly align/distribute text items in footprints
- Properly handle castellated pads on STEP export
- Set the default thermal spoke angle to 90 degree for rounded rectangle pads
- Use correct icon for dimension tool
- Fix polygon merge issue
- Prevent DRC exclusion instability
- Handle duplication of reference images for array tool
- Do not allow selection of excluded DRC markers when they are not visible
- Fix crash when imported properties not properly nulled
- Prevent assertion when initializing zone settings
- Improve the subtract polygon tool
- Fix slow PCB canvas redraw on DRC selection highlighting
- Properly align imported Altium dimensions
- Properly handle 3D model projection in Altium import
- Remove context menu from interactive position tool.
- Speed up massively slow outline conversion
- Allow horizontal and vertical distribution to work with vias
- Optimize zone to zone checks in zone filler
- Fix crash importing Eagle file with unmapped layers
- Fix highlight net keyboard shortcut with filled zone in a rule area
- Honour pad holes when hit testing
- Honour board page information when plotting drill maps
- Fix crash in copper clearance DRC test
- Break out of the zone tool on completion of zone
- Optimize zone to zone clearance checks
- Improve snapping with large grids
- Select move origin by mouse instead of cursor
- Fix grid visibility when using layer presets
- Do not reset via tenting setting in PCB Design Rules after re-opening
- Fix crash in DRC when tuning pattern or arc exists on board

Footprint Editor:
- Fix crash when saving footprint to board
- Do not assert on inner layers

3D Viewer:
- Fix assertion when getting track width margin for degenerate arcs
- Ensure legacy colors always work
- Prevent assertion attempting to remove invalid layer preset from list
- Link copper layer color chooser swatches
- Correctly render back side user layers

Bitmap to Component Tool:
- Adding file drag and drop

Command Line Interface:
- Add some individual flags for PCB render jobs
- Add appearance preset selection options to PCB render jobs
- Properly render global labels when default font is changed
- Prevent inadvertent handling of dark mode
- Do not show User.Drawings layer in 3D rendering when disabled

Job Sets:
- Fix off by one layer text variable output when running multiple page PCB PDF output
- Add progress reporting for Run Jobs
- Fix crash when saving new jobset
- Load appearances presets to PCB render job
- Fix crash when adding new job and running all jobs

API:
- Expose pad to die length

Windows:
- Fix broken shift+middle click taskbar behavior
- Add a -n arg for "new instance" to kicad.exe for use with the relaunch command.
- Fix erroneous hex parsing when opening legacy PCB files.
- Fix disappearing top menu bar due to GDI object exhaustion