This is a guest post from Thomas Amely
on how to make your own CNC milled PCBs. Have fun making and enjoy the
Within the maker community there exists a sub-community of makers who
have access to or have built their own CNC mills; I am one of those
makers. Never being one to own a single purpose device I set out to mill
circuits of my own design with my desktop CNC machine.
While many of my designs have reached a level of complexity which is
well beyond the capabilities of this workflow, I still regularly create
prototype circuits following this process. This is my workflow.
Hardware for Milled PCBs
There are numerous sources on CNC mills of various sizes and
capabilities but given the nature of milled circuits an important factor
is going to be resolution in inches per step (or mm/step). My particular
machine travels roughly .000833 inches per full step, this is a good
resolution for through-hole circuits but circuits utilizing surface
mount devices (SMDs) may require a finer resolution. Better resolution
can be attained through different lead screws or microstepping. A word
of caution, increasing resolution through microstepping WILL sacrifice
accuracy. How much accuracy is sacrificed varies from one setup to the
The Working Fixture
The work surface of your CNC mill should be as level as possible since a
deviation of as little as .001” could be the difference between properly
engraving a board and barely scratching it. The spindle or router that
will be used to mill your boards should be used to level the work
surface with an appropriate end mill. Additionally the fixture should
have a means of holding down the workpiece.
Three kinds of bits should be considered when stocking up as they are
not commonly found in local hardware stores: drill bits, engraver bits
and end mills (optional for cutting the circuit out.)
For drill bits a good variety in common PCB through-hole sizes is a must
but the definition of common sizes varies based on what you are doing.
My go-to drill bits are .025”, .033” and .055” although you want to have
a good range and doubles of each as you will snap bits.
The engraver bits are a little more complicated as different users will
have different experiences depending on their machines. Myself, I use
.2mm 45° engraving bits, they can be had cheaply on ebay. Experiment
with cheap bits of various sizes and angles before you spend much
money on good bits as you will break many. Also, fight the urge to buy
engraving bits with 10° angles as they are great for producing violent
I list the end mills as optional for cutting the circuits out of the
rest of the board, but in reality if you have have a CNC machine, a
few end mills is a must. Expect to find the drill bits and engravers
primarily in a 1/8” or 3mm shank (note: 1/8” ≠ 3mm).
While you could get your copper clad from your local electronics store
you might put a nice dent in your budget before you produce your first
good circuit. Instead of paying for 2-3 USD for each single sided board
find a source for boards online. One excellent source is eBay seller
Try to avoid paying more than 0.50 USD per 4”x5” board. Keep in mind
that copper clad comes in many different board and copper thicknesses.
Software for Milled PCBs
For the creation of my circuits I use the EAGLE free version.
The main limitation of the free version is the max size of the
board, the max board size is limited to 100mm x 80mm (roughly
3.95” x 3.15”.) There are some other limitations but they are
not of much consequence for single sided boards of this size.
This size limitation might be worth keeping in mind when ordering
To generate the GCode (the machine numerical control program language)
I use the EAGLE open source plugin PCB-GCode. The plugin can be
downloaded from the PCB-GCode forum.
Installation and use are very well documented in the file within the
plugin zip folder under /pcb-gcode-3.X.X.X/docs/pcbgcode.pdf.
CNC Machine Control Software
In this category there are really only two mainstream options: Mach 3
and LinuxCNC. There are a few alternatives but I’m not sure many people
use them. At any rate once you produce the GCode, what you run it on is
really of no consequence so long as it does what it is supposed to do.
Get It Down On Paper
As with any project the first step should be a well thought out circuit
with a purpose. Try and work out all the details on paper (or digitally
if you prefer).
When I start I list at the top of my page what I want the circuit to do,
how it will do it and any additional notes that I should keep in mind
during the process. This is especially useful if you have to order parts
for your project and will spend a few days away from it. It’s a good
idea in general to always have a notebook to jot down your ideas and
For this example project I’ve decided to create an Arduino shield that
allows me to control a high power RGB LED strip utilizing 3 IRF540 Power
MOSFETs. While these MOSFETs are certainly overkill, they are components
I had laying around from a previous project. I’ve also made notes on
what pins I will use and the possibility of supplying the Arduino with
power from the LED power supply.
Schematic on Paper
Before creating a schematic digitally I always begin by drawing one by
hand. It doesn’t have to be pretty but it should make sense.
Before milling anything I always test the circuit on a breadboard. There
is no sense building a circuit that you hope will work when it takes
only a few minutes to try it out. This is a simple check that will spare
you a lot of frustration.
At this point I create my new project in EAGLE with a new schematic.
EAGLE is very intuitive and similar to other schematic editors but there
are many tutorials available to familiarize yourself with it if needed.
I always start by adding a frame with key information and bringing in
all the components I think I will need before connecting anything.
In this case I have an Arduino shield component, 3 N-channel MOSFETs 6
resistors and 5 wire-pad connections. Always verify that the pinouts
of the components you are using are correct. Before connecting any
wires, give the components descriptive names and values for easier
reading and deciphering later on.
Once all of the components are on the schematic I try to wire them in
the most orderly fashion possible. This is normally a painless process
if you took the time to draw your schematic by hand.
From this schematic I create a board and begin laying out components.
Every person I know who uses a layout editor takes a different approach
to laying out components. My main rule is to not fall in love with any
layout. Working on a single sided PCB greatly limits routing options and
the first layout I use is hardly ever the final layout. Here is a rough
It is wishful thinking that I might be satisfied with the auto-route
feature, but without having configured any of the optimization options,
the auto-route is almost never useful for single sided boards. In this
case the auto-route solution might have been suitable but I opted to
modify the layout slightly and use wider traces for the high current
Now that we have a design to mill we will run the PCB-GCODE plugin.
Every single machine will have a different configuration based on the
stepper drivers, the computer specs, the engraving bit and overall
setup. Unfortunately there is no good setup that will work for every
Make use of the configuration instructions provided with the plugin and
have lots of patience. Additionally, make use of the drill files to
ensure the plugin uses only drills you have on hand.
This job is run as a single pass but it can be configured to remove
all material outside of traces. In the preview window I search for
discontinuities and any other visible errors. Keep in mind that this
preview is of the bottom of the board and therefore will appear
backwards in the axis you have configured.
The plugin creates two files (or more depending on the configuration)
a .drill file and a .etch file. Some machines can interpret these
files or they can be simply renamed to have a .ngc or any other file
LinuxCNC users want to make sure to specify G61 or G64 in their .etch
files to avoid rounding corners due to trajectory control. I specify
G64P.005 within the etch file, this keeps the mill within .005” of the
GCode. For more information see the LinuxCNC wiki entry on trajectory
The last part of my milled pcb prototyping process is the actual
milling. Once you have your machine set-up is fairly painless, however
the process of setting up your machine can be very time consuming and
frustrating. I often begin with drilling followed by etching but the
order is of no real consequence and either can be chosen since they are
The finished board should then be inspected for shorts using a
multimeter or similar device. On this particular board I found a short
where a tiny bit of copper has not been removed. This is an easy fix but
could have caused some serious problems later on.
While the copper-clad is still in the work fixture I evaluate if there
are any additional changes I would like to make. I have opted to remove
the bottom half of the board which has no connections.
Upon removing the board I sand the surface and corners as well as clean
the trace gaps with a pick. Before soldering I perform one last thorough
inspection with a magnifying device. My magnifying device of choice is a
thread counter magnifier.
Now that the board is complete I notice a significant flaw in my board.
I have no connection for 12V to go to the LED strip. I have the option
to create another board or simply splice a wire to the 12V input. I
chose the simpler option but have since updated my notes. This clearly
demonstrates the iterative nature of prototyping.
As with any prototype build, I have taken notes along the way of what
changes need to be applied to the next iteration.
For this prototype the next iteration will include a barrel jack,
terminal binding posts to connect the led strip, and heat sinks if
needed. This particular prototype will be used as part of a sunrise
alarm clock for a few weeks before refining the design.
This process is one of many possible workflows, I hope it has given a
good idea of what is possible.
Keep in mind that while this setup is designed to produce single sided
circuits there are plenty of makers out there who design double sided
circuits on their CNC mills. A similar process can be implemented with
various software, machines and tooling. In designing your own work
flow be patient, stay flexible and be willing to fail.
Breadboards are amazing for prototyping and are an invaluable tool to
any electronics tinkerer, but when you really want to get serious you
will need to learn how to create your own PCB.
Making a PCB is no simple task, however, with the right commitment, a
little bit of time, and this guide you will be able to make a working
PCB the first time around. If you are persistent it will even look good!
Anatomy of a PCB
When you are on your computer, everything is at kind of an abstract
level and it can be easy to forget that you are working with a physical
medium. Before you just start throwing together a design, I think it is
useful to know what you are actually doing.
Before you can consider any physical designs or schematic connections
you must have a clear idea of what you want your design to do.
This means taking some time to sit down and define what you want to
accomplish, consider the challenges, and pick the right components for
Determining Your Goals
The first step in designing the perfect PCB is to have a well-defined
set of goals that you would like your design to accomplish. To steal
a little bit from the business world, you should always set SMART goals
for your project, this means:
As a personal example, I have started working on another side project
for my own use. The bathroom in my apartment is too dark in the evening
for me to get around in, but when I turn the light on it is way too
bright and wakes me up.
To fix this little issue I thought I would just go buy a small lamp.
Unfortunately, I am a little bit too picky and couldn’t find a lamp that
I liked. That is when I had the idea to design one of my own. Of course,
I’m not talking about just any lamp. I wanted a multi-color, adjustable
brightness, wirelessly controlled lamp.
Sounds cool right? Of course it does! So before the idea was able to
leave my head I jotted it down in my notebook and began planning.
At this point, my goals were pretty broad, let’s take a look at what I
Unfortunately none of these goals are very specific at all:
What do I mean by multi-color? Is that two colors, three, or any
What is adjustable brightness? I mean technically on and off would be
two different brightness settings right?
Wireless control? Do I want to use Wi-Fi, Bluetooth, infrared, RF,
Zigbee, sound? Any of these options would be possible.
Revising the project goals to be SMART led me to the following list of
A continuously adjustable high-brightness RGB LED filtered through a
fogged acrylic cover for even light dispersal.
Continuously variable brightness control that will allow me to choose
any brightness setting between completely off and fully on.
Bluetooth low energy 4.0 wireless specification interface,
controllable from an iOS or Android devices as well as an optional
2016 Michael here, I never completed this project and just ended
up buying a bunch of Philips Hue bulbs instead, but it’s still a good
With the exception of “time bound” these goals meet all of the criteria
of a SMART design and allow me to proceed forward with a clear vision of
what I want to accomplish.
By doing your research first and setting SMART goals for your project
you place yourself on the right track to create that perfect design.
Visualizing Your Design
Now that you have a clear idea of what you want, it is time to start
designing it. Before you start scouring the internet for parts or
drawing crazy schematics in your notebook, I would advise you to take
some time to develop a clear picture of how you want your final design
Try to determine how your parts will work together to achieve the goals
you set. This is a good time to be thinking about your design from a
You may not know specifics like what supply voltages you will need or
what connections need to be made, but you will be able to consider how
each component will rely on the others and what additional components
they will add to your design.
This is also a good time to consider the aesthetic aspect of your
design. Are you trying to fit a certain form factor? Do you need
to consider ergonomics (for example if you are designing a game
controller)? Will you be able to pick up your design a year from now and
understand exactly how it works? These are the types of details that,
while seemingly insignificant, can be the difference between a good
design and a great design.
I know all this talk of visualization may sound cheesy and like it
won’t really get you anywhere, but I assure you it is worthwhile. If
you don’t want to believe me, consider this quote from Nikola Tesla’s
autobiography where he describes his creative process:
My method is different. I do not rush into actual work. When
I get an idea I start at once building it up in my imagination. I change
the construction, make improvements and operate the device in my mind.
It is absolutely immaterial to me whether I run my turbine in thought
or test it in my shop. I even note if it is out of balance. There is no
difference whatever, the results are the same.
Of course the vast majority of us aren’t at the level of crazed genius
that is Tesla, but the idea behind this method is all the same.
By visualizing your design beforehand you save time, money, and
This is perhaps the most tedious step in the design process, but is
crucial to a successful design. Choosing the right part for your
design could be the difference between finishing your project and giving
up in frustration.
The final step before we switch over to software is to get a “first
draft” of your design onto paper. Nikola Tesla would not approve, but
he’s not around to stop you so don’t worry. This is a good way to get
the specifics of your project organized in a coherent manner. I like to
separate each system level block on a new page.
I also think it is useful to make a note here of what each important pin
on the component does. It probably wouldn’t hurt to get started on your
bill of materials as well, this may change as your design evolves, but
it at least serves as a good starting point.
In addition to the basic information, you may also want to include some
more detailed info about the part that you think may be important. For
example, it may become tedious to refer back to the datasheet for I2C
address information or possible pin configurations, these are good
details to include in your notebook.
With a well-defined grid, a page marker, the included organization
features, and the extra pointers they include in the back, this isn’t
your average notebook. The Maker’s Notebook is specially designed by
makers, for makers, and I love mine.
After you have finished sketching your design, you have completed all of
the pre-layout checks and are ready to move on to the physical design of
Putting the Design into Software
When I set out to design my first PCB I was told “Well, it’s
your first PCB so it probably won’t work anyways, but that sounds
interesting.” Even though this was discouraging to hear, I didn’t let
it stop me and I ended up with a working design. I now want to take my
experiences as well as the experiences of others and make it as simple
as possible for you to design your own PCB.
Now that you have an idea of how you want the project to turn out, it’s
time to start moving the design onto your computer
Choosing a CAD Package
The first step is to choose what CAD package you will be using in order
to design your PCB. If you don’t already have a preference then see my
During the remainder of this article I will be using KiCad for
explaining concepts of PCB design. I will do my best to cover the topics
at a high level so you can easily transfer these ideas into the CAD
package of your choosing, but if you are undecided I wholeheartedly
encourage you to try KiCad for your next design.
Now that you have your schematic entered into the computer and all the
connections have been validated, you can move on to physical layout of
your PCB. This is the most complex part of the design process and there
are far too many different possibilities for any single guide to provide
a full list of guidelines in a sensible manner. That being said, I will
do my best to provide general guidelines for producing a manufacturable
and electrically sound PCB.
Choosing a Manufacturer
I’m sure it may seem like a strange suggestion to choose your
manufacturer before you begin board layout, but I assure you there is a
good reason for this, which will become clear in the upcoming sections.
After choosing a manufacturer you should make note of their
manufacturing constraints. As an example, at the time of writing the
minimum specifications for OSH Park were:
6 mil copper traces
6 mil spacing between traces
13 mil drill diameter
7 mil annular rings [Defined as (diameter of the pad - diameter of the hole) / 2]
This means that these should be the smallest features you use under any
circumstances. Using smaller features will likely result in broken
traces, overlap of traces and copper fills, or busted vias.
Once you determine these rules, you should head into your CAD software
and define them. This will enable some design for manufacture (DFM)
checks to take place as you design so your program will not allow you
to perform operations that will cause you to have non-manufacturable
This is one step of the process where EAGLE generally has a distinct
advantage over KiCad, most board houses provide a design rules file
that can be imported directly into EAGLE. This saves a few steps in
defining design rules, and reduces the chances that you will end up with
incorrectly defined rules.
Note: Just because your fabrication house can do a 6 mil trace
doesn’t mean you should use exclusively 6 mil traces. You should use the
largest traces possible that will still allow you to fit your design in
the required space. Using larger traces improves reliability, decreases
parasitic resistance, and as a whole results in a better circuit.
Do I Need a Ground Plane?
One of the more debatable topics in designing a PCB is deciding
whether to include a ground plane or not. While it is nearly
standard practice to include a ground plane in your design, this
is not always required and can in some cases actually result in
worse performance. But how can you know when you should and when you
First, it helps to know what a ground plane is. Simply put, a ground
plane is a copper layer on your PCB that acts as a common ground to many
devices. It is called a ground plane because it often occupies an
entire layer, which creates a planar surface to conduct charge.
What are the benefits of a ground plane? There are several benefits
to using a ground plane in your design, the most common are to provide
electromagnetic shielding, lower the resistance of the path to ground,
and to assist with heat dissipation across the board. These benefits
are excellent for the vast majority of designs, but there are also some
drawbacks to using a ground plane in your design.
What are the drawbacks of a ground plane? Perhaps the largest
drawback of using a ground plane is the increase in parasitic
capacitance. Parasitic capacitance is an undesirable effect that will
essentially cause your circuit to be less “responsive” than intended.
For most applications this is just fine, but for exceptionally quick
response circuits it may be worth removing the ground plane.
Ultimately, it is up to you to decide whether you need a ground plane or
not. Here are a few guidelines to help you make the decision:
If your design is not particularly high performance, it’s your
If your design includes RF range signals, you should always use a
If you have components that rely on fast changing input signals you
may choose to not use a ground plane at all or to remove part of
the ground plane around those inputs.
If you’re just not sure, use a ground plane. The chances are in
your favor that the circuit will behave as expected with a ground plane,
even if that is not required. The opposite is not quite true.
In addition to considering the ground plane and adhering to design rules
there are some other special cases in which you may need to consider
Designing for RF - If your design will be operating in the radio
frequency range or using similar high frequency components, there are
many special design factors to consider. This topic is too in depth to
cover right here, right now, but this post from EEWeb outlines some
good notes to get you started.
Mixed-signal designs - If your PCB carries both analog and digital
signals then you will want to make certain that you have fully separated
these signal paths. The fast changing voltages used in digital circuitry
can cause your analog circuitry to behave erratically. Mixed-signal
design is a whole field of study on its own (as-is RF) so if you are
working with these designs it is probably best to seek the help of an
High voltage work - High voltage circuits require extra care
when designing and testing so as to avoid exciting outcomes like
heart-stopping electrocutions, electrical fire starting mishaps, or
other disasters. If you are designing for high voltage applications
then stop reading and seek the assistance of a grizzled old electrical
engineer experienced in high-voltage designs.
Once you’re absolutely certain that you should be capable of designing
the circuit yourself, you can move on to the next step.
Get to Work!
Finally, what we’ve been working towards the whole time. Now that you
are a few hours (or days, or weeks) into the design process, you can
finally start working on what you have been planning so carefully for.
At this point, you want to start converting your design from the
schematic connections into a manufacturable board. See my article
on PCB layout best practices for my
suggestions on how to make this process as smooth as possible.
Final Design Checklist
Before moving on to the manufacturing phase I recommend that you run
through my PCB Final Design Checklist to
verify the design. This will take roughly an hour but can save you a lot
of heartache later.
Manufacturing The Board
Since you should have chosen a manufacturer by now, this part of the
process is going to be relatively easy.
The first step in preparing your design for manufacture is of course
to perform the final design checklist. Since we covered that in the
last section, it’s okay to go ahead with the rest of the manufacturing
Run a Design Rules Check
Before going any further, you will want to run one final DRC. This
generally checks that your PCB layout matches the schematic and that
your layout follows all of the design rules that you defined. If the DRC
catches errors, you should review each one individually and either fix
the problem or mark it as a false warning.
Another thing to check is that all of your connections have been made.
Sometimes the DRC tool does not check connections, or your ratsnest may
be too small to notice. You want to be extra certain that all of the
board connections are complete before moving on.
Generate the Bill-of-Materials (BOM)
A bill-of-materials (BOM) is used by the assembly house, or for your own
use. Either way, it is important to have a good list of your parts. Here
are the important details to include in a BOM:
Component reference designator
Quantity required for one PCB
Manufacturer reference number
Supplier reference number
Cost per unit
Alternative parts allowed, if applicable
Most CAD software can export a BOM automatically, but you will generally
want to format it and make sure that everything is correct.
One reason to make a good BOM, even if you are not using assembly
services, is because many parts suppliers will allow you to upload this
file directly to their website and automatically purchase components. I
know Mouser and Digi-Key support this, others may as well. This method
will save you hours of time searching for components and adding them to
Export the Board Files
Each fabrication house will have different requirements for how you
should submit your design but nearly all of them accept one common file
format called “Gerbers.” Some will even accept your CAD files directly,
but this isn’t universal and you shouldn’t rely on it.
Each software has a different process to follow in order to get Gerber
files out, here are some tutorials that show you how to export Gerber
files from EAGLE or KiCad.
As one final check before sending your design for manufacture I
recommend verifying that you use the PCB Final Manufacturing
Checklist before submitting your
Send it to Your Manufacturer
That’s it! Depending on the service you chose for manufacturing, the
instructions will vary, but from here on out the process is relatively
straightforward. Upload your files, cross your fingers, and hit submit.
That brings us to the conclusion of this guide, I know you’ve been hit
with a lot of information. If you read this entire article and the
suggested supporting articles then you soaked up over 11,000 words of
PCB designing goodies. That’s more information than a silverback gorilla
retains in its whole life1!
I hope you’ve found at least parts of this guide to be helpful and that
you will make use of it in your future designs. I attempted to make
it general enough to be useful for any CAD package at any point in
time. When searching how to do stuff like this it is incredibly easy to
stumble across information that just isn’t relevant anymore, so I hope
this will help.
I worked on this post off-and-on for about two weeks, even though I
reviewed it several times before posting, I don’t make any claim that
it’s perfect. If you see issues in my writing or think my advice is
bad then feel free to let me know.
Should you use the wonderful autorouting features of your CAD package or
not? For those who don’t know what an autorouter does, it automatically
connects the traces in your board in a pattern that the software deems
is most efficient. Some CAD packages also include an “Autoplacer” which
will automatically place your components for you before routing.
In general you are probably better off avoiding both of these tools
for simple hobby work or even moderately complex designs. Honestly, if
you have a thorough understanding of your circuit, and you should by
now, then you will be able to do a better job of placing and routing
There are of course a few exceptions to this guideline. If the design
you are working on is complex and it would take you weeks or months to
perform a proper layout by hand, then you should try to get access to
an advanced CAD package to make use of the significant research these
companies have put in to autorouting algorithms.
In addition, if you are just dreading the idea of sitting at a computer
ensuring that your design is perfect, then you may just wish to place
your necessary components, lock them into place, route the critical
connections, and then run the autorouter. This is the recommended way
to use the autorouter if you choose to do so.
Drawing the Board Outline
The first step is to draw the outline of your board. This layer tells
your fab house where to cut to give you the right sized PCB.
To draw the board edge you will begin by switching to the layer that is
designated for cutouts. Depending on your CAD package, this could be
“Edges”, “Board”, “Cutout”, or something else along those lines.
After selecting the board edge layer make good use of your drawing grid
to ensure that you have straight lines of a well-defined length. If
your board needs to be a specific size then make sure you are using the
correct measurement units for your grid. If you draw your board in mm
instead of inches, you will get a little surprise when you try to place
your parts and can’t fit them all on the board.
A few tips for drawing your board edges:
Set your drawing grid at a reasonable spacing. This will depend on
what kind of resolution you need and make sure your cursor is set to
snap to the grid.
If you are using EAGLE or another program that supports it, make use
of the keyboard commands for defining lengths of segments.
Consider using alternate axes. Most CAD software
supports some method of setting an alternative origin point, this will
allow you to draw lines of specific length without needing to subtract
coordinates in your head. If your CAD package supports #2 then you may
not need to use this feature, but I have found it helpful in KiCad.
Ensure that all the edges line up exactly. If you have a spot on
the board where two edges meet but don’t quite touch, then you should
fix that now. Trying to send your board to the fab house like this will
result in them responding to you with a solid “No thanks.” Fix this
issue before it becomes a headache to fix.
Alternative Method: If your board doesn’t need to be any specific
size or shape then you may want to wait until the end to draw your board
edge. But if you have any predetermined requirements for the board, you
will want to start with this step.
Next up, you will want to place all of your components inside the board
outline. You should start with components that have a set physical
location such as connectors or sensors that can’t be blocked.
After that, you will want to begin placing your ICs. Start with the
largest ICs first and then place the smaller ICs as you go. ICs with
more pins will require more room around them for routing traces and
placing auxiliary components. Try to leave extra room around devices
that have many pins.
Another thing to consider when placing devices is to try to keep all
your ICs oriented in the same direction on the board. This is not a
strict rule, but it can sure make assembly much simpler and is generally
not a bad rule to follow. If it just isn’t possible then don’t worry
Once all of your physical components and your ICs are in place you
can place the supporting devices. Things like resistors, capacitors,
diodes, etc. This is a good time to refer back to your design notes
and make sure that any components which need to be physically close to
an IC are in a good position. If you have components that have these
requirements then I would recommend locking them in position after
One final thing, you will want to consider leaving space for
annotations and markings on the board. I’ll discuss these things in
more detail in a bit, but you’ll want to make sure there is enough space
around your components to leave some lettering near anything that may
need it. For more info on this, jump down to the “Adding Some Style”
So, everything is in position and the board is starting to look like it
will come together. The next step is to make it all work! You could just
start by connecting pins all willy-nilly as you see fit, but taking some
time to do it right will pay off in the end, which is coming sooner than
There are two recommended ways of starting out laying your traces.
You can begin by routing your power traces first and then focus on
everything else, or if your design has high frequency signals you
can begin by routing those first. Other than that, the rest of the
connections are up to you.
While there isn’t any single “right” way to lay-out the rest of your PCB
traces, there are some methods that are “more right” than others. You
can see my recommendations below, and I hope to see a few more additions
come from the community.
Make use of thick power supply traces. The power supply rail will
most likely be the most active trace on your PCB and since it will
be supplying the more current than any other trace it also deserves
some special attention when determining how wide it should be. As a
general guide I like to use 20 mil power traces. For low power circuits
this is probably overkill and you could get away with less, for higher
power circuits this may not always be enough. If you are designing
circuitry that is going to draw current in the Ampère range as opposed
to milliAmpère then I suggest taking a closer look at your trace width.
This handy calculator
will help you calculate the correct width to use for your traces.
Avoid routing two (or more) high frequency signal traces in parallel
with each other. According to Ampère’s law (with Maxwell’s correction)
we know that a changing current induces a magnetic field around the
wire, we also know that a changing magnetic field induces a current
perpendicular to the direction of the magnetic field. This effect can
cause two parallel wires to couple together so that a change on one
wire can induce a change on the other. You can avoid this by keeping
high frequency traces separate and only crossing them in perpendicular
Try to group similar signals together. If you have a bunch of
wires coming from a single device that all perform a similar function
then you should try to keep them neatly grouped until it is absolutely
necessary to split them up. This will allow you to more easily follow
the signal path and will help you end up with a cleaner looking board
Minimize your use of vias, but not at the cost of dramatically
increasing signal paths. This recommendation may just come as a result
of my fascination with aesthetic design, but there is
also a practical reason to use fewer vias. The simple point is that vias
are a manufacturing risk. While it isn’t likely that your board house
will mess up and drill a hole too large or break the conduction ring,
it is completely possible. Having fewer vias on the board reduces this
risk. Another benefit of reducing vias is that it results in a shorter
signal path (even if only a tiny reduction). This type of caveat is
really only important in RF designs, but if there is a way to improve a
circuit, I’m always looking for it.
On the other hand you could, use two inline vias at every signal
pin. I know this may make me look like a hypocrite or an otherwise
very confused person but there are also situations in which more vias
could help. If you are working on a prototype circuit, extra vias allow
you to easily create test points, and to simply cut and reconfigure
traces. This recommendation comes courtesy of a reader, James Edwards I
believe, but I couldn’t find the original comment.
There are probably some more useful pointers that I’m just not thinking
of, but nothing comes to mind right now. I will add more as I think of
Adding Some Style
You’re almost there, the last major step before moving on to manufacture
is to add the finishing touches to the board. This may seem like it’s
just aesthetics, but there are several practical reasons to include some
extra markings on your board.
The first decision you need to make is whether or not you should include
component reference numbers or values. As an example, do you want your
final design to indicate that “this” resistor is R11 and has a value of
4.7k or do you want to just mark it as R11? Maybe you don’t want to mark
it at all?
This is really up to you. My thought is that you will be one of the
few people who actually looks at the board components and if you are
looking at the board you will be able to easily pull up a schematic for
reference. For that reason, I do not include reference numbers or
component values on my final designs.
Having said that, there are some components that can benefit from a
bit of labeling. Generally you will want to label any LEDs, buttons,
switches, connectors, or otherwise important devices. I guess the
argument could be made that ALL the components are important, but I am
specifically referring to parts that would be good to know when using
SparkFun gives some good advice on labeling in their PCB
guide. I am particularly fond
of the example shown below.
After all of the functionally important components have been labeled,
you may have a bit of room left over for more labeling. Don’t
overcrowd the board, but you may want to include your name or
some sort of branding. Perhaps a logo? You can do this easily in
EAGLE or KiCad using the built in tool or this online tool from
Wayne & Layne.