//Translations of this page are also available in the following languages:// [[roadmap.ru|Русский]] ====== PCB Roadmap ====== This is a guide to the future direction of the PCB layout editor. * [[geda:design_flow_and_hierarchy_roadmap | gEDA roadmap]] has some PCB items. * [[:pcb-projects | 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 [[https://bugs.launchpad.net/pcb |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 [[https://launchpad.net/pcb/+milestones | 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 :-) * [[geda:pcb_layers | New Layers]] proposal is here. * Multiple fonts in a design ([[geda:pcb_fonts | description of feature branch]]) * Other GUI cleanups. Gtk upgraded to "best practices". Importer config. * import/wizard plugins (as well as exports) * [[pcb:DRC | 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 "extend"/"trim" features à 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)