Parent page: Exploring CircuitMaker
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:
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.
Watch a short video about the collaborative CircuitMaker Community on YouTube
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.
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:
Watch a short video about Creating a Project on YouTube
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).
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).
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.
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.
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.
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.
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.
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).
Related article: Component Management 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.
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.
Watch a short video about creating components on YouTube
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.
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.
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.
BC547 NPN transistor TO-92
resistor 100K 1% 0805
resistor 1K 1% 0805
capacitor 22nF 16V 0805
header 2 way through hole 0.1 in vertical male
Before you start searching and placing, read the following section to learn how to configure the component properties before placement.
Watch a short video about Schematic Capture on YouTube
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:
Note that there may be a brief delay while the component is downloaded from the cloud.
While the component is floating on the cursor, you can:
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:
All the components placed, ready for wiring.
ON Semiconductor BC547CG
Do not place the transistor yet!
Set the Designator to Q1.
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.
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.
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.
Net Labels have been added to complete the schematic.
The net label in free space (left image) and positioned over a wire (right image), note the red cross.
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-specific settings are configured in the Options for PCB Project dialog, shown below (Home | Project | Project » Options). The project options include the error checking parameters, a connectivity matrix, Class Generator, the Comparator setup, ECO generation, output paths and netlist options, Multi-Channel naming formats, Default Print setups, Search Paths, and project-level Parameters. These settings are used when you compile the project.
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.
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.
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.
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.
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.
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.
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 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.
You will now deliberately introduce an error into the circuit and recompile the project:
Before you finish this section of the tutorial, let's fix the error in our schematic.
When you double click on an error in the Messages panel:
To clear all messages from the Messages panel, right-click in the panel and select Clear All.
Watch a short video about PCB design on YouTube
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.
Add a new PCB to your project.
Performing a Commit saves modified and new files into the Community Vault.
There are a number of attributes of this blank board that need to be changed before transferring the design from the schematic editor, including:
Press Ctrl+PgDn at any time to zoom to show the entire board.
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).
For this design, it is more efficient to edit the existing board shape.
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 board shape has been resized to 30mm x 30mm, as indicated by the current grid locations shown on the Status bar.
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.
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 Document Multivibrator.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:
Once the ECOs have been executed, the components are placed outside the board shape and the nets are created.
An ECO is created for each change that needs to be made to the PCB so that it matches the schematic.
The ECOs have been executed correctly, close the dialog and the components will be outside the board shape.
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.
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:
The display attributes of all layers are configured in the View Configurations dialog. To open the dialog:
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:
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.
Single and Centered
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.
The Layer Stack Manager dialog is used to:
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.
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.
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.
For a design such as this simple tutorial circuit, practical grid and design rule settings would be:
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.
Select View » Toggle Units (or press the Q shortcut key) to toggle the workspace units between metric and imperial.
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.
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.
5x Grid Step
Main article: PCB Design Rules References
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.
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:
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.
The default Routing Width design rule has been configured.
This Width rule targets the 12V power net.
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.
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.
A single routing via is suitable for all nets in this design.
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:
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.
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.
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.
You can now position the components in suitable locations on the board.
To move a component, either:
Components positioned on the board.
Select, then align and space the resistors. Note that they are not equally spaced because the current 1mm snap grid does not allow it.
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.
CircuitMaker supports two different styles of text:
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.
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!
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.
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.
Stop at First Obstacle
Set the Snap Grid to a value that is suitable for routing - enter 0.25mm into the Snap Grid control in the Ribbon.
A simple animation showing the board being routed, press Spacebar to change the corner direction.
Keep in mind the following points as you are routing:
Keep an eye on the Status bar, it displays important information during interactive routing, including:
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:
To modify an existing route, there are two approaches, you can either: reroute, or re-arrange.
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.
An animation showing track dragging being used to tidy up existing routing.
Before you begin exploring the autorouter, save your board so you can return to the interactively routed version if you want.
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.
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).
Time to check and make sure that the design complies with the design requirements defined in the design rules.
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:
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):
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.
Rule checking, both online and batch, is configured in the Design Rule Checker dialog.
Checking is configured for each rule type, use the right-click menu to toggle multiple options.
When the Run Design Rule Check button at the bottom of the dialog is clicked, the DRC will run.
The report details all detected violations, click on a violation to jump back to the PCB and examine the error.
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:
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.
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 right-click Violations submenu was described earlier in the Existing Design Rule Violation section.
The best approach to locating and understanding design rule violations is to use the PCB Rules and Violations panel.
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.
As the designer you have to work out the most appropriate way of resolving each design rule violation.
There are 2 ways of resolving this clearance constraint violation:
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.
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.
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:
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.
Edit the rule clearance to be 0.125mm.
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:
To resolve these violations you could:
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.
The second step is to reduce the solder mask expansion. This will require 2 rules, one targeting the transistors, the other targeting the capacitors.
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.
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:
Hold Shift to display the 3D view directional sphere, then click and drag the right-mouse button to rotate.
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.
Watch a short video about generating manufacturing outputs on YouTube
Now that you've completed the design and layout of the PCB, you're ready to produce the output files needed to get the board reviewed, fabricated and assembled.
The ultimate objective is to fabricate and assemble the board.
Because a variety of technologies and methods exist in PCB manufacture, CircuitMaker has the ability to produce numerous output types for different purposes:
To learn more about setting up an output, open the dialog and press F1.
CircuitMaker has 2 separate mechanisms for configuring and generating output:
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.
Configure the Gerber outputs in the Gerber Setup dialog.
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.
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.
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 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:
An example would be Field=Currency
The available fields include:
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:
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.
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:
An example would be Column=Description, or Column=LibRef
Column information can be taken from several sources, including:
These are discussed separately below.
These ColumnNames are available for all components:
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.
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.
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.
Once the design is complete, it can be released. When you release a design in CircuitMaker you:
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.
To learn more about Releases, refer to the Project Management in CircuitMaker article.