User Tools

Site Tools


pcb-projects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
pcb-projects [2018/03/04 09:27]
bert [User Experience (UX) Improvements]
pcb-projects [2019/03/26 09:40]
cparker [Design Rule Checker]
Line 1: Line 1:
 //​Translations of this page are also available in the following languages://​ [[pcb-projects.ru|Русский]] //​Translations of this page are also available in the following languages://​ [[pcb-projects.ru|Русский]]
 +====== pcb Projects ======
 +===== Core Functionality =====
 +  * [[pcb:​padstacks|Padstacks]]
 +===== Design Rule Checker =====
 +[[pcb:drc]]
 +====Online DRC====
  
-==== PCB Layout Editor ==== +====== pcb Layout Editor ====== 
- +==== Plow feature ​====
-== Plow feature ==+
  
 A "​plow"​ feature where the line tool shoves existing traces aside A "​plow"​ feature where the line tool shoves existing traces aside
Line 10: Line 15:
 ''​Difficulty = 4-5''​ ''​Difficulty = 4-5''​
  
-== Fast snap rounding Algorithm ==+==== Fast snap rounding Algorithm ​====
  
 Implement a fast snap rounding algorithm and resolve the case where Implement a fast snap rounding algorithm and resolve the case where
Line 51: Line 56:
 ''​Difficulty = 4-5''​ ''​Difficulty = 4-5''​
  
-== Snapping enhancements == +==== Snapping enhancements ​==== 
  
 There are a number of possible enhancements related to crosshair snapping that could improve usability. For example, being able to reorder the snapping priority (what objects are snapped to before others), disabling certain objects from being snapped to, changing the radius at which a snap occurs, and others. There are a number of possible enhancements related to crosshair snapping that could improve usability. For example, being able to reorder the snapping priority (what objects are snapped to before others), disabling certain objects from being snapped to, changing the radius at which a snap occurs, and others.
  
-Ideas for how the snapping system should work are being collected here: [[Snapping in pcb]]+Ideas for how the snapping system should work are being collected here: [[Snapping in pcb]]. There is also a todo list with some work that needs to be done.
  
-== Auto-routed drawing tool ==+==== Auto-routed drawing tool ====
  
 Basically with this tool, you would click on a starting point, then drag the Basically with this tool, you would click on a starting point, then drag the
Line 72: Line 77:
 ''​Difficulty = 5''​ ''​Difficulty = 5''​
  
-== IPC Footprint Calculator ==+==== IPC Footprint Calculator ​====
  
 Build a footprint calculator that can take the IPC rules and produce a pcb footprint. Preferably write this in a way where the core program is independent of a GUI so that you can script it for generating entire large families of footprints or hook it up to a GUI of choice (lesstif, gtk, maybe even cgi). Would require the purchase of IPC-7351 (approximately U.S.A. $100) and verifying that one is allowed to produce such a calculator. Build a footprint calculator that can take the IPC rules and produce a pcb footprint. Preferably write this in a way where the core program is independent of a GUI so that you can script it for generating entire large families of footprints or hook it up to a GUI of choice (lesstif, gtk, maybe even cgi). Would require the purchase of IPC-7351 (approximately U.S.A. $100) and verifying that one is allowed to produce such a calculator.
Line 78: Line 83:
 ''​Difficulty = 2''​ ''​Difficulty = 2''​
  
-== Recently loaded file list ==+==== Recently loaded file list ====
  
 Presently pcb does not present a list of recently loaded files in the file menu. It would be nice if pcb kept track of the last few files a user loaded. This is a common feature found in other programs. Presently pcb does not present a list of recently loaded files in the file menu. It would be nice if pcb kept track of the last few files a user loaded. This is a common feature found in other programs.
Line 84: Line 89:
 ''​Difficulty = 1''​ ''​Difficulty = 1''​
  
-==== User Experience (UX) Improvements ====+====== User Experience (UX) Improvements ​======
  
  
-== Update the User Manual ==+==== 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.” 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.”
Line 100: Line 105:
     * Unify and combine the READMEs.     * Unify and combine the READMEs.
  
-== i18n / l10n ==+==== i18n / l10n ====
  
   * Get more translations/​translators --> better and more language translations.   * Get more translations/​translators --> better and more language translations.
Line 111: Line 116:
   * Respect "​Right-To-Left"​ reading users (Arabic, GUI layouts ?).   * Respect "​Right-To-Left"​ reading users (Arabic, GUI layouts ?).
  
-== Netlists ==+==== Netlists ​====
  
   * Layout vs netlist/​schematic check or just trust the "​import schematic"​ netlist (ERC).   * Layout vs netlist/​schematic check or just trust the "​import schematic"​ netlist (ERC).
   * Rebuilding a netlist from scratch, based on connectivity (copper layers).   * Rebuilding a netlist from scratch, based on connectivity (copper layers).
  
-== Routing ==+==== Routing ​====
  
   * Respect the "​outline",​ "​route"​ and non-copper layers with the autorouter.   * Respect the "​outline",​ "​route"​ and non-copper layers with the autorouter.
Line 124: Line 129:
   * Importing routing style and other data from the netlist (if available).   * Importing routing style and other data from the netlist (if available).
  
-== Other platforms, GUI's and dependencies ==+==== Other platforms, GUI's and dependencies ​====
  
   * Migrate to GNOME/GTK3 … when ?   * Migrate to GNOME/GTK3 … when ?
Line 133: Line 138:
   * wxWidgets for native Microsoft windows look-and-feel UX ?   * wxWidgets for native Microsoft windows look-and-feel UX ?
   * Single Document Interface mode GTK UI with a separate function tear-off (lessGTK ?)   * Single Document Interface mode GTK UI with a separate function tear-off (lessGTK ?)
 +    * Separate layout window for artwork (primary screen).
 +    * Separate window for buttonbox and pull-down menu-items (secondary screen).
 +    * More routing styles (in pull-down combo-box ?).
   * Multiple Document Interface mode for the GTK UI ?   * Multiple Document Interface mode for the GTK UI ?
   * Multiple Document Interface mode for the lesstif UI ?   * Multiple Document Interface mode for the lesstif UI ?
Line 140: Line 148:
   * Flatpak (http://​flatpak.org) pcb packages for multiple linux distributions ?   * Flatpak (http://​flatpak.org) pcb packages for multiple linux distributions ?
  
-== Other unsorted crazy ideas ==+==== Plug-ins ==== 
 + 
 +  * Breakout plug-in for BGA escape routes. 
 +  * MUCS manhattan router plug-in. 
 +  * Pcb shopper quotation plug-in. 
 +  * 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. 
 + 
 +==== File exchange ==== 
 + 
 +  * IDF importer/​exporter (ECAD <--> MCAD). 
 +  * XML importer/​exporter. 
 +  * DXF importer/​exporter ​ (PCB <--> MCAD). 
 +  * DSN importer/​exporter (PCB <--> external routing). 
 +  * Verilog-AMS exporter (PCB --> simulation / analysis, see [[https://​archive.fosdem.org/​2016/​schedule/​event/​eda_data_interchange/​ | Albert Davis talk at FOSDEM-2016 ]]). 
 +  * GnuCAP exporter (PCB --> simulation / analysis). 
 + 
 +==== Exporters ==== 
 + 
 +  * Geometric model representation:​ 
 +    * VRML exporter (PCB --> eye-candy for visualisation / sales pitch). 
 +    * OpenSCAD exporter (PCB --> MCAD integration / 3D printing / mock-up). 
 +    * STEP exporter (PCB --> MCAD integration). 
 +    * DXF exporter (PCB --> MCAD integration). 
 +    * STL exporter (PCB --> MCAD integration / 3D printing / mock-up). 
 +  * Electromagnetics / Capacitance exporters:​ 
 +    * Validate the workflow for GSvit. 
 +    * Validate the workflow for Nelma. 
 + 
 +==== Other unsorted crazy ideas ====
  
 +  * Gerber files as a background (for reverse engineering).
 +  * Import a gerber project (for reverse engineering).
   * Layer definition awareness (copper, non-copper, soldermask).   * Layer definition awareness (copper, non-copper, soldermask).
   * Editable soldermask (gang solder mask clearance … for QFP, SO, PLCC, etc. package types).   * Editable soldermask (gang solder mask clearance … for QFP, SO, PLCC, etc. package types).
Line 153: Line 199:
   * Layer stackup definitions.   * Layer stackup definitions.
   * Create multiple pcb executables during build time (bpcb for batch, gpcb for GTK, lpcb for lesstif).   * Create multiple pcb executables during build time (bpcb for batch, gpcb for GTK, lpcb for lesstif).
 +  * Assist the user with repetitive tasks.
  
-==== Developer Experience (DX) Improvements ====+====== Developer Experience (DX) Improvements ​======
  
   * Travis-CI Continuous Integration for pcb on Travis (https://​travis-ci.org).   * Travis-CI Continuous Integration for pcb on Travis (https://​travis-ci.org).
Line 166: Line 213:
     * Descriptions of "state machines"​ within actions and other code flow.     * Descriptions of "state machines"​ within actions and other code flow.
  
 +==== Test Suite ====
 +  * [[pcb:​pcb_tests|PCB level tests]]
 +  * [[pcb:​unit_tests|Code level unit tests]]
pcb-projects.txt · Last modified: 2021/06/13 16:50 by bert