Translations of this page are also available in the following languages: Русский
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:
At the moment, bugfix releases will be of the form
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.
YYYYMMDD release numbers will then be used for regular
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
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.
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
cleanups. Gtk upgraded to “best practices”. Importer config.
import/wizard plugins (as well as exports)
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).
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 gedasymbols.org.
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.
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.
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)