Welcome to the world of electronic product development in Altium's world-class electronic design software. This tutorial will help you get started by taking you through the entire process of designing a simple PCB - from idea to outputs files. If you are new to Altium software then it is worth reading the article Exploring CircuitMaker to learn more about the interface, information on how to use panels, and an overview of managing design documents.

To learn more about a command, dialog, object or panel, press F1 when the cursor is over that item.

Throughout this tutorial there are references to buttons on the ribbon, and to menu entries. The notation used for these references work as follows:

The vertical bar is used as a separator for ribbon references, in the form MainRibbonTab | RibbonGroup | ButtonName. As shown in the image below, an example would be View | System | Start, click on the View tab, look in the System group, click on the Start button.

The double-arrow is used as a separator for menu references, in the form MainEntry » SubMenu » MenuCommand. As shown in the image below, an example would be File » Help » About, click on the File menu button, select the Help entry to open that sub-menu, then select the About menu entry.

Note that ribbon buttons and menus can also be combined, in this situation these notations are used together.

Where is My Design Stored?

CircuitMaker is a community-based PCB design tool, where PCB design projects are made available to everyone in the design community. To achieve this, CircuitMaker designs are stored in the cloud, in a free, community storage Vault. Using the Community Vault is completely transparent, as a designer you browse, create, open and save projects and project documents that are stored in the Vault, from within CircuitMaker. PCB projects stored in the Community Vault are available to everyone in the CircuitMaker community.

The Design

The design you will be capturing and then designing a printed circuit board (PCB) for is a simple astable multivibrator. The circuit is shown below, it uses two general purpose NPN transistors configured as a self-running astable multivibrator.

Circuit for the multivibrator.

OK, you're ready to begin capturing the design. The first step is to create a PCB project.

Creating and Opening a New PCB Project

In Altium's software, a PCB project is the set of design documents (files) required to specify and manufacture a printed circuit board. The project file, for example Multivibrator.PrjPCB, is an ASCII text file that lists which documents are in the project, as well as other project-level settings, such as the required electrical rule checks, project preferences, and project outputs, such as print and CAM settings.

In CircuitMaker, there are actually 2 locations where your project can be stored, either as:

a public project stored in the CircuitMaker Community Vault. You remain the owner of a public project, others can open and view it, but cannot edit and save changes to your design until you configure them as Team members.

a private project stored on your PC. CircuitMaker supports 2 private projects, which are stored in your own Sandbox. You can develop the project in the Sandbox until you're ready to release it to the broader CircuitMaker community.

Creating the Project

The first step is to create a new project. For the tutorial, it makes sense to keep this in your Sandbox, as it is simply a learning exercise.

A new project is created in the Tasks list of the Home view, or by selecting File » New Project from the menus. Once the project has been created you can open it and add a schematic and a PCB file to it.

Create the new project in the required location (hover to highlight).

Creating a new project:

Click New Project in the Task list, or select File » New Project » PCB Project from the menus - the Community page will open, ready to enter the project Name and Description.

Click in the Name field, and enter the project name, Multivibrator.

Select Sandbox if you prefer to keep this project private. When a project is set to Public it is available to all designers in the CircuitMaker community. Note that you can only keep 2 projects in your Sandbox.

In the Description field, type in a description of the new project.

Click Save to create the project file, it will be saved into the Community Vault.

Opening the Project

The new project has now been created in the Community Vault, the next step is to open it locally in your installation of CircuitMaker. After creating a new project CircuitMaker will automatically show that project in the Community Vault, ready to be opened.

Click Open to download the project from the Community Vault (hover to highlight).

Opening the new project:

After creating a new project CircuitMaker will automatically show that project in the Community Vault, ready to be opened.

If it is not displayed as shown in the image above, click Open Project in the Task list, to list the Featured projects. Click on My Projects in the main area of the Home view to list only your own projects, then click on the Multivibrator project - the software should now look like the image above.

Click Open to open the project file in CircuitMaker. This downloads the file from the Community Vault and opens it in CircuitMaker.

The new project will appear in the Projects panel. If this panel is not displayed, enable it via the View | System | Projects button in the ribbon.

Once the project has been opened, it will display in the Projects panel.

The new project, open in CircuitMaker, ready to add the design files.

Adding a Schematic to the Project

The next step is to add a new schematic sheet to the project.

Add a schematic sheet to the project, then name it, and it will appear in the project tree.

When the blank schematic sheet opens you will notice that the workspace changes. The Ribbon will include a range of new buttons, and new panels may be displayed. You are now in the Schematic Editor.

Adding a new schematic:

On the ribbon, click the Home | Project | Project » Add New Schematic menu entry.

The Enter file name dialog will appear, enter the name Multivibrator and click OK.

A new, blank schematic sheet will open and an icon for this schematic will appear linked to the project in the Projects panel, under the Source Documents folder icon, as shown in the image above.

Controlling the display of panels

When you add the new schematic to the project the schematic sheet opens. When it does, editor-specific panels might also open, such as the SCH Inspector panel. Panels are used extensively in CircuitMaker, each providing specific viewing or editing abilities. For example, the Inspector panels allow you to edit the properties of the currently selected objects, it might be 1 object or it might be 100, all in a single edit action!

To hide a panel click the button at the top right of the panel. Note that if there are multiple panels stacked on top of each other and the stack is pinned open, then clicking the button will close them all. In this case you can right-click on the panel name and select the Close command from the menu that appears, to close just that panel.

To display a panel, click on its button in the View tab.

Control the display of panels in the View tab.

Saving the New and Updated Files to the Community Vault

The last step is to save the modified project and the schematic back into the Community Vault, which can be done via the Projects panel right-click menu.

Commit the project to save new and modified files and push them into the Community Vault.

Save and commit the files to the Community Vault:

To save the new schematic sheet and the modified project file back into the Community Vault, the easiest way is to Commit the project. If you're not familiar with version control systems (VCS), the term commit means to save and push a copy of the files into the storage repository used by the VCS, in this case the Community Vault.

In the Projects panel, right-click on the project filename and select Commit Project. The Commit dialog will open, indicating that the schematic needs to be saved and added (commited), and the project file is also modified and needs to be commited. Enter a Comment if required, and click OK.

The new project with a schematic - ready to start designing!

When you start up CircuitMaker tomorrow and want to re-open your project, click Open Project in the Tasks list, then look for My Projects. Locate the project you are after and click to display it, then click Open to load it into the Projects panel.

Setting the Document Options

You're ready to start the design process, so double-click to open the Multivibrator schematic. Before you start drawing your circuit, is is worth setting up the appropriate document options, including the Sheet Size, and the Snap and Visible grids.

Document options are configured for each schematic sheet, set the sheet size as required.

Double click in the sheet border to open the Document Options dialog.

Environment options, such as the cursor type, grid color, selection color and auto pan behavior are configured in the Preferences dialog (File » System Preferences).

Configuring the Document Options:

On the ribbon, click Project | Content | Document Options to open the Document Options dialog.

For this tutorial, the only change that needs to be made is to set the sheet size to A4, this is done in the Standard Style field of the Sheet Options tab of the dialog.

Confirm that both the Snap and Visible Grids are set to 10.

Click OK to close the dialog and update the sheet size.

To make the document fill the viewing area, click View | Zoom Document.

Save the schematic by selecting File » Save (shortcut: F, S).

Components and Libraries in CircuitMaker

Components are the basic building-blocks of circuit design. The real-world component that ultimately gets mounted on the board is represented as a schematic symbol during design capture, and as a PCB footprint for board design. In the CircuitMaker design space, you can think of the component as a package, bringing together the schematic model (the symbol), the PCB model (the footprint), and the parameters that detail the component, such as the supplier part number, tolerance, wattage, and so on. These components are stored in the cloud in the CircuitMaker Community Vault, and are available to all designers in the CircuitMaker community.

To simplify the process of designing in CircuitMaker, CircuitMaker is tightly coupled to the online Octopart component database. Octopart is a search engine for electronic components, providing an easy-to-use search interface that connects to literally tens of millions of components, supplied through a large number of component suppliers, including Allied, Avnet, Digi-key, Element 14, Farnell, Newark, Mouser, amongst others. By coupling CircuitMaker components to the Octopart components, your components are manufacturing ready - when it is time to generate a BOM, all of the components will include full supply chain details.

The design component you create in CircuitMaker is linked to the physical Octopart component by a unique identifier.

Octopart is an online electronic component search engine. Components are accessed through the Octopart Online Search Engine, which provides instant access to information, including real time pricing and availability from a range of authorized and non-authorized dealers and distributors. Documentation, including datasheets and application notes can be accessed, with direct links to supplier websites.

The Octopart Component has no Models, what do I do?

When you browse through the Octopart components in the Libraries panel, you will notice that most of the components include a small icon at the top left of the component image. This icon indicates that this component is also linked to a suitable design component in the CircuitMaker Community Vault, which has symbol and footprint models, so is ready to use in your design.

If the Octopart component does not have models (there is no icon displayed), it means that there is no design component stored in the CircuitMaker Community Vault for that Octopart component. Any CircuitMaker designer can create a suitable CircuitMaker design component for an Octopart component, which will then be available to all designers in the CircuitMaker community. You are also free to make a new version of any design component, if the existing version is not suitable for your requirements.

To create a new design component for an Octopart component that has no models, click the button, or right-click on the Octopart part in the Libraries panel and select Build This Component.

To create a new version of an existing design component (with new models), click the button, or right-click on the Octopart part in the Libraries panel and select Build New Version.

To edit an existing version, for example to correct a mistake in a model, right-click on the Octopart part in the Libraries panel and select Edit.

To create a custom component (one that is not available in Octopart), click the Build your own link down the bottom of the Libraries panel. To access your custom components you set the Libraries panel to Favorites mode, use the dropdown at the top of the panel to do this.

When you run one of these commands a component template is opened in a CircuitMaker, where parameters and symbol and footprint models are added and edited. To learn more about creating a design component, refer to the Component Management in CircuitMaker article.

Accessing CircuitMaker Components

Components are accessed through the Libraries panel (View | System | Libraries). At the top of the panel you can select between the Octopart library and your Favorites library.

Components are accessed through the Libraries panel.

Favorites is simply a list of components that you have: already used in a design; nominated to be included in your Favorites library by running the right-click » Add to Favorites Library command, or is a custom component that you have created. After switching the Libraries panel to Favorites you may need to refresh the list to see recent additions, right click in the component list and select Refresh Library.

Finding a Component

To help you find the component you need, CircuitMaker includes powerful component searching capabilities. Searching is performed from the search box at the top of the Libraries panel. The software will initially return the first 200 hits, to improve the search results enter as much information as possible into the search string. Scroll to the bottom of the search results list to load the next 200 hits, repeat to load the next 200 hits, and so on.

The Search returns all components that match, those that include CircuitMaker models are listed first.

Look for the icon at the top left of the component image to quickly identify components that already have CircuitMaker models.

The component name shown in orange is a link, click this to open the Octopart site with this part loaded.

Hover over the component description for a detailed list of the component's properties.

Multivibrator Parts

Shortly you will search for the following components to use in the Multivibrator circuit. Note that you can copy the search string directly from the comments field on this web page and paste it into the Search field in CircuitMaker's Libraries panel. You might also find alternate components in Octopart that are suitable - this is fine since this tutorial is about learning the process, not meeting specific design requirements.

Designator

Description

Comments

Suitable Component

Q1, Q2

General purpose NPN transistor, eg BC547 or 2N3904

Search for BC547 NPN transistor TO-92

ON Semiconductor BC547CG

R1, R2

100K resistor, 1%, 0805

Search for resistor 100K 1% 0805

Vishay CRCW0805100KFKEA

R3, R4

1K resistor, 1%, 0805

Search for resistor 1K 1% 0805

Vishay CRCW08051K00FKEA

C1, C2

22nF capacitor, 10%, 16V, 0805

Search for capacitor 22nF 16V 0805

Kemet C0805C223K4RACTU

P1

2-pin header, thruhole

Search for header 2 way through hole 0.1 in vertical male

Molex 90120-0762

Before you start searching and placing, read the following section to learn how to configure the component properties before placement.

Placing Components on the Schematic

Components are placed from the Libraries panel onto the current schematic sheet. This can be done by performing any of the following actions anywhere on the component entry in the panel, but not on a hyperlink:

Right-click » Place - right-click on the component and select Place from the menu, the component appears floating on the cursor, position it and click to place.

Double-clicking - double-click the component in the list of components in the panel, the component appears floating on the cursor, position it and click to place.

Click and drag - click and drag the component onto this sheet, this mode requires that the cursor is held down, the component is placed when the cursor is released.

Note that there may be a brief delay while the component is downloaded from the cloud.

Placement Tips

Press X to flip the component along the X-axis, press Y to flip it along the Y-axis.

Press Tab to edit the properties of an object prior to placement, the values entered become the defaults, and the designator is auto-incremented.

During component placement the software will automatically pan if you touch the window edge. If you accidentally pan beyond where you want, while the component is floating on the cursor you can use Ctrl+Wheel Roll too zoom out and in again, or right-click and drag to slide the schematic around.

If you are ready to start finding and placing the components, please do so. If you need more information, use the step-by-step instructions in the collapsible sections below.

Once you have placed the components, the schematic should look like this:

With the Libraries panel set to Octopart, search for BC547 NPN transistor TO-92. Locate a suitable component in the search results that has a symbol and footprint, for example the ON Semiconductor BC547CG transistor.

Select the transistor in the panel and click the button. The cursor will change to a cross hair and you will have an image of the transistor floating on your cursor. Note that there might be a slight delay as the component downloads from the cloud. You are now in part placement mode. If you move the cursor around, the transistor will move with it.

Do not place the transistor yet!

Before placing the part on the schematic you can edit its properties - which can be done for any object floating on the cursor. While the transistor is still floating on the cursor, press the Tab key to open the Component Properties dialog. You can now set up the dialog options to appear as below.

Set the Designator to Q1.

In the Properties section of the dialog, type in the DesignatorQ1.

Leave all other fields at their default values, and click OK to close the dialog.

Move the cursor, with the transistor symbol attached, to position the transistor a little to the left of the middle of the sheet. Note the current snap grid, it is displayed on the left of the Status bar down the bottom of the application. It defaults to 10, you can press the G shortcut to cycle through the available grid settings during object placement. It is strongly advised to keep the snap grid at 10 or 5, to keep the circuit neat, and make it easy to attach wires to pins. For a simple design such as this, 10 is a good choice.

Once you are happy with the transistor's position, left mouse click or press Enter on the keyboard to place the transistor onto the schematic. Don't worry too much about the location, you can easily change this in a minute.

Move the cursor and you will find that a copy of the transistor has been placed on the schematic sheet, but you are still in part placement mode with the part outline floating on the cursor. This feature allows you to place multiple parts of the same type. Now to place the second transistor. This transistor is the same as the previous one, and since the software automatically increments the component designator when you place multiple instances of the same part there is no need to edit its attributes before you place it. You just need to orient the second transistor.

If you refer to the rough schematic diagram shown before, you will notice that Q2 is drawn as a mirror of Q1. To flip the orientation of the transistor that is floating on the cursor, press the X key on the keyboard. This flips the component horizontally (along the X axis).

Move the cursor to position the part to the right of Q1. To position the component more accurately, press the PgUp key twice to zoom in two steps. You should now be able to see the grid lines.

Once you have decided on a location for the part, left mouse click or press Enter to place Q2. Once again a copy of the transistor you are "holding" will be placed on the schematic, and the next transistor will be floating on the cursor ready to be placed.

Since all the transistors have been placed, exit part placement mode by clicking the Right Mouse Button or pressing the ESC key. The cursor will revert back to a standard arrow.

Finding and placing the resistors:

With the Libraries panel set to Octopart, search for resistor 100K 1% 0805. Locate a suitable component in the search results that has a symbol and footprint, such as the Vishay CRCW0805100KFKEA.

Note that in the model preview area there are multiple footprints available, these are the IPC standard N (Nominal), M (Most) and L (Least) resistor land patterns. For this tutorial leave it at the default.

Click the button.

While the resistor is still floating on the cursor, press the Tab key to open the Component Properties dialog.

In the Properties section of the dialog, type in the DesignatorR1.

Click on the dropdown arrow of the Comment field and select ="Resistance".

Leave all other fields at their default values and click OK to close the dialog, the resistor will be floating on the cursor.

If necessary, press the Spacebar to rotate the component in 90° increments, until it has the correct orientation.

Position the resistor above and to the left of the base of Q1 (refer to the schematic diagram shown earlier) and click the Left Mouse Button or press Enter to place the part.

Next place the other 100k resistor, R2, above and to the right of the base of Q2. The designator will automatically increment when you place the second resistor.

Exit part placement mode by clicking the Right Mouse Button or pressing the ESC key. The cursor will revert back to a standard arrow.

The remaining two resistors, R3 and R4, have a value of 1K, in the Libraries panel search for resistor 1K 1% 0805. Locate a suitable component in the search results that has a symbol and footprint, such as the Vishay CRCW08051K00FKEA.

Click the button.

Using the steps just given, set the Designator to R3, and set the Comment field to =Resistance.

Position and place R3 directly above the Collector of Q1, then place R4 directly above the Collector or Q2, as shown in the image above.

Right-click or press ESC to exit part placement mode.

Finding and placing the capacitors:

With the Libraries panel set to Octopart, search for capacitor 22nF 16V 0805. Locate a suitable component in the search results that has a symbol and footprint, such as the Kemet C0805C223K4RACTU.

Click the button.

While the capacitor is still floating on the cursor, press the Tab key to open the Component Properties dialog.

In the Properties section of the dialog, type in the DesignatorC1.

Click on the dropdown arrow of the Comment field and select =Capacitance.

Leave all other fields at their default values and click OK to close the dialog, the capacitor will be floating on the cursor.

If necessary, press the Spacebar to rotate the component in 90° increments, until it has the correct orientation.

Position the capacitor above the transistors but below the resistors (refer to the schematic diagram shown earlier) and click the Left Mouse Button or press Enter to place the first capacitor.

Now position and place capacitor C2.

Right-click or press Esc to exit placement mode.

Finding and placing the connector:

With the Libraries panel set to Octopart, search for header 2 way through hole 0.1 in vertical male. Locate a suitable component in the search results that has a symbol and footprint, such as the Molex 90120-0762.

Click the button.

While it is floating on the cursor, press Tab to edit the attributes and set Designator to P1.

In the Comment field, replace the contents with the string Header 2.

Before placing the connector, press X to flip it horizontally so that it has the correct orientation. Click to place the connector on the schematic, as shown in the image above.

Right-click or press ESC to exit part placement mode.

Save your schematic (shortcut: F, S).

You have now placed all the components. Note that the components shown in the image above are spaced so that there is plenty of room to wire to each component pin. This is important because you can not place a wire across the bottom of a pin to get to a pin beyond it. If you do, both pins will connect to the wire. If you need to move a component, click-and-hold on the body of the component, then drag the mouse to reposition it.

Component Positioning Tips

To reposition any object, place the cursor directly over the object, click-and-hold the left mouse button, drag the object to a new position and then release the mouse button. Movement is constrained to the current snap grid, which is displayed on the Status bar, press the G shortcut at any time to cycle through the current snap grid settings. Remember that it is important to position components on a coarse grid, such as 5 or 10.

You can also re-position a group of selected schematic objects using the arrow keys on the keyboard. Select the objects, then press an arrow key while holding down the Ctrl key. Hold Shift as well to move objects by 10 times the current snap grid.

The grid can also be temporarily set to 1 while moving an object with the mouse, hold Ctrl to do this. Use this feature when positioning text.

The grids you cycle through when you press the G shortcut are defined in the Schematic - Grids page of the Preferences dialog (File » System Preferences). On the Schematic - General page of the Preferences dialog there are settings to select the type of units that will be used, select between Imperial or Metric. Note that Altium components are designed using the DXP Defaults imperial grid, if you change to a metric grid the component pins will no longer fall onto a grid of 10 - if you choose to use a metric grid you will need new component symbols with pins placed on this metric grid!

Wiring up the Circuit

Wiring is the process of creating connectivity between the various components of your circuit. To wire up your schematic, refer to the sketch of the circuit and the animation shown below.

Use the Wiring tool to wire up your circuit, towards the end of the animation you can see how wires can be dragged.

Wiring the schematic:

To make sure you have a good view of the schematic sheet, press the PgUp key to zoom in or PgDn to zoom out. Alternatively, hold down the Ctrl key and roll the mouse wheel to zoom in/out, or hold Ctrl + Right Mouse button down and drag the mouse up/down to zoom in/out. There are also a number of useful View commands in the right-click » View submenu, such as Fit All Objects (Ctrl+PgDn).

Firstly, wire the lower pin of resistor R1 to the base of transistor Q1 in the following manner. Click the button (Home | Circuit Elements | Wire) to enter wire placement mode (or right-click and select Place » Wire). The cursor will change to a cross hair.

Position the cursor over the bottom end of R1. When you are in the right position, a red connection marker (large cross) will appear at the cursor location. This indicates that the cursor is over a valid electrical connection point on the component.

Click the Left Mouse Button or press Enter to anchor the first wire point. Move the cursor and you will see a wire extend from the cursor position back to the anchor point.

Position the cursor over the base of Q1 until you see the cursor change to a red connection marker. Click or press Enter to connect the wire to the base of Q1. The cursor will release from that wire.

Note that the cursor remains a cross hair, indicating that you are ready to place another wire. To exit placement mode completely and go back to the arrow cursor, you would Right-Click or press ESC again - but don't do this yet.

Next wire from the lower pin of R3 to the collector of Q1. Position the cursor over the lower pin of R3 and click or press Enter to start a new wire. Move the cursor vertically till it is over the collector of Q1, and click or press Enter to place the wire segment. Again the cursor will release from that wire, and you remain in wiring mode, ready to place another wire.

Wire up the rest of your circuit, as shown in the animation above.

When you have finished placing all the wires, right-click or press ESC to exit placement mode. The cursor will revert to an arrow.

Wiring Tips

Left-click or press Enter to anchor the wire at the cursor position.

Press Backspace to remove the last anchor point.

Press Spacebar to toggle the direction of the corner. You can observe this in the animation shown above, when the connector is being wired.

Press Shift+Spacebar to cycle through the wiring corner modes. Available modes include: 90, 45, Any Angle and Autowire (place orthogonal wire segments between the click points).

Right-click or press Esc to exit wire placement mode.

Click and hold to move a placed component and drag connected wires with it, or click and hold on a wire to drag the wire.

Whenever a wire crosses the connection point of a component, or is terminated on another wire, a junction will automatically be created.

A wire that crosses the end of a pin will connect to that pin, even if you delete the junction. Check that your wired circuit looks like the figure shown, before proceeding.

If you prefer to show wiring cross-overs as a small bridge , enable the Display Cross-Overs option in the Schematic - General page of the Preferences dialog.

Nets and Net Labels

Each set of component pins that you have connected to each other now form what is referred to as a net. For example, one net includes the base of Q1, one pin of R1 and one pin of C1. Each net is automatically assigned a system-generated name, which is based on one of the component pins in that net.

To make it easy to identify important nets in the design, you can add Net Labels to assign names. For the multivibrator circuit, you will label the 12V and GND nets in the circuit.

To edit the net label before it is placed, press Tab key to open the Net Label dialog.

Type 12V in the Net field, then click OK to close the dialog.

The electrical hotspot of a net label is the bottom left corner, place the net label so that the bottom left corner touches the upper most wire on the schematic, as shown in the image below. The cursor will change to a red cross when the net label is correctly positioned to connect to the wire. If the cross is light grey, it means there will not be a valid connection made.

The net label in free space (left image) and positioned over a wire (right image), note the red cross.

After placing the first net label you will still be in net label placement mode, so press the Tab key again to edit the second net label before placing it.

Type GND in the Net field and click OK to close the dialog.

Place the net label so that the bottom left of the net label touches the lower most wire on the schematic (as shown in the image below). Right-click or press ESC to exit net label placement mode.

Save your circuit, and the project as well.

Net Labels, Port and Power Ports

As well as giving a net a name, Net Labels are also used to create connectivity between 2 separate points on the same schematic sheet.

Ports are used to create connectivity between 2 separate points on different sheets. Offsheet connectors can also be used to do this, but ports offer more connectivity and presentation options.

Power Ports are used to create connectivity between points on all sheets, for this design Net Labels or Power Ports could have been used.

Congratulations! You have just completed your first schematic capture. Before you turn the schematic into a circuit board you need to configure the project options, and check the design for errors.

Project outputs, such as assembly, fabrication outputs and reports are set up from the Outputs tab of the Ribbon. These settings are also stored in the Project file so they are always available for this project. See the Documentation Outputs section for more information.

Configure the Error Reporting tab to detect for design errors.

Compiling the Project

After you complete the schematic in CircuitMaker, you compile it. This generates an internal connectivity map of the design, detailing all of the components and nets. When the project is compiled, comprehensive design and electrical rules are also applied to verify the design. The design and rule checks that are applied are configured in the Options for PCB Project dialog, shown above.

When all errors are resolved, the compiled schematic design is ready to be transferred to the target PCB document by generating a series of Engineering Change Orders (ECOs). Underlying this process is a comparator engine that identifies every difference between the schematic design and the PCB, and generates an ECO to resolve each difference. This approach of using a comparator engine to identify differences means you not only work directly between the schematic and PCB (there is no intermediate netlist file used), it also means the same approach can be used to synchronize the schematic and PCB at any stage during the design process. The comparator engine also allows you to find differences between source and target files and update (synchronize) in both directions. The ECO generation and comparator are also configured in the Options for PCB Project dialog.

Checking the Electrical Properties of Your Schematic

Schematic diagrams are more than just simple drawings - they contain electrical connectivity information about the circuit. You can use this connective-awareness to verify your design. When you compile a project, the software checks for errors according to the rules set up in the Error Reporting and Connection Matrix tabs of the Options for Project dialog. When you compile the project any violations that are detected will display in the Messages panel.

Setting up the Error Reporting

The Error Reporting tab in the Options for Project dialog is used to set up design drafting checks. The Report Mode settings show the level of severity of a violation. If you wish to change a setting, click on a Report Mode next to the violation you wish to change and choose the level of severity from the drop-down list. For this tutorial you will use the default settings in this tab.

Setting Up the Connection Matrix

When the design is compiled a list of the pins in each net is built in memory. The type of each pin is detected (eg: input, output, passive, etc), and then each net is checked to see if there are pin types that should not be connected to each other, for example an output pin connected to another output pin. The Connection Matrix tab of the Options for Project dialog is where you configure what pin types are allowed to connect to each other. For example, look down the entries on the right side of the matrix diagram and find Output Pin. Read across this row of the matrix till you get to the Open Collector Pin column. The square where they intersect is orange, indicating that an Output Pin connected to an Open Collector Pin on your schematic will generate an error condition when the project is compiled.

You can set each error type with a separate error level, eg. from no report, through to a fatal error. Click on a colored square to change the setting, continue to click to move to the next check-level. Set the matrix so that Unconnected Passive Pin generates Error, as shown in the image below.

The Connection Matrix defines what electrical conditions are checked for on the schematic, note that the Unconnected - Passive Pin setting is being changed.

Changing the Connection Matrix:

To change one of the settings click the colored box, it will cycle through the 4 possible settings. Note that you can right-click on the dialog face to display a menu that lets you toggle all settings simultaneously, including an option to restore them all to their Default state (handy if you have been toggling settings and cannot remember their default state).

You circuit contains only Passive Pins (on resistors, capacitors and the connector) and Input Pins (on the transistors). Let's change this so that the connection matrix detects unconnected passive pins. Look down the row labels to find the Passive Pin row. Look across the column labels to find Unconnected. The square where these entries intersect indicates the error condition when a passive pin is found to be unconnected in the schematic. The default setting is green, indicating that no report will be generated.

Click on this intersection box until it turns Orange (as shown in the image above), so that an error will be generated for unconnected passive pins when the project is compiled. You will purposely create an instance of this error to check this, later in the tutorial.

Configuring the Class Generation

The Class Generation tab in the Options for Project dialog is used to configure what type of classes are generated from the design (the Comparator and ECO Generation tabs are then used to control if classes are transferred to the PCB). By default, the software will generate Component classes and Rooms for each schematic sheet, and Net Classes for each bus in the design. For a simple, single-sheet design such as this there is no need to generate a component class or a room - ensure that the Component Classes checkbox is cleared, doing this will also disable the creation of a room for that component class.

Note that this tab of the dialog also includes options for User-Defined Classes.

The Class Generation tab is used to configure what classes and rooms are automatically created for the design.

Configuring Class Generation:

Clear the Component Classes checkbox, as shown in the image above. This will automatically disable the creation of a placement room for that schematic sheet.

There are no buses in the design, so there is no need to clear the Generate Net Classes for Buses checkbox located near the top of the dialog tab.

There are no user-defined Net Classes in the design (done through the placement of Net Class directives on the wires), so there is no need to clear the Generate Net Classes checkbox in the User-Defined Classes region of the dialog tab.

Setting Up the Comparator

The Comparator tab in the Options for Project dialog sets which differences between files will be reported or ignored when a project is compiled. Generally the only time you will need to change settings in this tab is when you add extra detail to the PCB, such as design rules, and do not want those settings removed during design synchronization. If you need more detailed control, then you can selectively control the comparator using the individual comparison settings.

For this tutorial it is sufficient to confirm that the Ignore Rules Defined in PCB Only option is enabled, as shown in the image below.

The Comparator tab is used to configure exactly what differences the comparison engine will check for.

You are now ready to compile the project and check for any errors.

Compiling the Project to Check for Errors

Compiling a project checks for drafting and electrical rules errors in the design documents, and details all warnings and errors in the Messages panel. You have set up the rules in the Error Checking and Connection Matrix tabs of the Options for Project dialog, so are now ready to check the design.

To compile the project and check for errors, select Home | Project | Project » Compile.

Use the Messages panel to locate and resolve design errors - double-click on an error to pan and zoom to that object.

When the project is compiled, all warnings and errors are displayed in the Messages panel. The panel will only appear automatically if there are errors detected (not when there are only warnings), to open it manually click the View | System | Messages button.

If your circuit is drawn correctly, the Messages panel should not contain any errors, just the message Compile successful, no errors found. If the there are errors, work through each one, checking your circuit and ensuring that all wiring and connections are correct.

You will now deliberately introduce an error into the circuit and recompile the project:

Click on the Multivibrator.SchDoc tab at the top of the design window to make the schematic sheet the active document.

Click in the middle of the wire that connects R1 to the base wire of Q1. Small, square editing handles will appear at each end of the wire and the selection color will display as a dotted line along the wire to indicate that it is selected. Press the Delete key on the keyboard to delete the wire.

The Messages panel is divided horizontally into 2 regions, as shown in the image above. The upper region lists all messages; which can be saved, copied, cross probed to, or cleared via the right-click menu. The lower region details the warning/error currently selected in the upper region of the panel.

When you double-click on an error or warning in either region of the Messages panel, the schematic view will pan and zoom to the object in error.

Before you finish this section of the tutorial, let's fix the error in our schematic.

Make the schematic sheet the active document.

Undo the delete action (Ctrl+Z) to restore the deleted wire.

To check that there are no longer any errors, recompile the project (Home | Project | Project » Compile) - the Messages panel should show no errors.

The entire schematic fades, except for the object in error. The amount that the schematic fades is controlled by the Dim Level, set the level in the View tab of the ribbon. Click the Clear Masks button (Shift+C) to clear all masking / dimming.

The schematic zooms to present the object in error. How close you zoom in is defined by the Zoom Precision, set in the System - General Settings page of the Preferences dialog.

To clear all messages from the Messages panel, right-click in the panel and select Clear All.

Creating a New PCB

Before you transfer the design from the Schematic Editor to the PCB Editor, you need to create the blank PCB, then name and save it as part of the project.

The blank PCB has been added to the project.

Adding a New Board to the Project:

A new PCB can be added to the project via the Home | Project | Project » Add new PCB command.

Add a new PCB to your project.

After selecting this command the Enter File Name dialog will appear, enter the name Multivibrator and click OK. Note that you do not need to enter the file extension, this is automatically added by CircuitMaker. The PCB will appear as a Source Document in the Project, as shown in the image above. Note that at this stage it will have a small blue cross next to the name, indicating that it exists locally, but is not yet stored in the Community Vault.

Adding the PCB has changed the project, so save the project too. To do this you can right-click on the project filename in the Projects panel, and select Save Project, or select Home | Project | Project » Save Project.

The last step is to save the new PCB and modified project file into the Community Vault. To do this select Home | Project | Project » Commit Project.

The Commit dialog will appear, enter a comment and click OK to save your work into the Vault.

Performing a Commit saves modified and new files into the Community Vault.

Your project should now look like the image above this collapsible section, with a green tick next to each file.

Configuring the Board Shape and Location

There are a number of attributes of this blank board that need to be changed before transferring the design from the schematic editor, including:

Task

Process

Setting the origin

The PCB editor has two origins, the Absolute Origin, which is the lower left of the workspace, and the user-definable Relative Origin, which is used to determine the current workspace location. A common approach is to set the Relative Origin to the lower-left corner of the board shape. The Origin is set in the Grids and Units section of the Home tab on the ribbon.

Change from Imperial to Metric units

The current workspace units are displayed on the Status bar, which is displayed along the bottom of the software, and also in the Grids and Units section of the Home tab on the ribbon. For this tutorial metric units will be used - to change the units, either press Q on the keyboard to toggle back and forth between Imperial and Metric units, or click the button on the ribbon.

Selecting a suitable snap grid

You may have noticed that the current snap grid is 0.127mm, which is the old 10mil imperial snap grid, converted to metric. To change the snap grid at any time, select or type a new value in the Snap Grid setting in the Home | Grids and Units section of the ribbon. Since you are about to define the overall size of the board a very coarse grid can be used, enter a value of . Grids are also discussed in more detail later in the tutorial.

Redefining the board shape to the required size

The board shape is shown by the black region with a grid in it. The default size for a new board is 4x4 inches, the tutorial board is 30mm x 30mm. Details for the process of defining a new shape for the board are available below.

Configuring the layers used in the design

As well as the copper, or electrical layers you route on, there are also general-purpose mechanical layers, and special-purpose layers such as the component overlays (silkscreens), solder mask, paste mask, and so on. The electrical and other layers will be configured shortly.

Press Ctrl+PgDn at any time to zoom to show the entire board.

Setting the Origin and the Grid:

There are two origins used in the software, the Absolute Origin, which is the lower left of the workspace, and the user-definable Relative Origin, which is used to determine the current workspace location. Before setting the origin, Keep zooming in to the lower left of the current board shape until you can easily see the grid - to do this position the cursor over the lower-left corner of the board shape and press PgUp until both the Coarse and Fine grids are visible, as shown in the images below.

To set the Relative Origin, select Home | Grids and Units | Origin » Set, position the cursor over the bottom left corner of the board shape, then left click to locate it.

Select the command, position the cursor over the lower-left corner of the board shape (left image), then click to define the origin (right image).

The next step is to select a suitable snap grid, which is summarized in the table above. The grid is set in the Grids and Units section of the Home tab of the Ribbon. During the course of design it is quite common to change grids, for example you might use a coarse grid during component placement, and a finer grid for routing, which can be done by selecting a new value from the dropdown list, or typing in the required value directly - press Enter to have your value accepted.

For this tutorial you will be using a Metric grid, so click the button to switch to Metric.

The first grid you will be using is 5mm, enter this value into the Snap Grid field and press the Enter key on the keyboard to have the value accepted.

Redefining the Board Shape:

The default board shape is 4x4 inch, for the tutorial the board size is 30mm x 30mm.

To zoom back out and show the all of the workspace currently being used, click View | Zoom | Zoom All (Ctrl+PgDn). Your design should look much like the image shown below.

The next step is to change the board shape to 30mm x 30mm. Your choice now is to either redefine the board shape (draw it again), or edit the existing board shape. For a simple square or rectangle, it is more efficient to edit the existing board shape, to do this select Home | Board | Board Shape » Edit Board Shape.

For this design, it is more efficient to edit the existing board shape.

The board display will change, with the shape shown in green. Editing handles will appear at each corner and the center of each edge, as shown below.

Note that clicking anywhere other than on an editing handle or an edge of the shape will drop you out of board shape editing mode.

Switch board shape editing mode to redefine the board shape, note the editing cursor (right image) that appears when you are in a location where you can click and hold to resize.

The objective is to resize the shape to create a 30mm by 30mm board. The Coarse visible grid is 25mm (5x the snap grid), and the Fine visible grid is 5mm - the Coarse grid will be used as a guide. You can now either: slide the upper and right edges down and in to create the correct size; or move 3 of the corners in, leaving the one that is at the origin in its current location.

To slide the top edge down, position the cursor over the edge (but not over a handle), then when the cursor changes to a double-headed arrow click and hold, then drag the edge to the new location, so that the Y cursor location is 30mm on the Status bar.

Repeat the process to move the right-hand edge in, positioning it when the X cursor location is 30mm on the Status bar.

Use the current grid location information down the bottom left of the Status bar to guide you as you reshape the board.

The board shape has been resized to 30mm x 30mm, as indicated by the current grid locations shown on the Status bar.

When the board has been resized, click anywhere in the workspace to drop out of board shape editing mode.

Now set the snap grid to 1mm, ready for the next phase of the board design process.

Click the button in the CircuitMaker title bar to save the board.

A good approach to defining the shape of the board is to draw it by placing a series of tracks (and arcs for curved boards) on the keepout layer. As well as being useful as a placement and routing keep-away barrier, these tracks and arcs can be selected (Home | Clipboard | Select » All on Layer) and used to create the board shape using the Home | Board | Board Shape » Define from Selected Objects command.

Transferring the Design

The process of transferring a design from the capture stage to the board layout stage is launched by pushing the changes from the schematic editor (select Home | Project | Project » Update PCB DocumentMultivibrator.CMPcbDoc on the Schematic editor Ribbon), or by pulling the changes from the PCB editor (select Home | Project | Project » Import Changes from Multivibrator.PrjPcb on the PCB editor Ribbon).

When you run one of these update commands the design is compiled and a set of Engineering Change Orders is created, which:

List all components used in the design, and the footprint required for each. When the ECOs are executed the software will attempt to locate each footprint in the Community Vault, and place each into the PCB workspace. If the footprint is not available, an error will occur.

A list of all nets (connected component pins) in the design is created. When the ECOs are executed the software will add each net to the PCB, and then attempt to add the pins that belong to each net. If a pin cannot be added an error will occur - this most often happens when the footprint was not found, or the pads on the footprint do not map to the pins on the symbol.

If enabled, additional design data is then transferred, such as net and component classes.

Once the ECOs have been executed, the components are placed outside the board shape and the nets are created.

Transferring the design from schematic capture to PCB layout:

Have the schematic document, Multivibrator.SchDoc as the active document in CircuitMaker.

Select Home | Project | Project » Update PCB DocumentMultivibrator.CMPcbDoc from the Ribbon. The project will compile and the Engineering Change Order dialog open.

Click on Validate Changes. If all changes are validated, a green tick will appear next to each change in the Status list, as shown in the image below. If the changes are not validated, close the dialog, check the Messages panel and resolve any errors.

An ECO is created for each change that needs to be made to the PCB so that it matches the schematic.

Click on Execute Changes to send the changes to the PCB editor.

When completed, the target PCB opens with the Engineering Change Order dialog open on top of it, and the Done column entries become ticked (as shown in the image below).

The ECOs have been executed correctly, close the dialog and the components will be outside the board shape.

Click to Close the dialog and complete the transfer process.

The components will have been positioned outside of the board, ready be positioned on the board. There are a few steps to complete first though, such as configuring the placement grid, the layers and the design rules.

You can create a report of the ECOs by clicking the Report Changes button.

Setting Up the PCB Workspace

Once all of the ECOs have been executed the components and nets will appear in the PCB workspace, just to the right of the board outline, as shown in the CircuitMaker image above.

Before you start positioning the components on the board you need to configure certain PCB workspace and board settings, such as the layers, grids and design rules.

Configuring the Display of Layers

As well as the the layers used to fabricate the board, including: signal, power plane, mask and silkscreen layers, the PCB Editor also supports numerous other non-electrical layers. The layers are often grouped in the following way:

Mechanical layers - there are 32 general purpose mechanical layers, used for design tasks such as dimensions, fabrication details, assembly instructions, or special purpose tasks such as glue dot layers. These layers can be selectively included in print and Gerber output generation. They can also be paired, meaning that objects placed on one of the paired layers in the library editor, will flip to the other layer in the pair when the component is flipped to the bottom side of the board.

Special layers - these include the top and bottom silkscreen layers, the solder and paste mask layers, drill layers, the Keep-Out layer (used to define the electrical boundaries), the multilayer (used for multilayer pads and vias), the connection layer, DRC error layer, grid layers, hole layers, and other display-type layers.

The display attributes of all layers are configured in the View Configurations dialog. To open the dialog:

Click the current layer color icon down the bottom-left of the workspace.

Press the L shortcut to open the View Configurations dialog.

As well as the layer display state and color settings, the View Configurations dialog also gives access to other display settings, including:

How each type of object is displayed (solid, draft or hidden), in the Show/Hide tab of the dialog - these options can be handy for hiding objects you are not interested in, for example 3D Body objects while in 2D mode.

Various view options, such as if Pad Net names and Pad Numbers are to be displayed, the Origin Marker, if Special Strings should be converted, and so on. These are configured in the View Options tab of the dialog.

Configure other view options, such as the display of net names on pads and tracks, and how Special Strings are displayed.

The currently enabled layers are shown as a series of Tabs across the bottom of the PCB workspace. Right-click on a Tab to access frequently-used layer display commands.

Configuring the Layer Visibility:

Open the View Configurations dialog.

In the Board Layers and Colors tab, confirm that the 2 signal layers are visible.

Note that this dialog is where you control the display of the mask layers, the silkscreen layers and the system layers, such as DRC and grids.

To have less visual "clutter" during placement and routing, disable the display of the Mechanical Layers, all of the Mask Layers, and the Drill Guide and Drill Drawing layers.

Switch to the View Options tab.

Confirm that the Show Pad Nets option is enabled, and the Net Names on Tracks Display is set to Single and Centered.

Click OK to accept the settings and close the dialog.

Physical Layers and the Layer Stack Manager

As well as the signal and power plane (solid copper) layers, the PCB Editor also includes soldermask and silkscreen physical layers - these are all fabricated to make the physical board. The arrangement of these fabricated layers is referred to as the Layer Stack. The layer stack is configured in the Layer Stack Manager, click Home | Board | Layer Stack Manager to open the dialog.

Define the component orientation for that layer (advanced feature available in Altium products that support rigid-flex and embedded components).

The tutorial PCB is a simple design and can be routed as a single-sided or double-sided board. The layer thicknesses shown below have been edited to use sensible metric values.

The properties of the physical layers are defined in the Layer Stack Manager.

To edit a cell either: double-click in the cell; or select the cell and press F2 to show the dropdown or edit the value.

Configuring the board layer stack:

Open the Layer Stack Manager. For a new board, the default stack comprises: a dielectric core, 2 copper layers, as well as the top and bottom soldermask (coverlay) and overlay (silkscreen) layers, as shown in the image above.

New layers and planes are added below the currently selected layer, which is done via the Add Layer button, or the right-click menu.

Layer properties, such as material, copper thickness and dielectric properties, are included when a Layer Stack Table is placed, and are also used for signal integrity analysis. Double-click in a cell to configure that setting. For example, the Thickness settings shown in the image below have been changed slightly to more suitable metric values.

When you have finished exploring the layer stack options, restore the values to those shown in the image below and click OK to close the dialog.

Imperial or Metric Grid?

The next step is to select a grid that is suitable placing and routing the components. All the objects placed in the PCB workspace are placed on the current snap grid.

Traditionally, the grid was selected to suit the component pin pitch and the routing technology that you planned to use for the board - that is, how wide do the tracks need to be, and what clearance is needed between tracks. The basic idea is to have both the tracks and clearances as wide as possible, to lower the costs and improve the reliability. Of course the selection of track/clearance is ultimately driven by what can be achieved on each design, which comes down to how tightly the components and routing must be packed to get the board placed and routed.

Over time, components and their pins have dramatically shrunk in size, as has the spacing of their pins. The component dimensions and spacing of their pins has moved from being predominantly imperial with thru-hole pins, to being more-often metric dimensions with surface mount pins. If you are starting out a new board design, unless there is a strong reason, such as designed a replacement board to fit into an existing (imperial) product, you are better off working in metric.

Why?

Because the older, imperial components have big pins with lots of room between them. On the other hand, the small, surface mount devices are built using metric measurements - they are the ones that need a high level of accuracy to ensure that the fabricated/assembled/functional product works, and is reliable. Also, the PCB editor can easily handle routing to off-grid pins, so working with imperial components on a metric board is not onerous.

Suitable Grid Settings

For a design such as this simple tutorial circuit, practical grid and design rule settings would be:

Setting

Value

Where

Routing width

0.25 mm

Routing Width design rule

Clearance

0.25 mm

Electrical Clearance design rule

Board definition grid

5 mm

Cartesian Grid Editor

Component placement grid

1 mm

Cartesian Grid Editor

Routing grid

0.25 mm

Cartesian Grid Editor

Via size

1 mm

Routing Via Style design rule

Via hole

0.6 mm

Routing Via Style design rule

This routing grid is chosen not just to allow tracks to be placed as close as possible and still satisfy the clearance, the PCB editor manages this automatically. The point of setting the grid to be equal to, or a fraction of, the track+clearance, is not just to ensure that the clearance is maintained, it is to ensure tracks are placed so that they do not waste potential routing space, which can easily happen if a very fine grid is used.

Regardless of the current setting for the units, you can include the units when entering a value in a dialog to force that value to be used, or press the Ctrl+Q shortcuts to toggle the units in an open dialog.

Setting the Snap Grid

The value of the snap grid you need for the tutorial can be configured directly in the control on the Home tab of the Ribbon, or it can be configured in the Cartesian Grid Editor dialog.

To open the Cartesian Grid Editor, select Home | Grids and Units | Properties to open the dialog, as shown below.

Confirm that the Snap Grid is set to 1 mm, ready to position the components.

Configuring the snap grid:

Press the Ctrl+G shortcut keys to open the Cartesian Grid Editor dialog. Alternatively, open the Cartesian Grid Editor dialog as described above.

Type the value 1mm into the Step X field. Because the X and Y fields are linked, there is no need to define the Step Y value.

To make the grid visible at lower zoom levels set the Multiplier to 5x Grid Step, and to make it easier to distinguish between the two grids, set the Fine grid to display as lighter colored Dots.

Click OK to close the dialog.

Setting Up the Design Rules

The PCB Editor is a rules-driven environment, meaning that as you perform actions that change the design, such as placing tracks, moving components, or autorouting the board, the software monitors each action and checks to see if the design still complies with the design rules. If it does not, then the error is immediately highlighted as a violation. Setting up the design rules before you start working on the board allows you to remain focused on the task of designing, confident in the knowledge that any design errors will immediately be flagged for your attention.

Design rules are configured in the PCB Rules and Constraints Editor dialog, as shown below (Home | Design Rules | Design Rules). The rules fall into 6 categories, which can then be further divided into design rule types. The rules cover electrical, routing, mask, plane, manufacturing and placement requirements.

All PCB design requirements are configured as rules/constraints, in the PCB Rules and Constraints Editor.

Routing Width Design Rules

The tutorial design includes a number of signal nets, and two power nets. The default routing width rule (rule scope of All) will be configured at 0.25mm for the signal nets, and a second rule will be added to target the Net Class called PowerNets, as shown in the images below.

Two Routing Width design rules have been defined, the lowest priority rule targets All nets, the higher priority rule target objects in the Net Class called PowerNets, which includes the 12V and GND nets.

Routing Width and Routing Via Style design rules include Min, Max and Preferred settings. Use these if you prefer to have some flexibility during routing, for example when you need to neck a route down, or use a smaller via in a tight area of the board. You can change the routing width and via size during routing, by:

Pressing 3 to cycle the track width source or 4 to cycle the via size source (through Rule Min, Rule Preferred, Rule Max, or User Choice) - the current setting is displayed on the Status bar

Pressing the Tab key to open a dialog and access width and via properties

Pressing Shift+W to select an alternate routing width, or Shift+V to select an alternate via size

Note that you always remain constrained by the design rules, you are not allowed to enter a value larger or smaller than permitted by the applicable design rule.

Avoid using the Min and Max rule settings to define a single rule to suit all sizes required in the entire design, doing this means you forgo the ability to get the software to monitor that each design object is appropriately sized for its task.

Configuring the Routing Width Rule for the signal nets:

With the PCB as the active document, open the PCB Rules and Constraints Editor.

Each rules category is displayed under the Design Rules folder (left hand side) of the dialog. Double-click on the Routing category to expand the category and see the related routing rules. Then double-click on Width to display the currently defined width rules.

Click once on the existing Width rule to select it. When you click on the rule, the right hand side of the dialog displays the settings for that rule, including: the rule's Where the First Object Matches (also referred to as the rule's scope - what you want this rule to target) in the top section; with the rule's Constraints below that.

Since this rule targets the majority of nets in the design (the signal nets), confirm that the Where the Object Matches setting is set to All.

The settings in this rule are the defaults for a new PCB, edit the Min Width, Preferred Width & Max Width values, setting them to 0.25mm. Note that the settings are reflected in the individual layers shown at the bottom of the dialog, you can also configure the requirements on a per-layer basis.

The rule is now defined, click OK to save the new rule and close the dialog.

The default Routing Width design rule has been configured.

Adding a Routing Width Rule for the power nets:

The next step is to define a rule that targets the 12V and GND nets. Since they are going to be routed at the same width, you can create a Net Class that includes these 2 nets, and then target the rule to that Net Class. To create a Net Class, click the Home | Design Rules | Classes button to open the Object Class Explorer dialog.

In the tree on the left of the dialog, right-click on the Net Classes folder and select Add Class from the menu.

A new class is added, ready to be named. Type PowerNets into the name box and press Enter on the keyboard.

Now select the 12V and GND nets in the Non-Members list, and click the > button to move them to the Members list.

Close the Object Class Explorer dialog and return to the Routing Width section of the PCB Rules and Constraints Editor.

With the existing Width rule selected in the Design Rules tree on the left of the dialog, right-click and select New Rule to add a new Width constraint rule.

A new rule named Width_1 appears. Click on the new rule in the Design Rules tree to configure its properties.

Click in the Name field on the right, and enter the name Width_PowerNets in the field.

In the Where the Object Matches setting, select Net Class, then choose the PowerNets in the second dropdown, as shown below.

The last step is to set the Constraints for the rule. Edit the Min Width / Preferred Width / Max Width values 0.25 / 0.5 / 0.5 to allow power net routing widths in the range 0.25mm to 0.5mm, as shown below.

This Width rule targets the 12V power net.

Click Apply to save the rules and keep the dialog open.

When there are multiple rules of the same type, the PCB editor uses the rule Priority to ensure the highest priority applicable rule is applied. When a new rule is added it is given the highest priority, when a rule is duplicated the copy is given the priority below the source rule. Click the Priorities button down the bottom of the dialog to change priorities.

Defining the Electrical Clearance Constraint

The next step is to define how close electrical objects that belong to different nets, can be to each other. This requirement is handled by the Electrical Clearance Constraint, for the tutorial a clearance of 0.25mm between all objects is suitable. Note that entering a value into the Minimum Clearance field will automatically apply that value to all of the fields in the grid region at the bottom of the dialog. You only need to edit in the grid region when you need to define a clearance based on the object-type.

The electrical clearance constraint is defined between objects.

Note that the Electrical Clearance Constraint has two object selection fields, Where the First Object Matches and Where the Second Object Matches. That is because this is a binary rule - it is a rule that applies between 2 objects.

Defining the Electrical Clearance Constraint:

Expand the Electrical category in the tree of Design Rules, then expand the Clearance rule-type.

Click to select the existing Clearance constraint. Note that this rule has two Full Query fields, that is because it is a Binary rule. The rules engine checks each object targeted by the setting Where the First Object Matches and checks it against the objects targeted by the Where the Second Object Matches setting, to confirm that they satisfy the specified Constraints settings. For this design, this rule will be configured to define a single clearance between All objects.

In the Constraints region of the dialog, set the Minimum Clearance to 0.25mm, as shown in the image above.

Click Apply to save the rule and keep the dialog open.

Defining the Routing Via Style

If you place a via from the Ribbon, its values are defined by the in-built default PCB primitive settings. As you route and change layers a via is automatically added, in this situation the via properties are defined by the applicable Routing Via Style design rule. The next step is to define a suitable default routing via style.

Since it is highly likely that the power nets can be routed on a single side of the board, it is not necessary to define a routing via style rule for signal nets and another routing via style rule for power nets. Edit the rule settings to the values suggested earlier in the tutorial, that is a Via Diameter = 1mm and a Via Hole Size = 0.6mm. Set all fields (M in, Max, Preferred) to the same size. Note that you can press Tab on the keyboard to move from one dialog field to the next.

Click OK to close the PCB Rules and Constraints Editor.

Save the PCB file.

Existing Design Rule Violation

You might have noticed that the transistor pads are showing that there is a violation. Don't worry if you don't see any yet - you'll see them soon enough when you perform a Design Rule Check!

If you do see a violation, right-click over the violation and select the Violations in the menu, as shown below. The details show that there is a:

Clearance Constraint violation

Between a Pad on the MultiLayer, and a Pad on the MultiLayer

Where the clearance is 0.22mm, which is less than the specified 0.25mm

Right-click on a violation to examine what rule is being violated, and the violation conditions.

This violation will be discussed and resolved shortly. If you find the violation markers distracting, you can clear them by running the Home | Design Rules | Design Rule Check » Reset Error Markers command. This command only clears the marker, it does not hide or remove the actual error. The error will be flagged again the next time you perform an edit action that runs the online DRC (such as moving the component), or when you run the batch DRC.

CircuitMaker's internal defaults for a new board are Imperial. That means when you switch to Metric, settings such as the Soldermask expansion will change from rounded values like 4mil, to values like 0.102mm. While that 0.002mm is insignificant when it comes to output generation, you can edit these settings in the design rules if it bothers you. Select Design Rules in the tree on the left of the PCB Rules and Constraints Editor to examine the Attributes of all the rules and quickly locate any that need their values adjusted.

Positioning the Components on the PCB

There is a saying that PCB design is 90% placement and 10% routing. While you could argue about the percentage of each, it is generally accepted that good component placement is critical for good board design. Keep in mind that you may need to adjust the placement as you route too.

Component Positioning and Placement options

The default behavior when moving a component is to hold it by the reference point (Snap to Center) defined in the PCB Library editor, rather than where you happened to click on it. The Smart Component Snap option allows you to override this behavior and snap to the component pad nearest to where you click, handy when you need to position a specific pad in a specific location.

Enable Snap to Center to always hold the component by its reference point. Smart Component Snap is helpful when you need to locate by a specific pad.

Setting the component positioning options:

Select File » System Preferences to open the Preferences dialog.

Open the PCB Editor - General page of the dialog, in the Editing Options section, make sure the Snap To Center option is enabled. This ensures that when you "grab" a component to position it, the cursor will hold the component by its reference point.

Note the Smart Component Snap option, if this is enabled you can force the software to snap to a pad center instead of the reference point by clicking and holding closer to the required pad than the component's reference point. This is very handy if you require a specific pad to be on a specific grid point. It can work against you if you are working with small surface mount components though, as it can make it harder to "grab" them by their reference point.

Positioning Components

You can now position the components in suitable locations on the board.

To move a component, either:

Click-and-Hold the left mouse button on the component, move it to the required location, then release the mouse button to place it, or

Run the Tools | Arrange | Move » Component command, then single click to pick up a component, move it to the required location, then click once to place it. Repeat the process for the next component. When you are finished, right-click to drop out of the Move Component command.

The connection lines are automatically re-optimized as you move a component - use them to help orient and position the components so that there is the least amount of connection line cross-overs.

Components positioned on the board.

Positioning the components:

Zoom to display the board and the component. One way to do this is to zoom out (PgDn) so the board and the components are all visible, then right-click and choose View » View Area, then click to define the top left and bottom right of the exact area you wish to view.

The components will be positioned on the current Snap grid. For a simple design such as this there are no specific design requirements that dictate what placement grid should be used, as the designer, you decide what a suitable placement grid would be. To simplify the process of positioning the components you can work with a coarse placement grid, for example 1mm. Confirm that the Snap Grid is set to 1mm in the Home tab of the Ribbon.

The components in the tutorial can be placed as shown in the image above. To place connector Y1, position the cursor over the middle of the outline of the connector, and Click-and-Hold the left mouse button. The cursor will change to a cross hair and jump to the reference point for the part. While continuing to hold down the mouse button, move the mouse to drag the component.

Position the footprint towards the left-hand side of the board (ensuring that the whole of the component stays within the board boundary), as shown in the figure above.

When the connector component is in position, release the mouse button to drop it into place. Note how the connection lines drag with the component.

Reposition the remaining components, using the figure above as a guide. Use the Spacebar to rotate (increments of 90º anti-clockwise) components as you drag them, so that the connection lines are as shown in the figure.

Component text can be repositioned in a similar fashion - click-and-drag the text and press the Spacebar to rotate it.

The PCB editor also includes powerful interactive placement tools. Let's use these to ensure that the four resistors are correctly aligned and spaced.

Holding the Shift key, click on each of the four resistors to select them, or click and drag the selection box around all 4 of them. A shaded selection box will display around each of the selected components, in the color set for the system color called Selections.

Right-click on any of the selected components and choose Align » Align to open the Align Objects dialog.

Select Space Equally in the Horizontal section and Center in the Vertical section, then click OK to apply these changes. The software will first attempt to equally space the four resistors between the first and last selected component. After the components have been spaced you will be prompted to Select a Primitive (check the Status bar), click on the component you want the others to be vertically aligned with.

Select, then align and space the resistors. Note that they are not equally spaced because the current 1mm snap grid does not allow it.

Click elsewhere in the design window to de-select all the resistors. If required you can also align the capacitors and transistors, although this might not be required since you have a coarse Snap grid at the moment.

Save the PCB file.

Selected objects can also be moved using the keyboard rather than the mouse. To do this, hold Ctrl, then each time you press an Arrow key the selection will move 1 grid step in the direction of that arrow. Include the Shift key to move selected objects in 10x Snap Grid steps.

When you are moving a component with the mouse, you can constrain it to an axis by holding the Alt key. The component will attempt to hold the same horizontal axis (if moving horizontally) or vertical axis (if moving vertically) - move it further from the axis to override this behavior, or release the Alt key.

Adjusting the Component Text Strings

CircuitMaker supports two different styles of text:

Stroke - this is a set of 3, simple, built-in fonts that can be reproduced by all photoplotters because they are formed by simple stroke instructions.

TrueType - international standard fonts that are provided to CircuitMaker by the Windows operating system. TrueType glyphs are output as region-type objects and are supported by all modern photoplotters. Note that TrueType fonts are not stored in the PCB file, so they must be available on each PC that is used to open the file.

In the images shown in this tutorial, the font used for the component designators has been set to Arial with the Height = 1.5mm (for TrueType fonts the width is proportional to the height).

You can easily change the properties of all designator string in CircuitMaker, using the PCB Inspector panel. The PCB Inspector panel displays the properties of all selected objects, allowing you to edit them all in a single action. To select all of the designator strings, you can use the PCB Filter panel, which is ideal for quickly locating and examining all objects of a certain type.

Use the PCB Filter panel to find all component text, then use the PCB Inspector to edit the font properties.

To change the font for all designators:

From the View ribbon, enable the panel and the panel. In the image below you can see that the PCB Filter panel has been docked on the left, with the PCB Inspector docked on the right.

In the PCB Filter panel, select Components in the Groups region, then select Text in the Objects region. Note that everything in the workspace has greyed out, except for the component strings. This is called Masking, as explained in the highlight box below.

Click once in the workspace to make it the active area in CircuitMaker, the press the Select All shortcuts, Ctrl+A. Only the text strings will select, this is because all other objects are Masked.

The PCB Inspector panel will show the properties of all selected objects, in the image below you can see that this is the 9 designator strings. At the bottom of the list is the Text Kind, set this to TrueType Font.

Set the Text Height to 1.5mm.

Confirm that the TrueType Font Name is Arial.

All selected text strings will now be Arial, 1.5mm high.

Even a simple PCB can result in a busy workspace, where it can be difficult to interpret and understand what you are looking at. CircuitMaker includes two techniques for managing the display of objects in a busy workspace, known as Dimming and Masking. Dim and Mask are display filtering modes, where everything other than the object(s) of interest are faded, leaving only the chosen object(s) at normal display strength. The Dim mode applies the filter but still allows all workspace objects to be edited, the Mask mode filters out all other workspace objects, only allowing the unfiltered object(s) to be edited.

The amount that the display is faded is controlled by the Mask Level and Dim Level slider controls on the View tab of the Ribbon, experiment with these when you have the Mask mode or Dim mode applied.

To clear the filter you can either click the Clear button on the Ribbon, or press the Shift+C shortcut. This filtering feature is very effective in a busy workspace, and can also be used in the PCB panel and the PCB Filter panel.

With everything positioned, it's time to do some routing!

Interactively Routing the Board

Routing is the process of laying tracks and vias on the board to connect the component pins. The PCB editor makes this job easy by providing sophisticated interactive routing tools, as well as the topological autorouter, which optimally routes the whole or part of a board at the click of a button. While autorouting provides an easy and powerful way to route a board, there will be situations where you will need exact control over the placement of tracks. In these situations you can manually route part or all of your board.

In this section of the tutorial, you will manually route the entire board single-sided, with all tracks on the top layer. The Interactive Routing tools help maximize routing efficiency and flexibility in an intuitive way, including cursor guidance for track placement, single-click routing of the connection, pushing obstacles, automatically following existing connections, all in accordance with applicable design rules.

Preparing for Interactive Routing

Before starting to route, it is important to configure the Interactive Routing options, found in the PCB Editor - Interactive Routing page of the Preferences dialog.

Configure the interactive routing options - the highlighted options are important for this tutorial.

Preparing for interactive routing:

Set the Routing Conflict Resolution Current Mode to Stop at First Obstacle. You can cycle through the enabled modes interactively as you route by pressing Shift+R.

In the Interactive Routing Options section of the page, confirm that the Automatically Remove Loops option is enabled. This option allows you to change existing routing by simply routing an alternate path - you route a new path until it meets the old path (creating a loop), then right-click to indicate it is complete - the software then automatically removes the old, redundant part of the routing.

Confirm that the Interactive Routing Width / Via Size Sources options are both set to Rule Preferred.

Set the Snap Grid to 0.25mm in the Home | Grids and Units | Snap Grid.

Set the Snap Grid to a value that is suitable for routing - enter 0.25mm into the Snap Grid control in the Ribbon.

Time to Route

Interactive routing is launched by clicking the Route button . You only need to use the dropdown menu if you need to select one of the other routing options.

Since the components are mostly surface mount, the board will be routed on the top layer. As you place tracks on the top layer of the board, you use the ratsnest (connection lines) to guide you.

Tracks on a PCB are made from a series of straight segments. Each time there is a change of direction, a new track segment begins. Also, by default the PCB editor constrains tracks to a vertical, horizontal or 45° orientation, allowing you to easily produce professional results. This behavior can be customized to suit your needs, but for this tutorial you will use the default.

After reaching the target pad, right-click or press Esc to release that connection - you will remain in Interactive Routing mode, ready to click on the next connection line.

A simple animation showing the board being routed, press Spacebar to change the corner direction.

Interactively routing the board:

Check which layers are currently visible by looking at the Layer Tabs at the bottom of the workspace. If the Bottom Layer is not visible, press the L shortcut to open the View Configurations dialog, and enable the Bottom Layer.

Click on the Top layer tab at the bottom of the workspace to make it the current, or active layer, ready to route on.

It is often easier to route in single layer mode, press Shift+S to toggle to in and out of single layer mode.

Click the Home | Routing | Route button on the Ribbon, or right-click and choose Interactive Routing from the context menu. The cursor will change to a crosshair, indicating you are in interactive routing mode.

Position the cursor over the lower pad on connector Y1. As you move the cursor close to the pad it will automatically snap to the center of the pad - this is the Snap To Object Hotspot feature pulling the cursor to the center of the nearest electrical object (configure the Range of attraction in the Board Options dialog, click Home | Board | Board Options to open the dialog). Sometimes the Snap To Object Hotspot feature pulls the cursor when you don't want it to, in this situation press the Ctrl key to temporarily inhibit this feature.

Left-Click or press Enter to anchor the first point of the track.

Move the cursor towards the bottom pad of the resistor R1, and click to place a vertical segment. Note how track segments are displayed in different ways. During routing, the segments are shown as:

Solid - the segment has been placed.

Dull solid - dull segments are proposed but uncommitted, they will be placed when you left-click.

Hollow - this is referred to as the look-ahead segment, it allows you to work out where the last proposed segment should end. This segment is not placed when you click. The look-ahead mode can be toggled on/off using the 1 shortcut during routing.

Manually route by Left-Clicking to commit track segments, finishing on the lower pad of R1. Note how each mouse click places the hatched segment(s). For the connection that you are currently routing, press Backspace to rip up the last-placed segment.

When you have routed to the target pad, right-click to release that net while remaining in Interactive Routing mode.

Use the techniques detailed above to route between the other components on the board. The simple animation above shows the board being interactively routed.

There is no single solution to routing a board, and it is inevitable that you will want to change the routing. The PCB editor includes features and tools to help with this, they are discussed in the following sections.

Save the PCB when you are finished routing.

Routing Tips

Keep in mind the following points as you are routing:

Keystroke

Behavior

~ (tilda) or Shift+F1

Pop up a menu of interactive shortcuts - most settings can be changed on the fly by pressing the appropriate shortcut, or selecting from the menu.

* or Ctrl+Shift+WheelRoll

Switch to the next available signal layer. A via is automatically added, in accordance with the applicable Routing Via Style design rule.

Toggle single layer mode on and off - ideal when there are many objects on multiple layers.

Spacebar

Toggle the current corner direction.

Shift+Spacebar

Cycle through the various track corner modes. The styles are: any angle, 45°, 45° with arc, 90° and 90° with arc. There is an option to limit this to 45° and 90° in the Interactive Routing preferences page.

Ctrl

Temporarily suspend the Hotspot Snap, or press Shift + E to cycle through the 3 available modes (off / on for current layer / on for all layers).

End

Redraw the screen.

PgUp / PgDn

Zoom in / out, centered around the current cursor position. Alternatively, use the standard Windows mouse wheel zoom and pan shortcuts.

Backspace

Remove the last-committed track segment.

Right-click or ESC

Drop the current connection, remaining in Interactive Routing mode.

Keep an eye on the Status bar, it displays important information during interactive routing, including:

Current workspace location and Snap Grid setting

Hotspot Snap: off / on for current layer / on for all layers

Current track corner mode

Current Interactive Routing Mode

Source of routing Width

Source of routing Via Style

Name of Net

Overall route length

Dimensions of routing segment being placed

Interactive Routing Modes

The PCB editor's Interactive Routing engine supports a number of different modes, with each mode helping the designer deal with particular situations. Press the Shift+R shortcut to cycle through the enabled modes as you interactively route, note that the current mode is displayed on the Status bar.

The available interactive routing modes include:

Ignore - This mode lets you place tracks anywhere, including over existing objects, displaying but allowing potential violations.

Stop at first obstacle - In this mode the routing is essentially manual, as soon as an obstacle is encountered the track segment will be clipped to avoid a violation.

Push - This mode will attempt to move objects (tracks and vias), which are capable of being repositioned without violation, to accommodate the new routing.

Autoroute on Current Layer - this mode brings basic autorouting functionality to interactive routing, it can automatically select between walkaround and push, based on heuristics that consider push distance, versus walk distance and route length. Like an autorouter, this mode can deliver better results on a complex, busy board, than on a simple, unrouted board.

Modifying and Rerouting

To modify an existing route, there are two approaches, you can either: reroute, or re-arrange.

Reroute an existing Route

There is no need to un-route a connection to redefine its path, simply click the Route button and start routing the new path.

The Loop Removal feature will automatically remove any redundant track segments (and vias) as soon as you close the loop and right-click to indicate you are complete (Loop Removal was enabled earlier in the tutorial).

You can start and end the new route path at any point, swapping layers as required.

You can also create temporary violations by switching to Ignore Obstacle mode (as shown in the animation below), which you later resolve.

A simple animation showing the Loop Removal feature being used to modify existing routing.

Loop Removal is enabled in the PCB Editor - Interactive Routing page of the Preferences dialog. Note that there are situations where you may want to create loops, for example power net routing. If necessary, Loop Removal can be disabled for an individual net by editing that net in the PCB panel. To access the option set the panel to Nets mode, then double click on the net name in the panel to open the Edit Net dialog.

Re-arrange Existing Routes

To interactively slide or drag track segments across the board, simply click, hold and drag, as shown in the animation below.

The PCB editor will automatically maintain the 45/90 degree angles with connected segments, shortening and lengthening them as required.

An animation showing track dragging being used to tidy up existing routing.

Track Dragging Tips

During dragging certain routing conflict resolution modes also apply (Ignore, Push), press Shift+R to cycle through the modes as you drag a track segment.

Existing pads and vias will be jumped, or vias will be pushed if necessary and possible.

To convert a 90 degree corner to a 45 degree route, start dragging on the corner vertex. If a chooser window pops up (as shown in the animation above), you can select either track segment.

While dragging you can move the cursor and hotspot snap it to an existing, non-moving object such as a pad (shown above) - use this to help align the new segment location with an existing object and avoid very small segments being added.

To break a single segment, select the segment first, then position the cursor over the center vertex to add in new segments (shown above).

Change the default select-then-drag mode using the Unselected via/track and Selected via/track options in the PCB Editor - Interactive Routing page of the Preferences dialog.

Automatically Routing the Board

Before you begin exploring the autorouter, save your board so you can return to the interactively routed version if you want.

Configuring the Autorouter

CircuitMaker also includes a topological autorouter. A topological autorouter uses a different method of mapping the routing space - one that is not geometrically constrained. Rather than using workspace coordinate information as a frame of reference (dividing it into a grid), a topological autorouter builds a map using only the relative positions of the obstacles in the space, without reference to their coordinates.

Topological mapping is a spatial-analysis technique that triangulates the space between adjacent obstacles. This triangulated map is then used by the routing algorithms to "weave" between the obstacle pairs, from the start route point to the end route point. The greatest strengths of this approach are that the map is shape independent (the obstacles and routing paths can be any shape) and the space can be traversed at any angle - the routing algorithms are not restricted to purely vertical or horizontal paths, as with a rectilinear expansion routers.

Translating this into a user interface, the router has a number of different routing passes available; such as Fan Out to Plane, Main, Memory, Spread, Recorner, and so on. These are bundled together to create a Routing Strategy, which the designer can then run on their board. There are a number of pre-defined strategies already available in the Routing Strategies dialog, and new ones are easily created using the Strategy Editor.

Select an existing routing strategy, or create a new one in the Strategy Editor.

Running the Autorouter

The autorouter is configured and run from the Tools | Autoroute | Autoroute menu on the Ribbon. Selecting All from the menu opens the Routing Strategies dialog, which is used to configure the strategies, select the required strategy, and run the autorouter.

The autorouter will route on the layers allowed by the Routing Layers design rule, in the directions specified in the autorouter Layer Directions dialog (where possible).

The images below show the autorouting results using the Default 2 Layer Board Strategy on the left, and the same strategy but with the bottom layer disabled in the Routing Layers design rule, on the right.

Autorouting results for the default 2 layer strategy (left image), and then again with the bottom layer disabled (right image).

Exploring the capabilities of the autorouter:

Un-route the board by selecting Home | Routing | Unroute » All from the Ribbon.

Select Tools | Autoroute | Autoroute » All. The Situs Routing Strategies dialog displays, the top region of the dialog displays the Routing Setup Report, warnings and errors are shown in red, always check for warnings/errors. The lower half of the dialog shows the available Routing Strategies, the selected one will be highlighted. For this board it should default to the Default 2 Layer Board strategy.

Click the Route All button in the Routing Strategies dialog. The Messages panel displays the process of the autorouting. Because it routes your board directly in the PCB editing window, there is no need to wrestle with exporting and importing route files.

To route the board single-sided, click the Edit Layer Directions button in the Situs Routing Strategies dialog, and modify the Current Setting field. Alternatively you can modify the Routing Layers design rule.

An interesting point to make, the autorouter prefers a challenging board, often giving better results on a dense, more complex design than on a simple board. To improve the quality of the finished result, select Autoroute » All again, except this time select the Cleanup routing strategy. This strategy will attempt to straighten the routes, reducing the number of corners. You can run the Cleanup strategy multiple times if required. If nothing changes you might like to interactively re-route a connection in a convoluted pattern, then try the Cleanup strategy.

If you want to keep the autorouting results, save your board. Otherwise use Undo or close/open to return the board to the required routed state.

Don't worry if the routing in your design is not exactly the same as shown in the figure above - because the component placement is not exactly the same, the routing will not be either.

Verifying Your Board Design

Time to check and make sure that the design complies with the design requirements defined in the design rules.

Configuring the Display of Rule Violations

CircuitMaker has two techniques for displaying design rule violations, each with their own advantages. These are configured in the PCB Editor - DRC Violations Display page of the Preferences dialog:

Violation Overlay - Violations are identifed by the primitive-in-error being highlighted in the color chosen for the DRC Error Markers (configured in the View Configurations dialog, press L to open). The default behavior is to show the primitives in a solid color when zoomed out, changing to the selected Violation Overlay Style as you zoom it. The default is Style B, a circle with a cross in it.

Violation Details - As you zoom further in Violation Detail is added (if enabled), detailing the nature of the error. Use the Show Violation Detail slider to define at what zoom level the Violation Details start to display. Enable the required Display options in the Preferences dialog.

Violations can be displayed as a colored overlay and also as a detailed message, with different symbols being used at different zoom levels.

Violations are shown in solid red (left image), as you zoom in this changes to an Overlay (center image), as you zoom in further Violation Details are added.

Preparing to run a Design Rule Check (DRC):

Select Design » Board Layers & Colors (shortcut: L) and ensure that Show checkbox next to the DRC Error Markers option in the System Colors section is enabled (ticked) so that DRC error markers will be displayed.

Confirm that the Online DRC (Design Rule Checking) system is enabled, the checkbox is in the PCB Editor - General page of the Preferences dialog. Keep the Preferences dialog open, and switch to the PCB Editor - DRC Violations Display page of the dialog.

The PCB Editor - DRC Violations Display page of the Preferences dialog is used to configure how violations are displayed in the workspace. There are 2 different methods available for displaying violations, each with their own strengths:

For the tutorial, right-click in the Display area of the PCB Editor - DRC Violations Display page of the Preferences dialog and select Show Violation Details - Used,

then right-click again and select Show Violation Overlay - Used, as shown in the dialog image above.

You are now ready to check the design for errors.

Configuring the Rule Checker

The design is checked for violations by running the Design Rule Checker. Click the Design Rule Check button on the Home tab of the Ribbon to open the dialog. Both online and batch DRC are configured in this dialog.

DRC Report Options

By default, the dialog opens showing the Report Options page selected in the tree on the left of the dialog (shown below).

The right side of the dialog displays a list of general reporting options, for more information about the options press F1 when the cursor is over the dialog. These options will be left at their defaults.

Rule checking, both online and batch, is configured in the Design Rule Checker dialog.

DRC Rules to Check

The testing of specific rules is configured in the Rules to Check section of the dialog, select this page in the tree on the left of the dialog to list all of the rule types (shown below). You can also examine them by type, for example Electrical, by selecting that page on the left of the dialog.

For most rule types there are checkboxes for Online (check as you work) and Batch (check this rule when the Run Design Rule Check button is clicked).

Click to enable/disable the rules as required. Alternatively, right-click to display the context menu. This menu allows you to quickly toggle the Online and Batch settings, select the Batch DRC - Used On entry, as shown in the image below.

Checking is configured for each rule type, use the right-click menu to toggle multiple options.

Running a Design Rule Check (DRC)

When the Run Design Rule Check button at the bottom of the dialog is clicked, the DRC will run.

The Messages panel will appear, listing all detected errors.

If the Create Report File option was enabled in the Report Options page of the dialog, a Design Rule Verification Report will open in a separate document tab, the report for the tutorial is shown below.

Below the summary of violating rules will be specific details about each violation.

The links in the report are live, click on an error to jump back to the board and examine that error on the board. Note that the zoom level for this click action is configured in the System - General Settings page of the Preferences dialog, experiment to find a zoom level that suits you.

The report details all detected violations, click on a violation to jump back to the PCB and examine the error.

Identifying the Error Condition

When you are new to the software, a long list of violations can initially seem overwhelming. A good approach to managing this is to disable and enable rules in the Design Rule Check dialog, at different stages of the design process. It is not advisable to disable the design rules themselves, just the checking of them. For example, you would always disable the Un-Routed Net check until the board is fully routed.

When a batch DRC is run on the tutorial board, the DRC should report:

4 clearance constraint violations - which means the measured clearance values are less than the minimum amounts specified in the applicable Clearance Constraint design rule.

16 silk to solder mask clearance violations - which means there are silkscreen objects that are closer to an opening in the solder mask than the distance specified in the Silk to Solder Mask Clearance rule.

6 solder mask sliver violations - which means the smallest width of solder mask between openings in the mask is below the width allowed by the Minimum Solder Mask Sliver design rule.

The image below shows the Violation Details for one of the clearance constraint errors, indicated by the white arrows and the 0.25mm text. The next step is to work out what the actual value is so you know how much it has failed by.

The Violation Details show that the clearance between these 2 pads is less that 0.25mm, it does not detail the actual clearance though.

The PC editor includes three handy measurement tools, Measure Distance, Selected Primitives and Between Primitives, available in the Tools | Measure group on the Ribbon.

Measure Distance - measure the distance between the 2 locations you click after running the command, keep an eye on the Status bar for instructions.

Selected Primitives - measure the length of selected tracks and arcs. Use this to work out route lengths, select the required objects manually, or use the Select » Physical Connection or Select » Connected Copper commands.

Between Primitives - measure the edge-to-edge distance between the 2 primitives you click on after running the command.

Measuring the distance between the edges of adjacent pads.

Apart from actually measuring the distance, there are two approaches to working out how much the rule has failed by, using either:

The PCB Rules and Violations Panel

To see all violations, scroll the Rule Classes list to the bottom and select [All Rules].

To examine the violations for a specific rule class, select that rule in the Rule Classes list.

When you select a specific rule class, all rules defined in that class are listed in the Rules section of the panel. In this middle section of the panel you can: double-click to edit the settings for that rule, right-click » Clear Violations For Rule; right-click » Run DRC Rule to re-run the DRC for just that rule.

Click once on a violation in the Violations section of the panel to jump to that violation, or double-click on a violation to open the Violation Details dialog.

The panel details the violation type, the measured value, the rule setting and the objects that are in violation.

Note that at the top of the PCB Rules and Violations panel there is a drop-down, which can be used to select Normal, Dim or Mask. Dim and Mask are display filter modes, where everything other than the object(s) of interest are faded, leaving only the chosen object(s) at normal display strength. The Dim mode applies the filter but still allows all workspace objects to be edited, the Mask mode filters out all other workspace objects, only allowing the unfiltered object(s) to be edited.

The amount that the display is faded is controlled by the Mask Level and Dim Level slider controls on the View tab of the Ribbon, experiment with these when you have the Mask mode or Dim mode applied.

To clear the filter you can either click the Clear button on the Ribbon, or press the Shift+C shortcut. This filtering feature is very effective in a busy workspace, and can also be used in the PCB panel and the PCB Filter panel.

Resolving the Violation

As the designer you have to work out the most appropriate way of resolving each design rule violation.

Resolving the Clearance Constraint Violation

There are 2 ways of resolving this clearance constraint violation:

Decrease the size of the transistor footprint pads to increase the clearance between the pads, or

Configure the rules to allow a smaller clearance between the transistor footprint pads.

Since the 0.25mm clearance is quite generous and the actual clearance is quite close to this value (0.22mm), a good choice in this situation would be to configure the rules to allow a smaller clearance. This can be done in the existing Clearance Constraint design rule, as shown below.

The TH Pad - to - TH Pad value is changed to 0.22mm in the grid region of the rule constraint. To edit a cell first select it, then press F2.

This solution is acceptable in this situation because the only other component with thruhole pads is the connector, which has pads spaced over 1mm apart.

Edit the Clearance Constraint to allow a TH Pad to TH Pad clearance of 0.22mm. You can access the rule settings by double-clicking on
the rule in the PCB Rules and Violations panel.

Resolving the Silk to Solder Mask Clearance Constraint Violation

This rule checks the distance from silk screen objects to openings in the solder mask. If you scroll through the violations in the PCB Rules and Violations panel, you will see that they all fail by the same amount, with an actual distance of 0.2mm.

To resolve this violation you could:

Adjust the size and / or location of the silkscreen objects to meet the clearance requirement.

Change the rule setting to allow silkscreen objects to be closer to mask openings.

Use the PCB Rules and Violations panel to locate and examine the violation.

The default rule value of 0.254mm (10mil) is conservative. Half of the current value would still be an appropriate value for low-cost fabrication.

To edit the rule settings, double-click on the SilkToSolderMask rule in the Rule section of the PCB Rules and Violations panel, and change the Silkscreen to Object Minimum Clearance to 0.125mm (5mil), and click OK.

Now right-click on the rule in the PCB Rules and Violations panel and select Run DRC Rule (SilkToSolderMask). The violations that were present for this rule should clear.

Edit the rule clearance to be 0.125mm.

Resolving the Solder Mask Sliver Violation

The last set of violations to resolve are the solder mask slivers. From the values shown in the PCB Rules and Violations panel, you can see that the distance is very small for 4 of the instances, being 0.02mm. You can also see that the affected components are:

The transistors, Q1 and Q2

The capacitors, C1 and C2

To resolve these violations you could:

Increase the solder mask opening to completely remove the mask between the transistor and capacitor pads, or

Decrease the minimum acceptable sliver width, or

Decrease the mask opening to widen the sliver to an acceptable width.

The transistors and capacitors are failing the Solder Mask Sliver Constraint.

How you resolve this is a design decision which would be made in light of your knowledge of the component, and the fabrication and assembly technology being used. Opening the mask to completely remove the mask between the transistor and capacitor pads means that there is more chance of creating solder bridges between those pads, whereas decreasing the mask opening will still leave a sliver which may or may not be acceptable, and will also introduce the possibility of mask-to-pad registration problems. For this tutorial the best approach is to do a combination of the second and third options - decreasing the minimum sliver width to a value suitable for the settings being used on this board, and also decreasing the mask expansion, but only for the transistor pads.

The first step is to reduce the allowable sliver width.

To do this, open the PCB Rules and Constraints Editor dialog, then in the Manufacturing section locate and select the existing Minimum Solder Mask Sliver rule, called MinimumSolderMaskSliver.

A value of 0.125mm (5mil) should be acceptable for a design such as this, edit the Minimum Solder Mask Sliver value to 0.125mm in the Constraints region of the rule.

The second step is to reduce the solder mask expansion. This will require 2 rules, one targeting the transistors, the other targeting the capacitors.

Click on the Mask section in the tree on the left of the dialog to show the current Solder Mask Expansion rules, there should be one called SolderMaskExpansion. Click on it to select the rule and display its settings, the default rule has an expansion value of 0.102mm (4mil). This rule will be left as a general rule for the entire board, you will create 2 new rules for the transistors and capacitors.

To add a new Solder Mask Expansion rule, right-click on the current rule and select New Rule. A new rule called SolderMaskExpansion_1 will be created, click on it to display its settings.

Edit the rule settings to be:

Name - SolderMaskExpansion_TO-92A

Where the Object Matches - Footprint : ONSC-TO-92-3-29-11

Expansion - 0.0mm

Repeat this process and create a new rule targeting the capacitors:

Name - SolderMaskExpansion_Caps

Where the Object Matches - Footprint : CAPC2013X88X50NL20T25

Expansion - 0.0mm

Two rules have been added to reduce the solder mask expansion to zero for the transistors and capacitors.

To confirm that all violations have been resolved run another Design Rule Check, with the Create Report File option enabled. Doing this means you have a record of which rules were checked, the rule settings, and the fact that there were no failures.

Always confirm that you have a clean Design Rule Verification Report before generating outputs.

Well done! You have completed the PCB layout and are ready to produce output documentation. Before doing that, let's explore the PCB editor's 3D capabilities.

Viewing Your Board in 3D

A powerful feature of CircuitMaker is the ability to view your board as a 3 dimensional object. To switch to 3D, click the Switch to 3D button (View | View group), or press the 3 shortcut. The board will display as a 3 dimensional object - the tutorial board is shown below.

You can fluidly zoom the view, rotate it and even travel inside the board using the following controls:

Rotation - Shift + Right-drag mouse. Note how when you press Shift a directional sphere appears at the current cursor position, as shown in the image below. Rotational movement of the model is made about the center of the sphere (position the cursor before pressing Shift to position the sphere) using the following controls. Move the mouse around to highlight and select each one:

Right-drag sphere when the Center Dot is highlighted - rotate in any direction.

Right-drag sphere when the Horizontal Arrow is highlighted - rotate the view about the Y-axis.

Right-drag sphere when the Vertical Arrow is highlighted - rotate the view about the X-axis.

Right-drag sphere when the Circle Segment is highlighted - rotate the view about the Z-plane.

Hold Shift to display the 3D view directional sphere, then click and drag the right-mouse button to rotate.

Tips for Working in 3D

Press L to open the View Configurations dialog when the board is in 3D Layout Mode, where you can configure the 3D workspace display options. There are options to choose various surface and workspace colors, as well as vertical scaling, which is handy for examining the PCB internally. Some surfaces have an opacity setting - the greater the opacity, the less 'light' passes through the surface, which makes objects behind less visible. You can also choose to show 3D bodies or render 3D objects in their (2D) layer color.

To display the components in 3D, each component needs to have a suitable 3D model.

You can import a 3D STEP-format model into the component footprint editor - place a 3D Body Object then select the Generic STEP Model type to embed a STEP model inside that 3D Body Object.

If there is no suitable STEP model available, create your own component shape by placing multiple 3D Body Objects in the footprint editor.

The alternative to using the rotational sphere is to use a 3D mouse, such as the Space Navigator from 3Dconnexion, which greatly simplifies the process of moving and rotating the board in 3D layout mode.

To learn more about setting up an output, open the dialog and press F1.

Individual Outputs or Managed Output Generation

CircuitMaker has 2 separate mechanisms for configuring and generating output:

Individually - the settings for each output type are stored in the Project file, you selectively generate that output when required, via the buttons on the Outputs tab. These outputs are written to the folder specified in the Output Path setting in the Options tab of the Options for PCB Project dialog.

Managed Release - all output settings are stored in a special file in the project folder, you then generate all enabled outputs in a single action via the Generate Output Files dialog. Using this approach gives you confidence that all the correct outputs were generated from the same version of the source schematic and PCB files. The dialog is accessed either from the Project | Project Actions | Generate Outputs button, or the Home | Project | Project » Generate Outputs menu entry. These outputs are written to a folder named \Default Configuration. Once you have configured and enabled each required Outputer, click the Generate button to generate the outputs in the \Default Configuration folder.

The Generate Output Files dialog allows you to configure each output type, and then generate multiple output types in a single click.

If you were using an individual output and then switched to Managed Release you will notice that the setup dialogs are the same. Although the dialogs for each output type are the same, the settings are separate and must be configured again if you switch from one approach to the other.

Preparing for a managed release:

The Generate Output Files dialog can be opened at any time, with a schematic open, a PCB open, or no document open - click the button on the Project tab to open the dialog. Note that when you open the dialog, the special file that holds the output settings is automatically created in the project folder, so the project file will now be marked as modified.

Note the list of Outputers included, for the tutorial you will be using the Gerber Files outputer, and the Bill of Materials outputer.

Click Configure... for the Gerber Files to open the Gerber Setup dialog. This will be configured in the next set of steps.

Configuring the Gerber Files

Gerber continues to be the most common form of data transfer between board design and board fabrication.

Each Gerber file corresponds to one layer of the physical board - the component overlay, top signal layer, bottom signal layer, top solder mask layer, and so on. It is advisable to consult with your board fabricator to confirm their requirements before supplying the output files required to fabricate your design.

If the board has any holes then an NC Drill file must also be generated, using the same units, resolution, and position on film settings.

Gerber files are configured in the Gerber Setup dialog. If you intend to use the managed release approach, you open the Gerber Setup dialog from the Generate Output Files dialog.

Configure the Gerber outputs in the Gerber Setup dialog.

Configuring Gerber generation:

In the Generate Output Files dialog, click Configure... for the Gerber Files output, the Gerber Setup dialog will open, as shown in the image above.

Since the board has been design in Metric, set the Units to Millimeters. in the General tab of the dialog.

The smallest unit used on the board is 0.25mm for the routing and clearance, but because most of the components have their reference point at their geometric center (and were placed on a 1mm grid), some of their pads will actually be on a 0.01 grid. Set the Format to 4:3 on the General tab, this ensures that the resolution of the output data is adequate to cover these grid locations. Note: the NC drill file must always be configured to use the same Units and Format.

Switch to the Layers tab, then click the Plot Layers button and select Used On. Note that mechanical layers may be enabled, but these are not normally Gerbered on their own. Instead they are often included if they hold detail that is required on other layers, for example an alignment location marker that is required on every Gerber file. In this case the Mechanical Layer options on the right side of the dialog are used to include that detail with another layer. Disable any mechanical layers that were enabled in the Layers to Plot section of the dialog.

Click on the Advanced tab of the dialog. Confirm that the Position on Film option is set to Reference to relative origin. Note: the NC drill file must always be configured to use the same Position on Film option.

Click OK to accept the other default settings and close the Gerber Setup dialog.

Back in the Generate Output Files dialog, enable the Gerber Files checkbox so that the Gerber Files will be created when the Generate button is clicked (after the BoM is configured).

Now the Gerber settings are configured, the next step is to configure other outputs. For this tutorial you will also configure the BoM in the next set of steps.

Configuring the Bill of Materials

CircuitMaker includes a highly configurable BoM generation feature which can generate output in a variety of formats, including: text, CSV, PDF, HTML and Excel. Excel-format BoM's can also have a template applied using one of the pre-defined templates, or one of your own.

BoM output is configured in the Bill of Materials For Project dialog, which you access via the Generate Output Files dialog.

Down the left of the dialog there is a list of every component attribute, for all components in the design. Enable the checkbox for each attribute you would like to include in the BoM, clear the checkbox for an attribute you wish to remove.

The default settings for the BoM is to cluster by like components. Clustering is achieved by adding component attributes to the Grouped Columns region of the dialog. Click and drag these attributes out of the Grouped Columns and drop them back in the All Columns region if you prefer every component to be on its own row in the BoM.

The main grid region of the dialog is the content that is written into the BoM. In this region you can: click and drag to reorder the columns; click on a column heading to sort by that column; ctrl+click to sub-sort by that column; define value-based filters for a column using the small dropdown in each column header; right-click to Force the columns to fit the current dialog width.

The BoM generator sources its information from the schematic, enable the Include Parameters from PCB option to access PCB information, such as location and side of board. Using this, you can also generate output such as a user-configured pick and place file, if required.

The default configuration for a new BoM is to group like components together.

This BoM has been reconfigured to present each component as a unique entry.

Mapping design data into the BoM:

Mapping Design Data into the BoM

Design data can be passed from CircuitMaker into an Excel Bill Of Materials, by including special statements in the Excel template used to create the BOM.

When creating the Bill of Materials template in Excel, a combination of Fields and Columns can be used to specify the desired layout. Several example templates are provided with CircuitMaker, in the \Templates folder of the installation user-files. A list of available fields is detailed below:

Fields

Fields provide project-level information. These are not usually attached to each item listed in the BOM, but are often used in the header of the document. Fields are used in the format:

Field=FieldName

An example would be Field=Currency

The available fields include:

Currency

DataSourceFileName

DataSourceFullPath

GeneratorDescription

GeneratorName

OutputName

OutputType

ProductionQuantity

ProjectFileName

ProjectFullPath

ReportDate

ReportDateTime

ReportTime

TotalQuantity

Title (title of BoM)

VariantName

Document and Project Parameters

As well as the default Fields listed in the table above, schematic Document Parameters (both default and user-defined in the schematic Document Options dialog) and Project Parameters (Options for PCB Project dialog) can also be used as Fields.

These are entered as:

Field=ParameterName

If the same parameter exists as both a document parameter and a project parameter, the project parameter takes precedence. If the same document parameter exists in multiple documents, the document parameter that is higher up in the heirarchy takes precedence.

Below are the default document parameters, also referred to as the System parameters.

Address1

Address2

Address3

Address4

ApprovedBy

Author

CheckedBy

CompanyName

ConfigurationParameters

CurrentDate

CurrentTime

Date

DocumentFullPathAndName

DocumentName

DocumentNumber

DrawnBy

Engineer

ImagePath

Index

ModifiedDate

Organization

Revision

Rule

SheetNumber

SheetTotal

Time

Columns

Columns provide the information that is supplied on a per-component basis, and would usually appear on each line in the BOM. Columns are defined by entering the column heading, in the format:

Column=ColumnName

An example would be Column=Description, or Column=LibRef

Column information can be taken from several sources, including:

Default component parameters (such as Designator or Description),

User-defined parameters added to components,

PCB data,

Supplier data.

These are discussed separately below.

Default Parameters

These ColumnNames are available for all components:

Comment

ComponentKind

Description

Designator

DesignItemId

Footprint

LibRef

LogicalDesignator

PartType

PhysicalPath

Quantity

UniqueIdName

UniqueIdPath

PCB Parameters

Pick and Place information can also be included from the PCB. In order to use these columns, the checkbox Include Parameters From PCB must be ticked in the BOM Configuration dialog.

Center-X(Mil)

Center-X(mm)

Center-Y(Mil)

Center-Y(mm)

Layer

Pad-X(Mil)

Pad-X(mm)

Pad-Y(Mil)

Pad-Y(mm)

Ref-X(Mil)

Ref-X(mm)

Ref-Y(Mil)

Ref-Y(mm)

Rotation

Supplier Data

it is possible to retrieve online data from suppliers, and feed that into the BOM. Note that these are updated live, and are retrieved when the BOM is generated. Multiple suppliers can be set up for each component. In the table below, these have been described as Supplier Info x - replace x with the appropriate number.

Manufacturer x

Manufacturer Part Number x

Supplier x

Supplier Currency x

Supplier Order Qty x

Supplier Part Number x

Supplier Stock x

Supplier Subtotal x

Supplier Unit Price x

If you have just edited parameters in the schematic and want to see them in the BoM, save the edited documents and recompile the project before generating the BoM.

Explore the sample Excel templates in the \CircuitMaker\Templates folder. Note that Fields need to be defined above or below the Column region of the template.

Releasing the Design

Once the design is complete, it can be released. When you release a design in CircuitMaker you:

Generate all of the outputs configured in the Generate Output Files dialog, which are added to a single release ZIP file.

Take a snapshot of the design files that the release was generated from, and add these to the release ZIP file.

Upload this to the Community Vault, where it is stored.

For any project stored in the Community Vault, available releases can be downloaded from the Home view. Locate the project of interest then click Releases to access the Download Files, as shown below.

The released ZIP file can be downloaded from the Community Vault at any time, either from within CircuitMaker or via the CircuitMaker community website.