Netlist Tutorial


The Netlist function was added in version 2.0 of the Electronics Calculator program. This function allows you you create and maintain network lists of parts, pins, and connections that accurately describe a particular circuit. It allows tracking of the connections as a circuit is prototyped, verification of the final prototype, export to a PCB design tool or schematic tool for production. After the PCB is produced, it can be used to "tone out" the connectivity on the final board or troubleshoot problems. To do all this, it helps to know what all the icons mean - they are all built-in icons from the GTK toolkit, so they are not necessarily obvious.

Annotated screen shots

Click for a larger image
This is the current selected list. It will show "<None>" if there is currently no netlist selected for connections, otherwise it will display the name of the netlist that will be connected by clicking on the connect net button.
Connect Net button. If there is a network currently selected (to the left), this will attach the net or pin that is selected in the tree to the current net. If the selected pin is already connected to a different net, or a net is selected, a dialog will display that will allow you to merge the selected net to either of the selected net names. If a pin is selected that is not currently connected to a net, and "<None>" is shown in the selected network, a network name will be generated based on the pin name (part name + pin number). If the current selected net is "<None>", and a connected pin or net is selected, that network will be set as the current selected network. Basically to connect pins together, you just select one pin, click connect, select the other pin, and click connect.
De-select Net. Clicking this will change the current selected net to "<None>". This is used to select a different network for connecting pins.
Disconnect Net button. Clicking this on a pin will disconnect that pin from the current network. This is used when the pin needs to be connected to a different network by itself, rather than connecting all of the pins that are associated with this pin (its current net) to another net.
Database Menu. This will display the database menu for selection of a netlist name, saving versions, restoring versions, and import/export of netlists to other formats. For more information, see the Database Menu option below
Cross-Reference Button. When clicked on a reference to a pin under either a component or net, this will reposition to the associated component pin or network. This is most useful when tracing a circuit through components or nets.
Expand All. This will expand all of the Component, Net, and Part nodes.
Collapse All. This will collapse all of the Component, Net, and Part nodes.
New Part button. This button will create a new part in the Part Library.
Copy Part button. This button will create a new part copied from the currently selected part, or the part associated with the current component.
Add Pin. This adds a new pin to a selected part.
Add to Schematic. This creates another named component that is a either an instance of the selected part, or a duplicate of the currently selected component's part.
Delete button. This will delete the currently selected Component, Net, Part Pin, or Part. You need to use some caution with the delete function - it is possible to delete parts even if they have been used as components on a netlist.
Components Tree Node. All of the Components are stored under this node. Click on this node to show the components on the current netlist.
Component Node. Each of the components in the current netlist will have one node on the Components tree. Clicking on a component node will open the component to show the pins for that component.
Component Pin node. These nodes show the pins associated with a component, with columns for the currently attached net, a selection box for ease in tracing or verifying a netlist, and an optional location of the pin. When a component pin is selected, you can use the net connect, disconnect, and deselect buttons to connect pins to nets.
Component Details pane. When a component or component pin is selected, the associated component details show in this pane. The name, value, and location can be changed in this pane. If any changes are made, click the Update button to commit the changes to the database. Clicking a different node in the tree will cause any changes made since the update button was clicked to be lost.
Component Pin details pane. This pane shows the information about the selected component pin, including the pin number, the name of the pin (which is the component name + pin number), The type of pin (input/output), the pin function, and the assigned net. Most of this information is extracted from the part pin.
Net column. This column shows the net assigned to the component pin. You can click and drag the pane separator to show or hide this column
Selection box column. This is a linked selection box that can be used to mark pins as they are verified when tracing a schematic or PCB. Selections for a single pin are synchronized between the component pin under the component node and the pins attached to the net node. This allows you to check each pin as it is verified to be connected to a network, and then verify that all pins are accounted for. If a pin is connected to the wrong network, it will be clear, as will any pins that are not connected.
Location Column. This displays the location associated with a component as an X:Y value. This is intended to allow easy identification of a particular part on a prototype board or solderless breadboard.
Click for a larger image
Nets Node. Click this node to show or hide all of the named nets.
Named Net Node. There is one Name Net node for each named net in the netlist. You can click this node to open the node to show the pins connected to the net, or to close the view to show only the net name. Click on the Named Net node if you want to change the name of a network in the Net Name Pane.
Net Pin Node. There is one node per Component Pin that is attached to the named net. You can use the Cross-Reference button on the toolbar to switch between a selected net pin and the same pin under the component node.
Net Name Pane. Allows updates to the net name. You must click the update button to accept any changes.
Click for a larger image
Part Library. Click this node to show or hide all of the parts.
Part Node. There is one Part node for each part stored in the database. You can click this node to open the node to show the pins associated with the part, or to close the view to show only the part name. Click on the Part node or an associated Part Pin node to change the part details on the Part Details Pane.
Part Pin Node. There is one node per Part Pin that is attached to the Part. Click a Part Pin node to change the details of the part pin using the Part Pin Details Pane
Part Details Pane. Allows updates to the details of the part, including the part name, a description of the part, the package information that will be exported to certain netlist formats, and the prefix that is used when automatically generating names for components created from this part. Click the Add to Schematic toolbar button when a part is selected to add a component based on that part to the current netlist. You must click the update button to save any changes to this pane.
Part Pin Details Pane. Allows updates to the details of the selected part pin, including the name of the pin, the type of pin (this is text - intended for IN/OUT/Open Collector, etc), and the default net name (which may be blank). A powerful function of the netlist program is automatic connection of pins. If you add a part with a default net to a schematic, that component pin will automatically be connected to the named net. If the net does not exist it will be created. You must click the update button to accept changes.

Tree Node types


Components are specific instances of parts in a schematic. They are created from parts and associated with parts and part pins. Each component has a name, a value, and a location. The name is typically automatically generated based on the prefix for the part and the last used number for that part. For example, if the prefix is "R" for a resistor, adding a new resistor will assign the number R3 if R1 and R2 already exist.

Component Pins

Each component automatically has pins created based on the part pins associated with the part the component is created from. The component pins are connected to nets (or each other, which creates nets automatically).


Nets are simply named groups of connected component pins. By default, net names are assigned based on the default net associated with a part pin, or the first connected pin number (component name + pin number). You can change the net name to a more descriptive name when needed.

Part Library

The part library has all of the named parts that can be added to a schematic. The parts in the netlist manager are used to create components, and to record the information needed to properly export a netlist into a PADS-PCB or similar export format. Before any component can be added to a netlist, there must be a part for it. Parts are NOT associated with a particular netlist = switching from one netlist to another does not affect the parts.

Database Menu

database menu image
Change Netlist Description...
This allows you to change the description for the current version of the current netlist. It is also the best way to check the name and description of the current netlist.
Create Netlist...
This option creates a new named netlist. You will be prompted for a name (which must be unique), and a description of the netlist. This will create a new empty netlist (e.g. no components or named nets) which you can add components to and connect.
Select Netlist...
This allows you to select the current version of any of the named netlists in the database. Use this to load another netlist for manipulation.
Save Version...
This will prompt for a new description, and then save a copy of the netlist as the next available version number. After the save operation the saved version will remain unchanged while the current version is changed.
Restore Version...
This will show the saved versions of this netlist and allow you to select one to restore. The current version will be saved with its current description (you can change it with Change Netlist Description... before saving if you need to). The current version will then be replaced with a copy of the selected version so you can make changes based on that saved version. When this operation is complete, the current version will be replaced by the selected version, the selected version will remain unchanged in the database, and the current version prior to the restore will be saved with the highest available version number so you can revert to that copy. If all of this is not what you wanted, delete the unwanted versions with Delete Version...
Delete Version...
This will show a list of all the named netlists and version numbers in the database (except the one you are currently updating) and allow you to delete the selected version. BUG warning: Please note that version 0 is always the current version of each named netlist - if you delete version 0 you will no longer be able to restore any of the other versions of the named netlist. You should only delete version 0 of any netlist if it is the only remaining version and you want to permanently get rid of it.
Import another list...
This option will import all of the components and named nets from another selected netlist name and version into the current named netlist. You will be prompted for a prefix and the netlist to import. You must specify a prefix that will be added to the component and net names in the imported list to create unique component and net names. After the import is complete, you can rename the imported parts and nets as needed to integrate with the current netlist. This is intended for use in creating common repeated subsystems such as MAX232 circuits with the required external capacitors or motor driver circuits in a multi-axis stepper motor driver
This option currently does not do anything. In the future it is intended to be used to import netlists from other software, such as a PADS-PCB or Eagle format. That would allow the netlist tab to be used as a checklist to verify a PCB produced by other software.
This option allows the current netlist to be exported into either a custom XML format or the PADS-PCB format that is used to feed freepcb (a very nice PCB design tool that I like to use). The dialog that is displayed prompts for the output format and the name of the file to generate. Bug Warning: The current directory that is used for exports is /usr/bin/, which typically does not allow write permissions. To work-around this problem, specify a fully qualified filename for the export file e.g. /home/user/