INTRODUCTION

Introduction

The aim of this tutorial is to take you through the process of entering a circuit of modest complexity in order to familiarise you with the techniques required to drive the schematic capture module in Proteus. The tutorial starts with the easiest topics such as placing and wiring up components, and then moves on to make use of the more sophisticated editing facilities, such as creating new library parts.

An accompanying tutorial in the PCB module then continues the project development using the completed schematic drawn in this tutorial.

For those who want to see something quickly; IoT_Pump_Schematic.pdsprj contains the completed tutorial schematic but no layout, IoT_Pump_Unrouted.pdsprj contains a completed schematic as well as an unrouted PCB layout, and IoT_Pump_Complete.pdsprj contains a completed schematic as well as a completed PCB layout. All of these projects can be loaded from the Tutorials category of the Sample Projects Browser, which is accessible from the Open Sample button on the Proteus 8 Home Page or the Open Sample Project option under the File menu.

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. Information on configuring your own keyboard shortcuts can be found in the General Concepts section of the Documentation.

See Also:

PCB Layout (Tutorial)

Schematic Capture (Reference Manual)

Application Framework : Backup and Recovery Procedure

Creating a New Project

We shall assume at this point that you have installed the Proteus 8 software package.

The software can be started via one of the various methods available in Windows; such as a Desktop Shortcut, the Start Menu (Proteus 8 Professional group), or the Search function. Once the main application has loaded then you will be presented with the Proteus Home Page.

If you have a Demonstration copy of the software then the Start Menu group will be "Proteus 8 Demonstration".

In order to create a schematic we must first create a project. Since this tutorial is partnered with the PCB tutorial we will create a project for schematic/PCB.

See Also :

New Project for VSM Simulation (VSM Tutorial).

Start by pressing the new project button near the top of the home page in Proteus.

On the first page of the wizard specify a name and path for the project.

We need a schematic so select the option at the top of the next step and then choose the default template.

Similarly, we need a layout so select the option at the top of the layout page and again choose the default template.

The next screen allows us to define the layer stack for our PCB. For our project we will be designing a 4-layer PCB, so we need to click the "Stackup Wizard" button and then select 4 layers and enter "0.8mm" for the Core Thickness.

Links to detailed help topics providing further information on Layer Stackup and Drill Spans are given at the end of this section. A description of the board which we will be designing, including the reasoning for layer stackup choices, is provided in the next topic in this tutorial - "Design Overview".

Our board will have three signal layers (top, inner 1 and inner 2) and one plane layer (bottom), so we need to change the bottom layer type from "Signal" to "Plane".

Plane layers are layers which contain only solid copper fill and on which signal tracks are not allowed. Note that signal layers may still contain power planes as well, however these are added at a later stage. Plane layers are used as design constraints for considerations such as impedance control and EMI/EMC compliance, the theory of which is beyond the scope of this document. The "Create Power Plane" button, which is used to create a power plane on a signal layer, is disabled in the New Project Wizard because power-supply nets have not yet been defined - it is available when the Layer Stackup dialogue is invoked during the PCB Layout stage of design.

The next page of the New Project Wizard allows us to define the valid drill ranges for the board, which are used for features such as blind and buried vias. The simplest way to enter these is to allow Proteus to automatically create them, based on the layer stackup defined on the previous page, by clicking the "Create from Cores" button.

The final screen in the PCB configuration is simply a preview of a PCB cross section that displays visually what has been set up in the previous screens.

We are not simulating the design so leave the firmware page blank and continue on to the summary which should look like the following:

Click on the finish button to create the project.

It is also possible to launch the Schematic and/or PCB Layout tabs directly from the Home Page in Proteus, without invoking the New Project Wizard, simply by clicking on the Schematic and/or PCB Layout icon(s). This method however does not streamline the process of applying templates, setting the Layer Stackup, etc.

Further Reading:

A schematic template can contain sheet size, colour scheme, company logo, header block and various other aesthetic presets. Further information can be found in the Templates chapter of the reference manual.

A PCB template can contain board edge, mounting holes, design rules, layer stack and various other technology information. Refer to the Templates chapter in the PCB documentation for more information.

The configuration of the Layer Stack and Drill Spans is really important for multi-layer PCB's and is discussed in some detail in the reference manual.

The project will open with two tabs, one schematic capture and the other for PCB layout. Click on the schematic tab to bring the schematic editor to the foreground.

Guided Tour

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 wire-up components. 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 the Overview Window is used to preview the selected object - this is discussed later.

Schematic Capture Window

If you don’t like the default layout of the toolbars you can pick them up and dock them on any of the four sides of the application. Similarly you can move the Object Selector & Overview Window pane across to the right hand side of the application by dragging the end of it all the way across to the other side.

Toolbars and menu options will switch according to which tab is active (at the front). Throughout this tutorial when we refer to an icon or a menu command we are assuming that the schematic tab is active.

Right clicking the mouse either in the Object Selector or in the Overview Window will provide a context menu, including the option to ‘auto hide’ the left hand pane. This is extremely useful if you want to maximise the editing area of the application. When enabled the Object Selector and Overview Window will be minimised to a ‘flyout bar’ at the left (or right) of the application by default and will appear either when the mouse is placed over the bar or when the mode of operation is changed by selecting a different icon.

Auto hide the Object Selector Device Mode Icon

See Also:

Screen Layout (Reference Manual)

Navigation of the view displayed in the Editing Window takes two forms; adjusting the scale of the drawing (zooming) and adjusting the area of the drawing displayed (panning). These techniques are somewhat intertwined and are discussed in more detail below:

Zooming

There are several ways to zoom in and out of areas of the schematic :

  • Point the mouse where you want to zoom in and out of and roll the middle mouse button (roll forwards to zoom in and backwards to zoom out).
  • Point the mouse where you want to zoom in or out of and and press the F6 or F7 keys respectively.
  • Hold the SHIFT key down and drag out a box with the left mouse button around the area you want to zoom in to. We call this Shift Zoom
  • Use the Zoom In, Zoom Out, Zoom All or Zoom Area icons on the toolbar.

Zoom Icons

The F8 key can be used at any time to display the whole drawing.

The Shift Zoom and the middle mouse zoom techniques can also be used over the Overview Window. That is, you can position the mouse over the Overview Window and either roll the middle mouse button or use Shift Zoom to navigate in or out of an area of the schematic.

Panning

As with zooming, there are a number of options for panning across the editing window.

  • Click on the middle mouse button to enter track pan mode. This puts the schematic in a mode where the entire sheet is picked up and will move as you move the mouse. The track pan cursor will indicate when you have entered this mode. Left click the mouse again to exit track pan mode.
  • To simply 'pan' the Editing Window up, down, left or right, position the mouse pointer over the desired part of the Editing Window and press the F5 key.
  • Hold the SHIFT key down and bump the mouse against the edges of the Editing Window to pan up, down, left or right. We call this Shift Pan.
  • Should you want to move the Editing Window to a completely different part of the drawing, the quickest method is to simply point at the centre of the new area on the Overview Window and click left.
  • Use the Pan Icon on the toolbar

Note that when using the track pan method above you can also zoom in and out by rolling the mouse wheel. So, click the middle mouse button to pick up the sheet and move the sheet by moving the mouse and zoom the sheet by rolling the middle mouse button. Left click to 'drop' the sheet and exit track pan mode.

It is well worth spending a few moments familiarising yourself with navigation on the schematic - it is after all one of the most common operations you will perform. In particular, learning to use the middle mouse button both for track pan and for zooming will save you time during schematic design.

A grid of dots or lines can be displayed in the Editing Window as a visual aid using the Grid command on the View menu, or by pressing 'G' to toggle the grid from ‘dots’, ‘lines’ or ‘off, or by clicking the Grid Icon on the toolbar. The grid helps in lining up components and wires and is less intimidating than a blank screen. If you find it hard to see the grid dots or lines, either adjust the contrast on your monitor slightly (by default the grid is displayed in light grey) or change their colour with the Set Design Defaults on the Template menu.

Below the Overview Window is the Object Selector (sometimes known as a 'parts bin') which you use to select devices, symbols and other library objects. We'll familiarise ourselves further with using the Object Selector later.

Finally, at the bottom of the screen is the co-ordinate display, which reads out the co-ordinates of the mouse pointer when appropriate. These co-ordinates are in 1 thou units and the origin is in the centre of the drawing

Origin Co-ordinates

Note that Proteus allows you to reposition all the icon toolbars as well as move/resize the Object Selector/Overview Window. Do be aware however, that this documentation refers to all the rebars and windows in their default locations.

Visual Aids to Design

The Proteus capture module is designed to be as user friendly as possible and provides two main ways to help you see what is happening during the design process – objects are encircled with a dashed line or ‘twitched’ when the mouse is over them and mouse cursors will change according to function. Essentially, the object-twitching scheme tells you which object the mouse is over (the ‘hot’ object) and the mouse cursor tells you what will happen when you left click the mouse on that object. While extremely intuitive, a summary of cursors used, together with their actions, is provided below:

Cursor | Description
 | Standard Cursor - Used in selection mode when not over a 'hot' object.
 | Placement Cursor - Placement of an object will commence on a left click of the mouse.
 | Hot Placement Cursor - Appears green when placement of a wire is available on left click of the mouse.
 | Bus Placement Cursor - Appears blue when placement of a BUS is available on left click of the mouse.
 | Selection Cursor - Object under the mouse will be selected on a left click of the mouse.
 | Move Cursor - The currently selected object can be moved.
 | Drag Cursor - The wire or 2D graphic can be dragged by holding the left mouse button down.
 | Assignment Cursor - When over an object (having set the Property Assignment Tool) You can assign the property by left clicking the mouse button.

We will see more of the different cursor types throughout the course of the tutorial.

Keyboard Shortcuts

For those customers who prefer to invoke commands and dialogues via the keyboard Proteus provides a comprehensive and flexible scheme for assigning shortcuts. The dialogue form is invoked from the System Menu – Set Keyboard Mapping command, where all commands and operation modes can be accessed from the combo box at the top. Simply select the command you want, apply a key sequence and assign it to that command

Keyboard Mapping Dialogue Form

While there are few limits on shortcuts, a few standard windows accelerators are restricted as they are global across the entire Proteus system (e.g. CTRL+S for save).

See Also:

Keyboard Configuration (Reference Manual)

Display Options

Proteus is capable of harnessing the power of your computers graphics card to speed up operation and present a crisp and smooth display. However, as not all machines have sufficient graphics cards the software is also capable of using Windows to perform display and graphical operations. The available modes of operation are called:

  • Windows GDI Mode.
  • OpenGL Hardware Accelerated Mode.
  • Direct 2D Hardware Accelerated Mode.

If your graphics card is not powerful enough to support hardware acceleration then Proteus will simply default to Windows GDI mode. Should your computers graphics card be capable of both Direct2D and OpenGL the system will default to Direct2D mode as this tends to be more reliably implemented by graphics card vendors.

Configuration of the screen display takes place from the Set Display Options on the System menu. Some of these options are specific to a particular hardware acceleration technology and will be disabled when a different mode is enabled.

The Set Display Options Form for OpenGL and Direct2D

The first section of the dialogue reports on whether your graphics card will support OpenGL and/or Direct2D hardware acceleration and, if so, allows you to switch between graphics mode.

The auto-pan section of the dialogue allows you to control distance, smoothness and speed of pan operations on the schematic. For example, holding down the shift key and bumping the mouse against the edge of the window will auto-pan the screen.

The highlight animation options allow you to specify the speed at which objects become active when the mouse is moved over them. The attack rate is the rate at which the object is highlighted and the release rate is the speed at which the object returns to it’s default state. These options are only available in hardware accelerated display modes.

Finally, the multi-sampling combo box allows you to specify the level of anti-aliasing you want when working in OpenGL mode. The higher the level of multi-sampling the better the anti-aliasing effect 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.

What you get with multi-sampling varies enormously between graphics cards. Some present extremely smooth text, while with others it looks blurry and on a few it causes display issues. We would suggest you being with multi-sampling off if you choose to work in OpenGL mode.

Configuration of colours and styles on the schematic takes place from the Template Menu. This allows to change everything from paper, grid and highlight colours to the thickness and colour of all the object types used in a design. Please refer to the reference manual section on Templates for more information.


DESIGN OVERVIEW

Design Overview

In order to cover important PCB Layout features in Proteus quickly and concisely, a design of modest complexity was selected for this tutorial. For cases where a PCB will not be laid out because simulation is the sole purpose of the design (at least initially), this schematic capture tutorial is still relevant as simulation takes place on circuits drawn within the Schematic Capture module of Proteus.

General Description

The circuit which we will design is an "Internet of Things Pump Controller". The circuit features:

  • Relay for switching the pump on and off

  • Wireless module for remote control/monitoring via GSM/GPRS as well as for BlueTooth communication

  • Accelerometer / gyroscope for monitoring pump vibration levels and patterns
  • Microcontroller for managing the board, and for running DSP / Artificial Intelligence algorithms on the vibration data from the accelerometer (such as detecting a change in vibration patterns which could indicate a problem such as impending bearing failure)
  • Additional features include an efficient switching power supply, as well as USB communication

A 3D visualisation of the board follows:

3D Visualisation of IoT Pump Controller Board

Circuit Description

The following is a block diagram showing the behaviour and interaction of the circuit components.

Block diagram of the IoT Pump Controller Design

We’ll cover the basics of the design construction as we progress through the tutorial but in order to keep the focus on the practical aspects of using the software, design decisions and theory will not be discussed in this document.

Advanced PCB Layout Features

We will be using a 4-layer PCB, with the following stackup:

Layer Stackup

  • The PCB will have components on the top side only. The top layer will contain component pads, signal traces, and a ground plane.
  • Inner layer 1 will contain signal traces, and a power plane (+3.3V).
  • "High-speed" (impedance controlled) traces will be routed on inner layer 2, referenced to the bottom layer which is a solid ground plane ("return path").

The following features will be implemented:

  • Track-length matching on the USB, SPI and ICSP lines. Whilst track-length matching on the SPI and ICSP lines is not really required, these provide a good opportunity to demonstrate the track-length matching feature without going into an overly complex design (such as one implementing DDR) for the purposes of a quick and concise tutorial.

  • Differential pair routing and phase matching on the USB lines.
  • Via shielding along the curved trace between the wireless module and the BlueTooth antenna.
  • Keepout zone on the power planes around the BlueTooth antenna.
  • Design-rule rooms allowing tighter routing and track-necking around fine-pitch components such as the microcontroller.


SCHEMATIC ENTRY

Basic Schematic Entry

We’ll start the tutorial by familiarizing ourselves with the basics of schematic design; picking components from the libraries, placing them on the schematic and wiring them together.

The design in question is moderately large and there is therefore a reasonable amount of drawing involved. We provide a completed schematic at the end of this section, so if you feel that you have mastered the basics at any point, there is no need to continue with drawing the remainder of the circuitry. We do however urge you to read through the full contents of the documentation as we introduce important features throughout.

The first thing we need to do is to get the parts from the libraries that we need in our schematic.

Selecting Parts from the Library

You can select parts from the library in one of two ways :

  • Click on the P button at the top left of the Object Selector as shown below. You can also use the Browse Library icon on the keyboard shortcut for this command (by default this is the P key on the keyboard).

  • Right click the mouse on an empty area of the schematic and select Place – Component - From Libraries from the resulting context menu as shown below :

Either of these two methods will cause the Device Library Browser dialogue form to appear.

For reference, the following is a list of all the components we will need for our design:

# | Part | Description | Is Online
1 | 2N7002 | Transistor (N-Channel MOSFET) | No
2 | 115U-A000 | SIM Card Socket | Yes
3 | 47346-0001 | microUSB Connector | Yes
4 | 73100-0115 | SMA Antenna Connector | Yes
5 | 1729018 | 2-Way Terminal Block | Yes
6 | A10192 | 2.4GHz SMD Antenna | Yes
7 | ADJH21012 | 50A Relay | Yes
8 | B3S-1002P | Tactile Switch | Yes
9 | CAP | Capacitor (Generic) | No
10 | CONN-SIL5 | 5-Way Connector | No
11 | LG_R971 | Green LED (0805) | Yes
12 | LH_R974 | Red LED (0805) | Yes
13 | LSM6DSOXTR | Accelerometer / Gyroscope | Yes
14 | RES | Resistor (Generic) | No
15 | SRP3020TA-3R3M | 3.3uH, 3A Inductor | Yes
16 | SS36A | Schottky Diode | Yes
17 | STM32F401CE | STM32 Microcontroller | No
18 | TLV1117LV33DCYR | 3.3V Regulator | Yes
19 | TPS563231DRLR | DC-DC Buck Converter | Yes
20 | TXB0106PWR | Voltage Level Translator | Yes
21 | SIM800C | GSM/GPRS/BT Module | Yes

Parts marked "Is Online" are not included in the bundled Proteus libraries and will need to be imported from an online library service. Fortunately, importing library parts from the online service is integrated right into the Pick Devices dialogue, making this process easy and streamlined! All that you need to do is register a free account when prompted (using the link provided), or enter your Username and Password if already registered. The online library has over 15 million parts (and counting) available, and over 75% of the parts in this tutorial design are imported from it!

See Also:

Library Form Web Search

There are several ways in which we can search the libraries for components to be imported into the schematic. In the case of parts where you would know the part name its usually best to start the search with that. Try entering ’2N7002’ into the Keywords field on the Device Library Browser dialogue form. This gives a few components to choose from and we can then simply double click on the part in the results list to import it into the schematic. When you do this you should notice that the part now populates the Object Selector as in the following screenshot.

The 2N7002 in the Object Selector

If selected, then the "Show only parts with models?" checkbox will result in only parts which have simulation models already attached being included in the search results (it should be deselected for our design).

Given that we know the names of all the parts we want we could simply proceed by using this technique to bring in all the components we need. However, this may not always be the case and Proteus provides several methods for finding parts in the component libraries. One of the most intuitive is to use the library browser a little like an internet search engine, typing in descriptive keywords and then browsing the results to find a specific part. Try this now with the resistors, typing in ‘6A Schottky SMA’ in the keywords field of the library browser dialogue to locate the SS36A component (double click on the part in the results list to import into the schematic). We could similarly search for ‘SMA Connector Right Angle’ to find and insert the 73100-0115 component and so on.

Picking a SS36A Schottky Diode from the Pick Devices form / Websearch

Note that when no search results are found in the local libraries then the online library will be searched automatically. When search results are found in the local libraries however then results from the online library (if any) will only be displayed if the button at the bottom of the dialogue is clicked.

Show Websearch Results Button

You can customize the information displayed in the Library Browser’s results list by right clicking the mouse on the results list. The context menu provides you with options to display Categories, Sub-Categories, Manufacturer and Library alongside each result.
For example, if you wanted to search for a specific stockcode you would need to make sure that the stockcode column was enabled (right click on results list) and then type something like ‘digi <stockcode>’ to locate the digikey stockcode.
Similarly, if you want to search through only your own library parts, you can simple enable the library field and then type something like ‘user <partname>’; the user term will filter the results to the USERDVC library thus reducing the search range to your own libraries.

Note that search results can be further filtered using the "Category", "Sub-category" and "Manufacturer" lists. To find the Nano SIM connector for example, type "Nano SIM" under Keywords and then select "ATTEND" as the manufacturer - then select "115U-A000" from the filtered search results list.

Whilst these exercises are a little contrived given that we are starting from a preset list of parts, the techniques described are flexible enough to allow you to locate any library part quickly. Work through the full parts list for the design (as provided above) now using one or more of these methods to find and select the parts into your design. When you are finished you should have all of the required components in the Object Selector as shown in the following screenshot.

A full list of required components

Besides for the integrated online library search, which works with SamacSys (http://componentsearchengine.com), parts can also be manually downloaded and imported from popular third party vendors such as Ultra-Librarian, SnapEDA, Library Loader or PCB Library Expert. The process is discussed in detail in the reference manual and also covered in video format on the website and our Youtube channel.

Placing Objects on the Schematic

Having selected the parts we need the next thing is to actually place them on the drawing area – the Editing Window – and wire them together. You’ll notice from the screenshot that we are also splitting the contents of the schematic into logical blocks of circuitry. This is partly aesthetic but also reduces wiring clutter on the schematic and will allow us to cover the use of terminals to form connections as we work through the tutorial. The use of terminals to form connections is also necessary for multi-sheet designs, and as our design is moderately large we will need a few sheets to complete it.

Main Sheet of the IoT Pump Schematic

We are going to start off simply and complete the block of circuitry comprising the IMU (Inertial Measurement Unit - Accelerometer + Gyroscope) device as shown below.

IMU circuit section

Placing Components

Begin by placing the LSM6DSOXTR IMU device as follows:

  • Select the LSM6DSOXTR device from the Object Selector.

  • Left click on the schematic to enter placement mode.

  • Move the mouse to the desired location for the part, then left click the mouse again to ‘drop’ the part and commit placement.

Often we need to move parts or blocks of circuitry after placement and now is a good time to cover the different ways in which we can do that. The procedure for this should be familiar to most users; we need to select the object(s) we want to move, left depress the mouse, drag to the new location and finally release the mouse to drop.

We can select an object in several ways as detailed below:

  • Choose the Selection Icon and then left click on the object. This is a standard technique found in most graphical applications and will tag any object. Bear in mind when using this technique that you must change back to component mode when, for example, you wish to perform other actions such as placing components, etc.
  • Right clicking the mouse on an object will both tag the object and present a context menu containing available actions on that object.
  • Draw a tagbox around the object by depressing the left mouse button and dragging the mouse to form a box encompassing the object to be selected. This method will work for any object (or indeed sets of objects). Sizing handles are provided to allow you to resize the tagbox in the event that it does not fully enclose the object. This is the technique that should be used for moving multiple, connected objects or blocks of circuitry.

We’ll get plenty of practice moving things around as we lay out the schematic; for now just use one of these techniques to move the IMU device down towards the bottom right of the Editing Window in roughly the same position as in the screenshot at the top of the section.

Having placed the IMU device, we now need to get the peripheral circuitry down and oriented correctly. We are going to need two 100nF capacitors for the VDD and VDDIO lines. Additionally, we are going to need to use terminals to achieve connectivity with power, ground and other sections of circuitry. Begin by selecting the CAP device and placing one near the top-right of the IMU device, next to the VDD line.

The generic CAP device has a value of 1nF by default; we will change this to 100nF in a following step. We could also choose to specifically pick a 100nF capacitor from the libraries; this can have the advantage of already having a specific part number / supplier stock code associated with the part, which could then be included in Bill of Materials (BoM) output, and also would not require us to manually change the value after placement. Note that it is also still possible to attach information such as supplier stock code to generic parts after they have been placed.

The next capacitor should be rotated by 90°. Click left once on the anti-clockwise Rotation icon (shown below); note that the preview of the capacitor in the Overview Window shows it rotated through 90°.

Using the Rotation Icons with the Overview window

Now place the capacitor to the left of the IMU device in the same way as before.

You can also rotate parts 'live' when in placement mode. Left click the mouse once to enter placement mode (at this point you will see the component outline following the mouse) and then use the '+' and '-' keys on the numeric keypad to rotate the component as you are placing it. Left click again to commit the placement in the normal way.

Next, let's change the values of the capacitors from 1nF to 100nF. A detailed section on editing component properties will follow; however for now just double-click on the "1nF" label (or right-click on it and select "Edit Label"), change the "1nF" text to "100nF", and click OK (repeat for the other capacitor as well).

Placing Terminals

We use terminals in schematic design simply to terminate a wire and assign a connection. Often this connection is to either power or ground but it can just as easily be to another wire elsewhere on the circuit. Terminals allow us both to vastly reduce actual wiring (avoiding spaghetti schematics) and to make connections between different sheets on the schematic. To place terminals, start by selecting the terminal mode; this will switch the Object Selector and provide us with a listing of the available terminal types.

Selecting the Default Terminal

We need two power terminals, a ground terminal, input and output terminals for the SPI communication lines, and also NC ("Not Connected") terminals for the unused pins. From this stage; placement, orientation and label editing are identical to any other object and should now be becoming quite familiar. Place the appropriate terminals in their approximate locations, such that the area around the IMU device now looks something like the following. The terminal labels can be edited by double-clicking on the terminal, or by right-clicking on it and then selecting "Edit Properties". A detailed section on terminal labels will follow shortly.

Edit terminal label

Components and terminals positioned correctly

The various types of IO terminals - input, output, bidirectional - can be used by the Electrical Rule Checker (to make sure that two input terminals are not wired together, for example), and also help to clarify the design visually. The "DEFAULT" terminal type is a more generic one which can be used if ERC / visual clarification are not needed. The NC pins can be used to both clarify the design visually and also to ensure that unused pins do not show up in the Single Pin Net report.

Unless you are fairly skillful, you are unlikely to have got all the components oriented and positioned entirely to your satisfaction at the first attempt, so now is a good time to practice moving things around as discussed earlier. In particular note that you can drag a tagbox around a group of objects to move the lot in one go.

Dragging components

Similarly, you can clear a selection (or group of selections) either by left clicking in empty space or by right clicking in empty space and choosing the Clear Selection option from the resulting context menu

Remember that you can rotate while moving by using the '+' and '-' keys on the numeric keypad.

Wiring Up

Having placed all the requisite components we now need to wire them together. There are three main techniques used to help make wiring a circuit as simple and quick as possible:

Modeless Wiring

There is no 'wiring mode' in the schematic editor - wires can be placed and edited at any time, without the hassle of entering a dedicated wiring mode prior to placement. This means less mouse travel, less mode switching and quicker development.

Follow-Me Wire Autorouting

After starting to place a wire, the proposed route of the wire will follow the movement of the mouse orthogonally to the termination point of the wire.

Live Cursor Display

The cursor will change as a visual indicator when wiring to show when a wire can be placed, when a wire can be terminated and when a wire is being placed.

The basic procedure for placing a wire between two pins is given below, using the connection between the SDO/SA0 pin of the memory device and the MISO terminal as an example:

  • Move the mouse over the SDO/SA0 pin on the memory device - the cursor will change to a green pen.

  • Left click the mouse and then move it to the left until it is over the pin of the MISO terminal. The wire will follow the mouse and the cursor / pen is white during wiring

  • Left click the mouse again to commit the connection and place the wire.

Junction Dots

When you need to make a connection to a wire (as opposed to a pin) then the procedure is almost identical but there are a few points to note:

  • You cannot generally directly start a connection from an arbitrary point on a wire; in our example you want to start the connections from the pin and terminate them on the wire. The exception to this rule is when certain modes are selected, such as component mode or terminal mode.
  • When you terminate the connection on another wire then a junction dot will be placed automatically in order to complete the connection.
  • Junction dots can also be manually placed using the dedicated junction dot mode.
  • Whilst routing a wire, double-clicking will terminate the route with a junction dot at the current location.

Junction Dots

If, during a design, you want to make a wire-to-wire connection then it is generally necessary to first place a junction dot on the wire and then wire from the junction dot to the other wire.

If you want to adjust a wire after placement then simply right click on the segment you want to move and then either select the ‘Drag Wire’ context menu option or simply depress the left mouse button and drag to the new location.

Dragging a wire

Armed with the above you should now be able to connect up all of the circuitry, completing the IMU circuit section.

Remember, Proteus provides visual indicators to help you. If the cursor turns green you can start/stop wire placement.

See Also:

Wiring Up (Reference Manual)

Connectivity by Touch

The following basic rules of thumb may be helpful:

  • If you are placing a component then you can attach its pins to another component, wire or terminal directly, by placing the pins so that they "touch".
  • If you are dragging a component then you can attach to another component pin, junction dot or terminal.
  • If you are copy and pasting then you can only attach to a pin end, a bus pin, a junction dot or a terminal.

Further information can be found here: Connectivity by Touch (Reference manual)

Terminal Connections

In a previous step we have placed and labeled terminals. Terminal naming is extremely important as it denotes the connection to be made. We could name the terminals in any fashion we liked but sensible names make the schematic more legible and easy to understand.

Terminal connection

Power, Ground and NC terminals are the exception to this rule, although there is no reason not to label them; an unlabeled power terminal is assigned to the VCC net and an unnamed ground terminal will be assigned to net GND. A pin connected to the NC terminal is NC and cannot then be connected on the layout.

Essentially what we are doing by labelling a terminal is making a connection to somewhere else on the schematic (a terminal with the same name) without placing a physical wire between the two objects.

Note that, where appropriate you should always prefix numerical terminal values in terminal names with a '+' or '-'. For example, a terminal labeled 12V is ambiguous and you should therefore ensure it is labeled +12V or –12V

See Also:

Terminals (Reference Manual)

Power Connections

Proteus schematic capture supports a powerful scheme for making power connections implicitly, thus vastly reducing the number of wires on the schematic. There are three main concepts involved that we will discuss in turn below. Before continuing; place an STM32F401CE device on the schematic, using the techniques already learned. The STM32F401CE component contains two hidden pins which are automatically connected to power rails (VDD and VSS).

Hidden Power Pins

Almost all relevant parts in the installed libraries have their power pins hidden (not visible on the schematic). The crucial point to remember is that in such cases is that by default the name of the pin denotes the net to which it will connect.

If you need all pins to be visible on the schematic (e.g. for auditing purposes) consider using the library import tool (Library Menu -> Import Part) to bring in the parts you need. This process is quick and easy and works with library parts supplied from all major vendors.

See Also:

Hidden Power Pins (Reference Manual)

Power Rail Configuration

The easiest way to manage power nets and connectivity is through the Power Rail Configuration dialogue form, which is invoked from the Design Menu. If we do this now we can see that we have three pre-defined power supplies, namely GND, VCC/VDD and VEE. Changing the combo box at the top we should also see that the GND and VSS nets are connected to the GND supply and that both the VCC and the VDD nets are connected to the VCC/VDD supply. It’s worth examining how this happened more closely:

  • The GND net is created by connections to an unlabeled ground terminal.
  • The VDD net is created by connections to the power terminal labeled VDD.
  • The STM32 has two hidden power pins, VCC and GND, which are assigned to nets bearing their names.

Managing power nets and power supplies is a very important concept so we’ll experiment a little to re-inforce the point. Exit the Power Rail Configuration dialogue form, right click on the STM32 part and select Edit Properties from the resulting dialogue form. Next, click on the Hidden Pins button at the right hand side to view the hidden pins and their net assignments.

Hidded Power pins in schematic components.

Let’s change the power pin to be on net VCC, instead of the default of VDD. If we then exit the dialog and re-invoke the Power Rail Configuration dialogue and switch to the VDD/VCC power supply we should see that the VDD net is no longer present (this was the only connection on our schematic so far).

While we are here and for completeness change the Voltage of the power supply to be 3.3V, which is actually what we will be using. In PCB Design this is useful only as a reference to ourselves but actually has significance in the software for simulation purposes.

This exercise, while useful in explaining how to view/change the power nets for individual components, had no effect on design connectivity. The software is clever enough to assign both the VCC and the VDD nets to the same supply and the Power Rail Configuration dialogue allows us to configure our power connectivity at design level.

Returning to the schematic now, edit one of the VCC terminals (right click, edit properties) and change the terminal label to ‘MY_POWER_NET’. If you go back to the Power Rail Configuration dialogue you should see that this is now an unconnected power net (a power net which is not associated with a power supply).

Changing the Terminal name

If we were doing this for real, we would now have to select the VCC/VDD power supply and then click the assign button to map our power net onto the correct supply.

If we had simply removed the label from the power terminal (instead of renaming it), it would have been designated to the VCC net and again everything would be done for us.

A final point worth noting is that new power supplies are created automatically when you label a terminal with a voltage. For example, labeling a power terminal +12V would create a +12V supply and assign the +12V net to the supply automatically. This means again that no action is required by the user.

In general usage therefore, the software will handle the assignments of power nets to power supplies and will create new supplies automatically. However, if you need more flexibility (for example, an analogue ground and a digital ground) then using terminal labels and the Power Rail Configuration dialogue gives you the control you need. Please see the reference manual for more information if required.

Let’s change our terminal label back to VCC for consistency before we move on.

See Also:

Power Rail Configuration (Reference Manual).

Global Power Nets

Power nets and connections are always global on a given sheet on the schematic. By default, they are also global to the design. However, if you do have a multi-sheet design and you want separate power supplies on different sheets you can isolate the supplies by un-checking the Global Power Nets box (Design Menu - Edit Design Properties dialogue form). This means that you need to explicitly wire through the sheets on the design but not within a given sheet. It is typically used only for the most complex of designs and is not relevant for the purposes of this tutorial.

Part Labels and Annotation

You should see that all the parts you have placed have a body, a unique reference / ID, and a value.

Body | Reference / ID | Value

Note that additional information can also optionally be appended to components if required (more on this shortly).

The unique part reference / ID is automatically sequentially generated by Proteus as parts are placed on the schematic, although you can re-annotate manually if you need to.

You have full control over the value, position and visibility of the part labels – you can change the values, move the position or hide information that you feel is unnecessary. A number of methods are available for changing component properties; some methods are better suited to changing a property value on a single component whilst other methods are better suited to changing a property value on multiple components at once (or in a sequence).

To change the value of a property on a single component, we could:

  • Right-click on the component body, reference or value (or additional property text) and then select "Edit Properties" from the resulting context menu, in order to bring up the "Edit Component" dialogue.
  • Double-click on the component body, which will also bring up the "Edit Component" dialogue.
  • Right-click on the component reference or value (or additional property text) and then select "Edit Label" from the context menu, which will bring up a dialogue for editing only that property value.
  • Double-click on the component reference or value (or additional property text), which will also bring up the "Edit Label" dialogue.

Methods available for changing multiple property values at once include:

  • The Property Assignment Tool (usually coupled with the Search & Tag tool).

  • The Design Explorer.

Further Reading:

The Property Assignment Tool (including Search & Tag)

Design Explorer

Right-click on one of the capacitors and then select "Edit Properties" from the context menu, in order to bring up the "Edit Component" dialogue.

The Edit Component Dialogue

From the resulting dialogue form you can edit the part name, reference, and in this case, the capacitance (part value). The visibility options ("Hidden" / "Hide") can be useful, particularly in densely populated schematics to hide some details displayed beside the parts – the trade off being that you would then need to edit the part as above to see it’s reference and value. Additional properties and notes may also be entered in the "Other Properties" section. Note that we will change the PCB Package later when preparing for PCB layout.

Additional properties and notes which are enclosed between curly braces (e.g. "{CODE=CL21B104KBFNNNF}") will not be displayed on the schematic (will be "hidden").

At this stage it is worthwhile familiarising yourself with editing components and hiding and showing references and values.

Some caution is required when changing part references in this manner. If, for example, you change ‘C2’ to be ‘C1’ then you will have two parts with the same reference on the schematic. This will cause netlist errors when working in the PCB module. If, however, you re-annotate using the new button on the edit component then you are guaranteed a unique part reference.

The 'New' button will automatically assign a new reference

Similarly, the Global Annotator (discussed later in the tutorial) will always avoid duplication of part references.

As well as the ability to hide part labels you can also move them to a more convenient place. This is commonly used where you might want to place a wire over the current position of the label and need to free up some screen space. We will try this now with the 'C2' and the '100nF' labels on the capacitor, moving them across to the other side of the component body.

Start by selecting the capacitor. Now point at the label 'C2' and with the left button depressed, drag it to its new position to the left of the component body. Then do the same with the '100nF’ label.

Dragging a reference

Timesaving Techniques & Block Editing

Armed with all of the basic techniques we can now look at the other blocks of circuitry on this sheet of the design, practice what we have covered so far, and introduce some new timesaving techniques. Let’s start by working on the STM32 block as shown below:

STM32 Microcontroller Circuit Section

Block Copy

Start by placing a capacitor (C3) towards the top-right of the MCU, and changing the value to be 100nF.

Next, draw a selection box around the capacitor and invoke the "Block Copy" command.

Block Copy Command

Move the mouse down and place 3 more copies of the capacitor. Complete the bank of decoupling capacitors by adding power and ground terminals, and wiring everything up. In this instance we have copied a single component, however the block copy command is generally more useful for copying circuit sections; draw a selection box around the bank of capcitors, and then invoke the block copy command again.

Block copy circuit section

Place a copy of the bank of capacitors to the right, and then hit the "Undo" command (or Ctrl+Z), because we do not actually need an extra bank of capacitors and only did this to illustrate the functionality of the tool (alternatively, select the copied bank of capacitors and delete them).

Wire-Repeat

Next, we will start placing and wiring up all the terminal connections for the microcontroller. Place a few terminals as shown below, and then wire the bottom NC terminal to PB15.

Now, instead of repeating the process for the remaining connections simply hover the mouse over the next pin up (so that the cursor turns green) and double click. This will auto-repeat the previous connection, allowing you to rapidly wire up the other lines.

Note that this technique works by placing an identical wire to the one placed directly beforehand. It follows that the destination must be exactly the same distance away (i.e. aligned) and that you must perform the operations consecutively

Terminal Name Selection

Instead of typing out the "LSM6D_CS" terminal label, we could also just select it from the dropdown (in the Edit Terminal Label dialogue) as it has been previously defined (when we drew the IMU circuit section).

Drop down list of Terminals

Selecting of terminal names from the dropdown may actually be preferable, as it can help to avoid typing errors which could result in missing (or incorrect!) connections.

Finishing Up

All that remains to be done on this sheet now is to finish connecting terminals to the STM32 (and add a 2.2uF capacitor to the VCAP_1 pin) and add the few other small circuit sections (microUSB connector, reset button, voltage divider and programming connector).

If you feel comfortable with the topics we have covered to date, you can skip some of the drawing and load a pre-supplied completed schematic later in the tutorial.
You may also prefer to practice on some of the arguably more interesting sections of circuitry, such as that of the DC-DC converter, which are covered in the next topic.

When complete, this sheet should look something like the following:

Completed main schematic sheet

It is worth re-emphazing at this point that you can re-arrange or move blocks of objects at any time by tagging a box around them and dragging them to the desired location.

Moving a block of circuitry to the desired location


MULTI-SHEET DESIGNS

Multi-Sheet Designs and Connectivity

For anything other than small designs it will usually be necessary to split the design into multiple sheets. This serves both to reduce clutter on the schematic and also to organize the design into logical blocks. The Proteus schematic capture fully supports multi-sheet designs and our tutorial design will indeed require 3 sheets ("Microcontroller & IMU", "GSM", and "Power Supply & Relay"), which will allow us to cover the relevant procedures. The work which we have done so far has been to complete the first sheet ("Microcontroller & IMU" circuitry), leaving us with the "GSM" and "Power Supply & Relay" sheets to be completed.

While beyond the scope of this tutorial it is worth mentioning that Project Clips provide a method for re-using logical blocks of design and layout. More detail is in the reference manual and a short tutorial movie is linked below.

Introduction to working with Project Clips

Also, note that what we are doing here is adding additional sheets at the same level as the first sheet. Proteus fully supports hierarchical designs where you use sub-circuits to contain logical blocks. This is discussed in detail in the reference manual.

See Also:

Multi Sheet Flat Designs (Reference Manual).

Sub-circuits (Reference Manual)

Project Clips (Reference Manual)

Practical Examples: Duplication of Design Hierarchies (Reference Manual)

Adding Sheets to a Design

To add a new sheet to the schematic we simply invoke the command from the Design menu as shown below.

Creating a new sheet

Try this now to generate the second sheet.

Naming, Ordering and Navigating Sheets

Before we lay out the circuitry on this sheet we need to do a little housekeeping. While it’s not necessary it is often helpful to name the different sheets on the schematic and also to order them in some sensible fashion. We can do both of these things via the Edit Sheet Properties command on the Design Menu.

The Edit Sheet Properties dialogue form

The Sheet Title is what will be displayed and should therefore reflect the contents of the sheet. In our case let’s name it ‘GSM’.

Sheets on the schematic are organized by Sheet Ordinal and by default these are 10, 20 and so on. A sheet with an Ordinal of 20 will therefore appear behind the first sheet (default Ordinal 10). If you prefer purely numeric nomenclature we can change the sheet name to be ‘2’, to better reflect it’s position in the design structure.

Note that there is also a Master Sheet, present in all designs, which allows the application of a company logo, revision number, author and other schematic information. Use of the Master Sheet is beyond the scope of this tutorial, but more information can be found in the Templates chapter of the accompanying reference manual (Help Menu –> Schematic Capture Help).

See Also:

Master Sheet

For completeness we should also follow this process for the sheet we have just finished laying out. Before we can change the properties of a sheet we must first navigate to that sheet in the design and Proteus provides several ways to do this :

  • From the Design Menu select Root Sheet 1 at the bottom of the menu,

  • From the Design Menu, select the Goto Sheet command, select the sheet and click OK to switch to that sheet.

  • Use the PGUP and PGDOWN keyboard shortcuts to navigate between sheets. These cycle up and down the sheets respectively (although for a currently two sheet design they will seem to have the same function!).

The Design Explorer is also a powerful way to navigate the schematic – this is covered in the Design Verification section of the tutorial and in more depth in the reference manual.

Once you find yourself back on the sheet we have laid out simply repeat the process above, with a sheet title of ‘Microcontroller & IMU’.

Sheet 1 properties

Our design will require one more sheet (three in total), so add another sheet titled 'Power Supply & Relay'. Once done, you should now see correctly organized and labelled sheets at the bottom of the Design Menu

This is what you should see in the Design menu

Connectivity between Sheets

Now that we have taken care of the naming, we need to lay out the circuitry for the remaining two sheets. The "Relay & Power" sheet is arguably the more interesting of the two to draw, so make sure that you are currently on that sheet and then let's look at the circuitry. The following screenshot shows the circuit we need to draw.

Power Supply & Relay Sheet

There are four logical blocks of circuitry; power input, a DC-DC buck converter, a 3.3V regulator, and a power relay.

If you feel that you need more practice then you can use all of the techniques we have covered so far to complete the schematic. Alternatively, if you are comfortable with the basics of schematic entry then we will load a pre-supplied completed schematic in the next section. Regardless, there are a couple of points of note that are worth emphasizing.

Firstly, connectivity between sheets is achieved by having terminals with the same name on both sheets. From the screenshot above we can see the "RELAY" control signal terminal, which connects to the microcontroller on the first sheet; as well as various power supply terminals. Terminals thus allow signals to propagate not only across a sheet but also across sheets.

See Also:

Net Names (Reference Manual)

Secondly, it is possible when placing wires to ‘guide’ the wire placement as you place the wire. This is achieved by left clicking the mouse as you change direction, which places an ‘anchor’ to help the follow-me algorithm place the wire the way you want. Typically, this is useful on more complex wire trails but we can look at a simple example for the purposes of illustration.

Consider the connection between the power input and the enable pins of U5.

Wire between VIN and EN on DC-DC converter

If we delete this wire (right click and select delete), we could replace the connection in the usual way and the follow-me algorithm would make a decent job of it. However, if we wanted to be more precise we could proceed as follows:

  • Hover the mouse over the EN pin such that it turns green and then left click to start wire placement.

  • Move the mouse along to the right and then left click the mouse once to place an ‘anchor’.

  • Move the mouse down, left click to place an anchor, then left, left click to place an ‘anchor’ and finally up onto the wire between the VIN pin and capacitor.

This technique constrains the follow-me algorithm and provides greater control during wire placement. If at any time during placement you change your mind and wish to remove an anchor simple right click the mouse once. Finally, if you want to completely disable the wire-auto-router and, for example, place a wire at 45 degrees, simply hold the CTRL button down on your keyboard during placement.

The "GSM" sheet (shown below) is the final sheet to be completed, and contains many examples of signal terminal connections (for connections both on the same sheet as well as to the microcontroller sheet). As before, if you feel that the practice will be beneficial then you can draw the sheet out, otherwise if you feel that you are already comfortable with schematic entry then we will load a pre-supplied completed schematic in the next section.

GSM Sheet

Note that the GSM sheet contains power terminals for a new net - "GSM_VDD_EXT". This net needs to be manually configured in the Power Rail Configuration dialogue, so open the dialogue by selecting "Configure Power Rails..." from the Design menu. You should now see "GSM_VDD_EXT" listed under "Unconnected power nets"; we need to create a new power rail for this net, so click "New" and enter "GSM_VDD_EXT" for the name (note that the power rail name does not need to be the same as the net name, although we are choosing to give them both the same name in this case). Once the new power rail has been created, add the unconnected GSM_VDD_EXT net to it by selecting the unconnected net and clicking "Add". Enter a voltage of 2.8 for this net, and assign it to the SIGNAL class (this is not a high-current net, the GSM module can only supply a maximum of 50mA to it).

Power Rail Configuration for GSM_VDD_EXT rail / net


PCB LAYOUT

Preparing for PCB Layout

Now that we have completed the circuit we need to give some thought to PCB Layout and the information that we are going to provide from the schematic. Information is transferred from the schematic to the PCB layout via a "netlist". The netlist, in its most basic form, essentially consists of a set of footprint names (physical packages associated with schematic components - a resistor can come in various different shape and size "packages" for example) and connections (wiring on the schematic); it can however also contain additional information, such as wiring classes (e.g. POWER and SIGNAL) which can help make things easier for us later on.

If you do not have a completed schematic at this point or wish to work with the pre-supplied schematic you can load it via the Open Samples command on the Proteus home page. The file name is IoT_Pump-Schematic.pdsprj

Packaging Considerations

Each component on the schematic should be associated with a footprint in the PCB layout editor. Fortunately, the Proteus system provides a large set of pre-packaged components where one or more PCB Package options are already associated with the component, and most of the components on our design are already correctly packaged. We will want to change the packages of the generic RES and CAP components which we have used however.

To view the package associated with a component:

As previously covered in this tutorial, a number of options are available for changing component properties (some better suited to changing the properties of a single component, and some better suited to changing the properties of multiple components at once). To start, let's change the package of a single component. Find C1 (it should be on the "Microcontroller & IMU" schematic sheet) and edit it's component properties (right-click on the component, Edit Properties).

We could have chosen to only pick specific components from the library, which already had the correct package associated with them. As we have used generic parts however, this will afford us an opportunity to demonstrate changing a component's PCB package.

PCB Package Options

The generic CAP component has two packages associated with it by default (both of which are "through-hole").

You can also see what the default footprint is for a component at the time you pick it from the libraries. At the bottom of the Pick Devices dialogue form a preview of the footprint is shown for the currently selected component.

To change the package on a single component:

In our design we would like to use an 0805 SMD package, so click the search binoculars to launch the "Pick Packages" dialogue.

Pick Packages Dialogue

Type "0805" under Keywords, and a few options should be found. A preview of each package is displayed at the bottom-left of the window when the package is selected. Select the "0805" package and click "OK".

0805 Package Selected

The Category, Type and Sub-category filters can also be used to filter the search results.

The C1 part is now associated with an 0805 package. There are a couple of points to note here:

  • If we knew the name of the package beforehand, then we could simply have typed it in ("0805") rather than using the Pick Packages Dialogue.
  • Assigning a package in this way works because the Schematic Part and the PCB Package have the same number of pins with the same names. Where this is not exactly the case, the "Visual Packaging Tool" can be used to properly associate a PCB Package with a Schematic Part.

See Also:

Packaging (Reference Manual)

Changing the package of each capacitor on the design one-by-one will be tedious however, so we will use the Design Explorer to do this more efficiently.

To change a package on all components of a particular type:

If we want to make a wholesale change to parts already placed then we can do so from the Design Explorer. First, open the Design Explorer via the icon on the main toolbar, and then switch to the search tab:

Following on from our example above, let's set category to be Capacitors, Value to be 100nF, and then hit search.

You should now see a filtered list of all the 100nF capacitors on the schematic in a grid view.

To change the package, simply type in the field at the top and then, much like Excel, drag the value down the other entries in the column.

Some caution is required with bulk editing like this because the software will accept your input without verification. It is however, extremely handy for changing passive footprints en-masse.

Let's assign packages to the remaining capacitors next. Search again within the capacitors category, but this time do not specify a value (leave the value field blank). Once the search results have been displayed, click the "Value" column header in order to sort the capacitors by value. Assign 0805 packages to the 1uF and 2.2uF capacitors, and 1210 packages to the 10uF and 47uF capacitors.

Next, let's change all the resistor packages to 0805. We could do this using the Design Explorer, but we will use the "Search & Tag" and "Property Assignment Tool" dialogues instead, in order to demonstrate their use. On the Schematic Capture tab, open the Search & Tag tool (binoculars icon).

We want to search for all components with a reference ("REF") beginning with "R".

Our search turned up the relay ("RL1") as well, so we need to trim this from the list; change the search mode to refine the list, change the matching mode to "Not Begins", and search again for "RL".

Click "Done" and all the components from the search list (R1-R6) will be tagged on the schematic. Next, start the Property Assignment Tool (wrench icon next to the binoculars icon).

We want to assign a package of 0805 to all the globally tagged objects, so enter "PACKAGE=0805" in the String field and click OK; all the resistors which we tagged with the Search & Tag tool are now assigned an 0805 package. The Search & Tag tool combined with the Property Assignment Tool provide a flexible and powerful combination for bulk property editing.

Connectivity Considerations

When we transfer our schematic to the PCB Layout software (netlist) all of the wires and connections are grouped into nets and passed through. The schematic capture module actually does quite a lot of work for us behind the scenes at this point, automatically generating numerical names for the nets and also assigning the net to a default ‘net class’.

Net names are assigned on the schemaitc according to the following rules:

  • A group of connections which include a named terminal will be assigned a net name according to the name of the terminal.
  • A group of connections which include an unnamed ground terminal will be assigned to the GND net.
  • A group of connections which include an unnamed power terminal will be assigned to the VCC net.
  • Any other group of connections is given an auto-generated numerical name.

What this means in practice is that all the work is done for us here; there is no real need for us to get involved in naming groups of connections. It is important however, that we understand the rules for unnamed ground and power terminals. If in any doubt, you should always name your terminals explicitly.

If a net does not have a name from a terminal then you can, if you wish, explicitly name a net by placing a wire label with syntax (NET=NAME). This is useful if you wish to place a power plane on the net in the PCB Layout and otherwise helps to distinguish the net from other nets with auto-generated names.

Net names displayed on the PCB layout

A ‘net class’ is simply a group of nets which will have common properties in the PCB Layout. Specifically, all connections in a net class will be assigned a default trace width and will obey a single set of rules with regard to clearances and design rules. Again, Proteus will do a considerable amount of work for us and will assign net classes as follows:

  • Any net with a power or ground terminal is assigned to the POWER net class.
  • Any net with a bus is assigned to the BUS net class.
  • Any other net is assigned to the SIGNAL net class.

This gives us quite a bit of flexibility during PCB layout as we can define different trace widths, via styles, clearances and so on for each net class. Sometimes, however, we will need a particular set of conditions for particular connections. We are therefore allowed to create our own net classes on the schematic and these will then be passed through to the PCB Layout software, allowing us to define routing and clearance properties specifically for those connections.

In our design, we will want to assign a net class to the Power Relay tracks, as these will carry high voltage and high current and so we will want to increase the track width and clearance rules.

To specify a new net class

  • Select the Wire Label Icon.

  • Left click the mouse on the wire we wish to assign the net class to. In our case the net classes should be assigned to the wires between the relay and the terminal block.

  • Left click the mouse over the wire to launch the wire label dialogue form. Then simply type in ‘CLASS=RELAY_SW’ to assign the net class.

With both wire labels added it should look like the below.

Nets connected to power terminals are automatically assigned to the POWER class. Sometimes intermediary wires, such as those between fuses and/or polarity protection diodes, are not directly connected to a power terminal however and so manually need to be assigned to the POWER class.

In our case this is needed:

  • Between the power input and polarity protection diode.
  • Between the relay COIL- and 2N7002 transistor.
  • Between the DC-DC converter SW and the 3.3uH inductor.

If you have completed drawing the schematic follow this procedure now to add the net classes; this will already be in place if you have loaded our pre-supplied schematic. If you work through the PCB layout tutorial, you'll see how to configure routing styles and design rules for the net class.

See Also:

Routing Classes (Reference Manual)

Defining a Net Class (Reference Manual)

Groups

When it comes time for PCB Layout, there are usually physical constraints as to where components should be placed on the board. Some components may need to be placed in a specific area of the board (such as connectors), and some components typically need to be placed physically close by to other components (the decoupling capacitors and crystal oscillators of a microcontroller, for example, should typically be placed physically close by to the microcontroller). When using the component auto-placer, we can help it with both of the aforementioned tasks by specifying "placement rooms", which are areas of the board within which certain specific components should be placed. We will tackle the drawing of the placement rooms in the PCB Tutorial, however in preparation for this we need to assign some components to groups which will then be associated with the placement rooms.

Let's start by specifying a group for the IMU (LSM6DSOXTR) and its two 100nF decoupling capacitors. What we need to accomplish here is to add a "GROUP" property to each of the components in the group, set to a common value (in this case, "GROUP=LSM6DSOX"). As previously discussed there are a variety of options for assigning properties to components in Proteus, however the Design Explorer is probably the best suited option for this task. Start by tagging (selecting) all of the components to be placed in the group (as we have laid out the schematic in sections already, this should be easy):

Next, open Design Explorer and search for all tagged components (no other filters - clear the category and value filters if they were set previously).

Search for all tagged components

Now, simply enter a group name ("LSM6DSOX") in the Group column for each component (as we saw previously when assigning packages, values can be dragged into other cells "Excel style" - a dropdown is also available on each Group cell, containing the names of all existing groups).

LSM6DSOX Group

The following groups should be created for this design:

MCU and LSM6DSOX groups

GSM group (everything on GSM sheet)

Power Supply groups

Differential Pairs

Differential signalling is a method of wired communication which has good immunity to electromagnetic interference. On a PCB, traces which are used for differential signalling are called Differential Pairs.

If there are any differential pair routes in a design, then we need to let the PCB layout know about these by tagging them on the Schematic. Specifically, we need to:

  • Add a "DIFFPAIRS" property to each component which we would like to route differential pairs for.
  • Add a "PAIR" Wire Label to one of the wires in each differential pair.

In our design, the USB connection includes a differential pair (the "D+" and "D-" lines), so we need to set this up on the schematic. Specifically, we need to:

  • Add a "DIFFPAIRS=PA12,PA11" property to the STM32 microcontroller.
  • Add a "DIFFPAIRS=D+,D-" property to the microUSB connector.
  • Add a "PAIR=USB" wire label to either the USB_D+ or USB_D- line.

The DIFFPAIRS property on the components should be set to the names of the relevant pins on the component (not the numbers). The PAIR Wire Label only needs to be placed on one of the differential pair wires, and can be given any sensible value you like (although it should be unique).

Differential pair setup on the STM32 microcontroller

Differential pair setup around the microUSB connector

If you do not want the "DIFFPAIRS" property to be visible on the schematic, then place the property name and value within curly braces - i.e. {DIFFPAIRS=PA12,PA11} on the MCU and {DIFFPAIRS=D+,D-} on the microUSB connector.


DESIGN VERIFICATION

Design Verification

It is always a good idea to spend a little time checking the schematic before we move through to PCB layout. Proteus provides a unique and extremely powerful tool in the form of the Design Explorer that will help us catch any errors before we sign off on the schematic phase of design. In this tutorial we will introduce the tool and cover some basic functionality but we do recommend that you read the section in the reference manual (Help Menu – Schematic Capture Help) and spend some time familiarizing yourself with it’s many capabilities.

Note that what you see in the Design Explorer throughout this section will depend on whether you have drawn the schematic yourself or loaded the pre-supplied one from disk.

The Design Explorer

The Design Explorer can be launched from top level application module toolbar and will appear as a separate tab inside the Proteus application.

The Design Explorer icon

It is worth mentioning that, in terms of your Proteus workspace, you can detach tabs into separate frames. This is particularly useful if you want to view more than one module at the same time and have two monitors or a lot of space on screen. To split a tab onto it's own frame simply drag and drop it onto an area of free space. This will allow you to view both the Design Explorer and the Schematic at the same time.

Split programs in Proteus

Alternatively, if you do prefer to work with tabs in a single frame you can quickly cycle between tabs using the standard Windows CTRL+TAB keyboard shortcut.

In its default mode, the Design Explorer looks a little like a typical file explorer. The left hand pane displays the sheets and the right hand pane displays the contents of the currently selected sheet. Clicking on another sheet in the left hand pane will result in the right hand pane showing the contents of that sheet.

The Design Explorer

The Design Explorer has two distinct modes; partlist mode and netslist mode. The former will show a physical representation of the sheets (the components on a sheet) whilst the latter will show how the design is organized into groups of connections (nets). You can switch between the two modes via the Design Explorer Icons.

Design Explorer icon bar

Since we are in partslist mode by default let’s look at what we can do from there. You may remember that earlier in this tutorial we discussed how to check the packaging for a single part. The Design Explorer shows us the bigger picture and allows us to make a global check of the packagings on the design at a glance. All of the footprints used are displayed beside their schematic reference at the far right hand side of the right hand pane so all we need to do is scan down the list to make sure everything is packaged, switch sheets (via the left hand pane) and repeat the process. If a part on the schematic did not have a footprint assigned it would have bright red text stating 'MISSING' in this field to highlight the potential problem.

As all of the parts on our schematic are already packaged, we would need to deliberately mutilate the design in order to see this feature in action. If you would like to try this, then (in Design Explorer) find the LSM6DSOX (should be "U1") on the "Microcontroller & IMU" sheet and delete the text in its package field (would have been "LGA-14_1"). We can then go about fixing the problem we just created by right-clicking on the component and selecting "Show Schematic Part" from the context menu.

The Design Explorer's context menu

This will zoom the schematic around the part and tag it for editing. Simply right click on the highlighted part and select Edit Properties in the normal way. Now all we need to do is select the correct package from the dropdown again.

LGA-14_1 Assigned as the package

After making the change, the Design Explorer will live update to reflect the current status of the schematic.

Design Explorer showing the LSM6DSOX packaged again

We can also use the Design Explorer to investigate the connectivity of the schematic – for this we need to switch into netslist mode via the icon at the top left of the dialogue form. This will give us a view as shown below.

The Netlist icon

The Netlist view

The first point to note is the net names which, as we discussed earlier, are either named according to terminal or label or simply assigned a number if the net consists only of wire connections. We can right click on any net to view it’s connections on the current sheet by selecting the ‘Goto Schematic Net’ option from the resulting context menu. This is particularly useful when we want to check single pin nets for example, or if we want to name a net manually (see the section on connectivity considerations earlier in the tutorial). Finally, where we have a net or nets grouped with a named net class (far right column on the right hand pane) it can be useful to check our assignments.

Goto Schematic Net will highlight the selected net

The Design Explorer is an extremely powerful tool and has many different uses throughout the lifecycle of a typical project. In particular it can be used as a link between the schematic and the PCB, facilitating cross-probing and PCB lookup. We recommend that you read and work through the chapter in the reference manual (Help Menu – Schematic Capture Help) for more information.

See Also

Design Explorer (Reference Manual).

Assembly Variants

Assembly Variants provide a simple method of managing multiple product configurations in a single schematic/PCB project. This is done by specifying the fitted or not fitted status of each component on a per variant basis. They are often used for excluding parts from cheaper versions of a product or for identifying PCB versions to firmware by controlling the use of pullup resistors on an MCU port.

In Proteus, Assembly Variants are configured primarily through the Design Explorer. Let's look at a simple example where we'll remove the GSM circuitry from a new product variant. Start by creating the new variant from inside the Design Explorer and naming it "NoVib".

Notice that this gives us a new column in the component grid. Each entry currently has a tick which indicates that the part is fitted on the board for the variant. If we click on the entries for the budget column for the LSM6DSOX and it's two 100nF decoupling capacitors then they will change to a cross, indicating that these parts are to be excluded from the NoVib variant.

When you have more than one variant on the schematic you can switch between Active Variants via the variant combo box at the top of the screen. When we switch to NoVib variant you should see that the part reference for the IMU circuitry will be greyed out to indicate that the part is not present in the active variant.

We could also have done this by individually editing the parts and checking the exclude from Active Variant box on the Edit Component Dialogue. You need to be very careful when working this way to ensure that you have first selected the variant you want from the combo-box at the top.

Note that you can quickly manage variants for a group of parts by first dragging a selection box around the parts and then showing selected in the search tab of the design explorer.

We can also change the value of components on a per-variant basis. Let's try this by assigning a slightly different (but pin-compatible) microcontroller to our NoVib variant. In Design Explorer, ensure that the "NoVib" variant is selected and that the "Microcontroller & IMU" sheet is selected. Then type a value of "STM32F101CB" under the Value column for the STM32 microcontroller.

The Proteus software manages the variant information through all of the output systems, changing the BOM Report, the Pick and Place files, the Assembly Drawings, the 3D Viewer and any export for MCAD to reflect the fitted status of the parts. Assembly variants do not affect the 2D PCB layout.

If you would like a little more practice, then try adding a "NoGSM" variant which does not contain any of the components on the GSM sheet.

You can add the @VARIANT text string to the schematic to indicate the current variant on the schematic. This is a useful reminder and particularly important for printing schematic documentation. See the header block in the schematic reference manual for more information.

See Also:

Assembly Variants (Reference Manual)

Header Block (Reference Manual)


BILL OF MATERIALS

Bill of Materials

Constructing a Bill of Materials is an often necessary but frustrating task at the end of the schematic design phase. Fortunately, Proteus provides a completely flexible scheme which allows you to include as much or as little information as required.

Let’s start by looking at the default Bill of Materials Output. Launch the Bill of Materials module from the application module toolbar at the top of Proteus

Launch the Bill of Materials from the icon

The section at the top of the report is largely taken from the Design Properties Command, which you can find on the Design Menu and modify accordingly.

The Edit Design Properties dialogue form

If your Active Variant is not the base design then the Assembly Variant will also be included in the header block:

Bill of Materials categories control the grouping of parts in the report and work by comparing the reference prefix of the components. For example, all resistors have a prefix of ‘R’, capacitors a prefix of ‘C’ and IC’s a prefix of ‘U’. Similarly, Bill of Materials Fields control the content of the report with each field contributing a column.

Both fields and categories can be created, edited or deleted directly from the left hand control panel on the BOM report.

Section for editing The Bill of Materials information

Let's work through a couple of examples. First, we'll order all our parts from Digikey so let's specify a supplier in the BOM. To do this, we need a new field.

BOM Fields

Launch the BOM Field editor by clicking on the Add button underneath the Fields listing.

The 'Add' button enters the Edit BOM Fields dialogue form

If you are adding a field that you have previously defined then you select it from the drop down combo box at the top of the dialogue form. However, since we have not defined a SUPPLIER property before click on the new button to create a property definition.

Adding a New BOM field

There are two non-editable fields that you can apply, namely .placed and .name. The placed field will show whether the part is placed on the layout (component or solder side) while the name field simply populates with the component names.

Property name is SUPPLIER, description can also be Supplier and Type is String.

New Property dialogue filled out correctly

We don't need to prefix or suffix values and this is not a numerical property so sub-totals are meaningless. Click on the OK to exit the dialogue form and create the property.

At this point the BOM has switched to the Property Editor tab which is essentially a grid view of the data in the report. We need to add information for each component in the Supplier column. We could do this individually but since all of our parts are coming from a single supplier it's far easier to use find/replace. Left click on the supplier column and then either use the CTRL+F shortcut or click on the find/replace icon.

Find and Replace form

Leave the find edit box blank (we are entering data into blank fields), type Digikey in the Replace edit box and make sure that the current column only checkbox is selected.

Replacing blank fields with 'DigiKey'

Hit the replace all button to enter the data. You should see that all of the fields in the Supplier column are populated and coloured in blue.

DigiKey now appears where the blank fields were

The blue indicates that the changes have not yet been committed; if you have made a mistake the clear pending changes button will revert your edits. When you have reviewed your changes use the Apply Changes button at the top to commit.

Applying BOM Changes

If you switch back to the HTML View of the report you should now see the information you entered in the report.

DigiKey is now assigned as the supplier

Also, if you return to the schematic and edit a component the data will be present there as well.

The Supplier field is automatically added to the schematic part

Changing the data in the edit component dialogue form will live update the BOM report.

The BOM updates live with any changes made on the schematic

This process can of course be repeated as required with other properties such as RoHS, MoQ, Lead Time, etc. More practical examples and detail can be found in the Bill of Materials reference manual (accessed via the Help Menu in BOM Module).

Note that property changes are applied locally to the schematic components and not to the library parts. If you want to update your parts with newly entered information then run the 'Compile to Library' command from the Library menu. This will put all components in the design (along with their new properties!) into a library of your choice.

Having configured the information on the BOM you can generate the report from the export options from the icons at the top.

Export options for the BOM

It is beyond the scope of this tutorial but you also have full control of the colour and styling of the report. This works via the customize stylesheet button at the top of the HTML view and is discussed in detail in the BOM Reference manual.

Printing

To print the schematic, first select the correct device to print to using the Printer Setup command on the File 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. When you have selected the correct printer, close the dialogue form and select the Print option on the File menu to print your design. There are a number of options available on this dialogue form, all of which have context sensitive help and are also discussed in more detail in the reference manual under Hard Copy Generation. For our purposes we will simply center the schematic output on the page and print. Do this now by right clicking on the Print Preview and selecting the Position Output at Center option as shown below.

You can also export the schematic directly in PDF format from the Output Menu (no driver installation required).

The current schematic is now ready for board layout so if you have purchased a Proteus PCB Design package you can move straight onto the accompanying tutorial booklet for ARES.

See Also:

Printer Output (Reference Manual)


LIBRARY PARTS

Introduction

The Proteus Design Suite comes with a significant installed base of schematic components, almost all of which are already packaged with the correct PCB footprint. However, with the number of new parts entering the market every day and the vast choice available to engineers it is inevitable that users will have to either import library parts into Proteus or create library parts inside Proteus.

Importing Library Parts

Importing Library Parts is by far the preferred option. It is both much faster to do, is far less error prone and you can import both the schematic part and the layout footprint at the same time. Proteus supports two ways to import parts:

  • Integrated Web Search and Import (Requires a valid USC)
  • Manual Library Part Import Dialogue.

Short tutorial videos on working with both methods can be found on our Youtube Channel

Web Search Import

The integrated web search import works directly from the library picker dialogue. You simply type the part name you want and, after searching the installed libraries, you can search a database of over 15 million parts from our partner Samacsys. Just click on the yellow bar! This service requires a free account to be registered with Samacys and a valid USC to import the parts.

Library Part Import Dialogue

This method enables you to manually import via the Import Part command on the Library menu in either the schematic of the layout editors. This import will work with all major vendor files such as those generated by Ultra-Librarian, Samacys, SnapEDA and PCB Library Expert as well as through common supplier portals such as Digikey or RS Components. It does not require a valid maintenance contract to work but does involve slightly more effort.

The Import Part dialogue with a part loaded.

Technically, the import works with PADS Library V9.x files, meaning that the import will work with any supplier who can generate a fileset in this format.

To import a library part using the library picker

Web search import works as follows:

1) Launch the library picker in the schematic module (also 'P' on the keyboard).

2) Search for a part. If matches exist in the installed libraries they will be shown and you can click to open web search results from the bar at the bottom of the picker. If there are no matches from the installed libraries you will go directly to web search results.

3) Results in normal font are available for import. Results in disabled text can be requested (at no charge) from the build service form.

4) Double click to import. The first time you do this you will need to supply credentials or create a free account.

5) When you double click to import, both the schematic part and the associated PCB footprint will be brought into your user libraries and also picked into the current project. In most cases, the 3D STEP file for the footprint will also be imported.

If you need to request a part to be made you can do so directly from the pick dialogue by double clicking on one of the disabled entries in the web search. The service is free of charge and average turnaround is 24-48 hours.

To import a library part using the dialogue

1) Download the part you want onto your computer. This will almost always be in a zip file.

2) If the part doesn't come from a vendor source that we directly support (see here) then you'll need to extract all the files from the zip into a folder of your choice.

3) From the Library Menu in Proteus select the Import Part command

4) Click on Select File and use the file selector on the right hand side to select either generic PADS Library V9 files or the vendor of your choice.

5) Choose the appropriate file to load. This will normally be a zip file if the vendor is selectable in the file selector or a .p file if you've had to extract the parts into a folder.

6) Review the parse log and the previews to make sure everything looks good. Use configuration settings if need be to fix problems.

7) Use Import Part and follow the wizards to bring first the footprint and then the component into Proteus. This will both put the parts into your libraries and deposit them in the parts bin of the current project ready for placement. You should have an end parsed result that looks like the following:

What you are actually doing at this last stage is running the Make Package tool to create the footprint and then running the Make Device tool to make the schematic component. The areas where input may be required from you are in the library choice and the description and categorization of the part.

For most complex devices, you can also find a BSDL script from the manufacturer. This is schematic part only but can be imported via the same import part command (select BSDL in stage 4 above).

Creating New Devices

If all else fails you can create parts yourself entirely inside Proteus. Alternatively, you may wish to permanently adjust the properties or footprints of an existing component. This section of the documentation starts from the basics of creating a new device and covers the entire process through to storing the new part in the library.

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 Proteus includes a web search with access to 15 million library parts and also 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.

Graphics and Pins

For our example part lets assume that we want to create a Microchip MCP23008 I2C expander. The first thing we need to do is to create a graphical representation of the part on the schematic. When we are finished it should look something like the following:

The MCP23008 Completed

Let’s begin by placing the component body as follows:

  • Select the 2D Graphics Square icon and make sure the component style is selected in the Object Selector.

  • Left click once on an empty area of the schematic to begin placement.

  • Move the mouse until the rectangle is around the size of the part that you want. It’s better to make this slightly larger than might be required as we can easily resize it later.
  • Left click again to complete placement of the graphic.

Proteus supports a powerful graphics style system of local and global styles and the ability of local styles to follow or track global styles that allows you to easily and flexibly customize the appearance of your schematic. See the section Graphics and Text Styles in the online reference manual for a complete explanation of how styles work and how they are used.

The next job is to place the component pins.

Select Component pin mode and make sure that you have the default pin type selected in the Object Selector.

  1. Left click the mouse on the schematic to begin placement. The small cross at the end of the pin indicates the side of the pin that will be wired to so it is important that this is outward facing.

  2. Move the mouse so that the other end of the pin touches the edge of the component graphic and left click again to place

  3. A new pin is automatically primed for placement so simply move the mouse down slightly and left click to place again.

  4. Repeat the process down the left hand side of the component graphic using the completed screenshot as a reference. Right click to finish placement.
  5. Click on the X-Mirror icon to point the pin in the opposite direction ready for placement down the right hand side.
  6. Repeat as of stage 3 to place the pins down the right hand side of the component.
  7. Right click the mouse when you are finished to exit pin placement mode.

The Plus (+) and Minus (-) keys can also rotate the pin during placement, but you will find that when adding pin numbers, they will be on the opposite side of the pins that you placed before rotation. In this case right click on the pin(s) affected and click the Y-Mirror option to correct the pin(s).

At this stage your component graphics should look something like the following:

The body of the MCP23008

The actual positioning of the pins is of course somewhat aesthetic and you may prefer to have different groupings to those we have chosen.

Now that we’ve placed the pins we may need to adjust the size of the component body. If you need to adjust the size of the component body to better fit. To do this, click on the Selection Mode icon and simply left click on the edge of the component body, then left depress the mouse on one of the nodes, drag to the new size and release the mouse to commit.

This works much like any other graphics package. For example, if you right click along the bottom you can drag up and down and if you right click on an edge and you can drag diagonally. Make sure however, that you do not leave any of the pins ‘hanging’ (not touching) when you do this, else you will have to subsequently move the pins back onto the component edge.

If you want to make fine adjustments you may need to adjust the Snap level – these options are available from the View menu (defaulted to 0.1in) and are discussed in more detail in the reference manual.

Now that we have the basic shape of the part we need to add names to the pins. This can be done as follows:

  • Right click on the pin at the top left of the component and select Edit Properties from the resulting context menu.

  • Type in the name of the pin (SCL), the default pin number (1) and the electrical type (INPUT). You can use the other options to control visibility but for our purposes the defaults are fine.

  • Hit the Next button at the bottom to switch to the next pin in the list and repeat the process – the schematic will update to show which pin you are editing. If you are unfamiliar with this part and don’t therefore know the electrical type of the pin simply leave it as the default Passive type.

  • When you get to the RESET pin you’ll need to add an overbar. Do this simply by adding a dollar (‘$’) prefix and suffix to the name.

  • Hit the OK button when you are finished.

You may have noticed that there is a significant omission from the schematic part as we have drawn it so far, namely that there are no physical power pins on the device. Since we do not need to wire power nets explicitly we do not need a physical pin for the component. We need only ensure that the power pins are handled correctly with respect to the physical PCB footprint and we’ll discuss this in more detail in the next section. It is worth noting however, that while it is very common to have non-physical power pins in order to reduce clutter on the schematic, you may have a preference for everything to be explicitly wired. In this case you could simply add two extra pins and name them VDD and VSS respectively.

Our final task now is to make a device from the composite graphics and pins that we have placed. Start by drawing a tag box around the entire graphic (right depress the mouse and drag the selection box). Next, right click the mouse inside the selection box and select the Make Device option from the resulting context menu.

Make Device icon and the Context menu option

This presents us with the Make Device dialogue form, where we can customize the part. All fields throughout this wizard have context sensitive help associated with them, accessed by clicking on the question at the top right and then on the field in question. However, the only items we need to deal with here are the Device Name and the Reference Prefix. The device name should be MCP23008 and the reference prefix should be ‘U’.

The reference prefix serves to categorize parts for Bill of Materials Output and is also used in annotation. These are fairly standard across the industry with ‘R’ denoting resistors, ‘C’ for capacitors, ‘U’ for IC’s and so on.

Use the Next button at the bottom of the dialogue to move onto the next screen.

Adding Footprints

In a previous section of the documentation we saw how to quickly add a footprint to a schematic part. This is useful for small passives and simple parts but, when we are creating a device we need to follow a more complete procedure. This ensures not only that we have a correct mapping between the pins on the component and the pads on the footprint but also allows us to better handle power pins.

From the screen on the Make Device dialogue form click on the Add/Edit button to launch the Visual Packaging Tool. The first thing we need to do is to find the footprint we want to use so click on the Add button at the top of the dialogue form.

The 'Add' button in the Packaging Tool

This brings up the package browser dialogue which we covered earlier in the documentation. Assuming that we want the surface mount package, type SOP18 in the Keywords field and then double click on the part in the results list to select it.

Selecting the SO18W from the package library

The Visual Packaging Tool will now look something like the following screenshot.

There are several points of note here. Firstly, the pads in the preview which are white are deemed to be mapped onto component pins. This has happened as we have correctly specified the default pin numbers when we edited the pins earlier on (pad name maps onto pin number when present). If we had chosen to leave the pin number fields blank we would have to map all of the pins in this dialogue form.

Secondly, we can see that there are three pads (7, 9 and 18) which are not mapped onto component pins. Normally we would have the datasheet beside us to get the footprint mappings but in this case pin 7 is an NC pin, pin 9 is the VSS pin and pin 18 is the VDD pin.

The NC pin is easily handled – simply type 7 in the field for NC Pins. Notice that the preview on the right hand side will update to show that this pad is now considered dealt with.

We now need to add two ‘virtual’ pins for the power pins. These are pins which don’t need to be on the schematic (their connection is made implicitly according to their name) as they will add unnecessary clutter, but do need to be mapped onto pads in the footprint.

If you want to have all pins visible on the schematic (e.g. for auditing purposes) you can certainly do so. You would add another three pins to the device, connect one of them to an NC terminal (to put on the NC net) and connect the other two to power terminals with the correct names. If you are in any doubt regarding power nets and connections please see the section earlier in the document on powering the circuit or consult the reference manual.

Click on the Add Pin button underneath the grid, type VSS to name the pin and then repeat the process for the VDD pin. Remember that connections to these virtual pins are made according to their name so make sure that you name them correctly.

Adding a virtual pin

Having created the pins we assign them to pads on the footprint as follows:

  • Click in the column at the far right of the VSS pin.
  • Click on the corresponding pad on the footprint (pad 9).
  • The cursor will move down to the next pin (VDD) so all we need to do is click on pad 18 on the preview.

Clicking on pads will assign the pin

We should see that all the pads on the footprint are now highlighted, indicated that the part is fully packaged. Simply hit the ‘Assign Package’ button at the bottom of the Visual Packaging Tool to commit and return to the Make Device dialogue form.

It is possible (and extremely useful) to have more than one packaging for a given component. We could, for example, follow the exact same procedure to add a DIL18 footprint to the component. Where more than one packaging exists you can specify the one which will be used by default by checking the default box underneath the package name in the Visual Packaging Tool.

Click the next button at the bottom of the dialogue form to move onto the Property definitions section.

See Also:

Packaging Tool (Reference Manual)

Adding Properties

This screen allows us to add component properties to the device. We looked at doing this on a particular instance of a device (the part on the schematic) earlier in the documentation; the difference is that properties entered here will be stored in the master library part and therefore available every time we use the part in a design.

We can see that the PACKAGE property is already defined – this was what we configured visually on the previous screen

Package preview on the Make Device form

Let’s assume we want to add a property for RoHS compliance.

  • Start by clicking on the New button at the bottom left and then clicking on Blank Item.
  • On the right hand side fill out the name as ‘ROHS’ and the description as ‘RoHS Compliant’
  • The next field is the data type which in our case is a simple Boolean (Yes/No) – select this from the drop down list.
  • Change the Default value to be Yes and leave the visibility defaults as they are.

If you want to add more properties (e.g. MoQ, Price, Code, Supplier, etc.) simply repeat the process above. Alternatively, the Bill of Materials provides a convenient way to apply data to schematics as discussed earlier in the tutorial. Finally, for complete control or if you are doing this on a large scale, we recommend you read up on ASCII Data Import in the reference manual.

Click the next button at the bottom of the dialogue when you are finished to move on to the next screen.

Attaching a Datasheet

This screen allows us to attach a datasheet to the part we are creating. To do this we would need to enter the filename for the datasheet and then configure the path as required. As we don’t have a datasheet handy we’ll ignore this step but the following screenshot shows an example of how we would set it up.

Adding a datasheet to the component

The main advantage of working through this step is to have the datasheet handy when you place the part. If present, you can simply edit the component and click on the Data button at the right hand side.

The Data button will launch the assigned Datasheet

For convenience, we have configured many of our library parts with datasheets which you can download from our web server via this button.

Indexing and Library Selection

The final screen allows us to categorize our part and choose which library we will place it in. As we have seen earlier in the tutorial the part description and the categories are used as filters when finding and selecting parts from the library so it is worth giving some thought to your description. An example of what you might enter is shown in the following screenshot.

Final section where you save the component to a library

When you are finished simply click the OK button. You will be prompted to replace all instances of the device on the schematic – this allows you to update the current design if you are modifying a part which already exists on the schematic.

Finally, if you now select the part from the Object Selector and edit it’s properties you should see something like the following screenshot.

Edit Component for the MCP23008

It is also possible to create multi-element parts in Proteus. While beyond the scope of this tutorial these are covered in the reference manual.

See Also:

Creating Multi-Element Devices (Reference Manual)