cad/kicad: Update to 9.0.7

KiCad 9.0.7 (2026-01-01)

General

- Improve rotation field parsing on Eagle import.
- Fix EasyEDA Pro v2.2 import compatibility. #22239
- Support Autodesk Fusion urn format for Eagle import. #22394
- Fix broken non-English language font rendering. #22402
- Add rule check exclusion comment to JSON report. #22330
- Fix polygon filling in PDF export.
- Fix crash due to measurement tool in footprint chooser
  window. #21929
- Fix incorrect bitmap positions in SVG plotter. #22326
- Fix broken SVG import of degenerate splines. #22556
- Fix crash when project tree files disappear. #22568

Schematic Editor

- Fix selection box offset with custom fonts. #21802
- Fix regression with resolving text variables in symbol fields
  table. #19978
- Fix image rotation direction. #22254
- Add hierarchical path support to component classes.
- Adding row or column to symbol fields table now respects formatting.
- Allow picking "Global Net Name" from symbol when importing EasyEDA
  Pro schematic. #19734
- Change from Arial to default font when importing EasyEDA Pro
  schematic.
- Improve text sizing when importing EasyEDA Pro schematic.
- Fix symbol pin name and number when importing from EasyEDA Pro V3.
- Fix broken net label copy after creation. #22373
- Fix initial focus in label properties dialog.
- Resolve text variables when resolving netclasses. #22413
- Ensure multiple label placement generates unique IDs for each
  label. #22529

Symbol Editor

- Prevent unhandled exception when trying to change "unit" of element
  in multi-part symbol. #21966
- Resolve text variables in descriptions and keywords. #22146
- Load correct body style names for De Morgan variants. #22303

Simulator

- Fix assertion when opening main window (Sentry KICAD-XS2).

Board Editor

- Fix broken table output. #21934
- Fix error in collision logic for arc to rectangle.
- Fix broken copper to hole DRC constraint. #21941
- Do not force manual assignment of field names if they do not
  exist. #21928
- Fix position file alignment when text contains UTF-8
  characters. #21982
- Do not sound bell when duplicating. #22158
- Resolve track drag collision first before showing "Track violates
  DRC" when routing.
- Apply custom design rule clearance outlines immediately. #22203
- Use drill hole dimensions instead of copper pad shape when exporting
  to IPC-2581. #22145
- Work around a bug in JLCEDA V1 format export where SMD pads specify
  zero sized hole.
- Fix plot pad issue with solder paste layer when using a percentage
  for clearance. #22306
- Fix loading of shape offset and delta for complex padstacks. #21691
- Use active layer when pasting text from clipboard. #22370
- Fix broken Hyperlynx arc export. #22178
- Prevent crash when placing free vias (Fixes Sentry KICAD-ZY6).
- Update changes list when checkboxes changed in "Update PCB from
  Schematic" dialog. #22467
- Fix accidentally broken text mirroring direction. #22479
- Fix layer mapping regression in Altium importer.
- Don’t snap to invisible footprint anchors.
- Fix broken font rendering. #22524
- Fix potential crash when multichannel tool can’t find any rule
  areas. #22535
- Do not start geographical annotation with a 0 index if there are no
  footprints on the top layer. #22552
- Fix assertion when exporting DSN footprint arcs (Sentry KICAD-PG4).

Footprint Editor

- Refresh library tree when saving an editable footprint copy. #22247
- Fix broken footprint rule area size and corner count display. #22352
- Make footprint offset from hole persistent for custom layers. #22464

3D Viewer

- Fix broken hole fills when two holes overlap on opposite sides of
  the board. #17317

Gerber Viewer

- Improve load performance when zip archive has extra ASCII files.

- Fix assertion when opening non-ASCII files (Sentry KICAD-KEV).

Drawing Sheet Editor

- Fix crash when using interactive delete tool. #22428

Calculator Tool

- Fix minimum window size issue. #22385

Python API

- Handle Python multi-phase initialization support in swig 4.4.0.

IPC API

- Preserve linked symbol properties in footprints. #21655
- Fix serialization of footprint rule overrides and add missing
  allow_soldermask_bridges attribute. #21674
- Ensure new footprints have unique child UUIDs. #21340

Command Line Interface

- Prevent pcb render command from enforcing stackup over preset
  colors. #21950

Windows

- Warn about Controlled folder access.


cad/kicad: Update to 9.0.6

KiCad 9.0.6 (2025-10-30)

General

- Ensure file write permissions copying edited library table. #21899
- Ensure custom library table write path is correctly created. #18937
  and #18938
- Prevent always requesting keychain unlock when Git project is
  opened. #20176
- Ensures proper execution when running external application. #14261
- Show all files in file tree when using git. #21583
- Prevent Altium import error when schematic and/or PCB files are in
  folder. #20161
- Make sure ERC/DRC exclusion hotkey works when dialog has
  focus. #21761
- Support translation in tool context menus. #21859
- Support translation of property grid enumerations. #13636 and #21859
- Fix crash when importing Altium project. #21947

Schematic Editor

- Ensure new symbols obey the observed sheet number. #16632 and #19138
  and #21637
- Maintain units even when opening in standalone mode. #19361
- Properly name Altium sub-sheets on import. #21173
- Fix crash when updating symbol. #21995
- Ensure symbol fields table and BOM export field values match using
  shared sub-sheets. #21998
- Fix missing description field when using HTTP libraries. #22043
- Ensure ERC Exclusions are maintained. #21410

Symbol Editor

- Add bulk field editing to symbol field table dialog. #11506
- Prompt for unsaved changes in the library symbol fields table
  editor.
- Prevent crash in changing item symbol unit in properties
  panel. #21891
- Set symbols modified flag (*) when library fields are changed.

Simulator

- Enforce spice valid net names when parsing. #18598
- Improve right Y-axis label layout and power signals displaying
  incorrect units on simulation plot. #21645

Board Editor

- Fix crash when pressing 'X' to begin routing. #21883
- Fix crash when routing an empty board.
- Correctly inherit track width when multiple net classes are
  defined. #21819
- Avoid OtherSideView when exporting IPC-2581B. #16286
- Fix wrong netclass assignment when more than four net
  classes. #21750
- Prevent duplicate symbol names in ODB++ output. #21803
- Fix broken PNS track dragging when constrain to H/V/45 mode is
  turned on. #21892
- Handle custom fields from netlist. #21648
- Ensure Altium PCB import saves under the correct name. #13986
- Fix crash when canceling zone refill after moving zone
  points. #21896
- Prevent zone and shape corners snap to 45/90 degree lines when the
  option is disabled. #21897
- Ensure moving objects with arrow keys is aligned to grid. #21682
- Correct sort net classes in netclass inspector. #21345
- Auto-convert numeric values in fields when referencing them in
  expressions. #21723
- Fix zone filling issues. #21930 and #21946
- Import pad to die lengths when importing Altium board file.
- Fix track length calculation inconsistencies. #21913
- Improved multi-drag segment side/corner determination. #21972
- Do not ignore grid snapping when movement constrained to horizontal,
  vertical, or 45 degree mode. #21984
- Fix constrained movement regression. #21981
- Fix snapping issue with measurement tool. #22045
- Fix horizontal, vertical, 45 degree toggle during move. #22025
- Fix "Unroute Selected" when footprint is selected and select pads is
  disabled. #22138

Footprint Editor

- Allow deleting multiple 3D models in footprint properties
  dialog. #21894

IPC API

- Fix crash when setting padstack layers. #21743


KiCad 9.0.5 (2025-10-02)


General

- Improve algorithm to calculate arcs.
- Disable I-beam cursor setting for search fields on non-macOS
  platforms.
- Do not clear ERC/DRC errors when deleting all markers. #21113
- Show errors before warnings in DRC/ERC.
- Fix properties manager <Enter> key iteration ordering. #20651
- Allow deletion of nested embedded files. #20581
- Ensure reporter object indicates that any message got reported.
- Prevent assertion when clearing grid rows ( Sentry KICAD-VM1).
- Prevent read only autosave error from popping up multiple warning
  dialogs. #21464
- Prevent main KiCad window from expanding based on DPI events. #21602
- Use combo-boxes for units in properties panel. #19904

Schematic Editor

- Fix crash when navigating legacy schematic. #21497
- Prevent assertion due to missing commit screen object (Sentry
  KICAD-YKY).
- Fix hanging when updating symbols after loading legacy schematic
  with missing symbols. #21536
- Expose shape in property inspector for sheet pins. #21545
- Update power filter for power symbols placement.
- Properly handled exception when attempting to add a database library
  using latest MariaDB connector. #21707
- Support multiple footprints in HTTP libraries. #20750
- Prevent invalid warning when updating other fields in schematic from
  PCB. #21467
- Fix broken connectivity with label at the intersection of two
  nets. #21494
- Fix broken intersheet wiring on root schematic that temporarily
  breaks the netlist. #18297
- Use combo-box for alternate body style in properties panel. #19905
- Update properties to show units. #21685
- Prevent graphic lines from drawing on netclass layers. #21731
- Unify sheet name validators and apply to properties. #21698
- Fix crash when adding text. #21380
- Fix broken rotation during multi-label input. #21765

Symbol Editor

- Snap new pin to grid without requiring mouse movement. #16828
- Show inherited fields in derived symbols. #11422
- Fix crash when reducing the symbol unit count. #21631
- Fix broken symbol field position. #21781
- Fix incorrect handling of vertical position of fields in the library
  symbol properties dialog. #21781

Board Editor

- Make enabling import teardrop checkbox in the "Import Settings"
  dialog enable the import button. #21483
- Fix issue with filled hole when PDF plotting drill marks using SWIG
  API. #21474
- Fix bug in private layer selection.
- Fix crash in STEP export (Sentry KICAD-V8A).
- Remove unnecessary newlines in STEP exporter logging.
- Fix occasional failure to select for dragging. #21517
- Fix reference designator ordering in arrays. #20935
- Inline drag by track end even if cursor is slightly outside the
  track shape.
- Add green color indication to length tuning status popup.
- Place component shape and marking on F_Fab on EasyEDA import.
- Build basic courtyard for footprints on EasyEDA import.
- Add footprint reference text on F_Fab layer on EasyEDA import.
- Fix ODB++ export path creation.
- Avoid creating duplicate entries in embedded file list when
  embedding fonts. #20565
- Don’t show locked shadow in pad preview.
- Prevent divide by zero error in footprint coverage ratio
  calculation.
- Don’t double mirror groups. #8121 and #20465
- Properly save and load violation severity 'Drilled hole too close to
  other hole'. #21525
- Improve performance of via place tool.
- Fix snapping sensitivity issue of via placement with large
  grids. #18626
- Fix teardrop generation for pads having different shapes by
  layer. #21560
- Improve pad hit testing.
- Do not generate unnecessary remove extra fields warnings when
  updating from schematic.
- Fix crash when generating DRC report. #21586
- Add separate front and back silk screen and solder mask colors for
  STEP export. #21593
- Fix STEP export broken wire self interference using custom pad shape
  on bottom side or board. #21589
- Prevent redraw flicker when snapping to grid. #19947
- Fix center dimension drawing issue. #21643
- Allow removing solder paste relative clearance in footprint
  properties dialog. #21662
- Improve file stability when saving tables. #21652
- Prevent crash using net ties with invalid layers.
- Prevent pads from moving unexpectedly when footprint is
  locked. #21626
- Fix crash on right mouse button click in grid origin tool. #21615
- Disable snap when moving with keyboard. #21235
- Allow stitching of graphic shapes.
- Set free vias to graphic net if available. #21578
- Footprint library parity DRC warning when closing pad properties
  dialog with no changes. #21520
- Fix custom design rules in project with overlapping
  courtyards. #21697
- Fix broken behavior for deprecated Gerber commands IPPOS and
  IPNEG. #21715
- Fix crash when unfilling all zones (Ctrl+B). #21745
- Don’t find footprints that have already been deleted. #21445
- Only namespace components and layers when necessary when exporting
  IPC-2581. #19914
- Make move tool obey snap settings. #21192
- Prevent assertions on tuning pattern layer change. #21476
- Allow custom rule wildcard matching for netclass naming. #21455
- Prevent PNS length calculations from being confused by overlapping
  tracks. #7809
- Improve display of measurement tool ruler at screen-edges. #11546
- Allow solder mask bridging between net tie items. #19288
- Add embed option to file dialog for 3D models. #20025
- Correctly allow multiple pads with single pin in IPC-2581
  export. #18688
- Improve IPC-2581 export error and warning messages. #16314
- Fix broken creepage DRC text with components on different
  layers. #21523
- 45 and 90 degree corner modes produce unnecessary parallel track and
  break when routing. #10422
- Space vias to account for hole to hole spacing when routing
  differential pairs. #21240
- Improve zoom and pan performance with many through hole pads. #20506
- Maintain group membership when shoving tracks. #20862
- Check tracks exiting pads for gaps in differential pair DRC. #21561
- Fix broken net assignment in Eagle import. #21243
- Fix zone fill chessboard pattern. #18176
- Make expand connection respect the selection filter. #21581
- Make properties panel obey free pads setting. #21591
- Consider visibility when colliding in DRC. #21625
- Prevent modifying teardrops on lock/unlock. #21342
- Add vertical scroll bars to generate rule areas dialog. #20195
- Correct save footprint chooser settings to prevent unexpected tree
  expansions. #21818
- Fix missing colors when exporting STEP models. #21865

Footprint Editor

- Show embed 3D model immediately. #19991
- Prevent stale names in footprint browser. #9763

3D Viewer

- Remove noise from orthographic projection ray tracing. #8863

Command Line Interface

- Prevent jobs from affecting each other via reporters when running
  job sets from CLI.
- Prevent help option from failing erroneously. #21538

Job Sets

- Wrap command text control in execute command job dialog.
- Record execute command job input and error streams in the log.
- Increase default precision in ODB++ export job dialog.
- Add --follow-pcb and --follow-plot-settings options to render job
  settings. #21341
- Fix incorrect inner layer links for GERBER jobs. #21569
- Fix "Replace" button to overwrite existing files. #19900
- Fix exporting CADSTAR netlist. #21730
- Ensure archives defined without extension are given ".zip"
  extension. #21423
- Make ERC/DRC jobs default to fail on violation.
- Skip missing 3D models with warning when exporting VRML.

API

- Add ability to set enabled board layers and copper layer count.

Windows

- Display the number of GDI objects in "About" dialog.
- Don’t convert URI slashes to backslashes when embedding drawing
  sheet file. https://gitlab.com/kicad/code/kicad/-/issu
  es/20381[#20381]

macOS

- Add spacing for file dialog custom controls.
- Make main project window appear in window list. #17596
- Fix image pasting issue.
- Fix standalone Pcbnew crash when switching between night and day
  mode. #21317

Linux

- Fix for cursor rendering on EGL+Nvidia in accelerated graphics
  mode. #12183
- Prevent broken library tree scrolling behavior on search. #18000


KiCad 9.0.4 (2025-08-18)


General

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

Schematic Editor

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

Footprint Assignment Tool (CvPCB)

- Prevent assertion when attempting to select a non-existent footprint
  from the list (Sentry KICAD-8V9).

Spice Simulator

- Add grammar for SkyWater .subckt parameters. #20220
- Fix assertion when trying to select items that don’t exist model
  dialog (Sentry KICAD-J0X).
- Do not assert when selecting node while net navigator is frozen
  (Sentry VV8).
- Don’t clear pin assignments when changing simulation model. #19533

Symbol Editor

- Escape/unescape symbol name in save as dialog. #21170
- Fix crash if symbol library no longer exists (Sentry KICAD-74C).
- Fix assertion when checking if library is read-only (Sentry
  KICAD-6Z8).
- Prevent assertion when automatically placing pins (Sentry
  KICAD-JMA).
- Fix assertion when attempting to save to missing library (Sentry
  KICAD-81M).
- Prevent assertion when symbol doesn’t have a library (Sentry
  KICAD-74K).
- Prevent assertion when removing selected row from pin alternate list
  (Sentry KICAD-7BH).
- Prevent assertion when attempting to remove symbol name not in
  symbol properties dialog list (Sentry KICAD-QZ5).
- Prevent assertion when library is updated outside KiCad (Sentry
  KICAD-QZ9).
- Improve "This position is already occupied by another pin" warning
  message. #18466

Board Editor

- Prevent invalid layers in property editor.
- Support arbitrary layer count in ODB++ output.
- Add unique icon for constraints resolution. #21038
- Improve moving footprint performance. #20711
- Prefer the active layer when picking tuning patterns. #20963
- Fix footprint locking. #21090
- Don’t export negative layers to copper. #20949
- Fix broken geographical annotation for locked footprints. #19977
- Use courtyards for DNP cross-out sizes. #21115
- Properly update clearance indicators on rule area change. #20734
- Ensure any mapped layers are enabled on Eagle import. #21138
- Prevent "Unroute Selected" icon disappearing from context menu for
  certain selections. #21112
- Allow move action when selection contains non-table-cells.
- Fix assertion when calling boolean operations on polygons. #21209
- Fix assertion caused by non-existent selections in setup tracks and
  vias grid. (Sentry KICAD-J40).
- Fix crash evaluating DRC rule condition when netclass is missing
  (Sentry KICAD-SPF).
- Prevent assertion when plotting pads with undefined layers (Sentry
  KICAD-QOC).
- Add table row height and column width to properties panel. #21224
- Fix assertion when drawing zone (Sentry KICAD-FWF).
- Fix assertion in DRC copper clearance test (Sentry KICAD-9RN).
- Respect "exclude DNP" setting for Gerber X3. #21201
- Fix assertion in layer mapping dialog when setting invalid sizer row
  count (Sentry KICAD-7HS).
- Prevent assertion in zone filler when arcs have not been cleared
  before performing boolean operations (Sentry KICAD-9Z0).
- Prevent overflow assertion when drawing ruler tick marks (Sentry
  KICAD-9HV).
- Prevent assertion when checking for pad collisions in DRC (Sentry
  KICAD-R3Q).
- Prevent assertion when setting tuning pattern with arcs (Sentry
  KICAD-QXG).
- Prevent assertion for pads having valid Dwg and Eco layers (Sentry
  KICAD-RQE).
- Prevent assertion in connectivity algorithm when removing via layers
  (Sentry KICAD-FOY).
- Prevent assertion when parsing empty dimension text (Sentry
  KICAD-PMX).
- Respect non-free-pads mode for move exactly. #21183
- Prevent assertion when printing with non-existent color theme
  (Sentry KICAD-A6F).
- Show actual clearance for same net objects. #21261
- Fix crash on undo after creating outset from selections. #21204
- Properly align/distribute text items in footprints. #21207
- Properly handle castellated pads on STEP export. #17404
- Set the default thermal spoke angle to 90 degree for rounded
  rectangle pads. #21271
- Use correct icon for dimension tool. #21274
- Fix polygon merge issue. #21134
- Prevent DRC exclusion instability. #17429
- Handle duplication of reference images for array tool (Sentry
  KICAD-R7M).
- Do not allow selection of excluded DRC markers when they are not
  visible. #21265
- Fix crash when imported properties not properly nulled (Sentry
  KICAD-6BJ).
- Prevent assertion when initializing zone settings (Sentry
  KICAD-EYF).
- Improve the subtract polygon tool. #19348
- Fix slow PCB canvas redraw on DRC selection highlighting. #21332
- Properly align imported Altium dimensions. #21329
- Properly handle 3D model projection in Altium import. #18450
- Remove context menu from interactive position tool.
- Speed up massively slow outline conversion. #21352
- Allow horizontal and vertical distribution to work with vias. #21337
- Optimize zone to zone checks in zone filler. #21226
- Fix crash importing Eagle file with unmapped layers. #21368
- Fix highlight net keyboard shortcut with filled zone in a rule
  area. #21381
- Honour pad holes when hit testing. #21331
- Honour board page information when plotting drill maps. #21393
- Fix crash in copper clearance DRC test (Sentry KICAD-P7Q).
- Break out of the zone tool on completion of zone. #21319
- Optimize zone to zone clearance checks. #21353
- Improve snapping with large grids. #21422
- Select move origin by mouse instead of cursor. #10471
- Fix grid visibility when using layer presets. #21409
- Do not reset via tenting setting in PCB Design Rules after
  re-opening. #20840
- Fix crash in DRC when tuning pattern or arc exists on board. #21486

Footprint Editor

- Fix crash when saving footprint to board (Sentry KICAD-1R8).
- Do not assert on inner layers (Sentry KICAD-STX).

3D Viewer

- Fix assertion when getting track width margin for degenerate arcs
  (Sentry KICAD-ARX).
- Ensure legacy colors always work.
- Prevent assertion attempting to remove invalid layer preset from
  list (Sentry KICAD-6VM).
- Link copper layer color chooser swatches.
- Correctly render back side user layers. #21284

Bitmap to Component Tool

- Adding file drag and drop.

Command Line Interface

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

Job Sets

- Fix off by one layer text variable output when running multiple page
  PCB PDF output. #20959
- Add progress reporting for Run Jobs. #19629
- Fix crash when saving new jobset. #21227
- Load appearances presets to PCB render job. #20660
- Fix crash when adding new job and running all jobs. #21408

API

- Expose pad to die length. #21346

Windows

- Fix broken shift+middle click taskbar behavior. #21267
- 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. #21386


KiCad 9.0.3 (2025-07-07)

General

- Implement Altium project importer. #2117
- Show [read-only in the title bar based on the project’s state].
- Don’t bypass empty visibility recovery due to migration.
- Protect against concurrent wxPlatformInfo access at startup. #21002
- Unset PCM button to avoid crash on close.
- Prevent single-line Scintilla text edit control scrolling
  bug. #19708
- Prevent crash when zooming to preset in footprint chooser. #21203

Schematic Editor

- Support URLs in symbol chooser information panel. #20811
- Set single units symbols correctly when importing Altium
  schematics. #20663
- Show nets in net navigator panel after enabling for first
  time. #20648
- Fix broken select connection (Ctrl-4) behavior. #19790
- Test for hierarchical labels in root sheet when running ERC. #20810
- Update search dialog. #12156 and #17102
- Allow multiple label input for bulk assignment of net labels. #10950
- Add ability to quickly move through nets in net navigator. #10911
- Fix hidden fields remain visible after search and cannot be hidden
  again. #20865
- Make directive label text color behave like other labels.
- Prevent table and rule areas from being swapped in schematic file
  after save. #20918
- Fix crash opening schematic with missing library symbol. #20986
- Fix crash running "Increment Annotations From…​" tool. #20948
- Add automatic completion for operating point ":power". 20984
- Fix crash when defining nonsensical operating point labels. #20990
- Print correct units in power operating point. #20982
- Fix text disappearing in value field properties dialog. #14379
- Prevent assertion when deleting field row from schematic sheet
  properties dialog. #20747
- Add field options for "Update PCB from Schematic". #21021
- Read Altium’s "showName" property for fields. #20985
- Improve Altium import performance.
- Treat stacked pins as a single item in 4-way connection test. #20532
- Honor escape key policy for sheet pin synchronization dialog.
- Unable to load schematic created with previous KiCad version
  containing | character in string. #21065
- Fix crash when trying to edit a non symbol field using U,V or F hot
  key. #21072
- Fix Eagle import schematic description for page names
  regression. #20957
- Fix overly aggressive label auto-completion capitalization. #20943
- Fix broken symbol chooser filtering for more than one filter
  expression. #21220
- Make sure initial focus of label properties dialog is the text input.
- Make enter key close label properties dialog instead of opening the
  drop down list. #21258

Spice Simulator

- Prevent crash on failure to load ngspice’s DLL. #20695
- Fix reversed resistor simulation pins. #20590
- Fix crash when back spacing in simulator user-defined signal name. #20991
- Correctly netlist AM/SFFM current sources. #20994

Symbol Editor

- Fix incorrect size of the pin properties dialog when an information
  bar is shown. #16761

Board Editor

- Fix errors in intersecting zones test. #20718
- Restore groups after undoing global deletion. #20699
- Save padstack shape and layer changes to pad in footprint
  editor. #20567
- Do not ignore differential pair gap min/max DRC rules. #19825
- Correctly honor minimum width project settings and DRC. #20361
- Do not trigger footprint does not match library errors when
  footprint has rule area on inner layers. #20552
- Fix footprint does not match copy in library issue. #20063
- Correctly show hole to hole clearance highlight when dragging
  vias. #20547
- Properly handle arc coupled items. #20636
- Prevent overriding existing track width. #20031
- Fix DRC freeze on creepage test. #20947
- Fix tuning pattern generators not being arrayed properly. #20617
- Re-implement wildcard matches for netclass constituents in DRC
  evaluation. #20955
- Fix false DRC error regarding clearance violation between zone and
  bezier curve, #20312
- Re-implement wildcard matches for netclass constituents in DRC
  evaluation. #20955
- Don’t bypass empty visibility recovery due to migration.
- Fix router issue Length where tuning path not is always computed
  through vias. #20379
- Fix router via placing issue. #20999
- DRC net class and component class match improvements.
- Fix incorrect text box properties dialog bitmap button sizes. #21050
- Fix crash when loading footprints with bezier curves.
- Pad set to "all copper layers" not present on all copper layers when
  editing pad properties. #20980
- Fix crash when changing the clearance of multiple zones to 0. #21081
- Fix small segment rendering. #21083
- Restore ability for moves to be asynchronous. #21047
- Fix crash when placing footprints when grid list is empty. #21060
- Fix position of rectangles after a rotate command.
- Flip Y axis when exporting to Hyperlynx file. #18581
- Ensure any mapped layers are enabled when importing from
  Eagle. #21138
- Allow parsing empty footprint fields when parsing net list. #20002
- Prevent router from automatically deleting trace segments. #21019
- Allow measurement tool to be dismissed under certain
  conditions. #21016
- Prevent differential router from changing trace width of routed
  segments once partial segments are connected. #21078
- Fix EasyEDA issue when importing board with consecutive arc
  parameter sets. #21238

Footprint Editor

- Add prettifier support when exporting a footprint. #21071
- Correctly open footprint datasheet URLs from menu and
  toolbar. #21149

3D Viewer

- Do not allow changing to anything in the board shared by the
  footprint editor. #20964
- Fix broken visibility settings when opening from footprint
  editor. #21053

Command Line Interface

- Fix kicad-cli pcb export pdf --mode-multipage command.

Job Sets

- Do not output undesired debug/progress information into console when
  running PCB 3D model job in GUI. #20738
- Set an environment variable when running jobs that points to the
  temp folder for the jobset output.
- Allow running jobsets in cli by description and uuid. #20033

API

- Use action wrapper for setting grid origin. kicad-python#47
- Add symbol path for footprint instances. #kicad-python#37
- Add FlashLayer() equivalent for pads, #20587
- Use net names, not codes, and allow creating new nets. #21027
- Prevent creating invalid arcs. #21035


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
