Free Trials

Download a free trial to find out which Altium software best suits your needs

Altium Online Store

Buy any Altium Products with few clicks or send us your quote to contact our sales


Download the latest in PCB design and EDA software

  • Altium Designer

    Complete Environment for Schematic + Layout

  • CircuitStudio

    Entry Level, Professional PCB Design Tool

  • CircuitMaker

    Community Based PCB Design Tool


    Agile PCB Design For Teams

  • Altium 365

    Connecting PCB Design to the Manufacturing Floor

  • Altium Concord Pro

    Complete Solution for Library Management

  • Octopart

    Extensive, Easy-to-Use Component Database

  • PDN Analyzer

    Natural and Effortless Power Distribution Network Analysis

  • See All Extensions
  • Live Courses

    Learn best practices with instructional training available worldwide

  • On-Demand Courses

    Gain comprehensive knowledge without leaving your home or office

  • Altium 365 Viewer

    View & Share electronic designs in your browser

  • Altium Designer 20

    The most powerful, modern and easy-to-use PCB design tool for professional use


    Annual PCB Design Summit

    • Forum

      Where Altium users and enthusiasts can interact with each other

    • Blog

      Our blog about things that interest us and hopefully you too

    • Ideas

      Submit ideas and vote for new features you want in Altium tools

    • Bug Crunch

      Help make the software better by submitting bugs and voting on what's important

    • Wall

      A stream of events on AltiumLive you follow by participating in or subscribing to

    • Beta Program

      Information about participating in our Beta program and getting early access to Altium tools

    All Resources

    Explore the latest content from blog posts to social media and technical white papers gathered together for your convenience

    Altium Online Store

    Buy any Altium Products with few clicks or send us your quote to contact our sales


    Take a look at what download options are available to best suit your needs

    • Documentation

      The documentation area is where you can find extensive, versioned information about our software online, for free.

    • Training & Events

      View the schedule and register for training events all around the world and online

    • Design Content

      Browse our vast library of free design content including components, templates and reference designs

    • Webinars

      Attend a live webinar online or get instant access to our on demand series of webinars

    • Support

      Get your questions answered with our variety of direct support and self-service options

    • Technical Papers

      Stay up to date with the latest technology and industry trends with our complete collection of technical white papers.

    • Video Library

      Quick and to-the-point video tutorials to get you started with Altium Designer

    Product Design Trends in 2020: Modular Hardware vs. Modular Software

    Zachariah Peterson
    |  November 5, 2019

    Hardware and software containers

    Containerization is a core concept in modular hardware and modular software

    Modular hardware design is everywhere and has been on the rise in the embedded world. The drastic rise of the Arduino and Raspberry Pi ecosystems has encouraged greater use of a modular architecture. Open-source hardware platforms are gaining momentum, particularly in single board computer design and development board design.

    When it comes to modular software, we are seeing the same trends. The copious number of open-source libraries for use with popular programming languages (Javascript and Python anyone?) gives designers a significant level of freedom to implement new functionality without rebuilding the wheel. For embedded systems designers, modular hardware and modular software are no longer mutually exclusive. With the right design tools, embedded designers can take both approaches to product design going forward.

    Modular Design for Single Board Computers

    Modular ideology breaks down a generic system into several independent parts, each of which can be used to extend diverse functionality to new systems. Single board computers (SBCs) are seeing greater use in the modular ecosystem. Popular SBCs like Raspberry Pi provide support for improving the functionality of the Raspberry Pi using modules called HATs. Aside from the Raspberry Pi SBC, products like BeagleBone, Asus Tinker Board, Odroid-XU4, NVIDIA Jetson, and others all give designers the opportunity to take a modular design approach to product development.

    COMs are the natural step to making SBCs modular in that they package the core processing capabilities onto a small module. A COM can then connect to a custom carrier board using an interface slot, allowing users to include other functionality in a customized board. This allows a designer to focus on expanding beyond the base functionality of a commercial SBC.

    COM and carrier board for modular hardware vs modular software

    Interface between a carrier board and a COM

    Artificial Intelligence and Modular Hardware

    Innovations in artificial intelligence (AI) are disrupting existing markets. AI on the edge is gaining ground with a wider audience of designers thanks to AI edge accelerators, which can be plugged into any SBC. For example, the Intel Movidius Neural compute stick can connect to any hardware board through the USB port and bring AI to any application. Another great example is the Grove AI HAT, which easily connects to a Raspberry Pi SBC.

    Grove AI HAT module for modular hardware vs modular software development

    Grove AI HAT module. This board easily interfaces with a Raspberry Pi SBC. Image source:

    The push for AI on edge is fostering greater use of modular hardware design approaches, both at the hardware and software level. Most IoT product developers tend to focus on software for AI applications, but the hardware platform is just as important as it forms the basis for interfacing with the analog world. Working with a modular hardware platform and designing your own carrier board for COMs gives embedded designers the freedom to include functionality beyond what can be provided by most SBCs.

    ROS: Modular Robotics Design

    Robotics, in general, is built around the concept of modularity. Each piece is designed to be modular, and the modules fit together to make a system that works. Everyone from large companies to makers are adopting a modular hardware design ideology in robotics.

    On the software side of Robotics, one interesting robotics framework with modularity at its core is ROS. ROS, also known as Robot Operating System, is a meta-operating system that is specifically designed for robotics applications. ROS combines several software frameworks to provide services for hardware abstraction, low-level device control, communication, and much more. The beautiful thing about ROS is the fact that it’s built to run on top of a modular hardware architecture. The modularity of ROS at the hardware and software levels allows users to pick and choose which parts, modules, nodes, or services will be incorporated in a new product.

    Modularity in Software Design

    In as much as we have discussed modularity in hardware, the core concepts in modular design are becoming prominent in software development beyond ROS. In software engineering, modularity is all about dividing a software application into several smaller modules. Each module is responsible for implementing or anchoring a relevant part of the overall system.

    Modular software development concept

    Breaking a software platform into different modules.

    Conversely, modular software application design facilitates loose coupling of classes or methods, making code easier to maintain and debug. Modularity helps software developers use existing prewritten code in the new system, thereby saving time and valuable resources. Think of this as dividing your software architecture into different functional blocks, where each functional block includes the relevant functions required for your application. An engineer simply needs to define how each block interfaces with other blocks.

    Modular systems are easily reusable and mutable compared to traditional monolithic systems because modules created during development can easily be reused in other projects without requiring major changes. For a large software development team, a modular design approach allows new team members to come into an existing project and quickly become familiar with the existing software stack.

    Modularity in Web Design & Development

    One of the major success stories in web design and development is WordPress. According to W3techs, among all websites that are known to use a content management system (CMS), 61.4% of these websites use WordPress. This equates to nearly 35% of the entire internet.

    Modular software design with WordPress
    Typical WordPress dashboard

    WordPress incorporates a modular ideology at its core. WordPress comprises modules that are designed to provide important functionality to a web site. If a user is in need of map functionality, this is added by installing a Map plugin (equivalent to a module in hardware design); this works without re-writing the existing code base for that functionality. Another example in this the Wix platform. Although not fully customizable like WordPress, Wix provides similar modularity by providing users with apps that can be used to improve and expand site functionality.

    Hardware designs are being released that can be interfaced into an existing system to increase its function. Engineering development platforms like LabVIEW (Laboratory Virtual Instrument Engineering Workbench) allows you to build software applications that are fully reusable and adaptable to new systems. The great thing about LabVIEW is you can define complicated data acquisition and signal processing functionality without writing a single line of code. Creating the same system in any other programming language would be much more difficult and time-consuming.

    Geppetto Lets Everyone Go Modular

    The open-source movement, which initially focused on software development, is making greater inroads into hardware development and has helped push for ever more modularity in new products. Taking COMs, custom carrier boards, and the right open-source libraries together allows embedded designers to take a fully modular approach to new product development at the hardware and software levels. As newer industrial, edge computing, and IoT products become more complex and require greater functionality, we can expect these new product development trends to continue in 2020.

    Platforms like Geppetto are helping designers build next-generation embedding computing solutions. Geppetto is a graphical SBC design interface that includes an extensive array of COMs and other modules, such as sensors, actuators, and other components. This unique platform allows engineers to easily modify existing carrier boards or create entirely custom boards that incorporate COMs at their core.

    All these tools are available in a browser-based design interface that allows designers to create fully functional modular hardware systems and quickly plan for production. A Linux kernel can be loaded onto the COM, and the device can be easily programmed in standard languages. This unique platform allows designers to take a fully modular approach to hardware design and software development.

    Take a look at some Gumstix customer success stories or contact us today to learn more about our products, design tools, and services.

    About Author

    About Author

    Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to electronics companies. Prior to working in the PCB industry, he taught at Portland State University. He conducted his Physics M.S. research on chemisorptive gas sensors and his Applied Physics Ph.D. research on random laser theory and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensing and monitoring systems, and financial analytics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written hundreds of technical blogs on PCB design for a number of companies. Zachariah currently works with other companies in the electronics industry providing design, research, and marketing services. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, and the American Physical Society, and he currently serves on the INCITS Quantum Computing Technical Advisory Committee.

    most recent articles

    Back to Home