KiCad 9.0.4 Release
The KiCad project is proud to announce the version 9.0.4 bug fix release. The 9.0.4 stable version contains critical bug fixes and other minor improvements since the previous release.
A list of all of the fixed issues since the 9.0.4 release can be found on the KiCad 9.0.4 milestone page. This release contains several critical bug fixes so please consider upgrading as soon as possible.
Version 9.0.4 is made from the 9.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
-
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).
-
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 assertion when dragging selection area (Sentry KICAD-796).
-
Prevent crash when nested settings are not valid on save (Sentry KICAD-AD).
-
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 ).
-
https://gitlab.com/kicad/code/kicad/-/commit/50138ccf691c86cd7ae79dc1b8cd7ff5a2a15a43Do 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).
-
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
-
Allow deleting configuration paths that begin with KICAD# that are not the current version. #20486
-
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 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
-
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)
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 library is updated outside KiCad (Sentry KICAD-QZ9).
-
Improve "This position is already occupied by another pin" warning message. #18466
Board Editor
-
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
-
Property 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
-
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).
-
https://gitlab.com/kicad/code/kicad/-/commit/d1a1624cbe09fda0a711f51965d6f0e0f498bcd3Fix crash evaluating DRC rule condition when netclass is missing (Sentry KICAD-SPF)].
-
https://gitlab.com/kicad/code/kicad/-/commit/14c7c3f61fae0aaf0a56430d6136a4d34935b59aPrevent assertion when plotting pads with undefined layers (Sentry KICAD-QOC)].
-
Add table row height and column width to properties panel. #21224
-
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 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
-
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
-
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 3D models rotation when 3D body is on bottom side for Altium imports. #18450
-
Fix crash in DRC when tuning pattern or arc exists on board. #21486
Footprint Editor
3D Viewer
Bitmap to Component Tool
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
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 disappearing top menu bar due to GDI object exhaustion. #21386
See Also
KiCad Version 9.0.4 Release Candidate 1 Available
2025-08-09
The first release candidate for version 9.0.4 is available for testing. Version 9.0.4 will be released soon unless critical issues are found in testing this release candidate. There may be additional bug fixes to the 9.0 series available as testing builds for users who require those bugs fixed after 9.0.4 is released. You can obtain the release candidate for your platform here: Windows x86_64 Windows arm64 macOS Ubuntu: Using the 9.
KiCad 9.0.3 Release
2025-07-07
The KiCad project is proud to announce the version 9.0.3 bug fix release. The 9.0.3 stable version contains critical bug fixes and other minor improvements since the previous release.