Your First Altium Project
This is a guide
Welcome! This article is intended to guide you through an SSI process. While its authors have made efforts to make it useful, if you have questions, please ask the authors on Slack. They will be able to both help you and improve this resource for future SSI-ers.
This article was written by Sasha Maldonado (
Hello! You're embarking on a journey to learn how to use Altium Designer, SSI's preferred circuit board design tool made available thanks to the considerable generosity of the folks at Altium Ltd.
This guide will assume that you have successfully completed installing and configuring Altium. Please complete that first before proceeding.
This project is a customizable extension for your keyboard, which will connect to your computer via USB. Your new keypad will be able to send arbitrary strings to your computer with each key press - meaning you can add keys for Slack emoji, shortcuts for your favorite program or game, or even just words or phrases you often use.
Updating Your SVN
First, you'll want to update your Altium SVN. This is good to do periodically, and commit messages in
#altium will help you know when there are important changes that you will want to update to get.
To do this, find your Altium SVN root folder. This will likely be called "altium-core" or "SSI-SVN-Altium" (I will refer to it as "altium-core" from now on). Right click and hit "SVN Update." Depending on how much you have to sync up, this may take a minute or two, and will complete on its own.
If you haven't already :)
Open SSI.LibPkg and Recompile
If you do not see the "Projects" panel of your Altium window (see image on right - if open, the panel is typically on the left side of your screen), you will need to open it. This can be done in "View → Workspace Panels → System → Projects," also accessible with the keyboard shortcut
v → w → s → p.
From Altium, go to File → Open Project... and open altium-core/libraries/intlib/SSI.LibPkg (its file name may just show up as "SSI"). Open the file; it should expand in your Projects panel, as shown at right.
Right click in your Projects panel on "SSI.LibPkg" and hit "Compile." This will start the compilation process, which will take about a minute. This is important to do every time you update the SVN (unfortunately). Long term solutions to eliminate this requirement are being pursued but for now it's how things work.
Make Your Own Copy of Major Key
From outside of Altium, go to altium-core/starter-projects/ and copy the folder "major-key-starter." Copy it into the folder called "working," and change its name to "major-key-<your-name>." Go into that folder and double-click on "major-key.PrjPcb" (possibly just showing up as "major-key") to open it in Altium.
Check Out The Schematic
From Altium, look at the Projects panel, and expand major-key. Open "TopSheet.SchDoc."
This document is the "top sheet" (hence the name) for the project. A board in Altium consists of one or more "sheets," pages of the electrical schematic. They are arranged hierarchically - every design with more than one sheet needs a "top" sheet and then "subsheets," which can be nested an arbitrary number of times (subsheets can have subsheets, which can have subsheets, which can have subsheets...) The green box (known as a "sheet symbol") represents a subsheet, containing the schematic for an Arduino microcontroller. You can open that sheet either from the Projects panel or by hitting
ctrl + double click on the sheet symbol.
Open the subsheet as described above. We'll make one small edit to it for this project, and it may prove helpful to look at as an example of what an Altium schematic can look like.
Add Missing Ports
The yellow symbols on the right edge of the sheet are called "ports." They pass signals from the subsheet up to the top sheet, kind of like parameters in a function. Each port has a name and a input/output type - "input," "output," "bidirectional," and "unspecified." Altium matches them to symbols on the upper sheet (called "sheet entries," discussed below) to make connections between the subsheet and its "parent."
We're going to add three new ports with Place → Port
p → r. After you start placing, hit
tab to bring up the options menu. The two fields to look at are "Name" and "I/O Type," which are how Altium matches ports to their corresponding sheet entries. We're going to add ports for pins 1, 3, and 5 - you'll note they're missing ports from the column on the right. Add three new ports, making sure their names are "1," "3," and "5," and their I/O types are all set to "bidirectional." Then switch back to the top sheet using your projects pane.
Add Missing Sheet Entries
The yellow symbols on the right edge of the sheet symbol are called "sheet entries." They match up with ports to pass signals from the subsheet up to the top sheet. Like ports, each sheet entry has a name and a input/output type - again, "input," "output," "bidirectional," and "unspecified."
We're now going to add three new sheet entries with Place → Add Sheet Entry
p → a. After you start placing, hit
tab to bring up the options menu. The two fields to look at are again "Name" and "I/O Type." We're going to add for sheet entries for pins 1, 3, and 5. Add three new sheet entries, making sure their names are "1," "3," and "5," and their I/O types are all set to "bidirectional."
Place Power Ports
Power ports are special symbols that represent power "rails" - specific voltages that are distributed across a PCB. These are commonly used for ground and power voltages. Power ports connect by name - meaning that all power ports named "GND" will connect to each other.
We're going to add two power ports - one for ground and one for 3.3 volts, by clicking Place → Power Port
p → o. Hit
tab to bring up the options menu, which has two important fields: "Net," which is the name of the power port, and "Style," which controls its appearance. Set the net to "GND" and set the style to "Bar." It's a standard in SSI PCBs to use bar symbols for ground, with the bar facing down. Hit okay on the options menu and place the power port near the GND sheet entry. Rotate it with
space to make the bar face down.
After placing, hit
tab again to bring up the options menu, and change the net to "+3.3V" and the style to "GOST Arrow." The SSI standard for supply voltages is a GOST arrow facing upwards (except when the voltage is negative, which should face down). Hit ok and place the new power port near the +3.3V sheet entry, rotating the arrow to point up.
Wires are the dark blue lines that electrically connect ports, sheet entries, and pins in your schematic.
Place wires with Place → Wire
p → w. Draw a wire from the GND sheet entry to the pin of the GND power port, and another wire from the +3.3V sheet entry to the +3.3V power port. You should now have something looking like the picture at right.
Pick Type and Number of Keys
We're now going to add the actual key switches. We (as of this writing) have two switch types in the library - "white" and "blue." The different colors are for different mechanical properties of the switches; blue switches make an audible "clicking" sound when pressed, and white ones are quieter. You're free to pick either; please just be consistent.
You will also need to pick a number of keys to use. The board template is sized to fit up to 12 - enough to do a traditional number pad. Using fewer keys will save slightly on time, by reducing repetition, but will also limit what you can do with your finished product.
Place Key Switches
Bring up the Place Part menu with Place → Part
p → p. On the window that comes up, hit "Choose" in the upper right corner. This will bring up the "Browse Libraries" window. From the drop-down at the top, make sure "SSI.IntLib" is selected. All of the parts in the SSI libraries will then be displayed in a large area on the left side of the window. You can search through these parts with the "Mask" field at the top of the window - type in "*" followed by your search term. Try this for a couple of common electronic components, such as "*LED" or "*OPAMP," to see some of the parts in the library.
The keyswitches we'll be using are manufactured by a company called Cherry; you can find them by searching "*CHERRY." Pick either blue or white, and then hit "OK," and then hit "OK" again when the window closes. You will now be dragging a switch symbol on your schematic. Neatly place as many as you would like (up to 12) on the schematic with a bit of space in between them. When you're done, hit
escape to stop placing switches, and then hit
escape again to exit the place command.