Secret Tools of the Old Crow: Board Layout Tips @arduino #arduino

Hey folks,

This is Scott Rider, sometimes known as the Old Crow.  As I have done something like 4,500 distinct board layouts, I thought I would start off with a collection of board layout conventions I’ve picked up since I made my first board in 1983.  In 2012 I ran across an article, OSH Knock offs where I first pointed out that even a popular board like the Arduino Duemilanove was not immune to suspect board layout issues.  If you read the comments to the makezine article Phil asks how I would improve the duemilanove layout and the result is worth showing again here as it covers a number of basic conventions that help to improve both manufacturing and end-user reliability.  Pictured below are the default Eagle artwork for the duemilanove followed by my reworked layout example.



I will cover the annotated items is detail.  The first one to note is “avoid right-angle trace joins where possible.”  In the days when one had to cast their own boards using an etchant tank, heaters, etc. “under-etch” was a common issue.  This is when the ferric chloride etchant solution would start to dissolve the copper underneath the photoresist layer.  One of the contributors to this particular issue were traces joined at right-angles as the etchant tended to react faster in “bounded” areas, that is, copper on more than one side in a small area.  These days board houses have automated etching processes that reduce this problem, but the switch from  2 oz. copper layer thickness to 1 oz. over the years due to a number of factors such as rising metals cost, multi-layer boards, etc., means the problem can still crop up.  In terms of actual trace thickness, 1 ounce of copper cladding plated to a 12″ x 12″ piece of board stock results in a trace thickness of just 1.4 mils.  Joining traces, particularly those less than 16 mils in width, is best done as 120-degree angles as this causes the bounding areas to be far more oblique, resulting in an even etch.

The second item of note is the use of “neck traces” for all mechanical connectors.  Headers in particular represent areas of a board that will undergo the most mechanical stress during the board’s operational life.  Single-sided boards often had issues with traces cracking due to repeated connector/header use as any force applied to would transfer through the connector body to the solder joints and copper traces without the benefit of hole-plating to help “anchor” the connection.  Even with today’s near-standard double-sided, plated-through copper artwork mechanical stresses can weaken or crack the copper given the standard is also now 1 oz. copper thickness.  One way to reduce this risk is to use a larger width trace from a header pin for a short distance. then reduce the width as needed.  In the example, the I/O headers all use a 16mil neck trace that are reduced to 10 or 12 mils.  This greatly improves the mechanical resilience of the header.

The third item of note is this: autorouters suck. The default layout image illustrates some of the autorouter issues.  The two key issues are the grid alignment of close-tolerance traces, such as between the pins of the DIP socket, and the endpoint positions of a given trace, such as where a trace connects to a component pin.  In the case of this example, the snap grid was set to 2 mils, which is way too small given the requirements of the layout.  A Raspberry Pi benefits from a small snap grid, a duemilanove not so much.  I recommended a 5 mil snap for this example, but a 25 mil snap would be fine (and easier to work with!)  The autorouter uses the snap grid interval to plot its decisions and given the tiny 2 mil grid uses in the default image, the autorouter saw no problem in running traces closer to pads than necessary.  Perhaps the least-favorable aspect of the autorouter is how it handles endpoints: as long as the endpoint reaches its destination, it does not care how asymmetric the actual tracework looks.  Most of my layout tweaks in this example were fixing endpoints and snap interval issues.  I would love to have an autorouter that learns my habits, then uses them.

The final item I will cover for this session is mounting holes.  Mounting holes are good.  Where you place them can be bad.  The Arduino series have this beveled board edge that probably serves as alignment indicator for attaching shield boards, but the mounting holes are too close to the edge.  Anything less than 150 mils from hole center (125 mil hole) to the edge risks cracking the board when tightening mounting hardware.  I did not move these holes in my example as they are a production standard (for better or worse), but I will still point out the issue for those making a device of their own.

My rework of the duemilanove was the result of about two hours of tinkering back in 2012.  There are still a few things I would improve, and I will cover this in a future blog.  Cheers!


Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !

No Comments

No comments yet.

Sorry, the comment form is closed at this time.