Altium Layout
NOTE: This guide is part of a series on Altium PCB Design. It assumes an understanding of the prior modules, as well as a basic understanding of PCBs and how they work. To learn the basics of Altium, start at the beginning with this introduction to Altium. To learn about PCBs, check out this page.
- 1 Introduction
- 2 About the demo board
- 3 Step 1 - Verify Schematics + Components
- 3.1 ~ But wait! ~
- 4 Step 2 - Set up the Board
- 5 Step 3 - Placing Components
- 6 Step 4 - Routing the Board
- 7 Step 5 - Board Cleanup and DRC Check
- 8 Step 6 - Final Board Review
- 9 Step 7 - Order the Board and Components
- 10 General Tips and Tricks
- 11 Shortcuts used in this tutorial:
Check out This Page for a Glossary of Electrical Terms!
Introduction
The purpose of this guide is to serve as a walkthrough of how to create a PCB from a schematic using Altium Designer. You can find many such guides on the internet in both video and text form (Several good recommendations are made here!), but this guide has the benefit of being tailored to the specific standards and conventions used by Northeastern Electric Racing. This document was created by @Walter Stadolnik (Unlicensed) , so feel free to poke him if anything seems outdated/incorrect.
Throughout this guide, I’ve bolded most commands and menu paths. When applicable, I’ve underlined the letter of each command used as its default command shortcut, to reduce the hassle of locating each command in the menus.
About the demo board
In the following demonstration, I’ll be walking through step-by-step as I do the layout for a custom Raspberry Pi Debug Probe. Not to be confused with a Raspberry Pi computer, this probe uses a RPi 2040 microcontroller, and is used to convert between USB and UART or SWD when flashing a board. In our 2024 competition vehicle, we’ll be embedding two copies of this circuit into our Telemetry Processing Unit (TPU) in order to wirelessly flash the microcontrollers and FPGA on the Main Processing Unit (MPU) and the Shepherd BMS Compute Board.
The Raspberry Pi Debug probe includes fully open-source schematics, which can be found here. Further information on designing with an RPi 2040 microcontroller can be found here. Below is my adaptation of these schematics for use in our vehicle. My only notable changes are the consolidation of the two output JST connectors into a single Molex PicoBlade connector, and the addition of a 3.3V output so that the probe can power the microcontroller or FPGA being programmed. The USB micro connector was also swapped for USB-C in my design, and an additional LED was added to indicate that the 3.3V net is receiving power.
Step 1 - Verify Schematics + Components
So, you’ve finished up a circuit schematic. Great! Now it’s time to turn it into a PCB.
~ But wait! ~
First, make sure that:
Your schematic has been reviewed - all schematics need to be reviewed before moving on to layout. Trust us - it’s no fun to change your design in the middle of routing a board.
You’ve addressed all the concerns from design review - double check that you’ve thoroughly responded to and implemented all feedback in your schematic’s review document.
All un-reviewed components are marked as “Ready to Review” - Ideally all components will be reviewed before layout - it’s better to catch stuff like incorrect land patterns before getting too deep in the weeds of routing. At the very least, all components should be marked as “ready to review,” and should be handed off to the head of your system or the chief EE (@Walter Stadolnik (Unlicensed) ) for review.
Make sure to follow this Component Review Checklist!
Step 2 - Set up the Board
You’re schematics are good to go, and your components are reviewed. Now what?
Creating the PCB Doc
First, you’re gonna need a PCB document.
Open the Projects Panel (Panels → Projects), right click on the project title (CUSTOM_RPI_DEBUG.PrjPcb), and select “Add New To Project”. Select “PCB” from the dropdown.
This should open a new tab with a big, empty black box. This black box is the default 6” x 4” PCB outline. Before you make changes, go ahead and CTRL+S to save your PCB file, and give it a fitting name. If in doubt, PROJECT_NAME.PcbDoc will do.
Setting up Component Layer Pairs
Next step is setting up component layer pairs, just as you would when making a footprint. Go to Panels → View Configuration to see the layers of the board. Right click on “Component Layer Pairs,” and select “Add Component Layer Pair”. Do this for each of the four required layer pairs (Assembly, Component Outline, Component Center, and Courtyard), as defined in the Vault Guidelines.
Defining the Layer Stack-up
Open Design → Layer Stack Manager
A new tab should open as shown to the right. This tab shows all the layers which will make up the PCB, which is by default a 2-layer board
The outermost green layers are the overlay (silkscreen) layers, the inner green layers are solder mask layers, the two orange layers are the copper layers, and the brown layer is the dielectric (insulator). The material of the dielectric is set to FR-4 fiberglass, which is the standard dielectric used in PCB cores.
Depending on the complexity of your board, you may need more than two layers. To add copper layers, click on the cell labelled “Top Layer,” Click the “+ Add” button, and click OK with the default settings shown at right. Congratulations, you now have a 4-layer board! Note that all changes to the stack manager occur symmetrically: Adding a copper layer above the core will add a second layer below the core.
Next, you’ll want to verify the layer Types and Weights of each copper layer.
“Type” is either signal or plane - A signal layer is generally used for routing traces, while a plane layer is a giant sheet of copper that helps bring power or ground to different parts of the PCB
The weight of a copper layer is synonymous with thickness. Typically this is left at 1oz, but doubling it to 2oz means that you can force twice the current through every trace, which is useful for keeping trace widths small on high current boards.
Since my board uses USB, which requires controlled impedance, I’ll use a 4-layer stack-up with planes as the inner layers (see the next section). Since the board is entirely low current, I’ll stick to 1oz copper layers.
Setting Up Controlled Impedance
If planning on ordering the board for JLCPCB (includes most boards), refer to this page for impedance profile information: Controlled Impedance PCB Layer Stackup- JLCPCB
Scroll down to the section that applies to the layer count of your board, and use the stack-up data for the first controlled impedance option which appears under “No Requirement Stackup”. I’m planning on doing 4-layers for the RPi debug board, so I’ll follow the JLC04161H-7628 spec. For 6-layer boards, follow the JLC06161H-3313 spec.
Be sure to select the proper thickness and copper weight settings! You can leave the default thickness setting, but set the copper weights to match your board stack-up.
Go back to the Layer Stack Manager in Altium, and enter the appropriate thicknesses for each layer. If it displays in units of mils instead of mm, press “q” while in the .PcbDoc to switch units.
Click on the icon with 3 dots in the “Material” cell for the top dielectric layer. Scroll down the material list until you see a number in the “constructions” column that matches the last 4 digits of the impedance spec (in my case 7628). Then, select the material with that construction number which most closely matches the upper dielectric layer in thickness (in my case this is PP-022, with a thickness of 0.20828mm).
Switch to the Impedance tab (bottom left corner of the window). Click the “+ Add” button at the top left of the window. Open the properties panel if not already open (panels → properties). Verify that the Impedance profile says type Single, 50 for target impedance, and 10% for target tolerance. Note that the desired single-ended impedance varies in different contexts, but that 50 ohms is a good baseline.
To the right of the layer stack, it should now show impedance characteristics of the top and bottom signal layers. Verify that the impedance is close to 50 ohms. If you plan to use differential pairs, copy the value in the width column (in my case 0.35831mm).
If your board does not use differential pairs, move on to Importing Design Rules. If it does, then Click the “+ Add” button at the top left of the window. By default, this will add a new single-ended impedance constraint. Open properties, and change Type to Differential, and impedance to the target impedance of the differential pair you’re using. For USB, the target is 90 ohms. Leave the default tolerance of 10%. USB can tolerate an impedance range from 75 to 105 ohms.
In the differential impedance characteristics to the right of the layer stack, update the Width field with the width copied from the single ended impedance characteristics. This will likely cause the Impedance to deviate from your target. To fix this, guess and check values for the Trace Gap field until you restore your target impedance (within ~1%).
Importing the NER Design Rules File
Navigate to the following folder in Drive, and download the NER_STANDARD.RUL file: https://drive.google.com/drive/folders/11oKh59Eb7NA6K9tXJcL4e2ynardMhUn6. This file is based on PCBway’s design requirements.
Click Design → Rules (shortcut DR) to open the PCB Rules and Constraints Editor
Right click on “Design Rules” at the upper left hand corner, and click Import Rules
In the “Choose Design Rule Type” menu, do CTRL + A to select all of the design rule types, then click OK
Select the NER_STANDARD.RUL file, and open it. Agree to clear all rules when loading in the new rule set. Click Apply, then OK.
Step 3 - Placing Components
Whew, done with the boring part. Time for the fun stuff!
Importing the Components + Netlist
Ensure that all components are updated. This can be done with Tools → Update From Libraries. Click Next, then Finish, then Validate, then Execute, then Close (I don’t know why there’s so many steps, but thankfully it’s just clicking through)
Open the schematic file for your board, and click Design → Update (shortcut DU), and click Validate, then Execute, then Close to bring all of the components into the PCB document.
Return to the PCB file. It might look daunting when you first import the components and they’re all jumbled in a corner. Don’t worry - It looks worse than it is!
Notice the red box around the components (there may be multiple!). These are rooms, which are intended to help organize your schematic. While we sometimes do make use of them, more often than not they mostly get in the way.
To hide the room, drag its extents to cover the entire PCB area. Then, open Panels → View Configuration. Switch to the View Options tab of the View Configuration window, and look under the Object Visibility Section. Click on the Eye icon next to Rooms in order to hide all rooms.
Observe that all of the components are connected by thin gray lines. This is referred to as a Rat’s Nest, and it’s a graphical representation of the various electrical connections between components. Each line in the rat’s nest connects between two pins with the same net, and they help provide a visual cue that a given net still needs to be routed.
Now is also a good time to introduce PCB viewing modes. If you press 3, the PCB will switch to a 3D viewing mode, where all of the components are rendered as they’ll look once the board is assembled. Pressing 2 will return you back to 2D mode. Furthermore, pressing CTRL+ALT+2 or CTRL+ALT+3 Allows you to switch between viewing modes while preserving your perspective on the board. Try it out!
Another trick is CTRL + F to flip the board. This applies to both 2D and 3D modes. Get comfortable using this, too!
Organizing the Components
Before even thinking about where things go, the first step I like to do is to organize my components.
Typically I begin by identifying “focal points” - components that a lot of other stuff is next to. This could be a connector, a microcontroller, or a smaller IC (integrated circuit)
Often, connectors will be surrounded by circuit protection elements, like fuses and TVS diodes.
ICs will often be surrounded by discrete passive elements, like decoupling capacitors, resistors, and inductors
Drag each “focal point” component to a different area in space, and start sorting the smaller components by which “focal point” they belong near.
Refining Component Positions
Now that your components are grouped, it’s time to start planning the board layout.
The first thing to think about is usually connectors - what sides they should go on, and what orientation they should be in. This is often informed by the mechanical packaging for the board
Another key consideration is decoupling capacitors. These should always be as close as possible to the power pin of the IC, to minimize the inductance of the trace once it's routed moving these into position around any integrated circuits can help reduce clutter and ensure that routing will be easier
In boards with a microcontroller, there are often communication protocols connecting to other chips and connectors. It’s important to keep these in mind when orienting the microcontroller, so that you minimize trace lengths and produce a logically organized board
If you have switching regulators, or other noisy circuits, it’s generally a good idea to separate them from anything sensitive. I realize that sentence means nothing without significant elaboration - we’ll make a guide at some point on EMI considerations for layout. In the mean time, feel free to ask a head or chief about it.
Redefining the Board Outline Using Primitives
The board outline can be redefined at any point in the layout process - I like to do an initial outline early on, then revise it as needed once the board is nearly complete
Open the View Configuration panel, and add a mechanical layer called “Board Outline”
Use primitives to create an outline for the board. “Primitives” are any of several types of basic drawing “pieces” in Altium - things like lines and arcs.
Make sure that “Board Outline” is selected in the layer bar at the bottom of the screen, so that drawings you make will be added to the correct layer. If you accidentally draw on the wrong layer, you can always select an object, and change the layer it’s on in Properties
To make a rectangular board outline, locate the line tool at the far right of the menu bar at the top of the board viewing area.
To make a rectangular board outline, right click on the line tool and click on Arc (Edge). Alternatively, use Place → Arc. Place an arc – don’t worry about looks like or where it's placed – and open the properties panel with the arc selected
Edit the radius to the desired value, set the start angle to 90 degrees, and set the end angle to 180 degrees. Then, enter the desired X and Y coordinates. This arc will form the upper left corner of the board.
Repeat the above process to place the other 3 arcs to define the board corners.
If your corners are aligned properly, you can now draw straight lines to connect them using the line
Once your outline is created, select all primitives in the outline, and use the command Design → Board Shape → Define Board Shape from Selected Objects (shortcut DSD)
In 3D view, you should now see that the board extents have been updated
Once the initial component positioning is completed, it’s a good idea to run this past other people in an informal (or formal) design review. The picture below shows my initial component layout for the custom Raspberry Pi Debug Probe board.
[Insert Image Here]
Step 4 - Routing the Board
Start With the Easy Stuff
To be continued once component placement completed
“QSPI pins of RP2040 should be wired directly to
the flash, using short connections”
linko: https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf#minimal-design-example
We must place 1μF capacitors close to both the input (VREG_IN) and the output (VREG_OUT)
it is important to place decoupling close to the power pins
“require 27Ω series termination resistors (R3 and R4 in Figure 9), placed close to the chip, in order to meet the USB impedance specification”
Tips and Tricks for Routing
To be continued once component placement completed
Routing Differential Pairs
To be continued once component placement completed
Current Capacity Validation
To be continued once component placement completed
Step 5 - Board Cleanup and DRC Check
Add to this section once the layout is complete!
Step 6 - Final Board Review
Add to this section once the board is reviewed!
Step 7 - Order the Board and Components
Add to this section once the board is ordered!
Exporting Gerber Files
Ordering from JLCPCB
General Tips and Tricks
SAVE WHENEVER YOU CAN - get into the habit of doing CTRL+S after literally everything you do. If/when Altium crashes, this will ensure that the progress you’ve made will be saved locally to your computer.
If this is your first board at NER, I highly recommend perusing the Altium vault and checking out our previous designs. You can learn a lot about layout technique by simply observing other people’s work
Don’t take this document too seriously! While I generally follow good practices, what counts as “good practice” varies massively depending on who you ask. While most of these tips are good for this club, you may find that your co-ops will tell you something entirely different. If anything seems outdated, or questionable, feel free to add a comment!
Shortcuts used in this tutorial:
DU, Design Update → Do this while in your schematic to synchronize the PCB with schematic changes
TDR, Run Design Rules Check → Do this to generate a new report showing Design Rule Violations
TGA, Repour all Polygon Pours → Re-generates all Polygon Pours, accounting for recently moved components, vias, and traces