3
KiCad Future Versions Roadmap
Ian McInerney edited this page 2020-02-05 22:33:51 +00:00

KiCad Future Versions Roadmap

This roadmap tracks features that the development team is planning to include in a future version of KiCad, but that have not yet been confirmed for a particular release version. The development team will strive to keep this document updated as new versions are released and planning for the following version begins.

Each entry in the road map is made up of four sections. The goal should be a brief description of the what the road map entry will accomplish. The task section should be a list of deliverable items that are specific enough hat they can be documented as completed. The dependencies sections is a list of requirements that must be completed before work can begin on any of the tasks. The status section should include a list of completed tasks or marked as complete as when the goal is met.

General

This section defines the tasks that affect all or most of KiCad or do not fit under as specific part of the code such as the board editor or the schematic editor.

User Interface Modernization

Goal:

Give KiCad a more modern user interface with dockable tool bars and windows. Create perspectives to allow users to arrange dockable windows as they prefer.

Task:

  • Take advantage of the advanced UI features in wxAui such as detaching and hiding.
  • Clean up menu structure. Menus must allow access to all features of the program in a clear and logical way. Currently some functions of Pcbnew are accessible only through tool bars
  • Redesign dialogs, make sure they are following same style rules.
  • Check quality of translations. Either fix or remove bad quality translations.
  • Develop a global shortcut manager that allows the user assign arbitrary shortcuts for any tool or action.

Dependencies:

  • None

Status:

  • No progress.

Eeschema: Schematic Editor

This section applies to the source code for the Eeschema schematic editor.

Allow Use of System Fonts

Goal:

Currently the schematic editor uses the stroke drawn fonts which aren't really necessary for accurate printing of schematics. Allow the use of system fonts for schematic text.

Task:

  • Determine which library for font handling makes the most sense, wxWidgets or freetype.
  • Add support for selecting text object fonts.

Dependencies:

Status:

  • No progress.

Pcbnew: Circuit Board Editor

This section covers the source code of the board editing application Pcbnew.

Pin and Part Swapping

Goal:

Allow Pcbnew to perform pin and/or part swapping during layout so the user does not have to do it in Eeschema and re-import the net list.

Task:

  • Provide forward and back annotation between the schematic and board editors.
  • Define netlist file format changes required to handle pin/part swapping.
  • Update netlist file formatter and parser to handle file format changes.
  • Develop a netlist comparison engine that will produce a netlist diff that can be passed between the schematic and board editors.
  • Create pin/part swap dialog to manipulate swappable pins and parts.
  • Add support to handle net label back annotation changes.

Dependencies:

Status:

  • No progress.

Stable Python API

Goal:

Create a Python wrapper to hide the SWIG generated API.

Task:

  • Document new Python API.
  • Write Python API.

Dependencies:

  • None.

Status:

  • Initial technical specification drafted.

Track Refining

Goal:

Add support for teardrops and automatically updating length tuning meandering.

Task:

  • Draft specification for track refining.
  • Implement support for teardrops.
  • Implement support for changing tuned length meandering.

Dependencies:

  • None.

Status:

  • Initial technical specification drafted.

Team:

  • Seth

Groups and Rooms

Goal:

Support grouping board objects into reusable snippets.

Task:

  • Write design specification.
  • Update board file format to support grouped objects.
  • Add user interface code to support grouped board objects.

Dependencies:

  • None.

Status:

  • Initial technical specification drafted.

Team:

  • Seth

Pad Stack Support

Goal:

Add padstack support.

Task:

  • Write pad stack design specification.
  • Update board file format to support pad stacks.
  • Add user interface code to support designing pad stack objects.
  • Update push and shove router to handle pad stacks.
  • Update zone filling to handle pad stacks.
  • Update DRC to handle pad stacks.

Dependencies:

  • None.

Status:

  • Initial technical specification drafted.

Team:

  • Orson

Anti-pad Improvements

Goal:

Use anti-pads on vias and through hold pads on internal layers as required.

Task:-

  • Revise zone filling algorithm to create anti-pad on internal layers.

Dependencies:

  • None.

Status:

  • No Progress.

Thermal Relief Improvements

Goal:

Allow for custom thermal reliefs in zones and custom pad shapes.

Task:-

  • Write technical specification to define requirements, alternate unions, knockouts, union spokes, etc.
  • Revise zone filling thermal relief support to handle new requirements.
  • Update board file format for new thermal relief requirements.
  • Add user interface support for thermal relief definitions.

Dependencies:

  • None.

Status:

  • No Progress.

IPC-2581 Support

Goal:

Add support for exporting to and importing from IPC-2581.

Task:-

  • Add IPC-2581 export code.
  • Add IPC-2581 import code.

Dependencies:

  • None.

Status:

  • No Progress.

Team:

  • Seth

3D Model Improvements

Goal:

Add opacity to 3D model support and convert from path look up to library table to access 3D models.

Task:-

  • Add opacity support to footprint library file format.
  • Add library table 3D model support to footprint library file format.
  • Create remapping utility to map from path look up to library table look up.
  • Add user interface support for 3D model opacity.
  • Add user interface support accessing 3D models via library table.

Dependencies:

  • None.

Status:

  • No Progress.

3D System Upgrade

Goal:

Make better use of OpenCASCADE to support 3D viewer and import/export of 3D files.

Task: (Preliminary work, to be finalized)

  • Refactor 3D GL canvas to use OpenCASCADE instead of custom OpenGL rendering
  • Move STEP export into 3D viewer
  • Split 3D viewer into a new KiFace for modularity
  • Implement selection cross-probing between the 3D viewer and Pcbnew

Dependencies:

  • None.

Status:

  • No Progress.