Changes

Jump to navigation Jump to search
Added really scary table
Line 2: Line 2:     
This article describes how to create a new part in SSI's Altium PCB component libraries. SSI maintains a collection of Altium component libraries, many of them derived from libraries generously donated to SSI by the [http://solarcar.stanford.edu/ Stanford Solar Car Project]. This is designed to serve as both a reference, and a practical guide for how to turn a component with a datasheet into a schematic symbol with a corresponding PCB footprint.
 
This article describes how to create a new part in SSI's Altium PCB component libraries. SSI maintains a collection of Altium component libraries, many of them derived from libraries generously donated to SSI by the [http://solarcar.stanford.edu/ Stanford Solar Car Project]. This is designed to serve as both a reference, and a practical guide for how to turn a component with a datasheet into a schematic symbol with a corresponding PCB footprint.
 +
 +
This tutorial uses a template to show the keyboard shortcuts associated with certain tasks {{altium-shortcut|first key|second key|third key|etc.}}. These shortcuts usually require you to have a file open in Altium and for your last click to have been in the edit window for that file (the large, central part of the screen). If you're having trouble getting a keyboard shortcut to work, click on an empty part of an open file and try again.
    
==Introduction==
 
==Introduction==
Line 9: Line 11:  
Altium has several different noteworthy types of libraries.  
 
Altium has several different noteworthy types of libraries.  
 
* '''Schematic libraries''' (.SchLib files) store schematic symbols and the components they correspond with. Schematic libraries contain schematic editor symbols, links to footprints (from PCB libraries; see below), mapping between the pins in the schematic symbol and pads on the footprint, and links to the part supplier (most often, Digi-Key)
 
* '''Schematic libraries''' (.SchLib files) store schematic symbols and the components they correspond with. Schematic libraries contain schematic editor symbols, links to footprints (from PCB libraries; see below), mapping between the pins in the schematic symbol and pads on the footprint, and links to the part supplier (most often, Digi-Key)
* '''PCB libraries''' (.PcbLib files) contain the actual PCB layouts for library components. PCB libraries include landing patterns (the actual pad shapes that will appear on the PCB) and 3D models of the associated packages.
+
* '''PCB libraries''' (.PcbLib files) contain the actual PCB layouts for library components. PCB libraries include footprints (the actual copper shapes and labels that will appear on the PCB) and 3D models of the associated packages.
 
* '''Integrated libraries''' (.LibPkg files) are Altium projects that combine schematic and PCB libraries.
 
* '''Integrated libraries''' (.LibPkg files) are Altium projects that combine schematic and PCB libraries.
 
* '''Compiled libraries''' (.IntLib files) are installable files that allow you to use library parts in schematics and PCBs. Every time a part is added to a library, the Integrated library will need to be recompiled before the part can be added to a PCB project.
 
* '''Compiled libraries''' (.IntLib files) are installable files that allow you to use library parts in schematics and PCBs. Every time a part is added to a library, the Integrated library will need to be recompiled before the part can be added to a PCB project.
 +
 +
For this tutorial, we will be mostly working with .SchLib and .PcbLib files. You will also need to open and compile the SSI.LibPkg file.
    
===Locking in SVN===
 
===Locking in SVN===
 
[[File:SVNSchLibLock.png|300px|thumb|Right clicking on Connector.SchLib and scrolling down to Version Control brings up the "Lock" option.]]
 
[[File:SVNSchLibLock.png|300px|thumb|Right clicking on Connector.SchLib and scrolling down to Version Control brings up the "Lock" option.]]
 
Prior to adding a part to a library, it's important to "lock" the library in SVN so that other people using the library don't create a conflicted copy. Locking does keep other people from making library edits at the same time, so do not lock a library unless you will be immediately editing it, and, even if a symbol or component is not completely done, commit any libraries you've locked before stepping away for an extended period of time (see [[#Recompiling_and_SVN_Management|Recompiling and SVN Management]]). To lock any library, right click on it in the Projects pane, click "Version Control," and then "Lock" {{altium-shortcut|''right click''|e|l}}. If you need to edit a locked library, mouse over the lock symbol in the Projects pane to see who has the lock, then message them in the {{slack-channel|altium}} Slack channel to ask if they still need the lock. You can override the lock, but doing so creates the risk of a conflict and will result in lost work if the lock is protecting ongoing changes.
 
Prior to adding a part to a library, it's important to "lock" the library in SVN so that other people using the library don't create a conflicted copy. Locking does keep other people from making library edits at the same time, so do not lock a library unless you will be immediately editing it, and, even if a symbol or component is not completely done, commit any libraries you've locked before stepping away for an extended period of time (see [[#Recompiling_and_SVN_Management|Recompiling and SVN Management]]). To lock any library, right click on it in the Projects pane, click "Version Control," and then "Lock" {{altium-shortcut|''right click''|e|l}}. If you need to edit a locked library, mouse over the lock symbol in the Projects pane to see who has the lock, then message them in the {{slack-channel|altium}} Slack channel to ask if they still need the lock. You can override the lock, but doing so creates the risk of a conflict and will result in lost work if the lock is protecting ongoing changes.
 +
 +
==What is a Part?==
 +
<div style="float:right">
 +
<gallery>
 +
File:SchematicSymbol.jpg|An example of a schematic symbol for an integrated circuit
 +
File:7805Large.jpg|The above schematic symbol corresponds to this real part, which would have a footprint with three holes - one for each pin.
 +
File:7805Small.jpg|The above schematic symbol could be copied to refer to this part as well, because it has the same number of pins and each pin serves the same function.
 +
</gallery>
 +
</div>
 +
A '''part''' represents a real electronic component - a resistor, a connector, an integrated circuit, etc. A part is defined in Altium with a couple of things:
 +
* A '''schematic symbol''' - a symbolic representation of the part which doesn't have to look like the actual, real-life part but should show how to electrically connect to it.
 +
* A '''footprint''' - a drawing that shows what should appear on the manufactured printed circuit board. The footprint must match the dimensions for every feature of the part that will be soldered to the PCB, and usually also includes labels and a 3D model that help gauge how big the part is and how it's supposed to be installed.
 +
* A '''supplier link''' - a reference to a vendor's page to sell the part, most often at [https://digikey.com digikey.com]. These links mean that boards that use the part can automatically generate a cart of all of the parts on the board, making it easy to order the parts to assemble the board.
 +
 +
Every part has a unique schematic symbol in Altium, though similar parts often use the same drawings, with pins renumbered as needed. Every part in Altium also has a unique supplier link. Parts in Altium can use the same footprint, as they correspond to (usually) industry standard form-factors used for many different parts. There are thus many more schematic symbols than footprints.
    
==Creating a New Schematic Symbol==
 
==Creating a New Schematic Symbol==
 +
 +
===Drawing a Symbol===
 +
To create a new schematic symbol, first find the relevant schematic library. Schematic libraries are sorted by function - i.e. power management integrated circuits (PMIC), diodes, etc. The table below serves as a reference.
 +
 +
{| class="wikitable"
 +
|-
 +
! Library Name
 +
! What Parts Go In It
 +
! Notes
 +
|-
 +
| capacitor.SchLib
 +
| Capacitors (all kinds).
 +
| Many ceramic capacitors are stored separately in sscp.dblib (ask in {{slack-channel|altium}} for details). Make sure to note the capacitor chemistry (i.e. CAP_CER for ceramic, CAP_TANT for tantalum ([https://io9.gizmodo.com/5906833/tantalum-is-the-most-important-element-youve-never-heard-of undesirable]), CAP_ALUM for aluminum, etc.) in the schematic symbol name.
 +
|-
 +
| connector.SchLib
 +
| Connectors (all kinds).
 +
| Schematic symbol names should start with "CONN_".
 +
|-
 +
| diode.SchLib
 +
| Diodes (all kinds, including light emitting).
 +
| Note the type of diode in the symbol name ("LED_", "SCHOTTKY_", "ZENER_" - you don't need to include the word "diode").
 +
|-
 +
| fuse.SchLib
 +
| Fuses (both permanent and resetable).
 +
|
 +
|-
 +
| ic_analog.SchLib
 +
| Integrated circuits for analog applications (op-amps, filters, etc.).
 +
| Note the general category of IC in the symbol name ("OP_AMP_", "FILTER_", etc.) NOT for analog-to-digital converters (see ic_data_converters below)
 +
|-
 +
| ic_data_converters.SchLib
 +
| Converting data from analog to digital or vice-versa (ADCs and DACs).
 +
| Begin the symbol name with "ADC_" or "DAC_" as appropriate.
 +
|-
 +
| ic_digital.SchLib
 +
| Digital integrated circuits i.e. logic gates. NOT for processors (see ic_processor below).
 +
| Begin the symbol name with the logical operation the IC performs ("AND_", "XOR_", etc.) where appropriate.
 +
|-
 +
| ic_interface.SchLib
 +
| ICs for connecting to standard communications interfaces i.e. CAN, Ethernet.
 +
|
 +
|-
 +
| ic_pmic.SchLib
 +
| Power management integrated circuits, such as switching converters, linear regulators (LDOs), and battery protection.
 +
| Begin the symbol name with the converter type/topology ("LDO_", "BUCKBOOST_", "BUCK", etc.) where relevant.
 +
|-
 +
| ic_processor.SchLib
 +
| Processors (all kinds)
 +
|
 +
|-
 +
| Inductor.SchLib
 +
| Inductors (all kinds) and transformers.
 +
| Begin the symbol name with "IND_".
 +
|-
 +
| mechanical.SchLib
 +
| Mechanical features, such as mounting screws, and test features, like test points.
 +
|
 +
|-
 +
| miscellaneous.SchLib
 +
| Parts not properly described by any other category.
 +
| Use is discouraged, because it has a tendency to be a dumping ground - make sure there really isn't anything better.
 +
|-
 +
| modules.SchLib
 +
| Standalone modules i.e. prebuilt Arduino boards
 +
|
 +
|-
 +
| Oscillator.SchLib
 +
| Oscillators and crystals.
 +
|
 +
|-
 +
| Resistor.SchLib
 +
| Resistors not available in resistor.dblib
 +
| All [http://www.brannonelectronics.com/images/STANDARD%20VALUE.pdf 1% resistor values] in standard surface mount sizes are stored in resistor.dblib. Prefix the symbol name with "RES_".
 +
|-
 +
| rf.SchLib
 +
| Radio frequency parts and antennas.
 +
| RF ''connectors'' should stay in connector.SchLib
 +
|-
 +
| sensor.SchLib
 +
| Sensors (all kinds)
 +
| Prefix the symbol name with the kind of sensor ("ACCEL_", "GYRO_", etc.)
 +
|-
 +
| transistor_bjt.SchLib
 +
| Bipolar junction transistors.
 +
| We have mercifully few of these.
 +
|-
 +
| transistor_fet.SchLib
 +
| Field effect transistors (all kinds).
 +
| Please note polarity by prefixing with "NFET_" or "PFET_" as appropriate.
 +
|}
 +
 
[[File:SchLib.png|200px|thumb|A view of the SCH Library pane after opening the Connectors SchLib.]]
 
[[File:SchLib.png|200px|thumb|A view of the SCH Library pane after opening the Connectors SchLib.]]
 
[[File:Schpin.png|300px|thumb|A pin in a schematic symbol. Note the small white dots on the left side mark where wires will connect in schematics; this pin is on the left side of an IC.]]
 
[[File:Schpin.png|300px|thumb|A pin in a schematic symbol. Note the small white dots on the left side mark where wires will connect in schematics; this pin is on the left side of an IC.]]
 
[[File:PinProperties.png|300px|thumb|The pin settings dialogue brought up during pin placement.]]
 
[[File:PinProperties.png|300px|thumb|The pin settings dialogue brought up during pin placement.]]
 
+
Next, lock the library you'll be working with, and double click the library to open it. If not already visible, open the "SCH Library" pane {{altium-shortcut|v|w|c|b}} and look at the top field, where there should be a list of symbols. Click "Add" to create a new symbol, giving it a name consistent with the names used in the library (''this is poorly standardized, but typically consists of, in all caps, <type_of_component>_<manufacturer_name>_<manufacturer_part_number>''). Your new part should then become active, bringing up a blank editing window.
===Drawing a Symbol===
  −
To create a new schematic symbol, first find the relevant schematic library. Schematic libraries are sorted by function - i.e. power management integrated circuits (PMIC), diodes, etc. Next, lock the library you'll be working with, and double click the library to open it. If not already visible, open the "SCH Library" pane {{altium-shortcut|v|w|c|b}} and look at the top field, where there should be a list of symbols. Click "Add" to create a new symbol, giving it a name consistent with the names used in the library (''this is poorly standardized, but typically consists of, in all caps, <category_of_component>_<manufacturer_part_number>''). Your new part should then become active, bringing up a blank editing window.
      
Next, you'll draw out the graphics for your symbol. Begin by setting the snap grid of the editor (the grid of points it will allow for drawing) to 10 point spacing, by opening the snap grid settings {{altium-shortcut|v|g|s}} and entering 10 for the snap grid size. This is not strictly required, and smaller grids can be used to create finer detail in symbols (5 and 2.5 are recommended), but all connection points for the symbol (added later) must be placed on a 10 point grid and thus symbols should be drawn to accommodate that.
 
Next, you'll draw out the graphics for your symbol. Begin by setting the snap grid of the editor (the grid of points it will allow for drawing) to 10 point spacing, by opening the snap grid settings {{altium-shortcut|v|g|s}} and entering 10 for the snap grid size. This is not strictly required, and smaller grids can be used to create finer detail in symbols (5 and 2.5 are recommended), but all connection points for the symbol (added later) must be placed on a 10 point grid and thus symbols should be drawn to accommodate that.
767

edits

Navigation menu