The Modular Single Board Computer Design Process
Modular design is a design process that has been gaining momentum over the last decade, especially in the world of embedded computing. A good example is in single board computers, sensor boards for data streaming, and some evaluation boards. This design approach breaks down a generic system into several independent parts (modules) that can be linked together to increase the functionality of a device. They are independent in the sense that a module doesn’t depend on another module to function and will only depend on the base platform.
Modules usually are linked together and to the base system according to some industry standards and with predefined electrical connections on a PCB. Modular designs in the hardware domain allow embedded boards to be customized, upgraded, and adapted to different applications. When you use the right design tools, your modular single board computer system will be easy to debug during the design phase, which reduces or eliminates prototyping runs that are normally required in PCB design.
What is a Modular Single Board Computer?
Simply put, a modular single board computer is built by connecting different modules together using standard physical and electrical connections. Two famous examples of modular single board computers are Arduino and Raspberry Pi. Arduino is a well-known electronics development platform that mostly targets makers and is popular for building proofs of concept.
The modular part of the Arduino ecosystem consists of shield boards, which are modules that can be plugged into a base Arduino board to expand its range of functionality. For example, if you need an Internet connection for your project, you can build a WiFi or cellular shield. If you need data acquisition and recording capabilities, you can add a data logging shield. You can keep stacking shields until you run out resources for the baseboard.
Just like Arduino, Raspberry Pi single-board computers and modules also have modularity embedded in their core. Raspberry Pi has what we called HATs (Hardware Attached on Top), which are physical hardware modules that can be attached to GPIO pins to increase its functionality, much like adding a sensor module or a motor controller.
GPS shield board for a Raspberry Pi single board computer
Two unique benefits of going the modular single board computer design route are cost savings and shorter time to market. Your up-front development costs are reduced as much of the hardware development is already done for you. Your job is to focus on the software portion and connect your hardware modules together into a single ecosystem. This lets you focus on functionality and user experience, rather than getting mired in PCB design. The fact that modules are already built and are functional helps decrease your time to market. You can initially release a functional product and focus on improving its hardware-level functionality at a later time.
Modular single board computer designs depend on standard interfaces between different components and modules. For example, Raspberry Pi HATs are designed to leverage GPIO connections using communication interfaces like UART, SPI, I2C, and even direct digital ports. Because the electrical connections between boards are highly standardized, hardware designers can focus on functionality and form factor and worry less about electrical design.
Modular Single Board Computer Design Layers
Getting started with modular single board computer design for a custom product requires defining your build specifications. You’ll need to consider features that are required now and what features may be needed in the future. All these parts can be combined and broken into two main portions:
- Application-specific layer. Hardware modules in this layer should be chosen for a specific set of functions. Your software will need to be application-specific in order to interface with the desired modules in this layer.
- Application-agnostic. This essentially constitutes everything on a modular single-board computer that is not application-specific. This includes processing speed, memory and storage capacity, I/Os, power units, connectivity options, and the operating system. This layer is the truly modular foundation for your system as it will provide connections for the modules in the application-specific layer.
Traditionally, engineers embark on building everything from scratch, which unfortunately is not usually the best route. By using a COM or system-on-module (SoM) for the application-agnostic portion of your system, you’ve eliminated a significant portion of the traditional hardware design process. You can then take advantage of the standard electrical connections between your COM and modules to add application-specific hardware to your embedded system. This is a better approach to designing a modular single board computer from a system-on-chip (SoC) as this brings your system closer to application-specific and can limit your functionality.
Raspberry Pi Compute module in a modular single board computer
Modular Single Board Computer Design Tools in Geppetto
A modular single board computer is easier to redesign for different use cases as you are effectively taking advantage of clearly defined electrical connections between your application-agnostic COM and supporting components. With this modular approach, embedded system developers can focus on building a compelling, functional application-specific layer on top of their application-agnostic layer.
Modular design is only possible with the right design tools and predefined modules. Geppetto from Gumstix contains a huge library of standard modules and COMs with predefined electrical connections in a rules-driven design interface. The modular design tools in Geppetto are accessible from your browser and include features like rule violation flagging, automatic backup, and a design checklist that helps you build a fully-functional modular single board computer.
In the ever-evolving embedded industry, new tools and resources are being released to help engineers and developers keep innovating. The modular design tools in Geppetto are unique in that they allow designers with any level of experience to create customized, modular single board computers from a number of standard COMs. All these tools are available in a browser-based design interface that allows you to create fully functional modular hardware systems and quickly plan for production.