Design For Manufacturing & Test

Design for Manufacturing (DFM) and Design for Test (DFT) are vitally important when creating new hardware. The design has to be made by somebody somehow or other, and it needs to work. This has to happen within the limits of your budget and schedule, or at least before the heat death of the universe.

We’re going to assume you know how to get acceptable yields from your PCBA manufacturing process already. For more on this we recommend the Printed Circuit Board Handbook.

When manufacturing a system with several assembly stages it is good practice to test after each stage (this is somewhat circular as stages are often defined by the performance of some type of inspection and validation). Catching problems early on saves time and money. The Flipper Zero team have an excellent and unusually candid article on their manufacturing process here. (TheJigsApp itself grew out of a process something like that—as circuit design engineers ourselves, we were sure there was a better way, so we set out to find it.)

So as not to reinvent the wheel here we recommend you check out Louis Ungar’s article on manufacturing test and DFT here. In the following we’ll focus on some tips and tricks we use when building a new design.

Selecting Nets for Test Pads

Coming up with a test plan is, of course, highly design dependent. A common set of tests for an embedded device might be:

  • Comm ports (SPI, I2C, UART, USB, 1-wire, etc.
  • SWD + RESET + ISP (if available)
  • Boundary scan if available. There’s an excellent resource from xjtag here on using boundary scan for functional testing. For the full spiel see the the JTAG.com article Solving test & programming issues with JTAG. Memfault has a good overview here. (They also have a consistently good blog that’s worth following.)
  • Power supplies
  • Digital I/O
  • Current loop signaling
  • Screen functionality

The best guide we’ve found is from Electronics Hacks (Electronic Shacks?). It’s about a 30 minute read and is especially good as an introduction to why functional test is valuable, how you can start, what you can look for, and what alternatives exist. The article is accessible to anyone who’s designed a PCB before. To be clear none of these have “everything you need to know” but they’re a good start.

Honorable mention are:

Conditioning Test Signals

A small number of extra components on the DUT can decrease the total cost of production.

  1. Resistors are both small and cheap. Use a few extra judiciously for voltage division, current limiting, termination, and noise immunity. We especially recommend this for power supply measurements. If possible use a current-limiting resistor on the DUT when adding test points to low impedance nets.
  2. ESD protection. Our jigs are designed to reduce the chance of ESD however a section on your board is being exposed through a test pad. Adding ESD protection to your test pads that are connected to sensitive nodes and not exposing any bare silicon off the board will help ensure no problems arise. (It’s possble to export some of these protection features to the probe board by editing the KiCad files provided, but of course that makes them possible failure points, and so should be done carefully if at all.)
  3. Include extra grounds. Test probes and points are cheap and easy to replace. Board spins, redesigns, and manufacturing days are expensive and time-consuming. Whenever possible, include a ground point close to sensitive or fast signals.

EMI/EMC Issues

While we don’t usually have to worry about emissions from the DUT, it really is a bit unnatural to hang 50-mm long probes plus PCB traces and cabling on internal circuit nodes, and all that stuff can work like an antenna. Think about putting a bit of RF filtering between sensitive nodes and their test pads, e.g. on voltage references, ADC mux pins, and any low-level circuit points. A bit of SPICEing is often helpful to estimate node sensitivities and see whether your filter rolls off fast enough.