Adafruit Holiday Shipping Deadlines 2018: Attention! Place all UPS 3 Day orders by 11am ET Wednesday 12/13/2018

EE Bookshelf: Differential and Matched Length Traces

While I rarely work with signals much beyond 100MHz (SDRAM, etc., usually being the limit), it never hurts to try to improve your understanding of high speed layout.  By far the best book you can buy on the subject is High Speed Digital Design: A Handbook of Black Magic by Howard Johnson and Martin Graham.  That said, I found myself routing some USB signals that I wanted to have matched since the USB connection is high speed, and after routing the board I took a look around to see what advice I could find before signing off on that part of the board.  There are some excellent replies over on stackexchange to “How should I lay out timing matched traces“, with a valuable reminder to step back and consider the scale of your board, and that 1mm length on your PCB probably equals about 5 picoseconds in reality!.  Sometimes is helps to just zoom out, look at something at life size, and realize how small that little green board really is!  The other good source of information I found was  Board Design Guidelines for PCI Express Architecture.  Some very good tips on layout and real-world technical considerations that aren’t always cleared explained in more academic texts.  Any suggestions yourself?  Feel free to post them in the comments below.  I’m as happy to find new sources of expert advice as anyone!

As a sidenote, the new Meander tool in Eagle 6 is very useful for this.  You can use it to click on a trace and it will tell you the exact length, which makes it much easier than having to type ‘run length-freq-ri.ulp’ in Eagle 5 and try to find your trace in the other 300 listed by name!

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, or even use Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for MakeCode, CircuitPython, 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.

Join 8,700+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – Python on Microcontrollers is here!

Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.

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

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more

Maker Business — Japanese word working and more in December’s issue of HackSpace magazine!

Wearables — Solder-less magic

Electronics — = != ==.

Biohacking — Finding Bliss with Anandamide

Python for Microcontrollers — sysfs is dead! long live libgpiod! libgpiod for linux & Python running hardware @circuitpython @micropython @ThePSF #Python @Adafruit #Adafruit

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


  1. What’s the best way to route USB traces when they need to cross each other to meet the connector. I recently sent out a design where I encountered this problem. Instead of using vias I routed one of the traces between the pads of the inline resistor of the other USB trace. How much problems do you think I’ll have running the bus at full speed?

  2. Nabil: I had the same problem this week and ended up routing them around the USB pins, but it really depends on the board. I usually try to keep things are short as possible with USB, though, with matched length, and no vias. The real world doesn’t always allow that, though, and honestly we can spend hours fretting over a via and then never think about the 2 metres of poor quality USB cable connecting the board to the PC. 🙂

Sorry, the comment form is closed at this time.