We are very proud of this tutorial but it is getting long in the teeth. Be sure to checkout the latest Eagle tutorials over on our learn website:

Here's the original tutorial for your viewing pleasure:

Welcome to the wonderful world of PCB creation! We've used a few software packages over the years (namely Protel DXP) and have found Eagle Layout Editor from CadSoft to be very easy to use, very cost effective, and very powerful.

Eagle is free! There are some limitations in place, but basic students and non-profit groups can use it. Protel is currently about $12,000 a seat.

Eagle is not the 'hobbyists' tool you may think it is. I've seen some very complex 8-layer BGA boards going into a firewall/router consumer product. I too was amazed to hear it was created in Eagle. It can be done, you just need to dream up the device!

There are a few files that you will need to download for this workshop.

Download Eagle itself. Currently we use v4.16 (~8MB). Versions are available for Windows, Linux, and Mac. If the above link does not work, google ?eagle pcb download? to get the latest version. Download the SparkFun Eagle Library. This is the collection of all the components SparkFun designs with and therefore components and footprints that have been tested. Unzip and place the SparkFun.lbr file into the Eagle\lbr directory. If the above link does not work, google ?sparkfun eagle library? to get the latest collection. Download the SparkFun Eagle keyboard shortcuts. Place this file in the Eagle\scr directory. If the above link does not work, google ?sparkfun eagle shortcut?. Download the SparkFun CAM file. (Right-click, and choose Save Link As) Place this file in the Eagle\cam directory. This file is responsible for creating the gerber files for submission to a PCB fab house.

Note: The SparkFun Eagle shortcut key script file has an .scr extension. This is a common virus infiltration method. If you choose to download our keyboard shortcuts, and you don't trust us, rename the file to a .txt extension and view it in a text viewer. There's nothing there but text and Eagle commands. Just be sure to rename the file to the .scr extension so that Eagle will use it.

To learn how to use Eagle, we are going to create a simple breakout board for a popular USB IC. The FT232RL is a USB to TTL serial converter.

What is a USB to TTL converter?

Once the FT232RL is attached to the USB port on your computer, you will need to install some simple drivers (available for Windows, Linux, Mac), and then you will see a Virtual Com Port (VCP) appear on your computer. You can then use hyperterminal to open this new com port number. Any letters that are typed in hyperterminal are converted to a USB packet in the background, sent down the USB cable to the FT232RL where it reconstructs the serial information and passes these letters out the TX pin on the IC at whatever baud rate you choose. If you have a device connected to this TX pin, it will hear the serial letter and react. This will effectively give your device USB connectivity and you won't need to know a thing about how USB actually works!

This IC is very popular, but only comes in surface mount device (SMD) packages (sound familiar?). So let's spin a simple PCB that will allow us to use this handy IC.

When in doubt, follow the manufacturer's recommended circuit. This 'typical' application is just what we need.

This is a bare-minimum feature setup for the FT232R. Just what we need for simple TX/RX to USB. We want to plug the FT232RL on to the USB port, have it bus powered, and possibly power the rest of our circuit. Our ATmega8 uses 5V so we'll tie VCCIO to the USB 5V. A USB connector, a couple 0.1uF caps, a bigger tantalum cap, a ferrite bead, this doesn't look so bad!

Before we can get started, we need to create or locate a library part for the FT232RL. I really don't like using other people's footprints and schematic parts but in this case, FTDI has created some free libraries for their parts. This page should have the Eagle library (search the page for FT232RL) but if not, google 'ft232rl eagle footprint'. We also have this part proven in the SparkFun.lbr library. Use their library, use ours, create your own, it doesn't matter. But because we are most comfortable with our own parts (we know they work!) we will be using the SparkFun.lbr file for this tutorial.

Now let's add the FT232RL part to our schematic. Close the library editor and go back to the Eagle Control Panel. Click on File->New->Project. Name this new project 'FT232-Breakout'. Right click on the FT232-Breakout project and create a new Schematic:

The schematic editor should open. Now go back to the Eagle Control Panel and expand the SparkFun Library:

You should see a long list of parts. Highlight the FT232RL-Basic part and in the right screen click on ADD. The schematic editor will pop up allowing you to place the FT232RL.

Now save your schematic!

I like to use a board name and a version number within the file name. -v10, -v11, v12, etc as 1.0, 1.1, and 1.2 advance through layout changes.

Now add these other items to your schematic:

1 x FRAME-LETTER : This will add a nice frame to your schematic. Add all parts inside this frame.

3 x CAP (Device name CAP0603) : 0.1uF/0.01uF 0603 capacitors

1 x CAP_POL (Device name CAP_POL1206) : 10uF tantalum capacitor

1 x INDUCTOR (Device name INDUCTOR0603) : Ferrite bead

4 x STAND-OFF( Device name STAND-OFF): This part will add a hole and a keepout ring for a #4-40 screw. These can be used to raise your board up off a surface or to mount your board to an enclosure.

USB (Device name USBPTH) : USB Type B through-hole connector

M04 (Device name M04PTH) : Four pin 0.1" connector

GND (Device name GND) : Ground connections

VCC (Device name VCC) : Power connections

Parts added to the schematic

You can click on the button you need on the menu on the left side of the screen. You can also hover over each button and its name will pop up. This works great for beginners but as you advance, you'll want to speed up layout by using keyboard shortcuts. Here are some of the basic quick keys:

Press escape at any time to stop the current action and return to the schematic window

F7 to move a part

Alt+F7 to group a bunch together

F3 to delete a part

F4 to rename a part (change C7 to C2)

F5 to re-value a part (change 0.1uF to 10uF, etc)

F6 to smash a part (be able to move the name and value tags)

F9 to start a wire

Alt+F9 to add a label to a wire

NEVER change the grid size in the schematic editor. Leave it on 0.1inch steps and don't use the alternate 0.01 step. If you do, you won't be able to hook wires to the pin tie points.

Now we just need to begin wiring nets. Arrange the pieces so that there is as little net overlaps as possible.

Primordial FT232RL breakout

To wire a pin (TXD) to a far point (the 4-pin connector for example), instead of sending a wire half way across the page, we use net names. The green wire is not physically seen on the schematic, but Eagle knows to connect the two points on the layout because the two green wires have the same name.

Press F9 and click on pin 1 (TXD). Bring out the net a couple square widths and left click again to end the net. Press Alt+F9 to name the net. Click on the wire you just created. You should see a net name (like N$5) appear and be floating. Anchor it to the wire and TX pin:

To change the name on the N$5 wire, press F4 (Name command) and click on N$5. A window will appear - type 'TX' and press return. The TX pin should be correctly labeled and we have a few of the schematic connections.

To rename a device (change U$1 to U1), press F4 and then click on the device you want to rename. This also works to rename a net.

To change the value of a component (0.1uF to 10uF) press F5 and click on the device you want to change the value of. To move a device, press F7 (move command) and click on the device you wish to move. Now with a little renaming and rearranging the various components:

We've thrown a 4-pin connector into the schematic and used a very stripped down schematic symbol for the FT232R. For the purposes of this tutorial, we really only care about VCC/GND/TX/RX - the bare minimum. If you need access to more of the pins, use the more complete FT232R symbol and break them out!

Use the mirror command and rename the 4-pin connector (press F4 to rename a device):

Eagle files / PDF

I probably could have wired JP1 directly to the various pins but I wanted to demonstrate the net/name properties. This will also make it easier to label the pins on the PCB. Speaking of which, if you have not already, click on the 'Board' button to open the PCB editor:

All right! We've got the components onto a board and most of the nets connected, time for PCB layout!

How to copy and paste in Eagle Schematic:

This is perhaps the most counter intuitive part of Eagle. As with any new technical software, it's like learning a new language. Once you know the intricacies, you'll love it.

To copy one thing within a schematic is reasonably simple. Click on the 'Copy' button, then click on the thing you want to copy and that thing (component, wire, net name) will be duplicated and floating under your cursor. Drop it wherever you want it.

To copy a group of stuff within a schematic is completely wacky. First click on the group command:

You are going to create a frame around the stuff you want to group together. Left click and hold on one corner. Drag to the opposite corner. Now release the mouse button. The items that are part of the group should now be highlighted like this:

Now click on the Cut button. I know you don't want to delete these items - this is just how it works. Click on cut, move your mouse cursor to the middle of the group, and left click. Nothing happened right? That's okay. The group of items has been copied to the buffer. Now click on the paste button:

You should now have a copy of the group of items floating around. Drop these items wherever you need them in the schematic, or hit escape to return to the schematic window. I know, very odd but this type of group/modify steps comes in very handy over time.

We love feedback! Please report typos, comments, or recommendations to spark@sparkfun.com.

Lecture 1 - Background and Power Supply



Lecture 2 - How to Get Code Onto a Microcontroller



Lecture 3 - What is an oscillator?



Lecture 4 - UART and Serial Communication



Lecture 5 - AVR GCC Compiling



Lecture 6 - Soldering Basics



Lecture 7 - SMD Soldering



Lecture 8 - Eagle: Schematics



Lecture 9 - Eagle: PCB Layout



Lecture 10 - Eagle: Creating a new part



Common Mistakes, Tips and Tricks