User Tools

Site Tools


Translations of this page are also available in the following languages: Русский

PCB Roadmap

This is a guide to the future direction of the PCB layout editor.

General Guidelines for Releases

In general, there are three types of changes that go into PCB - bug fixes, new features, and incompatible changes. A bug fix is when PCB doesn't do what it's supposed to do - this includes documentation bugs as well as code problems. A new feature is something that adds functionality to PCB but doesn't change any existing functionality. An incompatible change is anything that causes (intentional) compatibility issues with older versions of PCB, and usually means a large design change. Note that a new feature that adds a backwards-incompatible change to the file format when it's used is not in this category.

The current plans are as follows:

  • Bug fix releases every two months or so until we clear the backlog.
  • Start on a PCB 4.0 release that folds in some large design changes we've been talking about for years.

At the moment, bugfix releases will be of the form pcb-YYYYMMDD. Once 4.0 is released, the major.minor.bugfix numbers will correspond to the three categories listed above: bugfixes cause a *.*.N release, new features cause a *.N release, major changes cause a N.0 release. The YYYYMMDD release numbers will then be used for regular non-release snapshots.

The remainder of this page will list the various changes that are planned (or at least hoped for) for upcoming and future releases.

Bugs, patches, and feature requests should be added to the PCB Launchpad tracker. The default status undecided. Requests with that priority will be considered “unreviewed”.

Next Bug Release

This is a list of fixes that must be fixed before the next bug release, in addition to any “next bug release” artifacts in the bug tracker.

Future Bug Releases

This is a list of fixes that should be fixed eventually.

Next Feature Release

This is a list of new features that will be added before the next feature release (or, perhaps the next bug release, if time permits).

  • Make the code C++ compatible.
  • Allow via annulii to overlap each other.
  • More route styles.
  • Nanometer resolution - this is the “metric units” change we've talked about many times. Status = DONE.
  • Real layer types. Silks, keepouts, mask docs at least. Maybe anti-draw or paste.

Future Feature Releases

Other features that should be added eventually.

Next Incompatible Release

This is a list of major changes that we think are desirable to include in PCB, and wish to put effort into.

Future Incompatible Releases

This is a list of other major changes that we think are desirable to include in PCB, but so far have not committed any effort to.

Wish List

This section lists possible projects for future releases, which either haven't been agreed on, or haven't been scheduled. If you'd like to work on one of these, go ahead :-)

  • New Layers proposal is here.
  • Multiple fonts in a design ( description of feature branch)
  • Other GUI cleanups. Gtk upgraded to “best practices”. Importer config.
  • import/wizard plugins (as well as exports)
  • DRC
    • status report active on drawing space when “DRC Active” toggled 'on' in Connects menu.
    • DRC profile files (for different mfg processes).
  • Variable-angle arcs.
    • file footprints support this, it's a graphics issue.
  • Better support for free-rotated components: assert that pads at funky angles are rendered correctly, fix autorouter for components at weird angles (the latest git version has a tendency to either ignore the route command or to segfault, depending on the specifics), add rotation to the Ctrl+R report, etcetera.
  • Ability to copy a footprint's name from the library dialogue (so it can be pasted into gschem's attribute list).
    • it should be a feature of gschem to open .fp libraries.
  • Ability to edit netlist in-situ (possibly by drawing on the rat lines layer) - e.g, when you want to add a heatsink soldered to ground, it will always show up as shorted until the netlist is edited to incorporate it.
  • Trace impedance calculator, with automatic adjustment capability (fill in thickness, stray capacitance and desired impedance, and the width is adjusted to satisfy the conditions).
  • Integrated footprint lookup and fetch from
  • Hierarchical pcb model - subcells, footprints-as-pcb, etc.
  • A shape I've often wanted on a pad is circle with the sides cut off. This is slightly different than an oval. Something like Inkscape's boolean operations would be excellent.
    • PCB file footprints support 'obround' or pill shaped pads.
  • How about text at not-90 degree angles? Or support for rotated square pads (I know, the file format doesn't support those two.)
  • Editing on the grid has got to go! Counting grid points is the worst possible way to enter positional information into a computer.
  • Make every field in object reports editable.
  • Allow direct entry of offsets and absolute positions when editing.
  • Add “offset” and “trim” feature à la 2D CAD programs.
  • Add “point to tangent” and “tangent to tangent” line drawing feature à la 2D CAD programs.
  • When silk layer is off, show refdeses in very thin, small type for all footprints, say over pin 1, or the diamond mark.
    • similar to 'lock names', but done in order to clear up the board real-estate.
    • this would be 'drafting mode' as opposed to 'output mode' where silk would be 1:1.
  • Selection improvements: make it possible to select the endpoint of a specific trace, if two endpoints are coincident, you can't know which will be selected.
  • Trace centerline dissappears when moving trace endpoint in thin-draw mode. this is undesirable behaviour.
  • Filled circles
    • Currently, to get a filled circle you create a zero-length trace of the right width.
    • Are there actually electronics components that require filled circle copper?
  • Unification of shortcuts in gschem and PCB, or at least an easy option for PCB to mimic gschem's shortcuts.
  • CAM engine? (i.e. ability to say “draw outline on top soldermask” via script/config)
  • Automatic least version required file saving. (goal: accomodate new features gracefully)
pcb/roadmap.txt · Last modified: 2016/11/24 12:39 by cparker