Development Highlight: February Update

It’s only been a month since the 6.0 release and work is well under way for the future 7.0 release with many features and improvements to come over the course of the year.

As a friendly reminder, nightlies are currently unstable, you can use them for testing and experimenting but we make no guarantees on the stability right now. Use them at your own risk, keep backups, especially if you are upgrading nightly versions.

Release Schedule Change

The KiCad team is planning to switch to annual release targets for major releases with each release happening in January. No promises yet but this is the goal. Patch fixes for the current stable release will occur as normal over the course of each year while the next major release is worked on.

DRC Improvements

Immediately following the release of 6.0, Jeff Young pushed numerous DRC improvements

PCB to Library Footprint Consistency Checking

A new optional check is checking if your board design has footprints that deviated from the library they purport to come from.

Example of Board to Library Footprint Checking

Ignored Tests Tab

Ignored tests are now listed in their own separate tab.

Ignored Tests tab shown in DRC window

Mechanical Clearance Rules.

Two new DRC rule constraints mechanical_clearance` and mechanical_hole_clearance to the complement the clearance and hole_clearance constraints.

While the later are not run on items of the same net, the mechanical_* versions are.

# Prevent solder wicking from SMD pads
(rule holes_in_pads
    (constraint mechanical_hole_clearance (min 0.2mm))
    (condition "B.Pad_Type == 'SMD'"))

Custom Rule Severities

Severities can now be defined per custom rule with possible values of ignore, warning, error, and exclusion.

(rule "Via Hole to Track Clearance"
    (constraint hole_clearance (min 0.254mm))
    (condition "A.Type =='Via' && B.Type =='Track'")
    (severity warning))

Pad to Zone rules

thermal_relief_gap, thermal_spoke_width and zone_connection now are new constraints added for rule checking copper connections that get generated between pads and zone fills.

zone_connection has valid options of solid, thermal_reliefs or, none.

    (rule heavy_thermals
       (constraint thermal_spoke_width (min 0.5mm))
       (condition "A.NetClass == 'HV'"))

    # Don't use thermal reliefs on heatsink pads
    (rule heat_sink_pad
        (constraint zone_connection solid)
        (condition "A.Fabrication_Property == 'Heatsink pad'"))

Radial Dimensions

KiCad 6.0 introduced a linear dimension tool. Jeff Young in 4b6bf30 has now introduced a new Radial Dimension tool for 7.0.

Example of radial dimensions

Schematic shapes

Support for a simple rectangle and circle primitive has been added to the schematic editor to round out

Example of radial dimensions

Custom fonts

Ola Rinta-Koski laid down a solid chunk of groundwork in MR #613 which was later taken in by Jeff Young for more overall restructuring of the codebase to introduce custom font support in both schematic and PCB editors. You can now freely use Comic Sans to your heart’s content.

Example of CJK custom font
Example of Wingdings and other oddball fonts

Text Boxes

Jeff Young in multiple commits c6a8100, 5739505, f3cd36d has added support for text boxes in both the schematic and PCB editors.

Example of CJK custom font

3Dconnexion SpaceMouse Support

Markus Bonk working for 3Dconnexion has contributed support in the PCB editor and 3D viewer for their line of SpaceMouse products in MR #845. For those unfamiliar, space mouses are 3D navigation capable mice that give a unique way of navigating both 3D and even 2D canvas in one simple device without needing key presses or mouse clicks. Certain power users may find this a welcome expansion to KiCad’s capabilities to support their needs.

Currently this integration only works on Windows and macOS where the 3dconnexion provides their driver. The KiCad team is exploring integration for libspacenav to provide Linux support.

Last Month’s Contributors

The above features weren’t the only contributions made to KiCad, we would like to thank all of the contributors since the release of KiCad 6.0 on December 24th, 2021 to February 1st, 2022!

  • Jeff Young

  • jean-pierre charras

  • Seth Hillbrand

  • Marek Roszko

  • Mike Williams

  • Thomas Pointhuber

  • markus-bonk

  • Wayne Stambaugh

  • Jon Evans

  • Tomasz Wlostowski

  • Ian McInerney

  • Mark Roszko

  • Ola Rinta-Koski

  • Mikolaj Wielgus

  • Roberto Fernandez Bautista

  • Steffen Mauch

  • Frank Zeeman

  • Jan Straka

  • Mark Hämmerling

  • qu1ck

  • Arnau Llovet Vidal

  • Marco Ciampa

  • Steven A. Falco

  • taotieren

  • Fabien Corona

  • Franck Bourdonnec

  • Rigo Ligo

  • Tian Yunhao

  • Tokita, Hiroshi

  • Wellington Terumi Uemura

  • Axel Henriksson

  • Brian Mayton

  • Davide Gerhard

  • Eric

  • Erwan Rouault

  • Franck

  • Gökhan Koçmarlı

  • Jacob Mealey

  • Jonathan Haas

  • Jose Perez

  • Rafael Silva

  • Scott Candey

  • Simon Richter

  • Tom Keddie

  • Ulices

  • Vesa Solonen

  • alexfanqi



See Also

Development Highlight: Third Party Content Improvements
2021-12-04

We are fast approaching the eventual release of 6.0 targeted for very early next year with the tagging of the 6.0 RC 1. Plugin & Content Manager One final new feature that has been snuck in is the new Plugin & Content Manager (PCM) contributed by Andrew Lutsenko in MR #841 The KiCad community has created an array of valuable python tools and libraries over the years. The PCM now provides the greater KiCad audience an easier way to both learn of these tools and install them with more ease.

Development Highlight: PCBNew Layers, DRC and Toolbar Palettes
2020-10-04

Some great workflow improving changes were made to PCBNew in this Development Highlight for the future KiCad V6 😄 Layer Management Jon Evans introduced a brand new Appearance control in commit bd14f8a82. The entire Appearance control which is on the right hand side of Pcbnew has received a visual and functional overhaul In addition to the existing functionality, there is now the ability to Show all Layers, Dim non-selected layers and Hide non-selected Layers