Skip to content

Latest commit

 

History

History
301 lines (150 loc) · 8.59 KB

3.2_todos.md

File metadata and controls

301 lines (150 loc) · 8.59 KB

Todo's and some crazy ideas (grouped).

User experience (UX):

  • Update the User Manual. In 1997, Richard Stallman wrote: “The biggest deficiency in free operating systems is not in the software — it is the lack of good free manuals that we can include in these systems.”

    • Include a chapter on the Topological router in User Manual.

    • Include DJ's Getting Started in the User Manual.

    • Extend Getting Started for both autorouter and topological router.

    • Add more step-by-step / tutorials / examples for existing exporters:

      • Usage of Nelma.

      • Usage of GSvit.

    • Usage of Blind and buried vias.

    • Appendix B: add chapter B.10 Problems related to Microsoft Windows.

  • I18n / L11n:

    • Get more translators --> better and more language translations.

    • Update the Dutch translations.

    • Update the French translations.

    • Update the Cyrillic translations.

    • Use Launchpad for common translations.

    • Check on what should be translatable strings.

    • Check on plural forms in exotic languages (Japanese, etc).

    • Respect "Right-To-Left" reading users (Arabic, GUI layouts ?).

  • Unify and combine the READMEs.

  • Assist the User with repetitive tasks.

  • Routing:

    • Respect the "outline", "invisible", "route" and non-copper layers with the autorouter.

    • Respect the "outline", "invisible", "route" and non-copper layers with the toporouter.

    • Add via placement to the toporouter.

    • Respect the "keepout" layer.

    • Importing routing style and other data from the netlist (if available).

  • GUIs:

    • Implement the "lessgtk" GUI:

      • Separate layout window for artwork (primary screen).

      • Separate window for button box and pull-down menu-items (secondary screen).

      • Activate button box (popup dialog) with Right Mouse Button (RMB).

    • More routing styles (in pull-down combo-box ?).

    • Make the use and visibility of the trackball configurable.

    • HTML5 (+java) GUI (web based pcb layout designer).

    • Android GUI for tablets and smart-phones.

    • GTK3 GUI.

    • GTK4 GUI.

    • QT3 GUI.

    • QT4 GUI.

    • QT5 GUI.

    • wxWindows GUI for native Microsoft windows look-and-feel UX.

  • Netlist:

    • Layout vs netlist/schematic check or just trust the "import schematic" netlist.

    • Rebuilding a netlist from scratch, based on connectivity of copper layers/wire bridges.

    • Introduce a "wire" layer for wire bridges.

    • Connectivity for wire bridges.

    • Add a configurable watch for the source schematics. If the source is newer than pcb layout (on startup/during layout time) update the netlist [Off, Auto-mode or Interactive-mode (popup dialog)].

  • Layer definition awareness (copper, non-copper, soldermask, comments, silk, outline, anti-mask, keepout).

  • Editable soldermask (gang solder mask clearance … for QFP, SO, PLCC, etc. package types).

  • Grouping of elements, traces and vias.

  • Show / define solder paste (per pad, per part, per footprint, global percentage of pad area, etc.).

  • Show / define IPC-356-D test points.

  • Back annotation (output).

  • Pin swapping.

  • Pinout awareness (in, out, inout, pas, pwr extracted from gschem schematic).

  • Routing style awareness of traces (and watch dog functionality if a routing style definition is changed !).

  • Padstack definitions.

  • Layer stackup definitions.

  • Create multiple pcb executables during build time (bpcb for batch, gpcb for GTK, lpcb for lesstif).

  • Multiple Document Interface mode (lessGTK UI ?).

  • Multiple Document Interface mode (lesstif UI ?).

Developer Experience (DX):

  • Travis-CI Continuous Integration for pcb on Travis (https://travis-ci.org shutting down June 15th, 2021). Latest news: Travis CI has become a commercial service travis-ci.com free for FOSS (credits upon request).

  • Circle-CI ?

  • Codacy automated code review.

  • Under the hood structural improvements:

    • Start a pcb-5.x.y development blueprint.

    • Start a pcb-5.x.y branch "devel" ?

    • Object Oriented approach in source tree / files.

    • libpcb for helper functions or abstraction stuff ?

    • Pin/pad/traces know to which net they belong (cross reference index).

  • Developer documentation !

    • Doxygenation of source files.

    • Descriptions of "state machines" within actions and Drakon flow diagrams.

Plug-ins/Importers/Exporters:

  • Breakout plug-in for BGAs.

  • MUCS "Manhattan style" router plug-in.

  • Pcb shopper quotation plug-in.

  • Stripline/Double Stripline/Microstrip Impedance Calculator plug-in.

  • Entity inspector/editor plug-in.

  • Serpentine length matching plug-in.

  • Differential pair routing plug-in.

  • Panelize plug-in.

  • Bus routing plug-in.

  • Push and Shove routing plug-in.

  • Parasitic capacitance/inductance extraction plug-in.

  • Load plug-ins on demand.

  • Bill of Materials in MarkDown format (for OSH Park project descriptions and other net publishing).

  • Separate the XY-coordinates list from the BOM exporter into a Pick-and-Place exporter, conforming to industry standard(s) and generate separate top side and bottom side files.

  • Ignore the "invisible" layer while generating gerber files.

  • Ignore the "invisible" layer while DRC.

  • Netlist import:

    • QUCS schematic / netlist import.

    • TinyCAD schematic / netlist import.

  • File exchange:

    • IDF exporter (ECAD --> MCAD).

    • IDF importer (MCAD --> ECAD).

    • XML exporter.

    • XML importer.

    • DXF exporter (ECAD --> MCAD).

    • DXF importer (MCAD --> ECAD).

    • DSN exporter (pcb --> external routing).

    • DSN importer (external routing --> pcb).

    • Verilog-AMS exporter (--> simulation / analysis, see Albert Davis's talk FOSDEM-2015).

    • GnuCAP exporter (--> simulation / analysis).

  • Gerber files as a background (for reverse engineering).

  • Import gerber project (for reverse engineering).

  • Geometric model representation:

    • VRML exporter (--> eye-candy for visualisation / sales pitch).

    • OpenSCAD exporter (--> MCAD integration / 3D printing / mock-up).

    • STEP exporter (--> MCAD integration).

    • DXF exporter (--> MCAD integration).

    • STL exporter (--> MCAD integration / 3D printing / mock-up).

  • Electro magnetics exporters:

    • Validate workflow for GSvit.

    • Validate workflow for Nelma.

Other platforms and dependencies:

  • Cygwin port for windows.

  • W32 port with minipack ?

  • WIN32 port with a NSIS installer ?

  • Flatpak (http://flatpak.org) pcb packages for multiple linux distributions ?

  • Ubuntu PPA by developers ?

    • Charles Parker.

    • Bert Timmerman.

    • ...

Road map:

  • It's releatively easy to re-schedule Launchpad bug reports and switch them to other releases.

  • Minor version number increments apply to releases requiring pcb native file format changes, micro version number increments apply to releases without pcb native file format changes.

Release schedule:

  • pcb-4.0.0 (January 2017): bugfixes and new feature (requiring a file format change).

  • pcb-4.0.1 (May 2017): bugfixes and new features (not requiring a file format change).

  • pcb-4.0.2 (September 2017): bugfixes and new features (not requiring a file format change).

  • pcb-4.1.0 (January 2018): bugfixes and new feature (requiring a file format change).

  • pcb-4.1.1 (April 2018): bugfixes and new features (not requiring a file format change).

  • pcb-4.1.2 (May 2018): bugfixes and new features (not requiring a file format change).

  • pcb-4.1.3 (October 2018): bugfixes and new features (not requiring a file format change).

  • pcb-4.2.0 (February 2019): bugfixes and new feature (requiring a file format change).

  • pcb-4.2.1 (December 2019): bugfixes and new features (not requiring a file format change).

  • pcb-4.2.2 (January 2020): bugfixes and new features (not requiring a file format change).

  • pcb-4.3.0 (March 2021): bugfixes and new features (requiring a file format change).

  • pcb-4.3.1 (March 2023 ?): bugfixes (not requiring a file format change).

  • pcb-4.4.0 (December 2023 ?): bugfixes and new features (requiring a file format change).

  • pcb-5.0.0 (December 2025 ?):

    • Object Oriented approach in source tree files.

    • ...