When moving to production at any scale beyond 5-10 units it is critically important to design that product for test. This requirement is often overlooked when designing initial prototype hardware or proof of concept though. This can create headaches for the engineers and technicians troubleshooting that hardware.
It can delay a program far longer than the one or two days it would’ve taken to look over the product and design in a couple of key debug and test features. Doing so will allow the troubleshooting team to see inside the hardware you’re producing and greatly reduce development time. It’s just as critical for any hardware being designed that will have a software element. Not developing hardware with software test capabilities in mind is one of the key missteps that hardware designers often make.
As always you should allow for as much insight into your board as possible and cover key nets with test points. However, on prototype or proof of concept boards you should also typically go further than this. With new designs it is critical you leave a little room for error. Even with every thinkable parameter being accounted for in simulations they often do not account many real life imperfections such as board fabrication tolerances, environmental challenges, or non-ideal components. In order to counteract these threats and keep the project on schedule it is necessary to go further and place additional features that can save the day!
A couple of key features that we like to design into all of our new boards that increase their flexibility and reduce rework or re-spins:
1) Additional pull-up or pull-down resistors. Choose a common value or even choose not to populate them. Either way if you need to add another signal or forgot a pullup somewhere these can prove invaluable
2) Additional decoupling capacitors. These are simple fix to a simple problem. It’s important to minimize decoupling capacitors to save space but in a prototype it’s a good idea to leave a few spares that can be used for experimentation.
3) Extra pins for BGA / QFN’s. These are useful if someone comes back and asks for a couple of extra discretes or another communications bus on their processor. Without these it would be difficult or impossible to rework those BGA’s and add new functionality to the hardware.
4) Strategically placed, non-plated, through holes. If you do need to do rework and connect two boards on opposite sides on the board these will save your board!