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.

- gEDA roadmap has some PCB items.
- PCB Projects lists some wish-list items.

## 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.

Bugs, patches, and feature requests should be added to the PCB Launchpad bugs tracker.

The default status undecided, bug reports with that priority will be considered "unreviewed".

## Current plans

The current plan is as follows:

- Releases every three ... four months or so, until we clear the backlog.
- Start on a PCB 5.x release that folds in some large design changes.

## pcb release schedule

The pcb release schedule can be found here.

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

## 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)
- Design Rule Checker
  - status report active on drawing space when "DRC Active" toggled 'on' in Connects menu.
  - DRC profile files (for different mfg processes).
  - General code clean up
  - Modularization
- 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 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.
  - 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)
- Put various commands which are only accessible via a :command(foo) into the top menu. Newbies want to see what actions are in the menus since that way they know what PCB can do.
- Make the difference between editing footprints and PCBs much more obvious. If you're in footprint editing mode, then perhaps make the background color change. (Architectural)