System Architecture

Before building anything, the first step is to determine what the product needs to do and how it needs to work. For some projects this is simple; for others it can be very complex. This step entails capturing requirements, high-level design, and communicating how the system will work.

product requirements document

First, if one does not yet exist we will work with you to create a product requirements document (PRD). The purpose of this document is to answer all the questions at the beginning, to reduce errors and make development faster. This includes:

  • What does the product need to do

  • Communication (BLE, Wi-Fi, Cellular, 900MHz, etc.)

  • What countries will it be sold in

  • Regulatory requirements

  • How is it powered

  • Who is the typical user

  • Where will it be manufactured

  • Estimated sales volume

  • Manufacturing strategy

  • How will it be tested

  • Design Budget

block diagram

“A picture says a thousand words.” We next create a simple block diagram showing the various subsystems and how they connect. These may be simple hand-drawn sketches on a whiteboard, or complex diagrams that span multiple pages. The goal is not to go into exorbitant detail, but mainly to communicate how the system works. This is especially important in systems that have multiple PCBAs. One system we designed had five different PCBAs and twenty-seven different cable assemblies. For this system the block diagram was large enough to fill a poster.

Hardware Design

Once the requirements have been defined, we can proceed with hardware design, including:

component engineering

First, we determine what key components we’ll need in the design. We select components based on:

  • Performance

  • Cost

  • Availability

  • Manufacturability

If we don’t already have the component in our library (and we have a lot, several thousand) then we will build the component in our system, including schematic symbol, link to a supplier, create PCB footprint and add 3D model. The last part is important - the 3D model allows us to verify the footprint with the actual part. Most errors on boards are incorrect footprints, so we follow the IPC guidelines in designing footprints.

Schematic Capture

I always thought this was a funny term for drawing the schematic, as if the schematic was running around in the wild and we had to trap it somehow. This step entails doing the calculations on the design and drawing the schematic diagram. There are different philosophies about how much information to put on the schematic, but we will generally try to put all calculations and links to notes on the schematic so they’re easy to find and verify later. This step is really “where the rubber hits the road” and is the key to the rest of the design. We will also compare our design with the chip manufacturer’s reference design and ask them questions as needed.

PCB Layout

We will use the completed schematic to layout the components on the board. We will work with your mechanical designer to identify the mechanical constraints (board shape, component keep out areas, etc.) Then we will place the components and route the connections. Once the routing is done then we’ll take a look at the board and see if there are any more test points or labels that would be useful.

manufacturing documentation

After the board is complete we will create the manufacturing documents. We work closely with the contract manufacturers to supply them with the information they need. We are somewhat passionate about manufacturing drawings and have spent many hours researching optimal notes for PCB fabrication and assembly. See blog post on this topic.


Oftentimes the firmware takes longer than any other step. For this reason we’ll try to start the firmware as soon as possible, preferably before the boards are done.