INTRODUCTION

Introduction

The purpose of this tutorial is to quickly familiarize you with the main features of the Proteus layout module to the point that you can use the package for real work. Users with modest computer literacy should find it possible to learn the package and produce their first board within a day or two.

The tutorial proceeds by taking you through worked examples involving all the important aspects of the package including:

  • Board outline / mounting holes.
  • Component placement (manual / auto).
  • Track routing.
    • Design rules such as track thickness and spacing.
    • Manual and automatic routing.
    • "High-speed design" features such as length-matching and differential pairs.
    • Curved tracks.
    • Keepout areas.
  • Planes / zones.
    • Via stitching/shielding.
  • 3D Board Visualisation.
  • Report generation.
  • Output file creation (Gerber files, etc).
  • Library part creation.

We do urge you to work right the way through the tutorial exercises as many things are pointed out that if missed will result in much wasted time in the long run. Also, having worked through the tutorial and thus got a basic grasp of the concepts behind the package you will find it much easier to absorb the material presented in the reference chapters.

Note that throughout this tutorial (and the documentation as a whole) reference is made to keyboard shortcuts as a method of executing specific commands. The shortcuts specified are the default or system keyboard accelerators as provided when the software is shipped to you. Please be aware that if you have configured your own keyboard accelerators the shortcuts mentioned may not be valid. You can configure your own keyboard shortcuts via the System - Set Keyboard Mapping command.

Menus, toolbars, icons and help topics all switch when you change between tabs; to reflect the functionality of the module you are working on. When we talk about menu commands or icons in this tutorial we assume that the PCB layout tab is selected. The menu contents will be very different if the schematic tab is selected!

Getting Started Tutorial Movie

See Also:

Reference Manual

Application Framework : Backup and Recovery Procedures

Overview of the Layout Editor

We shall assume at this point that you have installed Proteus. This tutorial is a direct continuation from the schematic tutorial; if you have successfully completed the schematic tutorial then we can simply continue with your current design; alternatively you can load the provided sample design with the schematic completed:

From the Home Page in Proteus click on the Open Sample button (or select Open Sample Project from the File menu), filter to the Tutorials category and then select the "IoT Pump (Schematic Only)" sample.

Opening a Tutorial Sample Design

This will open the tutorial project with the completed schematic from the schematic capture tutorial. We can start the PCB layout module from the application module toolbar at the top of the Proteus application.

If you are working on two monitors or have free screen space you can drag and drop one of the tabs to view both modules simultaneously. If not, you can switch between the tabs with the mouse or via the standard windows CTRL+TAB shortcut key.

Much of the look and feel of the application is similar to the Proteus schematic capture module and hopefully now familiar; although there are some important differences.

The Main Window

The largest area of the screen is called the Editing Window, and it acts as a window on the drawing - this is where you will place and track the board. The smaller area at the top left of the screen is called the Overview Window. In normal use the Overview Window displays, as its name suggests, an overview of the entire drawing - the blue box shows the edge of the current sheet and the green box the area of the sheet currently displayed in the Editing Window. However, when a new object is selected from the Object Selector then the Overview Window is used to preview the selected object - this is discussed later.

PCB Layout Editor Window

See Also:

Screen Layout (Reference Manual)

The Mode Bar

Similar to the schematic capture module, the mode bar on the left of the window determines the current operating mode; facilitating everything from placing components, to routing tracks, to placing text on the PCB.

Mode Bar

The Control Bar

The control bar at the bottom of the application is different from what we have seen in the schematic capture module and is essentially split into five sections:

At the left hand side are the Layer Selector and the Selection Filter. The Layer Selector determines which layer will be drawn on with the currently selected mode. The Selection Filter allows you to configure the object types which will be selected in the current operating mode. If the "Single Layer Selection" toggle of the Selection Filter is on, then selection of objects will also be limited to the currently selected layer. Typically, the default rules will suffice and the Selection Filter serves simply as a convenient override where you may wish finer granularity in selection at a given time.

The Layer Selector and Selection Filter

In the middle is the Status Bar which provides textual ‘hints’ on the object currently under the mouse. This is particularly useful when you hover a mouse over a pad for example, as it will inform you which net the pad is on.

The Status Bar provides additional information on whatever the mouse is currently pointing at

Next, we have the connectivity status which controls the syncing of the PCB to the schematic and, when everything is synchronised, doubles as a live connectivity checker.

Netlist information and CRC information on the status bar

Next to the connectivity status is the live Design Rule Checker. This will report any physical design rule violations that occur while the board is being designed. A left click on this will launch a dialogue detailing the violations with the further option of zooming in to examine a particular error.

DRC information on the status bar

Finally, at the far right hand side is the co-ordinate display which reads out the position of the cursor when appropriate. These reflect not the exact position of the pointer but the location to which it has been snapped. Default snapping options are selectable from the View menu (or via keys CTRL-F1 and F2 to F4) and the snap values can be configured from the Grids command on the Technology menu

Mouse Co-ordinates

The co-ordinates can be in imperial or metric units as set by the Metric (default key mapping 'M') command. You can also set a temporary false origin using the Origin command (default key mapping 'O') in which case the co-ordinates change colour from black to magenta.

The dot grid on the Editing Window can be toggled on and off using the Grid command, or via it’s keyboard shortcut (by default this is ‘G’). The spacing of the dots normally reflects the current snap setting, except when zoomed out. In this case, the dot spacing is set to a suitable multiple of the snap spacing.

An X cursor can be displayed at the position to which the cursor has currently snapped by using the X-Cursor command, default key mapping is 'X'.

We’ll become familiar with all of these toolbars and use them regularly as we work through placement and routing of the board.

See Also:

Selection Filter (Tutorial)

Selection Filter (Reference Manual)

CRC Status (Reference Manual)

DRC Status (Reference Manual)

Navigation

Navigation of the layout (middle mouse zoom, panning, keyboard shortcuts, etc.), is identical to the schematic capture package. Refer to the Schematic Capture Getting Started Guide or the Schematic Reference Manual for more information.

Visual Aids to Design

As in the schematic capture module, Proteus PCB layout will use visual effects to help you understand what is happening during board layout. There are two principle techniques:

  • Proteus will ‘twitch’ an object when that object is under the mouse and the selection filter enables selection of that object type. This serves to identify when an object is ‘hot’.
  • Dynamic cursors are provided which change to identify what a left click will do at any given time (place an object, select an object, move an object, etc.). A list of cursor types is shown below.
Cursor | Description
 | Standard Cursor
 | Placement Cursor - left click will place an object according to mode.
 | Selection Cursor - left click will select the object under the mouse.
 | Movement Cursor - left drag will move the object selected.

Throughout this tutorial – and indeed whenever you are working in Proteus – you should make use of these visual indicators to as an aid to understanding the software.

Proteus 8 includes a multi-level ‘undo’ and ‘redo’ system via the shortcut keys CTRL+Z and CTRL+Y respectively. If you make mistakes throughout the tutorial remember that you can unwind as many times as you need to!

Display Options

Proteus is capable of harnessing the power of your computers graphics card to speed up operation and provide true layer transparency on the layout. However, as not all machines have sufficient graphics cards, the software is also capable of using Windows to perform display and graphical operations. The three modes of operation are called:

  • Windows GDI Mode.
  • OpenGL Hardware Accelerated Mode.
  • Direct2D Hardware Accelerated Mode

Proteus will test your computer when you first open the application and, if possible, will then set a default hardware accelerated mode for you. Control over hardware acceleration and display options can be found via the Set Display Options command on the System Menu. Some options are relevant only to a particular mode and will be disabled if you select a different mode.

Graphics Mode

The first section of the dialogue reports on whether your graphics card will support OpenGL or Direct2D hardware acceleration and, if so, allows you to switch from Windows GDI mode into one of these two modes.

Select the best option that your graphics card supports.

Opacity

When a hardware accelerated display mode is selected the Opacity section of the dialogue allows you to configure the transparency of various layers on the board.

Opacity options

When using hardware acceleration, Proteus places special significance on the current layer, giving it a higher opacity than other copper layers on the layout. This means that objects on the layer you are working are clearly visible and that objects on the other layers of the board are dimmed. You can control the relative opacity of both the current layer and the background layer(s) using the sliders on this section of the dialogue form. For example, if you wish to disable transparency altogether you could set the background layer slider to maximum.

Additionally, with hardware acceleration you can live view the solder resist and paste mask around pads and vias on the layout (turn on/off from View Menu - Layers). When enabled, you can also adjust the opacity of these layers using the appropriate slider controls

If you are working on complex,multi-layer PCB's it can be useful to define a number of preset views for the board. This is done by creating new colour sets in the displayed layers dialogue (e.g. TOP_VIEW, BOT_VIEW) with appropriate layers visible, and assigning them keyboard shortcuts.

See Also:

Displayed Layers Dialogue

Auto-Pan Animation

In Proteus, holding down the shift key and bumping the mouse against the edge of the Editing Window allows you to pan the screen. Similarly, dragging an object against the edge of the Editing Window will pan the screen in the direction of the drag. This navigation feature is called auto-pan and is controlled via the options in this section of the dialogue form.

Auto-Pan options

You can adjust the distance moved on auto-pan (pan distance), the number of steps taken to cover this distance (number of steps) and the speed of the animation (pan time). These options are available regardless of which mode of operation you have specified.

Highlight Animation

When working in hardware accelerated mode objects under the mouse with smoothly increase their intensity to inform you that they are selectable. The highlight animation options on this dialogue allows you to control the smoothness and speed of this effect.

Animation Speed options

The animation interval controls the frame rate of the animation and therefore the smoothness of the fade-in/fade-out effect. Normally, the default value for this is suitable.

The attack rate specifies the speed at which an object will go from ‘fully off’ to ‘fully on’ whilst the release rate allows you to adjust the speed at which an object will return from ‘fully on’ to ‘fully off’.

These options are only available in hardware accelerated modes.

Multi-Sampling (Anti-Aliasing)

Multi-Sampling is a method used by graphics cards to reduce anti-aliasing effects when graphics are displayed at different zoom levels. It is particularly applicable to text but impacts on all graphics on the layout.

When working in OpenGL mode you can specify the level of multi-sampling you want to use. The higher the level of multi-sampling the better the resulting display but the more GPU resources are consumed. If you select a level of multi-sampling which is not supported by your graphics hardware the software will reset the level to the closest one which your card can handle. For normal operation in Proteus a multi-sampling level of 4x is quite sufficient.

Displayed Layers Dialogue

The displayed layers dialogue allows you to control the visibility and colour of the various layers on the board. You can launch this from the View menu or by clicking the mouse on the status bar at the bottom of the application.

You can change the colour of a layer by clicking on the colour beside the layer and you can control the visibility of the layer via the checkbox beside the layer (where appropriate). All changes are updated live on the layout.

You can switch between the pre-supplied colour profiles (print and screen), create your own colour profiles via the 'new' button at the top of the dialogue form, and assign keyboard shortcuts to colour profiles. This allows you for example to have a TOP colourset showing only top coppper, top silk, top resist and top paste mask. More information is available via the context sensitive help for the dialogue form (click on the question mark at the top right of a dialogue and then on a field of the dialogue form to launch).

Finally, if you are working in OpenGL or Direct2D mode, the Resist/Paste Mask Display options allow you turn on full display of these layers on the board, showing the resist and paste coverage around pads and vias. When enabled you can change the intensity of these layers by switching to the Thru-View settings tab and adjusting the appropriate slider controls.


COMPONENT PLACEMENT

Component Placement

A netlist is a set of information about components and how they are connected (wired up), used to transfer information between a schematic module and a PCB layout module.

Proteus 8+ works with a live netlist, so the layout module already has much of the information we need to start the layout process (having automatically received this from the schematic module). In particular, we have specified which footprints are associated with each schematic symbol and so Proteus can therefore pre-select these for us ready for placement. This brings us to an important distinction in the software; the difference between a component and a package.

Components and Packages

  • A component is an instance of a footprint that has been netlisted through from the schematic.
  • A package is a physical footprint that exists in the PCB Layout Libraries.
  • The component "Capacitor C1" has an "0805" package, for example.

More information on the Libraries can be found here.

Selecting component mode will bring up a list of parts (received from the schematic via the netlist) which still need to be placed on the PCB (similar to the list of parts in the Bill of Materials); Proteus also knows how these parts should be connected (wired up), again having received this information from the schematic module.

Selecting package mode will access ‘unconnected’ physical instances of a footprint. This mode is only really useful when wanting to modify an existing footprint, or perhaps check some detail on a particular footprint; when working with a layout which is driven from a schematic we therefore typically only use component mode.

The Component Mode icon is second from the top directly underneath the Selection mode icon. Clicking on this will display a list of items in the Object Selector which correspond directly to the parts on the schematic.

Component Mode

The Package Mode icon is directly underneath the Component mode icon and clicking on this will show us the physical footprints corresponding to the components in the layout.

Package Mode

When placing, routing and laying out a PCB based on a schematic (as is usually the case, and as is the case with this project) then we will be working with Component mode.

The Board Edge

Before we can place the components on the board we need to define what shape and size the board will be. For our project we only really need a simple rectangular board edge, but we can optionally round the edges for a little more practice.

The first thing to point out here is that the layout module will operate in either imperial or metric units and you can switch between modes either by toggling the Metric command on the View menu or via the ‘M’ keyboard shortcut. You may need to switch units for the placement of the board edge and also elsewhere in the documentation.

You can set your default or preferred units from Technology Menu - Set Grid Snaps command. The grid granularity can also be set here.

First we will place a simple rectangular board edge, measuring 65.5x65.5mm. The first thing to do is check that we are in Metric mode and set our grid snap to 0.5mm (View menu). Then select the 2D Rectangle icon from the left hand side of the application.

2D Rectangle Icon

Next, change the Layer Selector to the Board Edge Layer.

Board Edge layer selected

Move the mouse to the approximate starting point for the board edge (e.g. bottom left). Now, hold the mouse still and press the ‘O’ key on the keyboard to set the origin of the co-ordinate system to the point under the mouse (alternatively, you could start the rectangle from the 0,0 point in the default co-ordinate system). The false origin (if set) will be reflected in the co-ordinate display at the bottom right of the application. Left click to start placement and drag in the normal way. The co-ordinate display at the bottom will show you the dimensions of the board edge as you drag.

Drawing a board edge

The ‘M’ key on the keyboard can be used to toggle between metric and imperial units as required whilst drawing, and the 'Ctrl+F1'/'F2-F4' keys can be used to change the grid snap. Once you have the desired size of board edge click left again to commit placement. You don’t necessarily need to worry about where in the Editing Window you have placed the board edge, as we can always move it to the centre of the world area (this will be detailed shortly).

Placed board edge which is always Yellow

If you would like to easily enter a specific size for the board edge using the keyboard, then Edit the board edge graphic (right click, Edit Properties) and set the dimensions to your requirements:

Setting the dimensions of the board edge

Finally, restore the co-ordinate system to it’s global origin again (if a false origin was specified) by pressing the ‘O’ button on the keyboard again. The colour of the co-ordinates will be magenta if a false origin is in use and black if the global origin is in use.

Co-ordinates at 0,0

Placing a board edge should always be the first task as the software needs to know the boundaries of the board in order, for example, to know the limits of where the autorouter can function or the size of a power plane.

If you need to delete the board edge or resize it you can do so via the context menu options and drag handles that will appear when you right click over the board edge graphic.

Select Delete from the context menu

Board Edges of any complexity are best brought in from the MCAD tool via the Import DXF command on the File Menu (and placed onto the board edge layer!)

See Also:

DXF Import (Reference Manual)

In order to draw a board edge with curved corners we can use the "2D Graphics Closed Path Mode". Note that this step is optional and can be skipped if you prefer.

2D Closed Path Icon

We will round the edges of the board with a 4.5mm radius. First delete the rectangular board edge, then start a closed path from a point (0mm,4.5mm) from the origin (global origin or false origin, it doesn't matter). Then hold down the CTRL key to enter arc mode and drag the mouse around to (4.5mm,0mm) and click again (note that the direction of mouse dragging determines the direction of the arc).

2D Closed Path Curve

Release the CTRL key in order to add a straight line segment, move the mouse to (61mm,0mm), and click again.

2D Closed Path Curve to Line

Repeat this process for the rest of the rounded rectangle in order to complete the closed path (co-ordinates will be a variation of 0, 4.5, 61 and 65.5). When you click back on the start point of the path then it will close and complete.

Completing the 2D Closed Path

You may actually find it helpful to leave the original rectangle in place in order to aid the drawing process (the undo button can be used to restore the rectangle if it was deleted), deleting it afterwards. Note that it is also possible to piece together a board edge from individual line and arc segments drawn separately, using the line and arc modes, so long as these touch exactly on their ends (if they do not touch exactly then they will not be considered a complete board edge by Proteus).

Completed Rounded-Rectangle Board Edge

Layer Stackup and Drill Spans

As part of the schematic tutorial, we set the board layer stackup and drill spans using the New Project Wizard. If you should have a need to review/change these at a later stage then this can be done using the Set Layer Stackup command on the Technology menu.

Note that dialogue level help is available should you need it, and if you are unsure about anything then the topic is discussed in detail in the reference manual.

See Also:

Reference Manual : About Layer Stacks

Reference Manual - About Drill Spans

Reference Manual - Specifying Plane Layers

Work Area, Co-ordinates and Snap

It is likely that your board edge covers a small portion of the Editing Window, which is less than ideal as all of the work will be taking place inside this area. We can of course zoom into the area (point the mouse and roll the middle mouse button or use the F6 key) but the default zoom level is designed to show the entire Work area. The Work area is the area inside the dark blue box at the edges of the Editing Window. Let’s tidy this up a bit before we move on.

Start by switching into Selection Mode and then left click and drag a selection box around the board edge.

Selection mode and the board edge selected

If you get it wrong and don’t completely cover the board edge, use the green handles to resize the selection box until it completely encompasses the board edge.

Resizing a box by the drag handles

Now place the mouse inside the selection box, depress the left mouse button and drag into the centre of the work area, releasing the mouse button to commit the placement.

Moving the board edge

Block selection is a very important technique worth mastering as it allows you to easily select and then perform actions on (move, delete, etc.) groups of objects.

Having centred our board edge in the Work area we can shrink the work area to a suitable size. From the Technology Menu, select the Board Properties command and then set to something like 100mm by 100mm, such that the resulting work area forms a reasonable boundary to the board.

Setting the board properties

Move the board outline again if necessary to get it to the centre of the work area.

We saw briefly when placing the board edge that we can specify a temporary origin and use that to place items of a given size (or to place items a specific distance away from our origin point for example). We can however, also specify the location of the Output Origin. This is the default origin used whenever we do not explicitly set a temporary origin and is shown on the layout as a small blue marker.

It can be useful to move this to a corner of the board and particularly so if we have mechanical constraints that we need to consider during placement (e.g. mounting hole locations). For our design, we’ll move the origin to the bottom left corner of the board edge.

1) From the Output menu choose the Set Output Origin command.

2) Move the mouse towards the bottom left of the board edge. Roll the middle mouse button as required to zoom in for more accurate placement.

3) Left click the mouse to commit placement.

The co-ordinate display will now provide values relative to the position at the bottom left of the board by default, and relative to any specified temporary (false) origin when set.

Remember that you can also toggle metric or imperial units via the command on the View menu or the ‘M’ keyboard shortcut.

A useful trick once we have specified our origin is to use the Goto-XY command on the View Menu to move the mouse to the exact location we want to place position sensitive parts. This command will automatically switch between X-Y or Radius-Theta depending on whether you are in polar or cartesian co-ordinates.

The Proteus layout module has a default grid and will snap objects onto the grid, making it easy to form connections and control board layout. There are four hotkeyed snap settings for both metric and imperial units, changeable from the View Menu or by keyboard shortcuts. It follows that changing the snap setting to a lower unit will allow finer granularity, whereas raising the snap setting will make it easier to select objects at higher zoom levels. It is not advisable to change the snap settings regularly through a design but rather to choose the highest appropriate setting for the board you are working on.

You can change the four default snap settings via the Grids command on the Technology Menu:

Grid settings can be set according to the users requirement

The grid display itself can be toggled between off, dots and lines via the ‘G’ key on your keyboard, whilst the colour of the grid can be configured from the Displayed Layers Dialogue (View Menu).

Mounting Holes and Pad Styles

Next we will place some mounting holes on our board. Mounting holes could be added at any stage of board design; if the mounting holes must match a specific enclosure then they will typically be added before placing components, otherwise they could be added after placing components depending on where they fit best. In our case we will place the mounting holes first at the edges of the board, as well as one hole near the centre. We will use a pad with a 3.2mm hole and a diameter of around 6.2mm. The first thing we need to do is switch into circular through hole pad mode and scan for a suitable pre-supplied pad in the Object Selector.

Select the correct pad style for mounting holes

The nomenclature of pads is designed for easy reading and tends to follow the following format:

<PAD TYPE> - <DIAMETER/SIZE> - <HOLE>

Units are in imperial unless prefixed with an ‘M’ so for example a C-40-15 is a circular pad with a 40th diameter and a 15th hole and a C-200-M3 is a circular pad with a 0.2in diameter and a 3mm hole. Our spec requires a pad with a 6.2mm diameter and a 3.2mm hole, which we can see does not exist in the pre-supplied set. We therefore need to create the pad as follows:

1) From the Library Menu select the New Pad Style command.

2) Enter a name for the pad; we recommend you follow the standard naming convention (i.e. C-M6.2-M3.2).

3) Specify the pad type – in our case we want Circular through hole pad.

4) The diameter of the pad is 6.2mm.The drill mark is the size of the mark output in a drill plot, 10th would be fine. The drill hole needs to be 3.2mm and the guard gap should be enlarged to 10th The guard gap (or solder mask expansion) is the amount by which the pad diameter is expanded on the resist plot.

5) At the bottom of the dialogue form we have the choice whether to make this pad style permanent for future designs (Update Defaults option) or local only to this design (Local Edit option). Unless there is a particular reason for a local edit only we recommend that you leave this on the default setting.

6) When you exit the dialogue form you should see that the new pad style is available for placement from the Object Selector.

When entering specific values you may find it easier to simply type in the values that you want rather than using the up and down arrows beside the controls.

We are going to want a mounting hole at each corner of the board, and then another one at a specific position near the centre of the board. With circular through-hole pad mode selected, choose the C-M6.2-M3.2 pad style and place one at each corner of the board (the co-ordinates will be a variation of 4.5mm and 61mm).

Corner mounting holes placed

We want to place the next mounting hole at (32.75mm,39.5mm). This may be challenging using the grid, so we will simply place it nearby and then enter it's exact position using a dialogue. Place the mounting hole somewhere near the middle of the board, then right click on it and select "Move To..." from the context menu.

Moving a mounting hole to a precise location

In the dialogue, enter 32.75mm, 39.5mm and then click OK.

"Move to" dialogue

With position-sensitive components it is often useful to ensure that they cannot be nudged or moved inadvertently after placement. You can lock any object in position by moving the mouse over the object until it is encircled by a dashed line, right clicking on the object and selecting Edit Properties from the resulting context menu. The Lock Position checkbox can then be selected to prevent movement or deletion of the part.

Locking pads and components

You can also set a specific minimum zone clearance for the pad to reserve some extra space for the bolt.

Placing Components, and The Ratsnest

Now that we’ve handled all the basics we can finally start to get our components on the board.

Towards the end of the schematic tutorial, we placed certain components in groups; such as grouping decoupling capacitors together with the components which they should be placed nearby to. We will now draw "placement rooms" on the PCB for these groups. Start by selecting Room Mode:

Room Mode

Draw placement rooms in the approximate locations shown, and assign them to the appropriate groups as shown.

Clicking point by point will create a polygonal room shape, whilst clicking and dragging will create a rectangular room shape.

Room Mode

Placement rooms only need to be approximate as we will move components around after placement. Placement rooms should not however overlap.

If you don't want to draw all the rooms, then you can load the "IoT Pump (Placement Rooms)" sample design.

Next, we will use the auto-placer to place most of the board components in approximate locations. Select "Auto-placer" from the Tools menu and enter 40th for the Placement Grid, 1th for the Edge Boundary, and Push & Shove on. Then click the "Schedule" button to arrange components from largest to smallest, before clicking "OK" to start the Auto-placer.

Auto-Placer

See Also:

Auto-placement and Floorplanning

Once the auto-placer completes, you will notice a lot of green and yellow lines drawn amongst the placed components; the green lines are the "ratsnest lines" and the yellow arrows are "force vectors".

If you see a lot of DRC errors - indicated by red circles - then don't worry, we will adjust the DRC rules to clear these in a following section. The DRC checker can be turned off temporarily by selecting "Design Rule Manager" from the Technology menu, deselecting "Enable design rule checking?" at the bottom of the dialogue, and then clicking OK; we will adjust the rules and re-enable the DRC before routing the board (alternatively, just change the DEFAULT Pad-Pad clearance to 7th).

Auto-Placed Components

The green ratsnest lines indicate wiring connections which still need to be made (by placing tracks or zones to join them). The yellow force-vector arrows indicate approximately where a component should be placed in order to minimise the length of the ratsnest lines attached to it (this is just a guide, components are rarely ever placed exactly where the force-vector indicates).

The number of "missing(s)" displayed in the status bar corresponds to the number of remaining ratsnest lines (connections which still need to be made).

Once we have completed the design, there should obviously be no more "missing(s)" and we should see a green tick here with a "No CRC errors" message.

If you should find the ratsnest lines and force vectors distracting (at least initially) then you can turn them off using the Display Settings dialogue:

The Ratsnest and Force Vector layers turned off

See Also:

Ratsnest Features (Reference Manual)

The auto-placer will place most of the components, however as our board is a bit tight it may not place all of them - this is no problem, as we will quickly place the remaining components manually. Most likely the relay, RL1, was not placed. We will make a little space for it on the left of the board and place it manually (if it was placed on your board then you can simply delete it in order to follow along). Move components as necessary in order to clear a space to the left of the MCU / LSM6DSOX rooms; components can be placed outside of the board edge for now if necessary. Moving of components can be done using the techniques covered in the schematic tutorial as well as earlier in this tutorial.

Once a space has been cleared then select Component Mode, select the relay from the Object Selector, and rotate it as shown:

Selecting and rotating the relay

Also check that the layer is set to Component Side (top side):

Component Side layer

Next we will place the relay on the board. Similar to the schematic, click once to get a preview of the component to be placed, then move it into position and click again to commit the placement. Note that the preview can be rotated using the + and - keys, and the grid snap can be changed using the Ctrl+F1 / F2-F4 keys.

Placing the relay component

Place any other components which may remain. Next, we will quickly cover another two placement methods: Placement by Room, and Placement by Tagged. As we have already placed all our components we don't need to use these, however they are worth covering for future reference.

Placement by Room

Delete all components in the MCU room in order to add them back to the component list (object selector). You may find the selection filter helpful for ensuring that only components are selected and not the room itself. Next, right-click on the group header in the component list and select "Place Group by Room" from the menu.

Place Group by Room

This is similar to using the auto-placer, but just for a single placement room.

Placement by Tagged

The "Placement by Tagged" feature enables you to filter the component list (object selector) by selecting certain components on the schematic. Again delete the MCU components, then go to the schematic and tag the MCU decoupling capacitors.

MCU Decoupling Caps Tagged

Go back to the PCB layout, and select "Tagged" from the component list dropdown - only tagged component tagged on the schematic will then be listed.

Filter component list by tagged components

Place the components again, or undo, so that all components are again placed on the board.

Component References and Values

Component references (IDs) and values are fully flexible and we can move, rotate, resize and hide them independent of the component itself. We can also set the font from the Technology menu (Set Text Style). Component references are visible by default, whilst component values are hidden by default. In order to hide or show a component reference / value, right-click on the component body (not the reference / value text) and select "Edit Properties...", then use the "Hidden" tickboxes. Note that you can also change the component reference / value from here and the change will automatically be back-annotated to the schematic.

Edit Component Dialogue

To change a component reference / value rotation or size; right click on the reference / value label and then select "Edit Label".

Edit Component Label Dialogue

Similar to the schematic module, if you move a component body then the reference / value will move along with it, however if you move the component reference / value labels then these will move independently of the component. Try moving the B1 button label reference to the right of the button, for example.

Moving a component reference

Arranging Components

Next we will arrange the components on the board to approximate locations. Again, this can be done using the various options and techniques already learned (block move, tag-and-drag, right-click drag, block rotate, right-click rotate, etc).

Arrange the components and labels as per the below graphic. You also have the option to practice arranging a few components if you like, and then just load the pre-supplied sample design which has all the components placed ("IoT Pump (Components Placed)").

Components placed and positioned

The following points are useful to bear in mind as you continue placement:

  • The middle mouse will zoom you in and out as you place components (as will keyboard shortcuts F6 and F7)
  • Right clicking on a component once placed will present a context menu option, allowing you to move, rotate or delete the part.
  • Changing the snap settings to a finer grid will allow more accurate positioning at the expense of more precision being required to select the part.
  • If you place a part in an illegal position (e.g. over another part), and DRC has not been turned off, then you will get one or more design rule violations.

DRC errors


DESIGN RULE SETUP

Design Rules and Net Classes

Now that we have a placed board we need to use tracks to link everything up. Before doing so, we will configure the track widths and clearances using a dialogue called the Design Rule Manager. Start by launching this dialogue form now from the Technology Menu in the Proteus Layout module.

Design Rules

The first tab of this dialogue form allows us to configure constraints and minimum clearances for the layout. We have a DEFAULT rule loaded which must apply to all layers and all net classes, providing a set of clearances between objects equivalent to manufacturing guidelines.

The Design Rule Manager

This rule and these clearances are created automatically for each layout in order to provide a minimum set of constraints for a board.

The first thing we need to decide is whether a single rule is suitable for all layers and all traces on the layout. It is possible to create as many new rules as required and we can limit their effect to a given layer on the PCB, a specific area of the PCB and/or a given set of connections (net class). A great deal of information on this is available in the reference manual, and we will cover a few of the potential scenarios in this tutorial.

As a number of the components on our board already have Pad-Pad clearances which are smaller than the default 10th setting, the first thing which we will do is adjust the default Pad-Pad clearance down to accommodate this. Select the DEFAULT rule and click the "Edit" button, then change the Pad-Pad clearance down to 7th before clicking OK.

Default clearance settings in the DRC manager

The Pad-Trace, Trace-Trace, Graphics and EdgeSlot clearances are fine at the default values.

Note that the edge/slot clearance field defines the clearance for power planes against the board edge.

If you disabled design rule checking earlier in this tutorial, then be sure to enable it again now by checking the "Enable design rule checking?" box.

As our relay switch tracks will carry the relatively high voltage of mains power, we will want to give these some additional clearance to avoid arcing. Create a new design rule at the Board level and give it any sensible name, e.g. RELAY_SW. We want this rule to apply to the whole board, with respect to our RELAY_SW class (which we set on our relay switch tracks on the schematic by applying wire labels to them), with clearances of 50th throughout.

Rule for the RELAY_SW class

In addition to these clearances there is a board global rule for Resist-Trace clearance. This rule enforces a clearance between the solder mask and copper and is intended to prevent exposed slivers of copper on the manufactured PCB.

If, during route placement, you find these DRC errors, the solution is to either move the trace or edit the pad style and change the guard gap (solder mask expansion) for that pad style.

We will move onto the Net Classes tab for now, but we will come back to the Design Rules tab a little later.

See Also:

Setting Design Rules (Reference Manual)

Design Rule Examples (Reference Manual)

Net Classes

This is the place where we configure trace and via styles and control which layers we route on when auto-routing the board. The selector at the top allows us to switch between different net classes and configure each separately.

Proteus contains the SIGNAL class by default, and any nets which are not specifically assigned to a class (and are also not POWER nets) will automatically be assigned to this class. Any nets which are connected to a POWER or GROUND terminal will be assigned to the POWER class by default. The other net classes present in the list are the ones which we specifically created on the schematic by assigning CLASS=xyz wire labels to their wires.

Let’s start with the POWER Net class. We’ll set the track / trace size to 20th, to assist with current-carrying capacity and also to reduce track impedance (we’ll also place low impedance ground planes later to help with this). In Proteus nomenclature this corresponds to track style T20.

In order to get these thicker tracks routed into our finer-pitch components, where things are more congested and 20th tracks simply won't fit, we will set a Neck Style of DEFAULT (which is 10th). Track necking (thinning) is a feature whereby tracks may jump to a different size under exceptional circumstances, such as to pass through obstacles. Together with our design rule aware routing (which knows which objects are obstacles) this is very powerful. When set, you can hold the SHIFT key during route placement to toggle between necked and normal track styles which is invaluable in tricky or dense routing.

Advanced necking: The SHIFT key is held down while routing the escape from the BGA and then released to resume routing at normal track width.

We will stick with the default Via Style.

If you are not sure of the characteristics of a particular style, you can view them by selecting the appropriate mode icon (via, track, pad, etc.), highlighting the style in question in the Object Selector, and then clicking on the ‘E’ button at the top of the Object Selector.

The remaining options on the left of the dialogue form allow us to optionally select different trace and neck styles for the inner layers, choose between Smart and Thru-Hole vias and optionally select a different colour for this net class's ratsnest lines (or hide them entirely). If the Smart via type option is selected then the autorouter will automatically use blind/buried vias where appropriate. Changing the colour of the ratsnest lines can be useful if we are manually routing and wish to quickly distinguish between power and signal connections, or even highlight high-speed lines.

On the right side of the dialogue is the layer assignment for autorouting. We can use these settings to restrict certain net classes to specific layers, as well as to tell the autorouter to prioritise certain classes over others. As our bottom layer is a Plane layer (no tracks allowed), we need to tell the autorouter to use the Top Copper, Inner 1 and Inner 2 layers for routing; select Top Copper and Inner 1 for Pair 1, and Inner 1 and Inner 2 for Pair 2.

We should now have finished setting up the POWER net class – your dialogue form should now be configured as per the following screenshot.

Specifying the POWER net settings

Let's now do the settings for the remaining net classes. All net classes should use the Autorouting Layer Assignments already specified, and the routing styles should be as follows:

Net Class | Trace Style | Neck Style | Notes
POWER | T20 | DEFAULT | Thicker traces for power tracks.
50_OHM | T20 | (None) | Trace thickness calculated (using an external tool) for 50 ohm impedance.
RELAY_SW | T80 | (None) | Thicker traces for relatively high-current relay switch tracks.
SIGNAL | DEFAULT | T6 |

Creating your own net classes on the schematic is extremely simple and provides you with the flexibility you need both with regard to trace and via configuration but also with design rule constraints

See Also:

Net Classes (Reference Manual)

Design Rule Rooms

We have set our board-level Pad-Pad clearance rule to 7th in order to accommodate our fine-pitch components. Our Pad-Trace and Trace-Trace clearances are still set to 10th however, so when we start trying to route tracks into and around our fine-pitch components then we will likely start running into Pad-Trace and Trace-Trace DRC problems. We could set the board level values for these rules down in order to resolve the problem, however if we would like to keep greater clearances on our board in general but allow tighter clearances within a specific area (such as around a fine-pitch component) then we can use the DRC Room feature to accomplish this. Using this technique, we will need DRC Rooms around our MCU, the IMU and the DC-DC converter (the DRC rooms in the following image are the red dashed rectangles around the highlighted components).

DRC Rooms (red dashed rectangles)

To draw a DRC room, select the Room Mode tool (the same as what we did for the placement rooms).

Room Mode

Draw a room around the relevant component, but this time select the "DRC Room" option.

Edit Room

Draw rooms for the MCU, IMU and DC-DC Converter (using names such as "MCU_DRC", "LSM6DSOX_DRC" and "DC-DC_DRC"). Our rooms only need to apply to the Top Copper layer of the board (where our fine-pitch SMD components are placed).

Clicking point by point will create a polygonal room shape, whilst clicking and dragging will create a rectangular room shape. The auto-router currently only supports rectangular DRC rooms.

Next go back into the Design Rule Manager and you should see the new DRC rooms listed under the Top Copper layer. Select each room and create a rule for it, with 7th clearances on Pad-Pad, Pad-Trace and Trace-Trace.

Edit DRC Room Rule

Design Rooms are a really useful concept and helpful wherever clearances vary in specific regions of the PCB. This can be as simple as pad-pad clearance on fine pitch SMD devices, fanout areas from BGAs, edge connectors at the board edge and so on. We strongly recommend you read up further in the reference manual.

Differential Pairs

Differential pairs functionality is included in the Advanced Feature Set and requires a license for PCB Design Level 2 or higher.

The last thing which we need to do in terms of design rule setup is to handle our differential pair rules for the USB. Using an external tool (such as a website or the Saturn PCB Toolkit) we calculated our track thickness at 10th and our track separation at 12th for a 90ohm differential impedance on our Inner 2 layer.

In the Design Rule Manager, go to the Net Classes tab and create a new net class called "USB", giving it a Trace Style of T10.

USB Net Class

Next go to the Differential Pairs tab and assign the USB Net Class to the USB Diff Pair. Set the Min Paired Separation to 12th, the Max Unpaired Length to 0.2in and the Max Phase Shift to 15th.

Differential Pair Setup

Next go to the Design Rules tab and create two rules:

1. A Board-level rule, called USB_PAIR_RULE_1, which enforces the 12th Min Paired Separation by have a Trace-Trace Clearance of 12th. This rule should apply to the USB net class with respect to itself ("The Same Net Class").

Differential Pair Spacing Rule

2. A rule on the Inner 2 layer, called USB_PAIR_RULE2, to keep other tracks well clear of the USB differential pair by enforcing 20th Pad-Trace and Trace-Trace clearances. This rule should apply to the USB net class with respect to other net classes.

Differential Pair Clearance Rule

Click "OK" to close the Design Rule Manager once done.

See Also:

Design Rules

Design Rule Hierarchy

Layer Pairs

On 2-layer boards, any vias will obviously go between Top Copper and Bottom Copper. On multi-layer boards, we can instruct Proteus regarding which layer to jump to by default when placing a via from another layer during manual routing. On our board, for example, the Bottom Copper layer has been set as a "Plane Layer" (for impedance-control reasons) and we do not wish to route any tracks on it - when placing a via from the Top Copper we will therefore not want to jump to the Bottom Copper by default (in fact, Proteus will not even allow this due to the Bottom Copper being a Plane layer), but rather to one of the inner layers. To set this up, launch the "Edit Layer Pairs" dialogue by selecting "Set Layer Pairs" from the Technology menu.

Layer Pairs Dialogue

Change the Top layer pair to be Inner 2. When we start placing a via from the Top Copper during manual routing then the layer selection will change to the Inner 2 layer by default (note that this is only the default and we can of course select a different layer at that stage if we wish). Inner 1 can stay paired with Inner 2 and vice versa as per the defaults; when we place a via whilst routing on the Inner 2 layer then the layer selection will change to the Inner 1 layer and vice versa.

See Also:

Smart Vias and Layer Pairs

Length Matching

Length matching functionality is included in the Advanced Feature Set and requires a license for PCB Design Level 2 or higher.

Length Matching can be setup in the "Length Tuning" dialogue, available from the Technology menu.

Configuring Length Matching Options

The default settings will be fine for our application, so no changes are needed here.

Teardrops

Teardrop functionality is included in the Advanced Feature Set and requires a license for PCB Design Level 2 or higher.

Placing teardrops at the connection point between track and pad is often useful in preventing drill breakout during board manufacture. We can configure teardrops from the Set Teardropping command on the Technology Menu.

The dialogue form lets us set the maximum annular ring size on a pad below which a teardrop connection will be made and then also lets us set the length of the teardrop. You can, if you want, also apply teardrops to surface mount pads although we are not aware of any manufacturing reason for doing so. On surface mount pads the annular ring parameter is considered to be center pad to nearest pad edge.

You can also taper the tracks. This option sets the preferred length for the track taper based on a percentage of the width of the thickest track (to ensure consistency across the board).

A per pad override for setting/clearing a teardrop connection can be accessed from the edit single pin dialogue. This provides an additional level of control over where teardrop connections are made.

Note that the creation of a teardrop connection is dependant on the design rules. If making a teardrop connection would violate one of the design rules then it will simply not be created.

Once configured teardrops connections will be made dynamically as we complete routes in the sections below.

Tutorial Movie : Using Teardrop Connections in Proteus.


ROUTING

Routing the Board

Having configured the board constraints we can now move on to actually making connections and routing the board.

You can load the "IoT Pump - Unrouted" sample design in order to continue from this point, if you have not already successfully completed the previous sections.

Manual Routing

Before we start, we will want the ratsnest lines turned back on. If you have them disabled (can't see any green lines between pads), turn them on from the View Menu - Displayed Layers dialogue.

When routing a board which features "high-speed" / impedance-controlled traces then it is generally a good idea to route the high-speed traces first, so that the other traces can be routed around these more sensitive tracks (rather than trying to route the more sensitive impedance-controlled traces later around and through a potential network of existing "lower-priority" tracks). In our design we will be treating the USB, SPI and ICSP lines as high-speed traces. Whilst the SPI and ICSP are not "really" high-speed connections, we will be treating them as such in this design in order to demonstrate the relevant features without resorting to an overly complex tutorial design. In addition, our antenna traces (GSM / BlueTooth) are also impedance-controlled traces, and we will route these manually as well. In general, manual routing (as opposed to auto-routing) is used where we need more specific control over track position / path.

Before starting with manual routing let's look at how routing works and various configuration options. There are two main ways to route in Proteus, namely Push mode and FMR mode. You can toggle the routing mode at any time with the SHIFT+P keyboard shortcut.

Push Mode

This is the default mode and allows you to move tracks and vias out of the way of the route being placed while obeying all design rules. Generally faster and more productive routing as it doesn't involve a lot of manual editing to make space for route placement. Also superior in densely packed regions of the board.

FMR Mode

This is also a fully design rule aware routing mode but will treat all objects as immovable. Useful for hugging tracks and where you want total control over all route topology. FMR mode is also needed if you want to place routes with curved corners as this is not currently supported in Push Mode.

Mode Switching and the Status Bar

You can switch between modes using the SHIFT+P keyboard shortcut. This will work at any time including during route placement, meaning for example that you can start placing a route in push mode and then switch to FMR mode to hug another route. The current routing mode is shown along with other route information on the status bar during route placement.

Switching modes displays on the status bar during route placement

Route Command Centre

You can fully configure routing from the route command centre (keyboard shortcut R). This will also work at any time, including in the middle of route placement. This provides another way to change routing modes (although less fast) but also gives you control over what objects are pushed and the size of the Visual DRC display for example.

Route Command Centre (Keyboard Shortcut 'R') is the place to configure manual routing options.

Shortcuts
Keyboard | Action
Left Click | Left click while placing a track commits the bit already completed (places an anchor). Also terminates the track at a pin or other connection.
Double Click | Places a via at the current mouse location and continue routing on the next layer (as defined in layer pairs dialogue).
Right Click | Terminates the track at a point in space.
R | Launches the Route Command Centre.
SHIFT+P | Toggles between Push Routing Mode and FMR Routing Mode.
SHIFT+D | Toggles Visual DRC view on and off.
SHIFT+C | Toggles corner type between mitred and curved. Currently only enabled in FMR mode (not supported in Push mode).
SPACE | Floats a via on the end of the track. You can then move the via to desired location and left click to place. Can also use up/down arrow keys to select the via depth / drill range.
ENTER | Auto-complete the route according to the shadow track shown.
F2-F4 Keys | Change the snap level. Normally, this is fine at defaults but you probably don't want a really fine snap when terminating tracks as it makes it harder to snap to centre of pin.

We will start by routing the SPI lines first. These will of course start and end on the top-copper by the component pins, however we will immediately drill them down onto the inner layers and do the majority of routing there for impedance control reasons (using primarily Inner 2 but jumping to Inner 1 when necessary).

Start by selecting track mode at the left hand side of the Object Selector and changing the layer selector to be on Top Copper.

Trace / Track selection and the Layer selector

We'll start with the MOSI line, which is between pin 17 of the MCU and pin 14 of the IMU.

Track ("MOSI" net) will go from pin 17 of the MCU to pin 14 of the IMU

Regardless of the routing mode Proteus features a sophisticated routing algorithm for manual routing in which the route being placed will follow the path of the mouse as best it can while still obeying all of the design rules for the board that we set up previously.

To start the track, click on Pad 17 of the MCU; then move the mouse upwards to start directing the track. As soon as we start the track the status bar changes to show the current routing mode along with the route length and other useful information.

You'll also notice an enlarged circle around the mouse pointer. This is called Visual DRC and will show you the design rule clearances of all obstacles inside the circle - really helpful in plotting your route path across the board.

There are also a few other changes to the display to assist with routing:

  • All other ratsnest lines disappear and only the one(s) relevant to our current track remain(s) visible.
  • Component pins and tracks which belong to the current net are highlighted, whilst all others are dulled.
  • A white line (with an arrow if far enough away) appears going from the mouse pointer to the nearest valid component pin which we can connect to, and that pin is highlighted with a white dotted border. If the pin is on a different layer than the joining line appears dashed, and the pin is not highlighted with the dotted border.
  • If "Click to complete" is turned on then a ghost "auto-complete" track appears; the "auto-complete" can be accepted by pressing the ENTER key.

Note that we can still zoom in and out whilst routing, and that if the mouse gets close to the edge of the editing area whilst routing then the view automatically pans in that direction.

Display interface whilst routing

The track generally follows the mouse pointer and hugs around obstacles, honouring the specified DRC clearances. In push mode (the default) we can move other tracks and vias out of the way if necessary, whereas in FMR mode (SHIFT+P to toggle) all objects are obstacles for hugging. Anchor points can be placed by left-clicking - when an anchor point is placed then the track is "committed" up to that point and display thereof changes from an outline to a solid fill (to un-commit again simply drag the mouse back over the committed section). Vias can be placed (whilst routing) by double-clicking, pressing the Spacebar, or using the Page Up / Page Down keys. More details on these points follow below.

To continue with our routing (having clicked on pin 17 of the MCU to start our route), move the mouse up a little distance and then double-click to place a via. The layer selection should automatically change to "Inner 2", as per our Layer Pairs setup.

Placing a via to the Inner 2 layer

Move the mouse up near pin 14 of the IMU and then use the Page Up / Page Down keys to prepare a via which will jump to the Top Copper layer. We cannot use the double-click or Spacebar shortcuts in this case as the default layer pair partner for Inner 2 is Inner 1 rather than Top Copper.

Placing a via back to the Top Copper layer

Click to place the via, and then move the mouse onto pin 14 of the IMU and click again to complete the route.

Completing the route

That's it! We've completed the route.

Completed Route

Manual routing is probably the most common action you will perform with the software and it is vital that you understand how it works. The basic rules of operation are :

  • Left click on pad, track or zone border to begin routing from that object.
  • SHIFT+P key toggles between push mode and FMR mode. Status bar tells you which you are in.
  • Left click at any point during routing to commit the route up to the mouse position (we call this anchoring).
  • Right click to terminate the route at it's last committed / anchored point.
  • ESCAPE key to abandon route entry completely.
  • ENTER key will automatically complete the track in the path shown by the 'shadow' track.
  • SPACEBAR to float a via on the end of the route and left click to then place the floating via.
  • Double left click to drop a via at the current mouse position.
  • Move the mouse backwards over existing tracking to rub-out.
  • SHIFT+N key toggles the neck style on/off.
  • SHIFT+C key toggles curved tracking mode on/off (only available in FMR mode).
  • R key launches Route Command Centre to configure routing modes and styles.

Route Command Centre

Route command centre is a central dialogue form which offers full control of routing modes and styles. It can be launched using the R keyboard shortcut at any time - including in the middle of placing a route.

The top left section deals with route placement modes. Some options are then specific to the mode - for example, you can decide whether to disable via pushing but only when you are in push mode. Similarly, you can choose to route with curved corners but only when in FMR mode.

The bottom left section then allows you make mid-route changes to the routing style and necking style. These fields are only enabled when you launch Route Command Centre while placing a route. If you launch from the Tools Menu or via the keyboard shortcut when not routing they will be disabled. This is because track and via styles come from the net class setup and changing during route placement is to allow exceptions to the net class defaults.

The top section on the right deals with route editing and enables design rule aware route editing. This is super helpful when tidying up tracks and safely making space on the board and should be left on unless there's good reason to disable.

Finally, the bottom right section lets you adjust the size of the Visual DRC circle, turn it off completely or enable it for all objects instead of only immovable objects. The latter option is a little subtle because it depends what mode you are in. In push mode, most tracks and vias can be pushed and are therefore not immovable. This is normally helpful because you can see at a glance both where you cannot go (immovable with DRC clearance) and where you can force your way (pushable objects). In FMR mode, all objects are immovable and therefore always show their clearances.

You'll find detailed help on all of the fields in the dialogue level help accessed by the question mark icon at the top right of the dialogue form.

See Also:

Route Command Centre

Manual RoutingExamples

We strongly recommend experimenting with manual routing for a while on this board until you are comfortable with how it works in both main modes. You'll probably find that initially you use Route Command Centre to make changes to routing modes but over time you learn the main keyboard shortcuts and then use them directly. The following is a summary of how to perform common actions; try these while routing any of the remaining connections.

Switching Modes

Switch between push mode and FMR mode using SHIFT+P and verify on status bar which mode you are in. Push mode will be your primary tool but FMR mode may occasionally be useful as well.

Panning and Zooming

While placing a track you can use the middle mouse wheel (or F6 & F7 keys) to zoom in and out during routing. Panning will happen seamlessly when the mouse is at the edge of the Editing window during routing.

Placing Anchors

The routing algorithm will move the track being placed according to the way you move the mouse. If you want a track to follow a particular path then you need to help by left clicking whenever you change direction. This places an anchor or commits the route up to the mouse pointer such that the follow me router will not change it. You will see this happening as the outline track becomes solid.

Getting Stuck / Re-routing while routing

Since the manual routing system obeys the design rules for the board you don't need to worry about clearances while placing routes. You can however route to a place where you are blocked (the routing icon will change to a no-go sign at this point). Often you just place a via and continue on but sometimes it is better to rewind and try another path across the current layer.

Moving the mouse backwards over the route being placed will rub out that portion of track so to rewind and change direction just move the mouse back to the last good point - anything you had placed from that point onwards will be removed.

On densely packed boards in particular, speed of mouse movement is an issue. Remember that you are guiding the placement so moving slowly through tight spaces will work far better than ripping the mouse from source to destination. Use the SHIFT+N key to toggle in and out of neck style - this will get you through tight spaces.

Placing Vias

If you double click during placement you will place a via at the point the mouse is at and can then continue routing on the associated layer. If you press the spacebar you will float a via on the end of the mouse and can then position the via manually before placing with a left click. Using the spacebar has the advantage of snapping to legal objects (e.g. via under SMT).

In either case the placement of the via is also design rule aware and the PCB editor will not let you drop a via in an illegal spot. If you use the floating via method (with the spacebar) Proteus will attempt move the via to the nearest legal spot. This can be extremely useful on busy boards or when you want to butt a via tightly against another object.

Layers used for via's are defined in the Layers Pairs dialogue on the Technology Menu. Examples of routing with vias and discussion on layer pairs follows further in the tutorial.

See Also:

Smart Vias and Layer Pairs

Object Hugging

It's often easier to use FMR mode (SHIFT+P to toggle) to hug a track to another track or to wrap a track around an object. If the mouse is over an object where the route being placed cannot travel then the route will follow the mouse path as closely as it legally can, essentially hugging the barrier object.

You can hug in push mode but only if the object you are hugging cannot be pushed !

Abandoning a Route

- If you want to abandon the route at the last committed (solid) segment then right click the mouse.

- If you want to abandon the route at the mouse pointer then left click to commit up to mouse pointer and then right click to terminate the track.

- If you want to abandon the route completely then hit the ESCAPE key..

Making Connections

If you are connecting directly to a pad then a left click of the mouse will complete the connection and terminate route placement.

If you are connecting to a track then left click will commit the placement and right click will terminate the route forming the connection. The same procedure applies if you are connecting to a zone except that you must connect to the zone border.

Route Editing

Next, we will take a look at some options for editing a route after placement. We could of course just delete the whole route and route it again, however it is almost always more advantageous to simply modify the existing route. The right-click context menu provides almost all of the available options for route editing.

Route right-click context menu

Note that the editing is sensitive to the specific point on the track / section of the track which was clicked. The various "Trim" commands can also be used to limit editing operations to a particular section of track. Take some time to experiment with each of the following commands (as well at the other commands, if you like) - the Undo command (Edit menu / Ctrl + Z) can be used to undo any changes you make. Some of the commands in the context menu, such as Length Matching and Via Shield, will be handled in following sections. Remember that the commands are specific to the particular point on the track / section of track which was clicked, as well as to any selection limitation ("Trim" commands), so you may wish to experiment a few times with some of the commands at different points in the track / with different track selections.

Route Editing by default is design rule aware so you cannot drag a track into an illegal position. This is shown in the status bar during editing and you can toggle DRC awareness off using SHIFT+A or in the Route Command Centre

Command | Description
Drag Route(s) | Drag / move the section of track which was clicked.
Modify Route | This command starts routing a new track from the point which was clicked, and continues until you rejoin the existing track; at which point the segment of existing track - between the start and end point of the new modified route - will be deleted.
Delete Route(s) | Delete the currently tagged track(s) or section of track.
Edit Via Properties... | If right-clicking on a via, then this command launches the "Edit Via" dialogue, which enables changes to via Drill Span, Style and Teardrop.
Move Via to... | If right-clicking on a via, then this command launches a dialogue which allows you to specify exact X/Y co-ordinates for the via.
Delete Via | If right-clicking on a via, then delete the via.
Copy Route | Make a copy of the whole route (or selected section of route).
Move Route | Move the whole route (or selected section of route).
Change Layer | Change the layer of the selected route(s) / route section(s).
Change Trace Style | Change the trace style of the selected route(s) / route sections(s).
Change Via Style | Change the style of all vias on the selected route(s) / route section(s).
Mitring | Mitre or unmitre square track corners or switch between mitred and curved cornering.
Trim to vias | Trim the selection to be bounded by the nearest vias, including the vias themselves.
Trim to current layer | Trim the selection to the section of track on the current layer. Similar to "Trim to vias", but does not select the vias themselves.
Trim to single segment | Trim to the clicked on straight segment of line.
Trim manually | Allows you to then select a second point on the track, and will trim the selection to the section between the two selected points.

Tracks and vias can also be tagged (selected) when in selection mode, and then dragged or deleted without invoking the right-click context menu. To drag a track simply click and drag it; to delete a track double-right-click on it.

Two of the most common operations, Drag Route and Modify Route, are illustrated in the following screenshots.

Examples of dragging a route and modifying a route

It is also possible to simply draw a new route or section of route, and then delete the old route / section afterwards.

Drawing a new section of route and then deleting the old section

See Also:

Reference Manual: Route Placement & Editing

Reference Manual: Manual Routing Examples

Length Matching

Undo any changes which were made during experimentation (or just redraw the route), so that the MOSI route is again a simple straight connection between the MCU and IMU, with most of the track on the Inner 2 layer. Next, proceed to route the MISO (MCU pin 16 to IMU pin 1), SCK (MCU pin 15 to IMU pin 13) and LSM6D_CS (MCU pin 18 to IMU pin 12) routes in a similar manner. Do a hop to Inner 1 with the SCK line in order to get it over the MOSI and MISO routes. Allow some distance between the tracks, as we will length-match them shortly and will need some space for the length-matching serpentine squiggles.

SPI lines routed

We will now length-match the SPI lines (MOSI, MISO, SCK and LSM6D_CS). In order to do this we first need to select the tracks which we would like to length-match: with Selection mode (cursor icon) enabled, click each track once whilst holding down the CTRL key. Then right click on one of the tracks, select "Length Matching" from the context menu, and then "Match route lengths". Move the squiggles, as per the following diagram, by clicking on them and then dragging them to the desired position.

Automatic length matching is part of the advanced feature set and requires PCB Design Level 2 or higher. If you do not have PCB Design Level 2 or higher then simply leave out the length matching (route lengths will stay unmatched).

Length matched routes, and moving of the serpentine squiggles

For some more practice, also manually route and length match the MCU_SWDIO and MCU_SWCLK routes.

Manually routed, and length matched, MCU_SWDIO and MCU_SWCLK routes

Other points to note about length matching.

  • The length of a track is shown on the status bar when it is selected.
  • If a track is part of a group that has been length matched the target length is also shown in the status bar when you select the track.
  • Routes matched against each other will automatically re-match (where possible) after you edit one route in the group.
  • You can see any non-compliant routes in a matchgroup by selecting connectivity highlights icon and filtering the object selector to length matched nets only.
  • The pre-production check will test all matched tracks against their target length and warn you if their length has changed.
  • If you choose routes with vias the length (depth) of the via is calculated from the thickness values you enter in the layer stackup.

See Also:

Reference Manual: Length Matching Routes

Reference Manual: High Speed Routing Examples

Curved Routes

Placing a route with curved corners can be helpful with signal integrity and net tuning or simply for aesthetic reasons. In Proteus, curved routing is only possible (at the moment) in FMR mode. So,

1) Left Click the mouse to start the route.

2) Check status bar and SHIFT+P to toggle into FMR mode if necessary.

3) SHIFT+C to toggle on curved corners and guide the route towards the destination pad with the mouse.

4) Left click the mouse on the destination pad to terminate the route.

Next, we will route the BlueTooth antenna trace on our board. We will used curved routing in order to maintain constant impedance along the tracks length.

Start a trace, as per normal, from pin 20 of the GSM module.

Move the mouse down a little, switch to FMR mode (SHIFT+P - status bar will tell you) and then use SHIFT+C to toggle on curved cornering. Or, press R to enter Route command centre and set up from the dialog form.

Click to place an anchor point and commit the initial curved section, then continue using the technique to place the remaining sections...

...until the route is completed. You may even wish to take advantage of the track auto-complete option by pressing the ENTER key ("Click to complete" option must be on).

Curved routes can be edited and segments dragged in exactly the same way as linear routes.

Keepout Areas

Keepout Areas can be used to limit areas in which tracks can be placed. We will use some keepout areas to ensure that the impedance of our impedance-sensitive (lenth-matched / RF) tracks are maintained, and not disturbed by other tracks breaking the reference planes beneath / above them. To form a keepout area, start by selecting the 2D Box graphic icon and changing the layer selector to be keepout.

Selecting the Keepout layer

Next, draw a rectangle over the section of the SCK track (between the MCU and IMU) which is on the Inner 2 layer (and which will therefore be referenced to the Top Copper plane, which is as yet to be placed, for impedance-control purposes - again, the SCK track is not really "high-speed", but we are treating it as such for the purposes of this tutorial).

We are immediately presented with a number of DRC errors, as the keepout box defaults to "all layers" and we already have some tracks within it. Right-click on the keepout box and then select Change Layer -> Top Copper from the context menu.

Setting Keepout Layer to Top Copper Only

Also connect the GSM antenna (pin 32 of the GSM module) and draw a Keepout to surround this track, setting the Keepout to apply to layer Inner 1 only.

GSM trace and keepout around it on layer Inner 2

Because the GSM antenna pins are through-hole and present on all layers, a DRC error is generated around the GSM antenna centre pin. There are three ways to resolve this error:

1) Make the Keepout box smaller, so that it is not too close to the GSM antenna centre pin.

2) Ignore the DRC error: Click on the DRC status bar to bring up the Design Rule Errors window, then right-click on the error and select "Ignore this error".

Ignoring a Design Rule Error

3) Place a DRC Room around the GSM Antenna centre pin (setting it to apply to layer Inner 1 only), and then create a Design Rule for that room with "Edge/Slot Clearance" set to "OFF".

Drawing a DRC Room around the antenna centre pin

DRC Room rule with Edge/Slot Clearance set to OFF

Option (1) will work fine in this case, so simply make the keepout slightly smaller, avoiding the GSM antenna centre pin.

Also place a keepout under the BlueTooth antenna trace, also applicable to layer Inner 1 only.

BlueTooth antenna trace keepout (applicable to layer Inner 1 only)

Differential Pair Routing

Differential pair routing is part of the advanced feature set and requires PCB Design Level 2 or higher. If you do not have PCB Design Level 2 or higher then simply skip this section.

We have one differential pair to route on our board, the USB D+/D- differential pair.

Start by breaking out the relevant pins down to vias, so that we will be able to route the differential pair on the Inner 2 layer. Breakout the D+/D- pins on both the microUSB connector as well as on the MCU, as per the following screenshots.

Breakouts, in preparation for differential pair routing, from microUSB connector and MCU

Next, select Differential Pair mode and the Inner 2 layer.

Differential Pair mode and layer Inner 2

We can start the differential pair at either the microUSB connector or the MCU, but for this tutorial we will start it at the microUSB connector. Start by clicking on either of the breakout vias by the microUSB connector. At this point things are just like manually routing any other track. Move down a little and place an anchor point, before moving diagonally down and to the left.

Continue down to the MCU and place a curved section of track before joining to the MCU breakout vias (as before, FMR mode and SHIFT+C for curved corner).

Once completed you will notice that serpentine sqiggles were automatically added at any corners in the track, in order to re-match the phase of the tracks.

Serpentine squiggles added to re-match the phase of the tracks

If we would like to see the phase sync along the length of the differential pair then this can be done using the "Display phase-offset" feature.

"Display phase-offset" command

In phase-offset display mode; green represents sections of track which are in-phase, yellow represents sections of track where the phase-shift is 50% or more of the specified maximum (as per the Design Rules), red represents sections of track where the phase-shift is 100% or more of the specified maximum, and brown represents section of track where the phase is being re-matched.

Phase offset display mode

You can use differential pair routing in push mode and it will work just fine (pushing other objects in the same was a single track) but curved cornering is currently only supported in FMR mode.

See Also:

Reference Manual : Differential Pairs

Basic Auto-Routing

You can load the "IoT Pump - HS Routed" sample design in order to continue from this point, if you have not already successfully completed the previous sections.

We will now use the auto-router to complete most of the remaining routes. As with the manual tracking, the auto-router will obey design rules that we configured earlier.

Start by invoking the auto-router from the Tools Menu or from the icon at the top of the application.

Select the Autorouter from the Tools menu

The resulting dialogue form is reasonably complex but all fields have context sensitive help associated with them. You can also find additional information about the various type of routing pass in the reference manual. For our purposes (and indeed for most boards of small/medium complexity) the defaults are adequate. We’ll start by running in ‘fully automated mode’, which should be selected by default, so simply hit the begin routing button to start the autorouting process.

The Autorouter dialogue form

If you see a warning regarding class-class design rules, then it is fine to just click "OK" - if there are any DRC errors present after the autorouting process then these can simply be manually corrected.

Everything will happen quite quickly from this point onwards but you should see routing progress on the status bar as the engine works towards completion. Once the auto-routing process is complete there are two immediate points of note:

  • The auto-router has preserved those tracks that we placed manually and has not ripped and replaced them whilst working on the rest of the board.
  • Once the autorouter has completed, a final pass is made to corner the tracks. If you prefer this not to happen you can remove the Recorner Pass option on the dialogue form before invoking the router

Seting the Recorner Pass to be "No"

Depending on the exact positioning of components, the autorouter may not complete all connections under the "basic schedule", and you may need to manually complete these using the techniques learned earlier. We will take a look at advanced autorouting techniques next however, so you may wish to leave manual routing / tidying till after that section. If any DRC errors are present on the board, then you may wish to correct these now by moving the relevant tracks / vias.

See Also:

Autorouter : Basic Operation (Reference Manual)

The Selection Filter

We will now spend a little time looking at the techniques for selecting various object types on different layers.

The Selection Filter at the bottom left of the application window is used to determine which objects are available for selection at any given time.

The left most button will determine whether the layer selector is active:

When this is toggled off the selection applies to all layers on the board.

When toggled on the selection applies only to the layer specified in the layer selector.

The other buttons represent different object types (tracks, components, graphics, etc.) and determine whether those object types are selectable. Hover the mouse over an icon for a tooltip description.

If you switch between the different modes of operation (for example from selection mode to track mode to component mode) you will see that the selectable object types will change according to the mode you are in. Whilst these are good defaults for normal operation, you can change them at any time simply by toggling on or off the layer switch or object type that you do or do not want to be selectable. If you find yourself changing selectable items regularly then you can also change the defaults via the System Menu – Set Selection Filter command.

The Layer Selection options

Let’s for example say that we wanted to delete all tracks from the board and start over with routing. Start by entering Selection Mode and left dragging a selection box around the entire board.

Select the entire board

Next, set the selection filter to exclude those objects that we would not want to delete, namely everything apart from tracks and via’s.

Filter selection to only tracks and vias

The tagged items will update automatically to provide visual confirmation of what is selected.

Only tracks and vias selected

At this point we could hit 'Delete', and all the tracks and vias on the board would be deleted. What if we wanted to delete only the tracks and vias around the DC-DC converter, because we wanted to re-route that section of the board? Drag the selection rectangle (using the green handles) so that it only covers the DC-DC converter section of the board.

Only tracks and vias around the DC-DC module selected

We now have the option to select tracks which are only partially enclosed by the selection box, or only those which are fully enclosed by it.

Tag box toggle

Switching to "only fully enclosed mode" narrows down the selection further.

Only fully enclosed tracks selected

We could also select only tracks on a specific layer if we liked, for example only on the Top Copper.

Top copper with single-layer selection mode

Only top-copper fully-enclosed tracks selected

You may wish to further experiment with the selection filter in order to familiarise yourself with it.

Bear in mind that the selection filter controls what objects are available for selection at any given time. If you ever find that you can’t select an item the first thing to check is whether that object type is enabled for the mode that you are in. Alternatively, simply switch to Selection Mode where all items are selectable.

Conversely, on a densely populated board, the selection filter can be very useful for targeting the specific object which you wish to select; remember that the grid snap setting (View menu) also has an effect on how items are selected.

Single layer mode is super helpful on a busy board to avoid those accidental selections of objects on other layers.

Advanced Auto-Routing

Advanced auto-routing is only available in the Professional PCB Design feature set (level 2 and up). If you have one of the lower PCB design levels (Starter Kit, Level 1 or Level 1+) then simply skip this section.

We will now take a look at some of the more advanced auto-routing features, specifically the facility to finely control the auto-routing process.

We will start by re-routing the connections between the GSM module and the TXB0106PWR level shifter. Draw a selection box around these tracks, and delete the tracks.

Tracks between GSM module and level-shifter selected

Tracks between GSM module and level-shifter deleted

We will now re-route only these tracks, using the command-driven interactive auto-router. This will allow us to demonstrate the following features of the interactive auto-router:

  • The ability to route only a specified area or set of connections.
  • The ability to control the routing script; i.e. to determine which routing commands are executed and in which order.

Start by invoking the autorouter dialogue form (Tools Menu), switching to Interactive mode, and then selecting the Begin Routing button.

Entering the interactive routine mode

If you see a warning regarding class-class design rules, then it is fine to just click "OK" - if there are any DRC errors present after the autorouting process then these can simply be manually corrected.

A command window will open at the bottom of the Editing Window, which will allow us to direct the routing process interactively. Proteus provides a rich command set to control routing, including such things as bend radius for mitering tracks and fanout length and direction from SMT pads. This is fully documented in the reference manual so we will concentrate on some basic practical examples in this tutorial.

There are a couple of important points worth emphasizing at this stage:

  • Any commands entered will action on a set of tagged connections or on the whole board if nothing is highlighted.
  • Changing the circuit or switching modes will automatically exit the routing interface.

Essentially, what this means is that we can dictate what connections are routed by controlling which items are highlighted.

The basic syntax of most commands is:

<command> <number of passes>

Start by drawing a box around the area between the GSM module and the level shifter.

Next type "route 5" in the command box, and press Enter.

The 4 nets in the selected area will be neatly routed.

Now execute the command "recorner diagonal".

The tracks will be mitred.

Next select the "GSM_STAT_2V8" and "GSM_VDD_EXT" nets, by clicking on their ratsnest lines or any component pads connected to those nets.

Note that nets can also be tagged by selecting them in the Object Selector and then clicking the "T" button.

Clicking anywhere in the Editing Window will deselect the currently tagged items. When the focus is in the Editing Window you can also use the middle mouse (or keyboard shortcuts) to zoom in and out in the normal way.

Enter the commands "route 5" and then "recorner diagonal" in order to complete these routes.

This completes the demo of interactive auto-routing. Do note that there is much more flexibility in the command set than that shown in this tutorial, both in the number of commands and in the parameters that control the command actions.

See Also:

Interactive Auto-Routing (Reference Manual)

Command Reference (Reference Manual)

You can exit auto-routing at any time via the ESCAPE button on your keyboard.

Complete Remaining Routes

Use the techniques already covered in this section (manual routing, route editing, interactive auto-routing) to complete any remaining routes on the board. Once done, you should have No CRC errors and No DRC errors.


FINISHING UP

Power Planes

You can load the "IoT Pump - Routed" sample design in order to continue from this point, if you have not already successfully completed the previous sections.

Power Planes (also called "Zones", "Copper Pours" and "Ground Planes") are areas of the board which are filled in with copper, and usually connected to some power net (such as Ground or VCC). They can serve a number of purposes, including:

  • Providing a reference plane for impedance-controlled traces (high-speed tracks, differential pairs, RF tracks, etc).
  • Reducing EMI/EMC.
  • Satisfying requirements for wireless module antennas.
  • Reducing manufacturing costs.
  • Providing low-impedance paths for power to travel along.
  • Adjacent power planes on different layers can be used to form a capacitor, which can be used to smooth high-frequency power fluctuations.

PCB Design Level 2 and up allow an unlimited number of shape-based power planes per layer. Lower PCB Design levels only allow 1 power plane per layer, which must cover the entire board.

There are a number of options for creating power planes and we will explore a few of these.

The most simple option is the Power Plane Generator which is available from the Tools menu.

Opening the Power Plane Generator from the Tools menu

From the resulting dialogue form select the GND=POWER net, and set the layer as top copper with the DEFAULT boundary style. The boundary style determines the trace which will be used to draw the inner and outer boundaries of the zone and also determines the thinnest section of copper by which the power plane can make a connection. Setting the boundary to a thicker track style will prevent the copper flowing through small gaps (e.g. between pins) but making it smaller means that connectivity may be achieved even by only thin sections of copper.

Power Plane Generator Dialogue Form

Click "OK" and you should see that the power plane is generated on the Top Copper layer across the entire board.

Power Plane has flooded the entire layer

The clearance from the zone to the board edge is defined by the Edge/Slot design rule. We can change this via the Design Rule Manager on the Technology and the zone will re-generate to the new clearance when we have finished.

Since you can set a new design rule per layer it is possible to have different clearance rules for power planes on different layers.

The next option for generating a power plane is from the Layer Stackup and Drill Spans dialogue (we could actually have done this during the New Project Wizard when starting the project). Launch the dialogue by selecting "Set Layer Stackup" from the Technology menu. Select the Bottom Copper layer and then click "Create Power Plane". Select net GND=POWER and then click OK to generate the plane.

Creating a power plane from the Layer Stackup and Drill Spans dialogue

Create a GND=POWER plane on the Inner 2 layer as well, and a VCC/VDD=POWER plane on the Inner 1 layer.

Power planes on all layers

The third option for creating planes, and also the most flexible, is using the Zone mode - we will look at this a little later.

Nesting and Islands

There are several additional configuration options available to us now that we have placed some zones. Editing a zone is slightly different from most other objects in that you must right-click on the border of the zone (to avoid continuous unwanted selections).

Firstly, check the selection filter to make sure that the zone object type is selectable (or switch to selection mode).

Zone icon in the Selection Filter

Next, zoom in and move the mouse over the edge of the zone, right clicking the mouse when the zone is shown as active under the mouse. Select Edit Properties from the resulting context menu.

Right click on the edge of a zone to edit its options

The main options of interest are towards the bottom of the dialogue form and are explained below:

Relieve Pins

When checked then pins on the same net as the zone will have thermal relief applied to them; the thickness of the thermal relief is determined by the Relief field of the dialogue form.

The software will prevent you from using a relief track style that is larger than the boundary style thickness; this is to protect against the reliefs 'sticking out' of the boundary.

The topology of the relief stems on a particular pad can be changed to a diagonal 'X' by editing the pad itself after placement. This is sometimes useful to maximise contact with a zone.

This option should almost always be left in it’s default checked state.

Exclude Tracking

If this option is checked, the zone will treat tracks on its own net as obstacles. Otherwise the zone flows over such tracking, effectively ignoring it. Tracks on other nets, or loose pieces of track on no net are always treated as obstacles.

This option is normally left unchecked.

Suppress Islands

An island is defined as a block of copper or zone area in which no valid connections can be made. When checked, Proteus will remove all such blocks from the board, leaving only areas of copper with connections.

Allow Nesting

It is quite common, particularly with larger boards, that the flow of a zone will encounter an obstacle through which it cannot pass. When checked, the zone will jump over the obstacle and continue flowing across the board.

This is a very useful option for example on busy boards or where you want to connect a pad where the topology of the board makes it impossible for a single zone flow to get through.

The default options are fine for our purposes, however you may wish to experiment a little with the various options in order to see how they work (make sure to "Undo" again afterwards).

Edit Zone dialogue

Zone Exclusions

Sometimes there is a need to exclude a plane from a certain section of the board. This can be done by placing an "empty" zone within that plane. In our case, we should create an "empty" zone around the BlueTooth antenna. Start by selecting "Zone Mode" from the mode bar.

Zone mode

Draw a rectangle around the BlueTooth antenna as shown by clicking at each of its four corners.

Drawing a zone

Once the zone shape has been closed then the "Edit Zone" dialogue will appear.

"Empty" zone type

Set the zone layer to Top Copper and the zone type to "Empty" and then click OK. You should then see that an exclusion has been created in the Top Copper power plane, around the BlueTooth antenna.

Zone exclusion placed

We now need to recreate this exclusion for the zones on the remaining 3 power planes / layers. We could draw the zone over again 3 times, selecting a different layer each time, however it will be easier to simply copy the zone. In Selection mode (cursor icon), draw a box around the zone.

Selection box around zone

Unless you have changed the selection filters, everything within the box will now be selected (including the track and the BlueTooth antenna). In order to select ONLY the zone, so that we can copy it, we can use the Selection Filters to target only the zone.

Only the "Zone" selection filter toggled on

We can now use the Block Copy tool to make a copy of the zone over to the right of the board.

Block Copy the zone over to the right

Go into the zone properties and change it to apply to the Inner 1 layer.

Change the zone to apply to the Inner 1 layer only

Next drag the zone back over to the left, to coincide with the Top Copper exclusion zone.

Dragging the zone back

We now have exclusions on both the Top Copper and Inner 1 layers, and we simply need to repeat the process for the Inner 2 and Bottom Copper layers. Note that if selecting and block copying again then we will now be copying over two exclusion zones (Top Copper and Inner 1) - this is fine if it is intentional and we plan to change these two zones to be Inner 2 and Bottom Copper; but the alternative is to set the Selection Filter to target only the currently selected layer, so that we only copy over one zone at a time. Use whichever method you prefer to place exclusion zones on the remaining layers.

Filter the selection to the current layer only

Once done you should now see that all planes are clear of the BlueTooth antenna area.

Zone exclusion present on all layers

See Also:

Power Planes Examples (Reference Manual)

Using Power Planes (Reference Manual)

Plane Layers (Reference Manual)

Zone Inspector (Reference Manual)

Via Stitching and Shielding

Via Stitching and Shielding can be used to stitch power planes together with vias, for EMI/EMC / RF / etc reasons. Vias can be arrayed:

  • Throughout the area of a plane, in a grid fashion (stitching).
  • Around the edge of a plane (shielding).
  • Along the length of a track (shielding).

Via Shielding and Via Stitching

Via Shielding a Track

To apply via stitching / shielding between planes, select the relevant option from the plane or track right-click context menu (remember to right-click click on the edge of a plane in order to access its context menu).

Stitching and shielding commands on the Zone and Track context menus

Let's apply some shielding along our BlueTooth antenna trace. Right click on the trace and select "Via shield" from the context menu.

Stitching and shielding commands on the Zone and Track context menus

Set the vias to go from the Top Copper layer to the Bottom Copper layer; style "Default"; via-via spacing 60th and route-via gap 20th. Click OK once done and you should see that vias are placed along the length of the BlueTooth Antenna track.

Shielding along the BlueTooth Antenna track

You may wish to experiment a little further with the via stitching / shielding tools. Once done,be sure to undo any changes before proceeding with this tutorial.

See Also:

Via Stitching and Via Shielding of Power Planes

Zone Regeneration

By default, zones are automatically regenerated whenever any changes are made to the board. Zone regeneration takes some processing power, so if you find that this is slowing you down then you can turn off automatic zone regeneration, either temporarily or permanently; zones can be manually regenerated from their right-click context menu.

Automatic and manual zone regeneration

Slots and Cutouts

Sometimes there is a need to create slots or a cutouts in a board. We may wish to slot a board to provide additional electrical insulation as an example, and we may wish to create a cutout to allow a connector to pass through as another example. We don't actually need any slots or cutouts on this particular board, but let's experiment a little to become familiar with the functionality.

Select 2D Line mode, the Slot layer, and then draw a slot between the relay connector pins and tracks. You will need to draw two line segments to match the following screenshot, and may need to move the relay tracks slightly.

Drawing a slot

To make the slot a little thicker, hold down the CTRL key and click once on each slot segment to select them both.

Selected items are white

Right click on any line and select Edit Properties from the resulting context menu.

Switch to the "Edit Style" tab, uncheck the Follow Global checkbox, change the width to be 50th and then apply to all tagged graphics.

Changing multiple objects at once

To create a cutout, could either use a closed slot or we could select the Board Edge layer and draw any closed shape on the board. Let's experiment with a triangular-shaped cutout at the bottom-right of the board.

Creating a cutout

Once done experimenting, you can delete the slot / cutout.

Fiducials

Fiducials are used by automated assembly equipment, such as pick-and-place machines, to precisely locate the position of the board. To place fiducials, select Circular SMT Pad Mode, select the "FIDUCIAL" type pad, and then click on the board to place the fiducial(s).

Placing a Fiducial

Fiducials can be including in Pick-and-Place output files as well as listed in the report module (more on these to follow). Usually at least two fiducials are required, at diagonally opposite ends of the board, so place at least one more fidcual on the board at the diagonally opposite corner.

Board Fiducials

Text and Graphics

The Top Silk layer of our board already contains a lot of information in the form of component references and outlines.

Elements on the Top Silk layer

If we would like to add additional elements then this can easily be done using the various 2D graphics tools. Typically additional text / graphics would be placed on the Top Silk or Bottom Silk layer, but elements could be placed on any of the copper layers or even the Solder Resist layers and so on if desired. You could even have more than one silk layer per side, usually with different colours, by placing elements on one of the Mech layers in Proteus and then instructing your PCB manufacturer that these should be additional silk layers (you may have both white and black silk prints on your board, for example).

Let's place some board name and version text on the Top Silk on an open area of the board. Select the 2D Graphics Text tool, select the Top Silk layer, and click in an open area of the board.

Placing 2D Graphics Text

Enter "IoT" as the String. There are a lot of customisations available (of particular note are the "Justification" options), however the default settings should be fine for us so just click OK.

Add more lines in order to make up the text "IoT Pump Controller". The last line will be a version line, and we will use a special trick here to have the label text automatically update whenever the board version (as set in the schematic Design Properties, available from the Design menu) is changed - enter "@Rev" as the string and the board version will automatically be filled in.

Using a variable in 2D Graphics Text

We can also import bitmaps (must be monochrome) and DXF drawings. You may wish to import the board outline from a DXF, for example. In the following screenshot, a bitmap of the Proteus logo has been imported onto the Top Silk layer of the board. The logo is in the IoT_Pump_Resources subdirectory of the Proteus Tutorials sample directory (typically "C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\SAMPLES\Tutorials") if you would like to try this yourself.

Bitmap import

Let's also place a "Pin 1" marker by the ICSP connector. Select the 2D Graphics circle tool and draw the circle next to pin 1 of the connector, then edit the circle properties and set the fill style to "Solid".

2D Graphics Filled Circle

Finally, place some labels next to the terminal connectors (rotate as necessary).

2D Graphics Filled Circle

Netlists and Design Changes

We have now placed and routed our layout based on the schematic we designed in the tutorial. In practice however, it is very unlikely that we would not be making design changes during the PCB process so we'll devote a little time to examining a typical workflow.

Clearly, we will be editing both the schematic and the layout modules so both need to be open. If the schematic tab is closed you can open it from the application module toolbar at the top of the Proteus application.

Schematic module icon on the Application toolbar

Since we will be working with both modules you may want to split them into two frames if you have two monitors. To do this simply drag one of the tabs onto the other monitor. For this documentation, we will assume that both the schematic and the layout are open as tabs inside a single Proteus frame.

Multiple tabs in one frame

Live Netlisting

First, lets delete the J3 connector on the schematic. Switch to the schematic tab, right click and select delete object from the resulting context menu.

Deleting a component on the schematic

Now switch back to the PCB tab. Note that the J3 part has been dimmed to show that it is not present on the schematic and that the connectivity status shows that we have pending changes (we are out of sync).

Netlist is out of sync

Since the action taken on the schematic removes from the board it requires manual confirmation. We can now either hit undo (CTRL+Z) if we don't like the change or we can click on 'Changes Pending' in the connectivity status to accept the change. When we do this, we'll be presented with a short dialogue to either show all the changes (sometimes not obvious on a dense board) or to simply commit the changes.

Since it's clear what the change is in this case we can simple commit the change and the 'shadow' part will disappear.

Clicking on Changes Pending will remove J2 and correct the netlist

Note that tracks that were connected will also be deleted. If you want instead to delete only the footprint (leaving the connected tracks in place as stubs) then you can do so by directly deleting the package on the layout.

The undo system is still available to revert the changes. Clicking on the UNDO icon (or CTRL+Z) once will bring back the shadow objects and repeating the process a second time will bring back the schematic part and the real PCB footprint.

Undo and Redo icons

If you click on undo while in the layout tab but the undo action applies to the schematic you will be prompted to confirm the operation. In our case, we do want to bring back the connector so accept the prompt to return the PCB to the original state.

This is a simple example of a change which affects objects already placed on the layout. The important thing to remember is that while the netlist is live, you must manually confirm any change which affects the connectivity of objects you have already placed.

Batch Netlisting

If you prefer, live netlisting can be turned off and a more traditional batch mode netlist used. This is controlled from the 'live netlist' toggle on the Tools menu (in the PCB module).

Having turned live netlisting off, let's repeat the same procedure to see the difference. Switch to the schematic tab, delete the connector and then switch back to the PCB tab. This time the connector on the PCB remains present and the connectivity status reports that the layout is locked and out of sync.

Status bar messages when 'out of sync'

This means that we have not loaded the changed netlist and cannot work on the layout until we bring the netlist across. Proteus works with a single database of parts that include schematic components and pcb footprints so - while you can work on the schematic - you cannot work on the PCB until you sync it with the schematic. Click on the connectivity status to unlock the PCB and bring the current netlist across.

This brings us to the same state as we arrived at automatically with live netlisting on. We have a shadow part in Proteus and the connectivity status reports changes pending.

The main difference between live netlisting and batch netlisting is only that you must confirm each netlist load manually in the latter mode. We recommend that live netlisting is used for normal working, although for particularly large designs batch mode may provide a useful tool.

Some functionality will require a live netlist and so if you are working in batch mode you may find menu commands disabled until such time as you bring the netlist back in and sync.

See Also:

Netlist Features (Reference Manual)

Annotation

Annotation changes from schematic to layout or from layout to schematic are also a common editing operation when both modules are in use.

Schematic to PCB

Annotation changes made in the schematic will automatically be reflected in the PCB when live netlisting is on and will require unlocking when live netlisting is off. The Global Annotator on the Tools Menu on the schematic can automate this task.

PCB to Schematic

You can re-annotate the board either manually (editing the part reference labels) or globally from the automatic annotator command on the tools menu.

Launching the Automatic Annotator

When live netlisting is on, this will automatically reflect to the schematic. With live netlisting off, the schematic will update and the layout will then lock as the netlist has changed and needs to be manually passed through to the layout.

General Netlisting Rules

There are several important rules of thumb to understand about netlisting in Proteus.

When live netlisting is on, a change that adds connectivity will happen automatically (e.g. adding a wire on the schematic will add a ratsnest on the layout). If you make a change that removes connectivity the layout will show the change by dimming the deleted objects and you will need to manual confirm the operation.

When live netlisting is off (batch netlisting) any and all changes to the netlist will require you to unlock and apply the netlist before you can continue working on the layout.

Clicking on changes pending to remove footprints that have been deleted on the schematic will also remove associated tracks. If you want to remove footprint only and leave the tracks simply delete the part on the layout (rather than the schematic).

Dimmed objects are visual placeholders only - they do not exist on the board. Best practice is always to click on changes pending on the connectivity status and to arrange the layout to conform to the schematic.

Imported projects (from older versions) will always start with live netlisting off as there is no way to tell whether they are in sync. By contrast, new projects will always start with live netlisting on. In either case you can switch according to preference from the live netlisting toggle on the Tools menu in the PCB layout module.

3D Visualisation

Now that the board is routed and ready for production we first want to examine it in 3D in order to properly preview how it will look in real life and possibly make final design alterations prior to prototyping. Start by invoking the 3D Visualisation Engine from the module toolbar at the top of the application

3D Viewer icon

This will open and load the 3D view of the board in a separate tab. As with any tab, you can drag onto a separate frame if you want to look at both the 2D layout and the 3D view simultaneously.

Basic Navigation

The first thing we can do is view the board from different preset angles. Five preset views are supplied: top view, front view, back view, left view and right view and these are accessible via any of the following methods:

  • Menu options on the View menu in the 3D Viewer
  • From the navigation toolbar at the bottom of the 3D Viewer
  • From keyboard shortcuts F8 through F12 whilst in the 3D Viewer.

Now that we can look at the board from a number of angles the next thing is to be able to look at it at a specific zoom level. Again, there are numerous ways to zoom in and out of the board:

  • Roll the middle mouse wheel in and out (recommended)
  • Menu options on the View menu
  • From the icons on the Navigation Menu
  • From keyboard shortcuts F6 (zoom in) and F7 (zoom out)

Experiment now with custom zoom levels and different preset views – whilst it is pretty subjective we envisage most users changing views via the navigation toolbar or keyboard shortcuts and using the middle mouse wheel to zoom in and out.

Bareboard View and Height Clearances

For inspection of resist and hole depth it is often useful to view the board without components. Selecting the bareboard view will remove all the physical components from the board.

Show Components icon

By contrast, if you need to fit the PCB into a chassis and wish to check height clearances you can enable the height boundary box via the icon at the bottom of the display

Casing icon

Specification of the height takes place from the Dimensions command on the Settings menu of the viewer. This will default to the values defined in the layer stackup.

Board properties dialogue form

Custom Views

The next logical step is to be able to customise the view. This works conceptually by ‘attaching’ the mouse to the camera such that as you move the mouse the camera moves to the area of the board that you are interested in. You can invoke the Navigation mode either from the View menu, the crosshairs icon on the Navigation toolbar or simply by clicking the left mouse button.

3D Mouse cursor

You will know as soon as you are in Navigation mode as a crosshair cursor will appear over the mouse and your view of the board will change as you move the mouse. Using this together with the middle mouse wheel zoom will allow you to both ‘fly pass’ the board and to easily zoom in to closely examine a particular area of the board. Exiting navigation mode is as simple as right clicking the mouse.

For example, if we start in Front View (use the F9 keyboard shortcut) and we want to examine the resistors on the right we might proceed as follows:

1) Left click the mouse to enter navigation mode.

2) Move the mouse over the resistors.

3) Roll the middle mouse button to zoom in as required.

4) Right click the mouse to exit navigation mode.

The final necessary piece to completely customise the view is to allow users to spin or ‘orbit’ the board. This is done in navigation mode by holding down the left mouse button and moving the mouse. Essentially this will spin the board as you move the mouse – when you release the mouse button the camera will follow the mouse around the current view of the board as normal. Try this now, experimenting with different views of components on the board.

Remember that, if you are struggling to get the view you want you can use the keyboard shortcuts or navigation toolbar to return to one of the preset views. You should find however, that with only a little practise you become quite proficient at navigation.

To summarise:

  • Left click enters navigation mode.
  • Camera follows mouse around the board in navigation mode.
  • Using the middle mouse wheel (or shortcut keys) allows you to zoom as you move the camera.
  • Left depressing the mouse in navigation mode allows you to spin/orbit the entire board.
  • Right click of the mouse exits navigation mode.

3D Models (STEP/IGES)

Each footprint on the layout can also have an associated 3D model. Normally, these are either STEP Files (for large or complex parts) or scripted geometric models (for simple passives).

In the case of STEP or IGES files, the procedure is:

1) Download the file from the internet or otherwise source the 3D model. There are many sites available, with www.3dcontentcentral.com being amongst the most popular.

2) Save the file into the MCAD directory of your Proteus installation. By default, this is

C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\MCAD\

3) Right click on the footprint and select 3D Models..., and then click on the 3D Mechanical Model tab.

4) Browse to the STEP file and then set the rotation and offset required to align the STEP file with the pads on the board.

For geometric models, the difference is basically that you describe the part in terms of size and shape via a simple scripting language. This is covered in the reference manual.

You may notice that some components on our board are missing 3D models. You should be able to find the STEP files for any missing models in the IoT_Pump_Resources subdirectory of the Proteus Tutorials sample directory (typically "C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\SAMPLES\Tutorials").

3D Visualisation of the IoT Pump Board

See Also

Which Type of 3D Model?

Importing STEP Files.

Creating 3D Geometric Models.

Exporting STEP Assemblies.

Live Update

Like any other module in Proteus, the 3D Viewer will update live as changes are made to the PCB layout module. In practice, the usefulness of this will depend very much on the power of your machine (number of cores, memory, etc.) and the complexity of the board.

On a board of modest complexity and a modern computer the redraw time is not significant and - particularly on split frames - is very useful for movement and positioning.

More information on 3D Visualization including creation your own 3D models, exporting 3D STEP Files for MCAD import, customizations and applying 3D data to legacy designs can be found in the 3D Viewer section in the online reference manual.

Board Output Options

Last, but by no means least, we come to the crucial business of reproducing the pretty on screen graphics on paper or film. Under Windows, most hard copy devices are supported through the normal Windows printer drivers. Additionally, we supply our own drivers for pen-plotters, Gerber photoplotters and Excellon NC drill machines.

Printing

We will deal here firstly with printing to an ordinary Windows printer device - it is unlikely that you will have a photoplotter to hand! The first step is to select the correct device to print to using the Printer Setup command on the Output menu. This activates the Windows common dialogue for printer device selection and configuration. The details are thus dependent on your particular version of Windows and your printer driver - consult Windows and printer driver documentation for details.

Then, with a layout loaded, invoke the Print command from the Output menu.

The dialogue forms offer a number of controls, all of which have context sensitive help associated with them (context sensitive help on dialogue forms is accessed with a ‘point and shoot’ mechanism via the ‘?’ key at the top right of the dialogue form). The default settings should do for getting something and you commence output generation by clicking on OK. Output can be aborted by pressing ESC, although there may be a short delay before everything stops whilst Proteus and your printer/plotter empty their buffers.

With plotters in particular, you will probably need to experiment with pens, paper, and the various settings on the Set Devices dialogue form in order to get optimum results. Full details may be found under the chapter Hard Copy Generation in the reference manual.

Proteus will remember your printer settings from the Printer Setup dialogue and maintain them independently of your printer settings for other applications. This means that you can configure a default set of printer options solely for use with the Proteus application.

See Also:

Assembly Layers

Printing

Output for Manufacture

Pick and Place

Proteus has the ability to output a fully configurable Pick and Place file. For more information please see the reference manual here.

Gerber

Proteus provides three main output options for board manufacture:

  • Traditional RS274X Gerber/Excellon (available in all professional versions).
  • Gerber X2 (available in all professional versions).
  • ODB++ Manufacturing Output (available in Advanced Feature Set only).

From a user interface perspective all options are very similar but from a manufacturing perspective, Gerber X2 provides far more information than the older Gerber formats. Examples include:

  • Inclusion of the connectivity information (IPC-D-356A netlist) with the output fileset.
  • Independent Gerber files for each drill range and plated/unplated status.
  • File and object attributes automatically applied (for example, a fiducial is identified explicitly as a fiducial).
  • Full backwards compatibility with standard RS274X. In addition to the Proteus Gerber Viewer, files will load into any third party reader of your choice.
  • Automatic inclusion of both Top and Bottom assembly drawings.

All of this means that when viewing the output fileset from Gerber X2 the verification process is simpler and more complete. However, traditional Gerber/Excellon output is still widely used in manufacture and would be sufficient for most purposes.

Regardless of your option the basic procedure is the same. When you invoke either of the output options you will most likely be prompted to run a pre-production check. This runs an automatic checklist to test for some common design errors and will report either a pass or a fail.

The Pre-production check (PPC) prompt

If your pre-production check reports errors we strongly recommend that you resolve them before proceeding to the manufacturing output dialogue. Please also note that pre-production check is an aid to the designer in quality assurance but not a guarantee; manual inspection of the layout is recommended and a prototype should always be made and tested before mass production.

More information on the Pre-production Check can be found in the CADCAM Output section of the online reference manual (Help Menu).

Assuming a pass you will then be provided with the manufacturing output dialogue form

The Gerber / Excellon Output dialogue form

The options in the top section of the dialogue form are self-explanatory but there are some points of note regarding the rest of the configuration options.

The software attempts to populate the layer set with those layers used on the layout but this should always be verified. One of the most common problems with manufacture occurs when the manufacturer is not supplied with the full board information.

The Apply Global Guard Gap option will set the expansion of the resist plot around pads and vias to the distance specified when this option is checked. This will take effect on all pads and vias except those which have been manually altered on the layout. Some board manufacturers prefer to create the resist plot in house and this option could then be used to remove any resist expansion pre-manufacture. Unless otherwise directed we recommend that you leave this option unchecked.

See Also:

Mechanical Routing and Slots

The Bitmap/Font Rasterizer option controls the thickness of trace used to render bitmaps and true type fonts. The higher the resolution the better tonality of the resulting bitmaps but the larger the files. It is also possible that some manufacturers have a minimum width requirement and in such cases it may be necessary to reduce the DPI settings to conform with this. Generally speaking however, the default settings are fine.

The option at the bottom left allows you to automatically load your output into either the Labcenter Gerber Viewer (CADCAM Output) or the Valor ODB++ Viewer (ODB++ Output). This is useful if you want to verify the output fileset before passing to your manufacturing house.

If you intend to panelize the board you should use the Gerber X2 output in the CADCAM Output command, then close the project, open the gerber module and import your CADCAM files, selecting Panelization Mode from the resulting dialogue form. Panelization is only available with Gerber X2 output - you cannot create panels from RS274X Gerber.

See Also:

Panelization (Reference Manual)

Finally, the Notes tab allows us to insert any relevant information or special considerations for the manufacturer. This is very important when we have specified a slotting layer as there is no standard way to pass this information through. A simple note that the information on MECH1 is for slotting will suffice, although you can choose to include your manufacturing notes from the Project Notes module (detailed next) if you prefer.

Project Notes

Proteus includes a "Project Notes" module, which can be used to record any notes about the project, provide information for PCB fabrication / assembly, and/or check details regarding aspects of the project such as whether length-matches are within the specified tolerances. A number of automated Fields and Project Data elements are available within the module, to assist with report generation and maintenance. More than one Note document can be included in a project, with certain types of notes having special purposes, such as being automatically included in CAD/CAM output or automatically appended to Bill of Materials output.

The Project Notes module is accessed via the "Project Notes" button on the toolbar.

Project Notes Module

A "Generic Note" will open by default, however other types of notes (and/or additional Generic Notes") can be added from the File menu.

We will add the project name and version as a header to our report. Select the "Heading 1" style, and then select Insert -> Fields -> Title. The title is taken from the Design Properties, which we specified in the schematic (see the Bill of Materials section of the Schematic tutorial; Schematic Module -> Design menu -> Edit Design Properties). Next, insert a space and then add the project version using the "Revision" field. You may then wish to type "Project Notes" in order to complete the title. On the next line, change to the "Paragraph Style" and insert the project "Modified Date (long)" field. Note that other text, images, tables, and so on can be added to the report as you like, similar to a standard text editor; in the following screenshot, a company logo has been added at the top of the report.

Project Notes Header

Note that document templates may be saved using the Template menu, and that these will then be available to select from when creating a new Project Note.

A number of Project Data elements are available to be included in the report:

Project Data | Description
Schematic Grid References | Table listing the location of each part on the schematic grid (if available, see Component Placement Report).
PCB Board Stackup | Table detailing the PCB layers, as specified under the Layer Stackup in the PCB Layout module.
PCB Layer Stack Profile | Graphical representation of the Layer Stackup.
PCB Image Output | PCB image; a number of options can be specified when generating the image; the Assembly Plot mode can be useful during board assembly.
PCB Image Output | PCB image; a number of options can be specified when generating the image; the Assembly Plot mode can be useful during board assembly.
PCB Drill Table | Table detailing all the drill types required during the PCB manufacturing process.
PCB Fiducials | Table detailing all of the PCB fiducial locations; useful during the PCB assembly process.
Length Matches | Report of all length-matched tracks on the PCB, including whether or not they are within the specified tolerances.
Differential Pairs | Report of all differential pairs on the PCB, including whether or not they are within the specified tolerances.
Design Rules | Report of all the design rules which are active in the project
Variant Comparison | Report of the different types of variants in a project, detailing which parts are fitted or have a different part number, for each variant.
Single Pin Nets | Report of all "Single Pin Nets" within a project, a "Single Pin Net" being where any pin or terminal is not connected to any other pin or terminal in a project (more on this to follow).
PCB Image Output | PCB image; a number of options can be specified when generating the image; the Assembly Plot mode can be useful during board assembly.

Project Data elements are inserted in the same way as Field elements.

The "Single Pin Net" element warrants some additional discussion; this report can be used to help highlight cases where, for example, terminals have accidentally been misnamed and are not actually connected (such as one terminal being labelled "LED_LEVEL_HIGH" and the other terminal being labelled "LED_LEVEL_HI"). Unused/unconnected component pins will also turn up in the report, and can be excluded from it by connected the unused pins to "NC" terminals.

"NC" Terminals

Add some Project Data elements, such as a Fiducial Report (PCB Fiducials) and Assembly Plot (PCB Image Output), to your report, in order to get a feel for them.

Project Data elements in a report are not automatically updated, and refresh of these can be done using the "Reload Project Report" command on the Edit menu, or by right-clicking on a Project Data element and selecting "Reload Project Data".

Refreshing a Project Data element

The exact details of what to include in the report (if any) will depend on your internal business processes, and the information required by your PCB manufacturer / assembler. For an example Project Notes report, please open the "IoT Pump (Complete)" sample design.

See Also:

Reference Manual - Manufacturing Report

Project Notes : PCB Specification Notes.

Having configured all the necessary options, we can generate the files and send for manufacture - bringing us to the end of this tutorial!


Creating New Packages

APPENDIX: Creating New Packages

Proteus comes pre-supplied with a large quantity of footprints, and we have seen previously how to select and place these parts on to a layout. However, it may be necessary at times to create your own custom footprints or symbols – also a simple task with Proteus – and this process is detailed below.

While the following topics are a detailed explanation of how to create component parts in Proteus, in practise this should almost never be necessary. In addition to the many installed libraries the universal part importer provides support for almost all third party part vendors (Ultra-Librarian, Samacsys, SnapEDA, etc.). If the part doesn't exist in Proteus itself the next step is to search for and then import it directly from a third party vendor. This is discussed in some detail in the importer help file and shown on our Youtube Channel.

See Also:

Importing Library Parts

Drawing the Footprint

In our example, we will create a SQFP44 footprint with 0.8mm pitch and 12mm width. You may also wish to refer to the more advanced video tutorials linked below:

Creating Button Pads / Membrane Touchpads with custom paste and resist.

Creating QFN Parts with Thermal Pads and patterned Paste Mask

Finished SQFP44

Start by selecting rectangular SMT mode. We want a pad 0.5mm by 1.8mm that should already exist as M0.5x1.8.

The Pad used in the M0.5x1.8

If the pad style does not exist you can easily create it as discussed earlier in the tutorial (Click on the ‘C’ button above the Object Selector).

Make sure that the Layer Selector is on Top Copper and place one of the pads in the usual way. Right click to cancel placement immediately after placing a single pad and then left click on the pad to highlight it. With the pad highlighted, go to the Edit Menu and select the replicate command. Alternatively you can right click on the pad and select replicate from the resulting context menu.

Right click and select the replicate command

The replicate command will action on tagged objects so you should ensure that you have only the placed pad highlighted before invoking this command.

There are 11 pads on each side of the footprint so we need to replicate 10 times with an X-Step of 0.8mm as per the following screenshot.

Replicate Dialogue

Note that you need to include the units of either millimetres (mm) or Thou (th) when entering values in to the X/Y-step fields.

This will give us a single row of pads of the correct pitch (zoom in, change the snap settings and measure if you would like to confirm). The next step is to duplicate this row of pads to form the bottom of the footprint.

Start by right dragging a tagbox around the entire row of pads and then go to the Edit menu and select replicate. This time we want only one copy, 12mm down (or up) from the current row. Use negative co-ordinates if you want the duplicated row beneath the current one or positive co-ordinates if you want it above.

We now need to repeat the process with the other two rows. Drag a tagbox around a full row, right click inside the tagbox and select Block Copy from the resulting context menu.

Block copy will copy everything inside the tag box

Move the mouse and drag the copy to a free area, left clicking to place and then right clicking to exit copy mode. Now, drag a tagbox around the row, right click and select the Block Rotate option, specifying a 90 degree rotation to align the pads correctly.

Block rotation of 90 degrees

In order to position this row of pads correctly it’s best to first set place a marker on the location we want to move the row of pads to. For this footprint the centre of the top pad on the left hand side is 2mm below and 2mm to the left of the centre of the left hand most pad on the top row. This gives us enough information to accurately position the row.

Select marker mode in preparation and then move the mouse over the left hand most pad on the top row until it is encircled. You’ll want to be on a fairly precise snap setting for this (e.g. 0.5mm or F2 shortcut key).

Make sure the pad is encircled

If you find your snap settings in thou you need to switch to Metric mode, either by hitting the ‘M’ key on the keyboard or via the Metric option on the View Menu.

Now, hit the ‘O’ key on the keyboard to set a false origin at this location and then invoke the Goto-XY command from the View Menu.

Type in –2mm in both the X and the Y co-ordinate fields (i.e. down and left) and make sure that the offset is relative to the current origin. Select OK and click the mouse twice to place the marker at this location.

OK will take the mouse to the specified location

The marker we have placed will serve for now as the location we want to centre the top most pad of our third row. Simply draw a tagbox around the row, left depress the mouse inside the selection box and drag into position. You will almost certainly need to use the zoom commands (F6,F7 or the middle mouse wheel) and possibly also adjust the snap setting (CTRL+F1) to get accurate positioning.

Moving the centre of a pad on to the marker

Having placed the row of pads right click on the marker and delete it – we’ll come back to marker placement later on. The final stage of pad placement is to replicate the newly placed row of pads onto the right hand side. As before, draw a selection box around the row of pads and use the replicate command with an X offset of 12mm to duplicate the row.

Adding the silkscreen graphics is now straightforward. Select the 2D Graphics Line icon, make sure the Layer Selector is on top silk and place four lines along the inside edges of the pads to form a box. You’ll find this much easier to do if you change the snap settings upwards (e.g. F2).

Placing the Top Silk area

The next job we have is to number the pads. Start by invoking the Auto Name Generator from the Tools Menu. We don’t need to enter anything in the string field here; simply leave the defaults and click on the pads consecutively to number them, Number 1 is the top pad on the left hand row.

Auto Name Generator

Remember to hit the escape key on your keyboard when you have finished numbering pin 44 to exit assignment mode.

It’s common to place a small dot beside pin one and you can do this via the 2D Graphics circle icon. Make sure that the Layer Selector is on Top Silk and turn the snap setting down to minimum (CTRL+F1) to achieve finer control over the size.

Place a small dot where Pin 1 is

The final step is to specify where we want the origin of the device to be (for placement purposes) and where we want the silkscreen graphics for the package reference to appear. Both of these are done with markers.

Select marker mode and make sure that ORIGIN marker is highlighted in the Object Selector. You’ll recall that we used this as a reference point earlier but it’s real job is to specify the origin of the component for placement and rotation. This is really a decision for the user but typically the origin is either pin 1 or the centre of the component. For simplicity here, we will place the origin on pin 1; left click to begin placement, move the mouse over the centre of pin 1 and left click again to commit the origin marker.

Origin marker placed

Now, change the marker type to be REFERENCE in the Object Selector. The Reference marker dictates where the component reference (e.g. U1, R12, C3) is placed by the software relative to the component. Again, this is very subjective but we’ll set it above and slightly to the left of the part.

Reference marker placed

Having completed the layout of the footprint, we can now move on to the (far simpler) process of packaging the part into the libraries.

Circular Pad Placement

The replicate command is dynamic based on whether you are in cartesian co-ordinates or polar co-ordinates (View Menu Toggle). If you needed to place pads in a circular shape you would:

  • Select Polar mode (View Menu).

  • Place a False Origin ('O' shortcut key).

  • Orient your first pad and place at radius distance from (false) origin.

  • Right click on the pad, select replicate comm and and specify angle (e.g. 20) and number (e.g. 17) to complete the circle.

Packaging the Footprint

Drag a selection box around the entire footprint and then select the Make Package command from the Library Menu.

Launch 'Make Package' from the Library menu

The first screen is fairly self-explanatory and similar to that we’ve seen in the schematic application. Note that the package description is searchable when we are browsing for footprints so a little effort to make this as descriptive as possible is worthwhile. You will also want to create the part in the USERPKG library which is the default library supplied for user footprints. For our purposes, we’ll call this package TESTPKG and give it some basic entries.

The Make Package dialogue form

You can create your own libraries via the Library Manager – please see the reference manual for details. You should not make your own parts into the other pre-supplied libraries as Labcenter may overwrite these libraries during upgrade installs.

When this is filled out, switch tabs to the 3D Visualisation tab (do not hit the OK button at this stage – we still have some work to do). Essentially what we need to do here is provide as much information as possible in order to get a sensible 3D image of the part which can then be used when we use the 3D Viewer to examine a board. This job is greatly aided by a 3D Preview on the dialogue form that will update live as we adjust parameters. Discussion of parameters and values is beyond the scope of this tutorial and is discussed in some depth in the online reference manual (Help Menu Reference Manual). For our purposes, simply fill out the property fields as shown in the next section.

3D Visualisation

This is where you would either provide a STEP file or use the Labcenter script to provide a geometric model for the part. In either case, you will get a 3D representation of the part in the 3D Viewer and can then export to Solidworks or other MCAD toolchains for case and mounting design.

If you are providing a STEP file you must:

1) Download the STEP file from the internet and place in the MCAD directory of your Proteus installation.

2) Import via this dialogue.

3) Rotate and offset such that the part is aligned correctly on the 2D courtyard. Note that you can zoom in and out on the preview with the middle mouse wheel (or buttons) and the flip command will mirror the board at its current position.

Fortunately, this job is greatly aided by the number of STEP files available on the internet (e.g. www.3dcontentcentral.com) and a 3D preview on the dialogue form to help with alignment.

Setting the 3D parameters

Discussion of geometric model parameters, values and importing models is beyond the scope of this tutorial and is discussed in some depth in the online reference manual (Help Menu – Reference Manual). Geometric models are ideally suited to large pin count parts with small extrusion (e.g BGA, QFP)

STEP files, while common, are often poorly made resulting in large file sizes. Bear in mind the bigger the STEP file the slower the 3D Viewer will render. Consider using geometric models where no sensibly sized STEP file is available.

Creating Geometric Models.

Importing STEP/IGES Files.

If you now select the Package Icon, you will see that TESTPKG has appeared in the Object Selector, and can be placed like any of the packages you have used so far. Also, if you place the part on the layout and invoke the 3D Visualisation engine from the Output Menu (PCB Design Level 2 or higher required) you will see the 3D rendered image of the part.