Embedded Product Development – Make vs Buy

Original Equipment Manufacturers (OEMs) face many questions before building any product. After they are convinced that there is a business potential in their new product, next comes the crucial stage of project execution. They aspire to build the product in-time, maybe before the competitors or better than the competing products, without compromising on their budget constraints. However, aspirations occasionally match with reality. Time-slips, production-failures, over-budgets, etc. are associated with most projects. In this blog, I will attempt to show how using COTS (Commercially off the shelf) platforms can help OEMs accelerate the time-to-market along with reduction in development cost and risk.

Cost, performance, PCB designs, memory, time-to-market, technical support, casing, I/O configuration, size, procurement, enclosures, flexibility, scalability, component obsolescence, compliance, certifications. Whew the list goes on! You will face many more questions while building an embedded product. With customers’ expectations for better performance, yet longer battery life, is making the product development increasingly more complex. Advances in technology are inevitable, and this forces OEMs to keep pace with technology and competitors. Complex designs on a small form-factor adds substantial design risk, which may further stretch the development time. However, using COTS platforms reduces your list of concerns substantially.

Any embedded product has mostly similar components, both for software and hardware. Hardware includes SoC, memory, power circuitry, I/Os (USB, Ethernet, VGA, WiFi, BT, etc.) integrated over a printed circuit board (PCB). The software consists of device drivers, operating system, BSPs, GUI, application layer, 3rd party apps, communication stack, etc.

Make: Full-custom Development

OEMs are more inclined to build products from scratch, as it offers total flexibility and better control over quality, cost. However, full-custom development has many constraints.

  • Boost NRE (Non-Recurring Engineering) cost: High investment in engineering resources as the team need diverse expertize in mechanical design, hardware layout, low-level firmware, application, etc. More testing and validation is needed, as the product is developed from scratch. Hardware design iterations add to substantial project cost as well.
  • High BoM cost: Usually, sales volume of embedded products is low. So, OEMs cannot leverage economics of scale with low volume procurement of components, and thus Bill of Materials (BoM) cost is high. However, if the sales volume exceeds 50-60K per year, then it makes more investment sense to pursue full-custom designs.
  • Long time-to-market: As the development happens from scratch, the project time increases, and thus long time-to-market. Multiple hardware design iterations compound the time-slip.
  • High development risk: With scratch development of hardware and software, there is a high probability that things may go wrong at any level. This adds significant risk to the project compromising time-to-market and development cost.
  • Questionable scalability: With Moore’s Law in action, the silicon components such as SoC, are getting matured in terms of performance, power-efficiency, and cost-effectiveness. However, it is difficult to scale up a full-custom platform to accommodate these advances. Upgrades to a platform based on future customers’ demands and latest technologies may need re-design.
  • Questionable Product Life: Although designers pursue multiple sourcing of components, once a critical component such as SoC, RAM, and Flash, reach End of Life (EOL), a re-design will be needed to accommodate the substitute component. For industrial products, component obsolescence management is critical, as the product life is more than 10 years. So, each and every component used in platform must be available for this extended period. This adds substantial overhead for designers in terms of supply-chain management.

Buy: COTS Platforms

Let us now explore the COTS platform and their advantages. COTS platforms such as Single Board Computer (SBC) and System on Module (SoM) are available with the hardware platform and low-level software including Operating System, BSPs and Device drivers. OEMs can focus on enhancing user experience with awesome GUI, application-specific frameworks, etc., instead of engaging in generic board bring-up activities. There is no value addition in reinventing the wheel, as once an operating system is supported on a SoC, the BSPs can be reused.

Advantages over Full-custom Designs

  • Lower NRE cost: As the hardware and associated low-level software are already available, the scope of project reduces. Focus will be on integration and application development. Thus, the resource cost, along the validation effort, comes down significantly.
  • Lower BoM cost: COTS platform vendors leverages economies of scale in component procurement and manufacturing, with huge volume. Thus, the platforms are cheaper than sum of individual parts’ cost.
  • Accelerate Time-to-Market: The project timeline becomes shorter, which accelerates time-to-market. Further, the low-level software and hardware are already matured, so bugs are limited mostly to the application layer.
  • Lower Development Risk: The platforms are validated the vendors and numerous existing customers, thus the platforms are robust and matured.
  • Long Product Life: Usually, vendors guarantee the platform availability over extended time period. In case, any component reaches EOL, then it is the vendors’ responsibility to ensure availability of the platform. OEMs need not have to worry about critical component obsolescence.
  • Less supply chain overhead: System designers need to deal with less component vendors, as most of the critical components are available on the COTS platform.
  • Access to latest technologies: Usually, market leaders of semiconductor parts such as SoC, Flash, and RAM prefer to engage with customers, who order for large volume. However, most embedded products have low sales volume. By using COTS platforms, OEMs can get access to latest technologies from leading vendors, as COTS platform vendors engage in huge volume semiconductor business.

Single Board Computer (SBC)

Single Board Computer (SBC) is used widely in embedded computing industry to build variety of products. SBCs are off-the-shelf, application-ready embedded platforms that host the processor, memory, power circuitry, and I/Os on a single printed circuit board (PCB), and comes along with associated device drivers, Operating Systems and Board Support Packages (BSPs). So, the product development becomes fairly simple. System designers can just build the application software and put the board in a nice enclosure, then the product is ready.

However, there are few constraints of using SBCs for embedded product development.

  • Not scalable: In a SBC, the processing unit and I/O section are integrated over a single PCB. So, it is not possible to migrate to a latest processor with the same board. For migrating to latest technologies or meeting customers’ future expectations, new SBCs have to be used.
  • Not flexible: Customizing a SBC, based on the OEMs’ requirements, is not possible as the CPU and surrounding I/O are closely coupled due to the single-board design. Usually, standard I/Os are part of the SBC. Additional peripherals can be added using interface boards; however, this may increase the size of the platform. Further, the I/O configuration is fixed, so it is challenging to build size-constrained products.

System on Module

An embedded platform can be represented as below:


The ‘Application Agnostic’ part consists of essential design commodities, including the processing & memory requirements. This part may not differ much whether the end-product is a medical device or retail PoS device, assuming the processing and memory requirements are somewhat similar.

This ‘Application Specific’ part constitutes both the hardware and software, depending on the end-product and OEM requirements. OEMs can enhance end-user experience by creating awesome UI, user application, etc.

Computer on Module (CoM) or System on Module (SoM) is an embedded computing solution that consists of the application-agnostic hardware and software. System designers can focus on the application-specific part by using an off-the-shelf SoM, and thus accelerate time-to-market. The combination of an application-agnostic SoM and application-specific carrier board, along with display and peripherals, offers a complete platform for building any end-products. OEMs can design carrier boards as per their size and I/O requirements. The SoM can be inserted into the carrier board through some standard connector such as SODIMM or MXM.


In addition to the generic benefits of COTS platform, SoM also resolves the scalability and flexibility issues inherent to SBC.

  • Platform scalability: Most vendors offer pin-compatible SoMs. This means that a carrier board can be used along with multiple SoM, without any hardware changes. Some application software change may be needed. This ensures seamless migration to latest technologies. For example, a ECG machine is launched in the market; however, after 2 years due to market demands, the OEM intends to use the latest and faster processor. Without a platform redesign, the OEM can easily migrate to the latest technology by using a SoM based on the new processor, on the existing carrier board. Thus, platforms remain future-proof. Further, product variants with different performance and price can be launched without full-scale development for each variant.
  • Platform flexibility: Each application has specific requirements in terms of I/Os, size, performance, and power. The OEM can select an off-the-shelf SoM based on the performance and power needs. The carrier board can be custom-built as per the I/O and size requirements. Thus, SoM approach offers more flexibility than the SBC approach.


We can summarize that in the choice between ‘Make vs Buy’ for embedded product development, the ‘Buy’ option is more favorable in terms of time-to-market, development cost, obsolescence management, development risk, and scalability. Further, among the COTS platforms, SoM are better equipped to handle the demands of projects instead of SBC.

As usual, this post is constrained by my bounded rationality. Please share the improvement areas and flaws on this post.