cad/kicad: Update to 9.0.2

KiCad 9.0.2 (2025-05-07)

General
- Add tool framework to footprint preview widget. #17107 #19651
- Don’t bleed settings between 3D viewer and 3D footprint
  preview. #17353
- Improve text alignment in grids and one-line Scintilla
  controls. $16685
- Include hidden fields when searching. #20370
- Fix ambiguous data collection opt in dialog text. #20027
- Handle home folder shortcut in jobset destinations. #20032
- Refresh search when showing search panel. #20009
- Add support for mixed state checkboxes in grids. #17730
- Do not export unused copper layers in job set PDF output. #20460
- Don’t assert or crash on shutdown. #20433
- Update default schematic when creating a new project. #20448
- Prevent empty job set type list. #20522
- Don’t always pop up warning regardless of setting rendering engine
  to fallback graphics. #20386 and #20544
- Prevent project backup and archive from growing infinitely. #20431
- Add menu item to control searching of hidden fields. #20370
- Remove unnecessary tool tips from rules check dialog.
- Fix too small angle increment when stroking arcs.
- Allow multple line text in table cell. #20327
- Use schematic editor default font setting for plot job.
- Allow checking/unchecking of multiple rows' check boxes in library
  configuraton window. #18843
- Fix table and text box rotation and text justification. #20642,
  #20643, #20644, and #20645
- Allow embedded files to come from symbols and footprints. #20530 and
  #20210
- Fix copying embedded file URIs in grids. #20494
- Exclude brackets at the end of a URL when linking from HTML. #20347
- Retain use board center origin 3D model export job set
  setting. #20752
- Fix crash in footprint chooser. #20780
- Don’t write unused part of the buffer into image data. #20698
- Fix line width issue when plotting many pages in one PDF
  file. #20805

Schematic Editor
- Allow context menus in footprint chooser.
- Ensure text variable in link is substituted during PDF
  export. #20340
- Fix off by one error when dragging symbol fields table columns to
  the left. #20307
- Do not leave unwanted right-most vertical border when merging table
  cells. #20350
- Enable navigation controls on read only projects. #20378
- Fix broken netlist output. #20394
- Don’t use net/netclass colors for label graphic shapes. #19589
- Test symbol outline collisions for rule areas not just bounding
  boxes. #20383
- Prevent duplicate sheet names on paste, #20357
- Prevent crash when clicking link added by symbol field editor. #20511
- Use clearer column title in symbol fields editor. #20509
- Remove assert that fires when applying field table editor
  preset. #20467
- Don’t create invalid schematic in project path when linking sheet
  shematic outside the project path. #20502
- Do not plot text box shape twice. #20545
- Prevent overwriting alias members when adding new rows in panel
  setup. #20040
- Fix simulation model dialog crash when no spice model library
  loaded. #20599
- Fix infinite recursion crash when building connect graph. #20596
- Fix zoom on large schematic sizes. #20594
- Fix broken label position in Eagle schematic importer. #20593
- Do not allow property inspector to assign items to non-existent
  symbol units. #20649
- Match partial strings in symbol fields table editor. #20678
- Properly expand variables when exporting BOM. #20417
- Fix symbol chooser filtering with custom library. #20610
- Fix LTSpice file import with minor version number.
- LTSpice import fixes.
- Do not allow illegal design block name characters. #20676
- Ensure label dialog text is correctly auto-completed. #13508
- Make paste annotation work correctly. #19828
- Add junctions on LTSpice import. #20727
- Do not duplicate resolved net classes. #20794.
- Fix broken symbol arcs in Eagle importer. #20793
- Don’t crash on missing symbols when importing LTSpice schematic.
- Honor template field name visibility setting when adding
  fields. #20575
- Fix crash when loading a version 8.0 schematic. #20777
- Add warning when the default library is not found when importing
  LTSpice schematic.

Board Editor
- Plot the appropriate ${LAYER} tag when plotting to single document
  PDF. #20352
- Fix crash when changing units. #20380
- Correctly rotate silk screen text on Eagle board import. #20271
- Generate correct Gerber file names if the project name contains a
  dot. #20065
- Process non-copper keepouts in footprints. #20405
- Properly mirror pad numbers when plotting. #20459
- Correctly import settings from another board. #20484
- Ensure PNS length tuning calculation uses correct layer ID. #20372
- Add new DRC expression function isMemberOfSheetOrChildren. #20339
- Prevent crash when using net inspector. #20521
- Reset tool tip when aborting position interactive tool. #20489
- Preserve text box size when rotating angles other than 90
  degrees. #20529
- Fix broken edge cut copy and paste. #20537
- Improve performace for complex polygons. #17820
- Always print the via hole. #20546
- Improve pan performance when showing a large amount of through hole
  pads. #20506
- Fix false positive when performing footprint parity DRC. #15917
- Restore visibility editing for fields. #20560
- Prevent duplicate find results. #20569
- Fix incorrect tool tip in rule area properties dialog. #20592
- Improve zoom and pan performance with large number of through hole
  pads. #20506
- Resolve fonts for tablec ells. #20605
- Fix broken table highlight colors. #20606
- Use a better position for the DRC marker with arc tracks. #20636
- Fix missing traces when exporting to STEP. #20515
- Prevent tables from walking when flipping them to other side of
  board. #20294
- Remove artefacts after deleting appended board. #20314
- Fix broken footprint chooser measurement tool behavior after
  changing display modes. #20669
- Remove horizontal/vertical constraints limitation from footprint
  chooser. #20668
- Fix broken Python demo script. #20538
- Mark ODB++ as export only. #20493
- Fix broken pads in GenCAD export. #20437
- Avoid popping a dismabiguation menu after point selection
  completes. #20680
- Add sorting functionality for netclass assignments. #18819
- Prevent tracks created by multi-channel tool from swapping groups on
  save. #20665
- Add dedicated anchor points for table. #20184
- Correctly handle solder masks for tear drops on tracks with solder
  masks. #20744
- Export text box borders to STEP. #20763
- Don’t reserve source pad number in array tool. #20722
- Fix pad snapping on non front copper layer in high constrast
  mode. #20674
- Correctly match implicit composite netclass DRC rules. #20797
- Fix arc winding and layers on GenCAD export.

Footprint Editor
- Check for silk screen to solder mask collisions in DRC. #19707
- Ensure attribute deleted in schematic is deleted in board. #19988
- Allow changing the default layer for text items. #20505
- Be explicit about custom pad default anchor shape. #20551
- Fix crash when deleting grouped text. #20589
- Fix crash when loading Altium designer footprints with polygon pour
  cut outs on plane layer. #20625
- Correctly cleari thermal relief override (gap/spoke) in pad
  properties dialog. #20709

3D Viewer
- Add missing user defined layers. #19417
- Use custom layer names instead of canonical layer names. #20360
- Reset colors when clicking properties dialog "Reset to Default
  Settings" button. #20624
- Fix look of some exposed copper pads. #20111
- Account for aperture and track masks in plated copper calculations.

Gerber Viewer
- Fix issues when loading zip files. #20779
- Fix crash when file load error log window overflows. #20799

PCB Calculator
- Add calculation of unit propagation delay.
- Reset default units along with values.

Command Line Interface
- Correctly handle user defined layer names. #18773
- Do not plot all gerber layers when an invalid layer list is
  provided. #20555
- Fix Gerber --output command help. #20298

API
- Fix crash updating reference designator. #20206

Windows
- Fix crash when closing some KiCad main windows. #20754

macOS
- Allow searching menu items. #10124

Linux
- Add support for Python 3.14 for Fedora 43.


KiCad 9.0.1 (2025-03-30)

General
- Vertically center text in cells in job sets table.
- Automatically recognize URLs in symbol and footprint properties
  grids. #17066
- Show URL button when hovering in field properties grids. #17745
- Support bare hyperlinks in table cells and text boxes. #18832
- Fix inconsistent capitalization in "Add New Job" dialog. #19770
- Fix misleading label "output file" for some schematic output
  jobs. #19868
- Ensure project manager hotkeys appear in hotkeys list. #19989
- Fixed description column naming when changing job sets. #20030
- Support pinning/unpinning multiple libraries in the library
  editors. #19726
- Do not persist fallback canvas type due to OpenGL failure.
- Prompt to enable IPC API when required by plugin. #20062
- Fix project manager performance using projects tracked with
  Git. #20078
- Fix crash when accessing footprints of imported Altium *.IntLib
  files. #20099
- Show project manager hot keys in hot key list. #19989
- Fix git clone project dialog layout issues. #20045
- Properly restore panels for all editors. #20066
- Fix crash on start when no git repository is present. #20152
- Persist generate gerber job file setting. #20158
- Prevent extra curves when importing certain SVG files. #20138
- Persist some missing job set arguments. #20116
- Use Gerber job settings not in job sets. #20214
- Fix schematic plot to PDF for job sets. #19522
- Fix button alignment in job set run log dialog. #20207
- Support ctrl-delete for delete word forward. #20248
- Fix opening embedded PDF files. #20006
- Fix segfault when opening a project which has git repository with
  SSH keys configured to GitHub. #20204
- Fix a git2 related crash when closing KiCad. #20202

Schematic Editor
- Prevent image duplication when pasting from clipboard. #19973
- Properly handle importing Altium harnesses. #16852
- Resolve field references in symbol text items. #19983
- Update instance reference from property inspector. #19932
- Pretty print cross references in "Symbol Fields Table"
  dialog. #19941
- Remove prohibition from clearing value field in Symbol Fields Table
  dialog. #19745
- Do not load old symbols with all fields set to visible. #20017
- Prevent crash when importing over existing project. #20004
- Make exclude from simulation indicators more subtle.
- Allow simulation models to reference embedded files. #20024
- Correct mirror location of text box. #20021
- Fix formatting of field file formatting that broke loading files
  with 9.0.0. #20166
- Ensure sheet file name color is respected. #20128
- Don’t trigger ERC error when no connect is connected to a no
  connect object. #20222
- Fix multi-unit symbol when importing Altium schematics.
- Ensure imported Altium schematic sheet names are unique. #19281
- Don’t translate file dialog "All Files" filter string.
- Fix loading schematic with embedded files. #20301
- Don’t wait for mouse move to draw selection shadows. #20309
- Do not print all pages with the first page border and title
  block. #20318
- Keep the full depth of the hierarchy in bookmarks when plotting to
  PDF. #12154
- Use stable sort ordering in ERC reports. #20333
- Correctly handle duplicate entries in BOM presets. #20342
- Fix schematic load failure. #20301

Symbol Editor
- Restore export symbol feature. #20070
- Handle exporting symbols into existing libraries. #17840
- Fix creation of a new symbol library due to an issue with write
  permissions. #20228
- Fix crash when deleting footprint filter when no filter
  selected. #20320

Spice Simulator
- Fix net name quoting issue for user defined signals. #18598
- Resolve hotkey conflicts. #18201
- Fix crash when attempting to run IBIS simulation. #20268

Board Editor
- Improve performance of creepage DRC.
- Add "Route Selected From Other End" action to edit context
  menu. #19911
- Don’t disable line styles on filled shapes. #19946
- Add field 'Name' property to properties panel. #19706
- Improve performance of teardrop generation.
- Do not throw DRC error "unconnected end" when via has no net. #19737
- Properly save "view board mirrored" preset setting. #19852
- Fix incorrect plot of tables rotated +-90. #19985
- Ensure drill layer pairs are created in ODB++. #20039
- Fix broken report file stacking relationship. #20069
- Reduce height of board setup dialog. #20106
- Prevent invisible vias in dimmed inactive layer view mode from
  auxiliary layers. #20093
- Fix zone manager dialog layout issues. #20046
- Prevent ignored violation "No-Mirrored text on back layer" from
  displaying a red arrow after DRC. #20049
- Prevent layer specific solder mask overrides as they are not
  supported. #20053
- Prevent duplicate Gerber output of linear dimension arrows. #20076
- Fix export SVG mode logic. #20089
- Fix crash related to git support. #20133
- Do not remove solder mask relief when length matching tools are
  used. #20085
- Do not warn for all connected pads when modifying a single trace
  width. #20084
- Do not include fabrication values on silk screen gerber
  output. #20144
- Prevent orphaned track on a zone when connected to the net of the
  zone. #20090
- Ensure pad clearance lines are always drawn not only when footprint
  is selected. #19896
- Disable multiple via dragging. #20150
- Fix plotting of tables with non-90 degree rotation angles.
- Improve default sizes of appearance panels. #19965
- User defined layer bug fixes. #20022
- Prevent pad losing layers when footprint is flipped. #20169
- Move arrow direction to more appropriate section of dimension
  properties dialog. #20208
- Printing should never hide small elements. #20226
- Fix Specctra export for multiple netclasses.
- Fix crash when placing certain footprints. #20235
- Fix DRC memory leak. #20272
- Add DRC for tables.
- Prevent leaving vias behind after retreating from a PNS router
  push. #19045
- Fix crash in multiple drag PNS shove. #20075
- Allow DRC rule to reduce the number of spokes. #20281
- Don’t ignore tables on copper layer using PNS router. #20295
- Fix false positive DRC error for zones with rotated tables. #20143
- Fix stuttery zoom performance. #20060
- Fix DRC exclusion for Edge.Cuts on layer legend after DRC
  rerun. #20308
- Prevent creepage DRC violation indicators from disappearing on
  repeated runs. #20048
- Prevent creepage DRC from only checking front copper layer. #20317
- Use correct date format in misc/info file when exporting
  ODB++. #20103
- Update footprint properties even when footprint cannot be
  updated. #18249
- Fix DRC false positive when arc used as trace. #20336
- Use user interface order for drill report stack up. #20069
- Fix crash when attempting to place vias in differential routing
  against pads. #20440
- Correctly plot "Indicate DNP on fabrication layers". #20458
- Use correct rectangle height and width after setting grid origin in
  properties panel. #20468

Footprint Editor
- Do not allow renaming a footprint to silently overwrite existing
  footprint. #19857
- Fix crash on second "Edit Pad as Graphics Shapes" operation. #20129
- Don’t disable first internal layer. #20246
- Prevent false positive error message when creating fillet
  line. #20326
- Fix crash when increasing number of copper layers if board contains
  a footprint with custom padstack. #20435

Gerber Viewer
- Ignore negative layers when exporting Gerbers to PCB. #16871

3D Viewer
- Don’t render thickness walls of text not being drawn. #20200
- Put layers without defined board side on front of board. #20201
- Allow default color settings to be reset. #18709
- Correctly render tables. #19981

PCB Calculator
- Fix incorrect formula for strip line conductor loss.

Command Line Interface
- Fix broken PCB SVG output. #20023
- Add IPC-D-356 export. #13951
- Deprecate instead of remove --plot-invisible-text option from PCB
  exporters. #20171
- Restore the page size mode behavior. #20014

Libraries
- Added 200 new symbols and 252 new footprints
- Regenerated over 10000 generated footprints in Version 9 format
- 72% of all footprints in the library are now automatically generated

API
- Add serialization of footprint mounting style. kicad-python#19
- Refresh board editor after changing selection. #20008
- Add board origin setter and getter methods. kicad-python#20
- Fix crash when updating reference designators via API. #20206
- Fix build with protobuf 30. #20300

KiCad 9.0.0 (2025-02-20)

The KiCad project is proud to announce the release of the next major
version of KiCad. Version 9 is packed with new features, improvements,
and hundreds of bug fixes. We hope you enjoy the new version! Head to
the KiCad download page to get your copy of the new version (note that
some packages may still be in the process of being released at the
time this announcement is published). Our thanks go out to everyone
who contributed to KiCad this past year. Whether your contribution was
large or small, writing code, submitting bug reports, improving our
libraries and documentation, or just supporting us financially: your
help made a difference.

In accordance with the KiCad stable release policy, version 8 of KiCad
will no longer be actively maintained, and we will release bug fix
versions of KiCad 9.x over the next year as we develop new features
for KiCad 10. Read on to see some of the highlights of the new
version!

Version 9 Changes

Most, if not all, of the new features as well as usability
improvements in KiCad 9 are described in a running thread on the KiCad
user forum. This thread is being kept reasonably up to date so users
running nightly builds know about new features to take for a test spin
and provide bug reports and feedback. Wayne Stambaugh also presented
them in his FOSDEM 2025 talk which is available to watch on the FOSDEM
website. This post highlights some of the major changes, but is not a
complete list. There were also hundreds of bug fixes, performance
improvements, and other smaller changes since KiCad 8. A full list of
issues addressed in KiCad 9 can be found on the milestone page on
GitLab.

By the Numbers

Source repository contributions

KiCad 9 was built with changes and additions from hundreds of
developers, translators, library contributors, and documentation
submitters. There were 4,870 unique commits made that changed code and
translations, which was roughly equivalent to Version 8. Our annual
development cycle continues to provide regular major releases for our
user base and attract new contributors and sponsors.

Improvements to the official KiCad libraries

2024 was another big year for the KiCad library team. With the help of
six new librarians joining the effort, the library gained almost 1500
new symbols, 750 new footprints, and 132 new 3D models along with
thousands of updates to fix or improve existing parts. The team
processed over 2309 merge requests. With even more people helping this
year, the team is able to address issues more quickly and has been
driving down the backlog of pending merge requests. We are excited to
see so many contributors join the library team and accelerate the
library’s growth.

General

Jobsets (predefined output jobs)

Mark Roszko contributed a feature that provides predefined sets of
‘jobs’—for example, plotting, exporting, and running DRC—on
schematics and PCBs. Independent jobset files are reusable as users
may want to create output pipelines that they can apply across their
projects for consistency. Jobsets can be run from the command line or
from the KiCad GUI.

Embedded files

Seth Hillbrand implemented embedding various elements in your
schematics, PCB layouts, footprints and symbols that were previously
linked to external files. This allows the creation of fully
self-contained KiCad files that do not rely on any external files such
as fonts or 3D models.

Bezier curve tool in all editors

A Bezier curve creation tool in the schematic and PCB editors was
implemented by John Beard. Like the arc tool, there are some guide
lines in the PCB editor and by default it chains them as tangent to
each other. The backspace key works in the same way as the arc
tool. The interactive edit guides are not (yet) in the schematic
editor (same for arcs). Beziers were already importable and editable
once imported, but now they can be created from scratch.

Multi-channel design support

Tomasz Wlostowski contributed support for creating multi-channel
designs. This allows the user to repeat PCB layout elements from one
channel to create identical copies.

Component classes

James Jackson has added a component class feature that allows grouping
of various symbols and footprints into classes that can have specific
design rules applied. Component classes are set on symbol in the
schematic editor and then apply to the footprints associated with
those symbols. Directive labels attached to a rule area can now take a
‘Component Class’ field. Symbols within the rule area will be
assigned that component class. The ‘Component Class’ field can be
set directly on symbols as well:

Symbols can have more than one component class, taking on any that are
defined directly on the symbol or any of its sub-units or from any
directive labels attached to any rule areas which contain the symbol.

In the PCB editor, component classes are attached to the symbol’s footprint:
comp class 3
Figure 7. Footprint with component class

There are three new DRC expressions / functions to support querying
component classes:

    (condition "A.ComponentClass == 'CLASS_1,CLASS_2'")

to test against the full list of component classes, where the
composite component class is a comma-delimited list in alphabetical
order),

    (condition "A.hasComponentClass('CLASS_1')")

to test if a footprint is part of a specific component class, and

    (condition "A.memberOfFootprint('${Class:CLASS_1}')")

to test if an item is part of a footprint in a specific component
class.

Table editing in schematic, symbol, and footprint editors

Thanks to the efforts of Jeff Young, tables can now be added to
schematic, symbol library, and footprint library editors putting them
on par with the PCB editor. Additional editing features were also
added to tables.

Custom ERC/DRC errors, warnings, and exclusion comments

Jeff Young added a feature that lets you create ERC/DRC errors and
warnings from text boxes and fields using the following text
variables:

    ${ERC_WARNING <custom title>}
    ${ERC_ERROR <custom title>}
    ${DRC_WARNING <custom title>}
    ${DRC_ERROR <custom title>}

Mouse scroll wheel actions

John Beard added a scroll action feature in the PCB, schematic,
footprint and symbol editors. Shift-Alt-Scroll is a primary function
and Ctrl-Alt-Scroll is a secondary function.

The current bindings are to use this to increment text, with the
rightmost “part” being primary and the next rightmost part being
secondary. For example, Shift-Alt-Scroll on “B2” goes to “B1” or
“B3”, Ctrl-Alt-Scroll goes to “A2” or “C2”. This is a bit
heuristic, but seems to work well for the obvious cases. As a side
effect of being able to detect the mouse being over name or number,
the symbol editor “Edit Pin” dialog now puts the initial focus on
the number field if the mouse was over it when double-clicked or the
‘E’ hot key.

* Footprint editor: pad numbers and text
* PCB editor: text
* Symbol editor: pin numbers or names (depending on mouse position)
  and text
* Schematic editor: labels and text

Continued Documentation Improvements

Graham Keeth has been hard at work updating KiCad’s documentation for
Version 9. Thanks to his work, most of the new features and changes in
KiCad 9 are already documented. In addition to documenting new
features, Graham has been improving all areas of the documentation
with updated screenshots, copy editing, and corrections. Our
documentation translators have also been working to update the
translated text so that up-to-date KiCad documentation is available in
more languages.

Other KiCad-wide changes

* The command line interface gained several new abilities, including
  raytracing 3D images
* Reverse mouse wheel zoom option
* Image reference points
* Expand/collapse all context menu entry in library editor tree panels
* Assign multiple net classes to a net
* Context menu copy from inspector report panels
* Text justify actions that can be mapped to hot keys
* Comment can be added to ERC/DRC exclusions
* Right-click action to remove ignored tests from the ERC/DRC dialogs
* Right-click copy of inspector window contents.
* Allow pasting images from the clipboard as reference images in
  schematic, PCB, and worksheet editors
* "Copy as Text" action which allows copying the text content of text
  items, fields, labels, tables, table cells, and dimensions

Schematic and Symbol Editors

Selection filtering

The schematic and symbol library editors now have object selection
filtering like the PCB and footprint library editors have thanks to
Jon Evans.

Sheet pin/hierarchical label synchronization tool

One of our newest core team developers Ethan Chien has contributed a
new sheet pin/hierarchical label synchronization tool. This tool
provides management of sheet pins and their associated hierarchical
labels instead of having to switch back and forth between the sheet
and schematic.

Net class rule areas

James Jackson added support for schematic net class rule areas that
allow users to draw a shape to which net class directives can be
attached to all nets defined by the shape.

Design blocks

Mike Williams contributed the schematic design blocks
implementation. This feature allows users to create libraries of
reusable schematic blocks. This feature will be extended to include
reusable PCB layout blocks in a future version of KiCad.

Net class color highlighting

There is a new option to apply net class coloring as a "highlight"
around the wire instead of just changing the color of the wire
itself. This handy usability improvement was contributed by James
Jackson.

Other smaller changes to the schematic editor

* Saving a symbol to another library in the symbol editor will now
  save all symbols it is derived from
* "Save As" and "Save Copy As" commands in symbol editor
* Warning when attempting to edit read only library with option to
  make an editable copy
* Option to not show hidden fields in the symbol editor
* Net navigator now displays all nets in the schematic
* Option to exclude symbols from simulation
* Import Eagle schematics with modules
* Symbol editor pin dragging
* Symbol alternate pin mode indicators
* Save derived symbols to different library
* ERC for local and global labels with the same name
* ERC for unconnected endpoints
* Support importing Altium ASCII schematic file format
* Sheets can be renamed from the hierarchy navigator
* Option to exclude symbols from simulation
* Option to show indicators on symbol pins with alternate definitions
* Ability to mark an entire sheet as "do not populate", "exclude from
  board/BOM", or "exclude from simulation"
* Option to plot the "do not populate" indicators
* Allow changing symbol unit in "Edit Reference Field" dialog
* Allow assigning multiple net classes to a single net
  * Introduces ordering of net classes
  * Allow net classes to have null properties (except default net class)
  * Effective net classes are constructed from non-null net class
    fields in net class priority order with default net class
    parameters always used as fallback
  * DRC checks for net class equivalence as requiring both items to
    have the same set of constituent net classes
  * DRC test net class name (A.netclass == 'my_netclass') against the
    comma-separated list of priority ordered constituent net classes
  * Add DRC function A.hasNetclass('my_netclass') to test if a given
    net class is assigned to an item
  * Schematic and PCB net class coloring taken from the effective
    aggregate net class for a net

PCB and Footprint Editors

IPC API

Jon Evans created a new API for the board editor based around
inter-process communication (IPC) that will eventually replace the
current Python wrapper interface. This interface will provide much
improved stability and API stability over the wrapper interface and
will be extended to support the schematic editor during version 10
development. For more information on the new API, please see the
developer documentation.

Zone manager

Ethan Chien has contributed a new zone manager feature which allows
easy preview and adjustment of zone priorities and other settings
without having to edit each zone individually to verify the result of
the changes.

Improved via tenting control

Control over via tenting on top and bottom sides at a board level and
per-via overrides was provided by Jon Evans. This change allows
complete control over via tenting compared to the options available in
previous versions of KiCad.

Layer pair presets

John Beard added some helpful features for working with layer pairs:
presets and a quick-switch list. “Enabled” pairs, along with the
currently-set pair if not itself a preset, can be cycled with the
“Shift+V” hot key.

Shape modification tool

Internal board cutouts usually cannot be manufactured with sharp
corners. John Beard created an aptly-named "Dog bone" tool to create
the proper shape(s) determined by the diameter of the tool used to
route the cutout.

Pad stacks

Thanks to the efforts of Jon Evans, KiCad now supports PTH pads with
different copper shapes on different layers. Pad stacks can be defined
with different shapes on the top, inner, and bottom layers, or with
unique shapes on every copper layer.

Interactive positioning tool

Another handy tool by John Beard allows users to position objects by
drawing a line and then defining what that line should be.

Another use is a more direct way to manipulate objects by first
getting them into a known position and then using Move Exact. It can
also be used to set alignment in one axis or the other.

The vector doesn’t have to be on either object, which allows direct
use of a dimension of something else as a movement for the selection.

Multiple track drag

Tomasz Wlostowski updated the push and shove router to allow dragging
of multiple tracks. While not the same as routing multiple tracks,
this change will greatly improve routing boards with complex buses.

Creepage design rule check

Fabien Corona implemented a design rule check for electrical creepage
clearances. The new rule syntax and the resulting DRC errors are shown
below.

    (rule HV_HV
       (constraint creepage (min 20mm))
       (condition "A.hasNetclass('A') && B.hasNetclass('B')")
    )

3D model export improvements

3D models can now be exported to XAO, STL, BREP, and PLY file formats
including silk screen and solder mask layers thanks to the efforts of
Aleksandr Shvartzkop.

Other changes to the PCB editor

* Net inspector panel
* Cursor snap indicators
* ODB++ export
* Option to plot pad outlines and numbers on fabrication layers
* Allow pasting text directly as text items
* Include silk screen and solder mask in 3D export
* Filter models to include/exclude in 3D export
* Plot all layers to a single PDF document with separate pages instead
  of to separate PDF files per layer
* Differential pair skew and acute angle design rule checks
* Optional skew DRC flag for independently checking differential pair
  skew rules
* Design rule failure clearance indicators
* Track solder mask removal
* Arbitrary reference for relative position tool
* Cursor snap indicators
* External dimension leaders
* Zone corner chamfering
* Option in position relative tool to use arbitrary reference point
  which can be snapped to objects
* Outset creation tool
* Polygon simplification tool
* Vias with per layer diameter annular rings
* Override locked footprints when updating PCB from schematic
* Allowing grouping of user defined layers as front/back pairs
* Exporting 3D models from command line interface with ray tracing is now supported
* Extend physical_clearance rule to apply between copper fills and footprint courtyards
* Improved rendering of plated through holes
* Inward facing dimension arrows
* 3D model export improvements
  * Option to fuse copper geometry together
  * Option to export copper on inner layers
  * Options to exclude board body or footprint models
  * Net filter (can be used to export a single net)
  *  Zone geometry approximation with arcs for faster processing and smaller file sizes

Other tools

* Tolerance calculations added to calculator tool regulator panel


----------------------------------------------------------------

KiCad 8.0.9 (2025-02-19)

The KiCad project is proud to announce the version 8.0.9 bug fix
release. The 8.0.9 stable version contains critical bug fixes and
other minor improvements since the previous release.

A list of all of the fixed issues since the 8.0.8 release can be found
on the KiCad 8.0.9 milestone page. This release contains several
critical bug fixes so please consider upgrading as soon as possible.

Version 8.0.9 is made from the 8.0 branch with some cherry picked
changes from the development branch.

Packages for Windows, macOS, and Linux are available or will be in the
very near future. See the KiCad download page for guidance.

Thank you to all developers, packagers, librarians, document writers,
translators, and everyone else who helped make this release possible.

Changelog

General

- Improve message panel alignment on high DPI monitors.
- Fix image size in properties panel layer selector on high DPI
  monitors. #13105
- Limit the number of search bar terms to prevent UI freezing. #19464
- Crash when closing update manager. #17103
- Improve project manager size and position at first launch.
- Fix PDF plot pop up location for mirrored objects. #19717
- Don’t automatically save future formats of project settings. #19910
- Fix broke DXF import. #18523

Schematic Editor

- Fix crash when spice model corrupted.
- Fix incorrect background area size when plotting a sheet. #19611
- Prevent self referential symbol fields from becoming very
  long. #19633
- Prevent crash when canceling partial load on update sheet file
  link. #19881
- Do not show each ERC message being deleted when deleting all ERC
  markers. #19531
- Use HTTP library field order instead of alphabetical sorting. #17584
- Fix ERC symbol not found in library warning using HTTP
  libraries. #17569
- Fix loading old (pre 2007) symbol .cache library files.
- Fix cross probing from PCB editor when references contain leading
  zeros. #19724

Symbol Editor

- Don’t distort shapes when aligning to grid. #18739
- Fix pin synchronization mode when changing pin length or graphic
  style. #18566

Board Editor

- Avoid zooming out to hidden text in find results. #19636
- Fix inches/mm confusion in IDF export. #19668
- Minor adjustments to automatic footprint placement. #19451 Get
  automatic footprint placement tool to skip locked footprints. #19690
- Fix unexpected DRC warning for footprints with copper layer rule
  area. #19694
- Prevent pack and move footprints from unexpectedly jumping from the
  original position. #19780
- Preserve layer visibility when loading projects opened with version
  9.0. #19540
- Persist zone fills on all layers. #19775
- Prevent object visibility loss when opening project opened with new
  version of KiCad. #19540
- Do not add extra line segments in rounded corner board edge in STEP
  exports. #19901
- Fix broken geographical annotation. #19927

Footprint Editor

- Fix crash when saving footprint. #19713
- Fix crash when importing Eagle footprint library. #19958

3D Viewer

- Fix empty rendering at specific 3D ray tracing rendering
  angles. #18207
- Fix excessively dark board color in ray tracing preview mode. #17354
- Fix incorrect rendering of plated copper of texts.

Linux

- Improve infobar hyperlink button readability with some GTK
  themes. #19506


KiCad 8.0.8 (2025-01-12):

General

- Remove compensation padding in KiCad launcher for newer wxWidgets
  versions. #24550
- Make settings migration dialog re-sizable. #19347
- Fix parsing of Altium overbar notation. #19080
- Update pin table when model changes. #19253
- Recognize ${KICAD7_3DMODEL_DIR} and all future major
  releases. #18809
- Skip hidden files when making backup. #18341
- Fix crash when opening the PCB editor while closing the schematic
  editor. #19341
- Fix broken Eagle board and schematic file import. #19528

Schematic Editor

- Plot labels in color. #19040
- Fix some issues that can crash editor on close.
- Don’t change selection after selecting find-next hit. #19233
- Display footprints in footprint assignment tool. #18685
- Avoid crash on save if a polyline is empty.
- Don’t rename root sheet when switching language. #19262
- Do not save automatically placed flag for text with no
  fields. #19159
- Fix connectivity issue with global label connected to power
  symbol. #18092
- Preserve symbol unit when loading schematic with missing instance
  data. #19073
- Fix crash in schematic editor when finishing a wire. #18136
- Fix crash when opening footprint browser from schematic symbol
  properties. #19318
- Fix QA test failure in orcadpcb2 netlist exporter. #18822
- Fix a crash when library symbol is missing. #17146
- Fix crash after project save and reopened after cannot find symbol
  in netlist error. #17146
- Improve symbol load time when opening a large database
  library. #18826
- Fix crash when undoing new sheet action from within sheet. #19358
- Make PDF export respect background color fill. #18919
- Don’t lose reference designators when importing third party
  schematics. #19490
- Prevent freeze when pasting a long string into search bar. #19464

Symbol Editor

- Fix crash on corrupt symbol library table. #19236
- Don’t hang when trying to paste image as text. #19079
- Allow opening color picker dialog from polygon shape properties
  panel. #19254

Spice Simulator

- Only populate spice code in the simulation dialog code field. #18771
- Fix crash after probing and changing signal color. #17841
- Fix crash when a net named VT exists. #18648

Board Editor

- Handle circular zone cutouts in Fabmaster import.
- Don’t add zero radius holes on Fabmaster import.
- Do not import unplaced footprints on Fabmaster import.
- Handle circles on Fabmaster import.
- Map unknown layers to KiCad user layers on Fabmaster import.
- Handle rectangles on Fabmaster import.
- Improve detection of open versus closed polygons on Fabmaster
  import.
- Fix text import on Fabmaster import.
- Handle squares, oblongs, and regular polygons on Fabmaster import.
- Keep DRC marker exclusions up to date. #17429
- Make sure descendants get new UUIDs when pasting. #19052
- Fix crash when running DRC. #18600
- Allow plot options to override the board tenting settings. #18991
- Add example for silk_board_edge_clearance custom rule. #19260
- Fix rats nest issue where blind vias are treated as through
  vias. #18982
- Don’t trigger DRC footprint library warning when description and
  keywords do not match. #19259
- Allow selection of PCB DRC markers when not on active layer. #19258
- Allow DRC markers to be selected with area selection. #19258
- Rebuild layer preset list on language change. #19181
- Fix track start property display. #19215
- Fix thread deadlock when closing the footprint chooser
  dialog. #18107
- Prevent DRC freeze when using footprint with custom pad
  shapes. #19325
- Plot from render cache if fonts aren’t embedded. #18672
- Add rectangle height and width to properties panel. #17181
- Fix pad inside isolated zone "island" not marked as
  unconnected. #17288
- Allow custom rules that explicitly allow holes from one footprint to
  overlap the courtyard from another.
- Fix pin rotation parsing in the legacy symbol library plugin.
- Adjust DRC clearance for net ties. #14008
- Properly cancel 3D export. #19279
- Fix scale when exporting IPC-2581 using inches units.
- Fix compatibility with Allegro PCB Router using Specctra sessions.
- Fix Specctra session import from TopoR.
- Handle wildcards and case-insensitivity in custom rule pin type
  comparisons. #19513

Footprint Editor

- Properly handle group duplicate. #19245
- Ignore invisible pads in enumeration tool. #18750
- Do not add extra grid rows when resetting default field property
  preferences. #19369
- Update QR footprint wizard.

Gerber Viewer

- Fix crash on specific gerber files. #19394

3D Viewer

- Use font render cache when available. #18672

PCB Calculator

- Add measure unit to Rho constant in transmission line tab. #19312

Windows

- Fix opening zip archives from project manager tree. #19399

macOS

- Fix dialog focus issue. #3765 #17460


KiCad 8.0.7 (2024-12-03):

General

- Fix URI environment variable expansion issue. #18918
- Fix display of broken fonts. #19010
- Clear unknown keys from environment variable maps on save. #18734
- Exclude letter hotkeys from shift fallback. #19093
- Fix missing text and graphics in PDF plots. #16456
- Handle DXF files with out of bounds values. #18523
- Fix invalid Bezier curve DXF import. #11153
- Fix incorrectly rendered font depending on rotation. #18377
- Make color picker dialog usable on hidpi monitors. #17860
- Scale text size to inside scaled blocks on DXF import. #18525
- Fix copy-paste issue for grids with checkboxes. #18985
- Update font when needed on italic/bold change. #18592
- Prevent altering text thickness when switching bold option on and
  off. #18975

Schematic Editor

- Make sheet pin unconnected indicator (X) follow when dragging
  sheet. #18854
- Fix import compatibility with LCEDA/EasyEDA v2.2.32. #18994
- Use symbol/netport name from device entry if empty when importing
  EasyEDA/LCEDA schematic. #19021
- Do not import empty visible net labels from EasyEDA/LCEDA Pro
  schematics. #19034
- Import Bezier curves in symbols from EasyEDA/LCEDA schematics.
  https://gitlab.com/kicad/code/kicad/-/issues/19034.[#19034.]
- Test for valid sheet name in sheet dialog properties. #18981
- Fix missing actions strings and hotkey conflict. #17694
- Respect background color fill when plotting to PDF. #18919
- Fix copy and paste issue in bus alias definition. #18558
- Do not allow repeat action to cause sheet recursion. #18199
- Fix crash when importing Eagle schematic when board file doesn’t
  exist in non-stand alone mode. #18241
- Warn user when template field names contain trailing/leading white
  space.https://gitlab.com/kicad/code/kicad/-/issues/18601[#18601]
- Fix an issue in sheet cross-references of global labels. #18534
- Add sheet changes to net navigation history. #18616

Symbol Editor.

- Preserve pin numbering when duplicating.

Spice Simulator

- Fix missing current scale in AC simulation. #18313
- Fix crash when deselecting the probe tool. #18547

Board Editor

- Prevent solder mask bridge DRC error with mask pad.
- Report implicit design rule minimums as being from the board
  setup. #18642

- Fix importing custom design rules. #18580
- Don’t ask about locking twice. #18679
- Make orphaned nets obey the minimum board clearance.
- Make neck in a zone fill the DRC epsilon smaller on each
  side. #18921

- Make sure paste action can’t be performed through modal
  dialog. #18912
- Make polyline properties dialog honor the escape key. #18850
- Fix focus issue in parent window after hiding the search
  panel. #12613
- Fix DRC error with arcs.
- Fix text position when drawing PCB text on non paired layers. #18980
- Fix error in DRC rule resolver. #19012
- Force orphaned nets to obey the minimum board clearance. #19051
- Fix Eagle footprint library migration crash. #18702
- Fix unconnected pads missing in IPC-2581 export. #18293
- Fix crash on routing many traces. #18328
- Correctly generate thermal reliefs on parts rotated by 45
  degrees. #18329
- Fix circular courtyard DRC error. #18347
- Fix random malformed board outline with arcs DRC errors. #18125
- Properly group automatically generated objects. #18874
- Fixing paste issue in footprint library tables. #18732
- Fix disappearing courtyard layers. #18978
- Use appropriate tuning pattern icon in menus for tuning pattern
  generators.
- Make convert to lines use the width of polygons where
  applicable. #18713
- Length tuning workflow improvements. #18979
- Show empty field for unconstrained length in length tuning
  properties. #18979
- Fix crash after Fabmaster import. #19174
- Update DRC exclusions from DRC dialog. #19113

Footprint Editor

- Fix crash when saving a footprint. #19018
- Add 3D mouse support for 3D view. #14002

Gerber Viewer

- Add 3D mouse support. #13306

3D Viewer

- Ensure the 3D display view is not modified after menu
  selection. #17422

- Fix omission of STEP models with relative path assignment. #16242

Worksheet Editor

- Add 3D mouse support. #13306

PCB Calculator

- Always use black text in E-series resistor table. #17033

Command Line Interface

- Accept multiple Gerber layers for single layer plotting. #19089

macOS

- Fix missed rows when pasting to grid. #18916

Python Scripting

- Ensure image handlers are loaded before loading a board. #18959
