# Eagle Tutorial - How to add a new package to a component

## Overview

There are thousands of devices in the 'default' library that comes with EagleCAD but whaddyaknow, the exact package/device you need isn't always going to be one of those thousands. However, instead of making a brand new device from scratch every time you can often 'merge' two existing devices, or at least reuse the SMD package. Not only will you save time, but it can minimize mistakes. (Note I say it _can_ - be sure to always always triple check pinouts, package sizes, dimensions and more!)  
  
This little tutorial will show you how to create a new package for an existing device. It's not a beginner tutorial so you'll have to learn how to use Eagle first, but its one of those skills that can save you tons of time.  
  
The chip I'll be looking to add today is this fine quad 2-input NAND Schmitt trigger. Specifically, I want to add the TSSOP package

![](https://cdn-learn.adafruit.com/assets/assets/000/005/930/medium800/maker_business_mc14093b.png?1396829963)

# Eagle Tutorial - How to add a new package to a component

## Lets Look

We'll start by doing a basic search for this part. I've already made a new schematic in Eagle and using the **Add** button and searching for **\*4093\*** (that should pop up any existing devices if they exist)

![](https://cdn-learn.adafruit.com/assets/assets/000/005/931/medium800/maker_business_4093.png?1396829998)

The good news is this basic device is in the **40xx** library, but its only there in the SO14 (SOIC 14) and DIL14 (DIP 14) packages. The package we want is **TSSOP** and it ain't there!  
  
Instead of starting completely from scratch, though, I can at least use this device/symbol which will save me some time.

# Eagle Tutorial - How to add a new package to a component

## New Library

To keep my parts organized, I'll start a new library. If you have your own parts library, open that one up instead. The reason for doing this rather than editing the default libraries is that if you update Eagle, you wont forget that you have to go back to the old library and copy it over. Better to just keep all custom stuff separated!

![](https://cdn-learn.adafruit.com/assets/assets/000/005/932/medium800/maker_business_newlib.png?1396830020)

Save it somewhere in your Documents folder or wherever you keep your files...

![](https://cdn-learn.adafruit.com/assets/assets/000/005/933/medium800/maker_business_mylib.png?1396830042)

OK now keep this new library open but go back to the main Eagle window (not schematic/board/library) and browse in the folder hierarchy until you find where you found that close-but-not-quite device. In this case, it was in **40xx**

![](https://cdn-learn.adafruit.com/assets/assets/000/005/934/medium800/maker_business_40xx.png?1396830067)

Then find the **device** that you want and copy it to the library (the new one, you just made!)

![](https://cdn-learn.adafruit.com/assets/assets/000/005/935/medium800/maker_business_addtolib.png?1396830097)

OK now you have a copy of the **4093** device in your own library - again it has SOIC and DIP packages already

![](https://cdn-learn.adafruit.com/assets/assets/000/005/936/medium800/maker_business_copied.png?1396830128)

# Eagle Tutorial - How to add a new package to a component

## New Package

Now we have to make a TSSOP package for it. Again, I'm lazy, so lets do what we can to 'reuse' an existing package. This will save us a bunch of time!  
  
Go to your **board** editor (create the board layout if you haven't yet) and click on the **ADD** button. This is a bit of a hack, the easiest way I've found to browse packages.

![](https://cdn-learn.adafruit.com/assets/assets/000/005/937/medium800/maker_business_brdadd.png?1396830155)

Search for **\*TSSOP14\*** - this will pull up all matching packages

![](https://cdn-learn.adafruit.com/assets/assets/000/005/938/medium800/maker_business_tssopbody.png?1396830195)

The first package looks pretty good, its from the **74xx-eu** library...Now go back to the main Eagle window and find that package by browsing to the **74xx-eu** library and right-click **Copy to Library**

![](https://cdn-learn.adafruit.com/assets/assets/000/005/939/medium800/maker_business_tssopadd.png?1396830232)

# Eagle Tutorial - How to add a new package to a component

## Package Adjustments

Before we continue, its good to check the package and layout. I find its best to go with whatever the datasheet suggests. If you scroll down usually at the end are package/layout diagrams like this one

![](https://cdn-learn.adafruit.com/assets/assets/000/005/940/medium800/maker_business_footprint.png?1396830245)

In the device layout editor, change over to millimeters since you can see this diagram has **DIMENSIONS: MILLIMETERS** in the bottom right corner. I find 0.1mm is a good choice for gridding so you can get a feel for the dimensions but its not necessary

![](https://cdn-learn.adafruit.com/assets/assets/000/005/941/medium800/maker_business_mmgrid.png?1396830270)

To make it easier to select the red SMD pads, hide **tDocu** and **tPlace** (this doesn't disable or delete them, just hides them)

![](https://cdn-learn.adafruit.com/assets/assets/000/005/942/medium800/maker_business_hidetdocu.png?1396830301)

Next we can select the pads. This will give us the size and center location of each pad. I selected the first pad to the left of the center line. As you can tell from the **Position** line, these pads are on a **0.65mm** pitch and are spaced **2.925mm** apart. From the **Smd Size** line, these pads are **0.35 by 0.9mm**

![](https://cdn-learn.adafruit.com/assets/assets/000/005/944/medium800/maker_business_originalpads.png?1396830346)

Lets look again at the suggested layout

![](https://cdn-learn.adafruit.com/assets/assets/000/005/945/medium800/maker_business_footprint.png?1396830360)

Looks like what we want are pads that are **0.36 by 1.26** and have **0.65mm pitch**. So the pitch is right. Lets also check the spacing of the pads. Annoyingly enough, the diagram does not indicate the middle-to-middle spacing. We'll have to do a bit of math...

![](https://cdn-learn.adafruit.com/assets/assets/000/005/946/medium800/maker_business_pinspace.png?1396830387)

OK so 2.9mm apart as well. Lets edit that pad to change the center location and SMD size to match:

![](https://cdn-learn.adafruit.com/assets/assets/000/005/943/medium800/maker_business_smdchange.png?1396830324)

Repeat for all other pads, changing the size and the spacing but **not** the pitch. If you want to change a bunch of pads at once, you can use the **change smd** command

![](https://cdn-learn.adafruit.com/assets/assets/000/005/947/medium800/maker_business_changesmd.png?1396830402)

Anyways, once done, lets save and rename this package since its been modified. I used the command line but you can also use the **Rename** menu command

![](https://cdn-learn.adafruit.com/assets/assets/000/005/948/medium800/maker_business_renametssop.png?1396830415)

Finally, edit the description at the bottom by clicking on the blue **Description** link to open up the mini window

![](https://cdn-learn.adafruit.com/assets/assets/000/005/949/medium800/maker_business_description.png?1396830444)

# Eagle Tutorial - How to add a new package to a component

## Connection

OK we have our symbol and our package, lets merge them! Open up the **device** in the library

![](https://cdn-learn.adafruit.com/assets/assets/000/005/950/medium800/maker_business_device.png?1396830469)

Once its open, click on **New** in the bottom right to create a new package variant. Select the new TSSOP14 we made

![](https://cdn-learn.adafruit.com/assets/assets/000/005/951/medium800/maker_business_addvariant.png?1396830497)

Under **Variant name** I like always matching the datasheet, in this case it says that the TSSOP variant is called **DT**

![](https://cdn-learn.adafruit.com/assets/assets/000/005/952/medium800/maker_business_dt.png?1396830516)

Now we can connect the pins and pads up. Right click and select **Connect**

![](https://cdn-learn.adafruit.com/assets/assets/000/005/953/medium800/maker_business_connect.png?1396830532)

Here's another trick I use to save time and avoid mistakes, if you're creating a package _and_ the package has the same number of pins as an existing package _and_ the pinout is the same for both you can use **Copy from** to duplicate the pin connections

![](https://cdn-learn.adafruit.com/assets/assets/000/005/954/medium800/maker_business_copyfrom.png?1396830558)

![](https://cdn-learn.adafruit.com/assets/assets/000/005/955/medium800/maker_business_copiedfrom.png?1396830583)

That's it! You're done! Now there is a new device package for TSSOP-14

![](https://cdn-learn.adafruit.com/assets/assets/000/005/956/medium800/maker_business_done.png?1396830619)

# Eagle Tutorial - How to add a new package to a component

## Verify and Use

Now you can add your new library to the project you are working on. Select **Library -\> Use...** and find the library you made and saved

![](https://cdn-learn.adafruit.com/assets/assets/000/005/957/medium800/maker_business_libraryuse.png?1396830636)

You can now search for the device and it will pop up in your new library with the TSSOP package

![](https://cdn-learn.adafruit.com/assets/assets/000/005/958/medium800/maker_business_letsadd.png?1396830667)

Don't forget, for many of the Logic device, you have to **Invoke** to get the power pins

![](https://cdn-learn.adafruit.com/assets/assets/000/005/959/medium800/maker_business_invoke.png?1396830688)

![](https://cdn-learn.adafruit.com/assets/assets/000/005/960/medium800/maker_business_invoked.png?1396830708)

You can go to the board layout and see your nice new package

![](https://cdn-learn.adafruit.com/assets/assets/000/005/961/medium800/maker_business_4093dt.png?1396830723)


## Related Guides

- [Overhead Camera Rig](https://learn.adafruit.com/overhead-camera-rig.md)
- [How To Place an Essential, COVID-19 Related Order at Adafruit ](https://learn.adafruit.com/how-to-place-an-essential-covid-19-related-order-at-adafruit.md)
- [How To Build A Hardware Startup](https://learn.adafruit.com/how-to-build-a-hardware-startup.md)
- [The Well-Automated Arduino Library](https://learn.adafruit.com/the-well-automated-arduino-library.md)
- [ Analog IC Insights On-the-Go by Maxim Integrated](https://learn.adafruit.com/maxim-app.md)
- [All the Internet of Things - Episode Five: The S in IoT is for Security](https://learn.adafruit.com/all-the-internet-of-things-episode-five-the-s-in-iot-is-for-security.md)
- [Continuous Integration, Arduino, and You](https://learn.adafruit.com/continuous-integration-arduino-and-you.md)
- [Windows Tools for the Electrical Engineer](https://learn.adafruit.com/windows-tools-for-the-electrical-engineer.md)
- [Submitting an open-source project to OSHWA](https://learn.adafruit.com/submitting-an-open-source-project-to-oshwa.md)
- [Disabling AI in Slack: A Step-by-Step Survival Guide](https://learn.adafruit.com/disabling-ai-in-slack-a-step-by-step-survival-guide.md)
- [Make Beautiful Fritzing Parts with eagle2fritzing](https://learn.adafruit.com/make-beautiful-fritzing-parts-with-eagle2fritzing-brd2svg.md)
