PCB’s support for non-copper layers needs improvement. In this project, you would add support for more easily-editable non-copper layers. These non-copper layers would be used for things like keepout regions, assembly drawing, and an actual board outline layer that is not just a copper layer. For more thoughts on the issue of layers in PCB, please see database.txt and keepouts.txt
Difficulty = 2
Improve the DRC interface for PCB. Perhaps have a DRC layer that gets generated when you run DRC. Then you could have an interface that lets you step through them and see on that layer, exactly what failed. Maybe this could be combined with making the DRC checks more unit testable.
Difficulty = 2
PCB currently incorporates a simple autorouter. However, a topological autorouter would represent a significant improvement over the existing autorouter. In this ambitious project, the student would create a topological autorouter for PCB.
Difficulty = 5
Add hooks into gschem needed to fully support things like backannotation of simulation results and click-to-plot results. Specifically, this would enable you to draw a schematic in gschem, then simulate it in ngspice without leaving gschem. The simulation plots would then appear in a graphical pop-up window.
Difficulty = 3
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.
Difficulty = 2
IPC-D-356 is a specification for a netlist output format used for manufacturing test of PCBs. It specifies both connectivity as well as pad position information, thereby facilitating the use of automated testing after PCB manufacture. In this project, you would implement an exporter which would write an IPC-D-356 compliant file from within PCB. The IPC-D-356 spec is available at: http://www.solidigm.com/downloads/ipc356.pdf
Difficulty = 3
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.
Difficulty = 1
pcb dialogs should remember their size and position. Some of pcb’s dialogs remember their size, but this isn’t universal. Several users have complained since they have to reposition and/or resize the dialog boxes every time they are opened.
Difficulty = 1