Component Sourcing and Library Management Guide

Note

See Schematic Symbol and Footprint Guidelines instead of this document as it is more up to date and less confusing.

 

Archived Content

Note

As WARG has shifted to A365 (in 2022) a lot of our practices have changed since this document was authored in 2021. As our WARG EE leads have gained more knowledge (and diffused it into our members) we have also refined many of our techniques. In the future we are hoping to have more formalized designed standards which should completely replace this document. This document will live on as at least a relic of an era for the time being.

 

Introduction

Component Sourcing and Library Management Guide for GitHub - UWARG/hardware: PCB designs for the Waterloo Aerial Robotics Group primarily intended for new members of the WARG Electrical subteam as it doesn’t dive into advanced topics.

This writing assumes you have completed the Electrical bootcamp and have a basic understanding of how to use Altium Designer. If you do not, resolve that before proceeding and interacting with our Github! This guide does not go into specifics so please ask others as you are learning.

 

Github Repository & How to use it with Altium and Discord

Our Github page for hardware for electrical can be found here GitHub - UWARG/hardware: PCB designs for the Waterloo Aerial Robotics Group if you do not have write access just @ a lead on discord and they can hook you up provided they are confident in your understanding or something idk.

If you don’t know how to use Git - Downloads I highly recommend using https://desktop.github.com/ as it holds your hand and has the required features you will need. I will explain how to use Github desktop briefly below, but I will not be explaining how to use Git. Git has more features (primarily for our application, the ability to revert commits, although there are many more) and is the industry standard so if you want to learn it yourself, go for it!

You will start by cloning our repository from “origin” or GitHub - UWARG/hardware: PCB designs for the Waterloo Aerial Robotics Group onto your local files. Then you can open up the project with Altium and manipulate it. Be sure to include a commit message following our scheme. Examples of commit messages can be found here https://github.com/UWARG/hardware/commits/master so just try to blend in . For a more general guide to writing commit messages please at least skim How to Write a Git Commit Message if you are new to Github.

Be sure to pull from origin before beginning work and push to origin after committing, failure to do this will result things I’m not going to describe how to fix here, but just know they aren’t fun. Further, remember to hit the save button in Altium before committing to ensure all your changes are included in the commit you make. Check the origin Github website to be sure your commit actually went through! Further, we have a system in which we use the #git channel in discord to say what files are busy. This is because the files for Altium are referred to as “binaries” and are therefore not mergable! So only one person can work on each file at once since there is no way to merge like there is when you are writing code. Same thing as commit messages, try to blend in, the git channel is filled with examples on how to do this. “Busy” means you are working on something, “Free” means you are done editing and have committed and pushed all your changes.

Be sure to only use components that are a part of our repositories libraries, mistakes can be make if you have your own repository. When creating new projects or files or anything really, always look at previous stuff and copy paste as much as you can. Sometimes the previous stuff is wrong, but if you don’t know copying previous stuff is fine, also, don’t be afraid to ask questions. Don’t waste your time doing something you’re not sure is correct when someone could answer the questions in a few seconds. Nobody is going to make fun of you, we all learned by questions.

 

All Components

When sourcing products 99% of the time stick to http://digikey.ca as that’s what we do and they have most things. Always sort by in stock primarily and when you are sourcing search for things that are not only in stock, but are also “well in stock” this means there are at least ten thousand of them available. This is because we will likely order the components weeks or months after you first sourced the part so we want to be sure they will be in stock then and not just in stock when you are sourcing them.

Always be sure to select the “Cut Tape” packaging option for the Digikey part number as the other methods are intended for orders of thousands of the component which we never do. This aspect is primarily for entering in the component into Altium as Digikey puts all shipping methods under each product.

Next, we prefer components that are cheap! For common components I’ve listed typical price ranges below, but for other components just be sure you’re going with the cheapest option that still meets the required specifications.

Below I will outline a few requirements for common components, but for other uncommon components just be sure that the package is easily hand solderable and be sure to ask someone else if you are unsure.

 

Capacitors

For capacitors we prefer Murata due to their nice capacitor simulation tool, https://ds.murata.co.jp/simsurfing/index.html?lcid=en-us , that show us how the components will behave through graphs and whatnot. They have most components in stock, but if they lack something, Kemet is our backup. There is a reason for this, probably previous good experiences with these companies, but I’m unsure of the specifics. If you want to deviate from these, check with a lead.

For capacitor voltage rating, be sure to go about 2-3x your expected operating voltage as a rule of thumb. More specifically, however, on a 3V3 application 25V capacitors is ideal and with a 5V board or if 25V capacitors cannot be found for a 3V3 application, 50Vs will do. This is because you want a little overhead just in case, but if you go too high you get poor “DC Bias Voltage” behavior. This means that if you have a 250V 10uF capacitor and you are operating it at 3V3 the actual capacitance will differ from 10uF significantly more then a 50V 10uF capacitor being operated at the same 3V3. To see this behavior, checkout the simulation tools on Murata!

For package we prefer 0603, especially if large amounts of the capacitors are needed, for example, when the capacitor will be used as a decoupling capacitor. This is because they are small and standard. 0805 capacitors are also acceptable as a backup and may be used when better DC Bias Voltage behavior is needed as they often preform better, although, you may want to check the simulations on Murata for the specific capacitor and do your own research regarding this. 1206 capacitors are far too big for standard capacitors so check with a lead before including one. If other capacitor sizes are needed, check with a lead.

Capacitance is often very picky, so when sourcing a capacitor for an application check the datasheet for the exact value required and use it as a search filter on Digikey. For tolerance, plus or minus 10% is what we look for and is fairly standard. Less then 10% is fine if necessary, although watch the budget!

For Temperature Coefficient, we prefer X7R, although X5R and C0G are acceptable as well. This coefficient also plays a significant factor in DC Bias Voltage behavior of a capacitor.

Most capacitors should cost less then $0.75 a piece with your average capacitor right around $0.45 in my experience. If you’re spending over a dollar on a capacitor you should look for alternatives, especially if many of them will be required.

For making the capacitor symbol, assuming you’re grabbing an 0603/0805/1206 package, just copy paste the generic symbol and fill in the parameters with information from the datasheet. These must be filled in perfectly as failure to do so will mess up the bill of materials (“BOM”). The footprints are already made for these packages as well so this should go pretty quick.

 

Headers

I like to go with Molex because they’re pretty standard and have a lot of stuff, but manufacturer is not picky with headers. This is the only component in which we use Through Hole, do not source surface mount headers.

For power connectors we like screw terminals and for general purpose we use male pins. Other more unique headers are acceptable for other applications so just be sure you know what your doing.

Mating pitch is critical for male pin headers so stick with 2.54mm as a standard and positions and rows options vary depending on requirements.

 

Resistors

I don’t think we have a preferred supplier here, but I tend to use Yageo.

Resistance is picky with resistors so be sure to check exactly what you need. For tolerance, +-1% is fine for most applications and are widely available.

For the package follow the same rules as with capacitors. Prefer 0603 with 0805 as a backup if you cannot find what you need.

 

Symbol Making

For standard components copy paste the generic component with the proper package, fill in the parameter values and you’re good to go! For things like headers, you can copy paste a header, add or subtract positions, then update the parameters. The parameters are extremely important for making our BOM look proper.

For components that aren’t already in our libraries you can find one in another library with a nice symbol and copy paste the symbol over. We want our symbols to be extremely clean so I do not recommend drawing things yourself.

For symbols for pretty much anything you can position the pins wherever you want. For microcontrollers we highly recommend you arrange the pins in a way that makes logical sense as this will make your schematic sheet look far nicer. Be sure each pin is named correctly and the designator number matches perfectly with the footprint. This is because the schematic symbol pin numbers will sync up with the footprint pad numbers when in the PCB designing stage and if they aren’t named properly you will end up connecting things to the wrong pads even though your schematic may look correct.

For pin and symbol naming scheme look at other similar components and follow the pattern, blend in!

Additionally, checkout this guide Guidelines for Creating Useful PCB Schematic Symbols.

When you create a symbol be sure to fill in the parameters. Order of parameters is irrelevant, but naming has to be exactly perfect for the BOM! For every component no matter what include “Manufacturer Part Number 1” and “Manufacturer 1” in addition to the supplier parameters which Altium fills in for you. For which other parameters to include check similar components.

 

Footprint Making

For the footprint of common components you can reuse the exact same footprint for multiple components. For things like headers it is easy to just add or subtract positions from other similar header footprints just be sure to check the datasheet to be sure the spacing is correct. If you are making your own footprint be sure to check the datasheet and use some basic geometry to determine the exact spacing. I would highly recommend using the footprint wizard as is outlined in the bootcamp for creating unique components as it makes it very easy to extract the values from the datasheet and drop them straight into Altium.

Additionally, feel free to copy from other libraries as long as it is clean. One difference from the bootcamp is that we do not include the top overlay lines, though don’t forget to make pin 1! For 3d bodies Digikey often has links to the .stp file at the bottom of the items page, but if they don’t check for the Ultralibrarian link as that will give you a 3d body as well. Finally, you can google the package to find a 3d body, but be sure it is the correct package as outlined in the datasheet. Be sure you line up the 3d body perfectly and then check in 3d that everything lines up perfectly to ensure you spaced the pads properly and everything looks correct!

 

In Conclusion

This is meant as an introduction and I’m sure I’ve forgotten things. Please ask questions!