Developers need rapid prototyping tools to get ideas into working order so they can eventually get to market more quickly. I spoke with Dung Dang, a Texas Instruments (TI) application engineer, about how a modular approach can enhance rapid prototyping.
Wong: Why do we need modular prototyping hardware?
Dang: In the constantly evolving microcontroller industry, the modern methods of knowledge sharing and training allow engineers and developers to stay constantly updated with the latest tools and design skills at their fingertips, empowering them to move and design much faster than ever before. This results in shorter design cycles, more innovative designs and ideas being constantly demanded to maintain a competitive edge. A more aggressive product design cycle demands more time-efficient methods to quickly evaluate and develop multiple prototypes and productize an embedded system solution. Once mainly popular in computer systems, and recently adopted in the hobbyist community, modular hardware can find itself being the innovation driver in the embedded industry. Modular hardware alleviates the need to redesign proven hardware and lets developers move directly to evaluating the functionality of the components in the system. The plug-and-play and often times stackable nature of modular hardware enables scalability when several components are required, as well as developing multiple prototypes to concurrently test out different ideas. Modular hardware also ties together with the industry-standard, tried and true approach of modular software. In addition to enabling instant evaluation and prototyping, modular hardware also enables concurrent firmware and software development while final production hardware development is ongoing.
Download this article in .PDF format
This file type includes high resolution graphics and schematics when applicapable.
Modular electronic hardware is not a new concept. In fact, it has been around since the dawn of computers and electronics. The concept has also found its way into the embedded system world as well, though having only achieved limited exposure and usage. The majority of industrial and consumer manufacturers often rely on having one monolithic board integrating all components and circuits. Many times this is due to specific application and physical requirements. This tried and true method definitely has its merits. The benefits include driving the final bill of material and manufacturing costs down but also require an extensive design and development cycle due to the complexity of the integrated solution.
Wong: What is modular hardware?
Dang: A modular hardware system for microcontrollers is a method where each major component, starting with the microcontroller itself, is independently designed and populated on an individual hardware board. While there are several types of modular systems in existence, this article focuses on specific systems leveraging the fundamental idea that the individual hardware boards should be compatible and interchangeable with each other, enabling an ecosystem where developers can easily pick out any module from each ‘class’ (i.e. microcontroller, wireless interface, display, analog input, sensor, power management, etc.), plug them into each other and have a fully compatible and ready-to-use embedded system.
It is possible to stack horizontally (Fig. 1) and vertically (Fig. 2). Some modular systems use a horizontal expansion concept where a motherboard serves as a base platform with several headers that can be used to attach additional evaluation modules.
The microcontroller can be part of the motherboard, and therefore not changeable. This method can be used by a specific microcontroller vendor that only wants to highlight one specific microcontroller. Some others also make the microcontroller itself a module. This allows for swapping out different flavors of MCUs depending on the functionality or power required by the application.
One of the drawbacks of this method is that the motherboard itself is one giant monolithic board that often drives up the cost simply due to its size. This is where a vertical expansion system can be very useful. In a vertical system, a simple MCU board can be used as the base board. Additional components can be designed to not only be mounted on the base board, but also provide headers for other components to further stack on themselves, essentially creating a ‘board sandwich’. With a well-defined and standardized set of connectors through the header pins, add-on boards can be compatible with the MCU base board as well as with each other.
Wong: How does this approach affect scalability?
Dang: While there are an abundant amount of evaluation modules (EVMs) available for all types of microcontrollers or components, most of them have been developed to cater to specific application or evaluation purposes and not meant to be hardware-attachable or compatible with other hardware in the market. Users have a great collection of EVMs to select from, but for any EVM selected, they’re most likely bound to the specific function or application for which the EVM was created. Some platforms do offer expansion capability, but most end up being proprietary with a non-standard footprint resulting in limited configurability. The number of add-on modules is then also restricted by the number of boards built specifically to cooperate with the base board. As a result, this type of ecosystem requires more effort to grow and efficiently expand to enable scalability.
Instead of enabling a one-to-one offering of EVMs, modular hardware enables a significantly higher number of combinations of microcontrollers and compatible pairing modules. This strategy increases the number of options by several orders of magnitude and power. As an example, for a basic wireless sensor node with a display application, users previously had a handful of options to select from if they wanted to find an EVM with an MCU, some wireless interface, some specific sensor, and some displays. Most of the time, the available combinations do not completely match the requirements and sacrifices or alterations must be made. With a completely modular and independent hardware system, users can now choose from any available module MCU board, any wireless interface board, any sensor boards, and any display modules to meet their specific requirements.
Scalability also offers extra benefits when several components are required or when multiple prototypes need to be developed concurrently to test out different ideas. The overall complexity of the design project can also be significantly simplified.
Wong: Why should developers take a more modular approach to prototyping?
Dang: To tackle complex embedded design projects, developers need to rely on several traditional sources of design knowledge including reference designs, application notes and tutorials. An EVM also serves its place during evaluation, but vendor-specific hardware can prevent it from being compatible or usable in an actual end product. These resources only serve as a knowledge base, and once it is fully absorbed, the design task is still completely up to the engineers. Some will start out from scratch; some will be able to copy over parts of the reference design to use as a starting point. Redesigning, or at least rethinking, is unfortunately still part of the development cycle.
In reality, a hardware reuse strategy can, and should, be taken literally. Instead of wasting effort on re-evaluating hardware prototypes, using existing or proven hardware bypasses component prototyping and allows developers to immediately evaluate the functionality of the components and their interactions within the system.
Many of the individual hardware components were professionally developed and tested, with some pre-certified to meet requirements by certain testing bodies. Hardware modules might be cost-efficient beyond prototyping, especially for small production runs. At a functional testing level, effort can be spent directly on system-level testing, which speeds up the evaluation and quickens microcontroller as well as component selection decisions.
An added benefit is the time saved from component prototyping can be used to evaluate multiple hardware combinations at the same time. Many projects already employ the strategy of developing multiple prototypes to test out different hardware options.
Wong: How does compatibility affect inter-changeability between platforms?
Dang: Embedded systems are very fragmented when it comes to applications, functionalities, configuration, feature sets, etc. These diverse specifications result in different hardware requirements and physical interfaces for different microcontrollers and components, most of the time this is for a good reason, usually to optimize for a specific application scenario. On the other hand, fragmentation and hardware incompatibility are the main obstacles to achieve an interchangeable ecosystem. One of the solutions for this problem is to drive towards a truly standardized hardware platform. Just like standardized connectors such as USB, or protocols such as I2C and SPI, a complete standardized platform including specifications for headers, pin functionality, interface, and designated protocols per pin should be created.
Compatibility is always the key to allow multiple vendors, third parties, and the community to join and contribute the ecosystem. A great example is computer hardware, where all specifications and connections have been standardized, allowing for complete compatibility across all participating vendors. Developers or end users greatly benefit from this type of ecosystem where they can conveniently pick and choose components and boards, and ensure not only compatible hardware connections but also functionality and software support.
A standard hardware interface (Fig. 3) enables compatibility across modular hardware components. By using this standard, vendors can ensure their components are supported by the microcontrollers and do not conflict with other components. Conflicts can be minimized by using different pins with dedicated functions such as GPIO and Analog IOs on different hardware boards. Serial communication pins can be shared by several components, with special functionalities such as wireless connectivity, displays, or sensors specified to ensure maximum cooperation between hardware modules.
Wong: How does modular hardware work with software?
Dang: Software development actually has always been modularized; at least this is the case for good software. More abstract by nature, software can be architected into abstraction layers. Software can also be separated into components, each performing a certain task. This concept ties well together with modular hardware, which, as we know by now, consists of individual components performing independent tasks (Fig. 4).
Pairing hardware with software means for each hardware module, dedicated software components are provided that can be used across different MCU platforms. This next level of abstraction enables plug-and-play on both hardware and software disciplines. The design method would be pulling in software components, using provided structured APIs to quickly interface and control the hardware components.
Modular software can also enable multiple versions of the same software that caters specifically to the level of customization required by the applications. For beginners or rapid prototyping purposes, the complexity of underlying software layers can be hidden away. Developers can be presented with simple APIs that focus on the high level functions of the components that enable a functional application in no time. As more customization and optimization are required, more layers can be peeled to unveil more APIs and options for further configuration or modification at the discretion of seasoned developers. For example, when interfacing with a wireless module, multiple versions of the same software stack can be leveraged at different points of the development cycle. A simplified version with basic transmit and receive APIs might be sufficient to perform initial sanity check, and as development digs deeper, lower layers of stacks such as RF configuration and parameters, as well as higher layers such as network and wireless protocols, can be exposed. The importance is that as long as the versions are compatible, developers can easily migrate from a proof of concept stage to a production-quality stage.
Modular hardware also allows for software development on a hardware platform as close to the final design as possible. This means in addition to enabling instant evaluation and prototyping, modular hardware also enables concurrent firmware and software development while final production hardware development is ongoing.
Wong: What are the ecosystem migration paths?
Dang: One of the fastest growing modular hardware ecosystems is the Texas Instruments MCU LaunchPad development platform, which is geared towards microcontroller development in both professional as well as hobbyist environments. The LaunchPad ecosystem first debuted with the MSP430 Value Line LaunchPad in 2010 because TI wanted to provide affordable tools to enable mass deployment to microcontroller users. Several more LaunchPads, each with a different MCU platform featuring unique set of features, have been added and the amount of hardware continues to grow rapidly. The ecosystem began to take shape with the introduction of add-on boards, called BoosterPacks. Each BoosterPack features a specific function or purpose such as display, analog or digital sensor, wireless communications, etc. What ties the ecosystem together is the highly abstracted and portable software available for the BoosterPacks that enables a true plug-and-play experience for the users. Software and development tools of different levels of ease-of-use versus flexibility are available to cater developers from a wide variety of backgrounds, including professional engineers, students and hobbyists. The inter-compatibility of these software and development tools also enables a smooth transition if projects migrate from rapid prototyping to professional development environment.
TI’s LaunchPad is also an open ecosystem; new BoosterPacks can be developed and introduced by component vendors, third parties, or even individual engineers. The rapidly growing community surrounding the LaunchPad also helps expand the reach and usage of LaunchPads to market segments previously untargeted.
Modular hardware leverages rapid prototyping, improves design cycle, cuts time to market, encourages openness and reuse, expands the wealth of knowledge and material, lowers the barrier of entry to embedded design, and fosters the growth of the embedded design community. Texas Instruments joins the next embedded design revolution by contributing the LaunchPad ecosystem, focusing on standardized compatible modular hardware and highly flexible software.
Download this article in .PDF format
This file type includes high resolution graphics and schematics when applicapable.