There are many choices facing embedded systems developers who want to use off-the-shelf boards for development and production. There are numerous offerings based around the Arm architecture alone. The open licensing policy adopted by Arm for its processor IP has enabled an explosion in microcontroller and multicore SoC offerings that have, in turn, led to the creation of many low-cost, high-performance board-level offerings. Computational power that used to cost thousands of dollars and demanded a custom solution can now be delivered by readymade boards that cost well under €100, even in small volumes.
Focus on choice
The purchasing decision needs a focus on the correct choice in a field of offerings that ranges from designs based on the Arm Cortex-M to the advanced processing power of multicore Cortex-A processors, now often accompanied by AI and graphics accelerators.
In some cases, there may be clear differences once the necessary level of performance is considered. Where applications throughput is not the primary concern, the Arduino range of single board computers makes good, low-cost options for code designed to control hardware peripherals. In other cases, Linux may be a requirement, with its ability to handle large code bases. That, in turn, typically demands the use of a virtual memory management unit of the kind found in Arm’s Cortex-A range of processors.
Performance can vary, even within boards based on processors from the Cortex-A range. For example, the Beaglebone Black is based on a single Cortex-A8 applications-processor core accompanied by several Cortex-M3 microcontroller units for real-time processing. The Raspberry Pi 4 uses the later Cortex-A72 in a quad-core configuration, which offers greater aggregate performance, but it is harder to predict how this might perform against the Beaglebone AI-64, which combines a dual-core Cortex-A72 with three Cortex-R5 cores.
The choices become clearer when considering the target application’s I/O response and software throughput needs. For example, the Cortex-R5 processors are optimised for real-time control where there is a need to handle many channels of I/O and interrupts. The Cortex-A cores are focused on applications-code throughput rather than I/O.
Though embedded boards often combine Cortex-A with Cortex-M or Cortex-R processors to handle I/O and real-time control loops, other coprocessors are becoming common, such as accelerators focused on artificial intelligence (AI). This shift recognises the need to deploy trained neural network and other machine- learning models on embedded and edge computing hardware. Neural networks have been found to be highly suitable for a variety of edge computing applications, such as tracking objects in complex environments and as a way of detecting anomalies.
Industry-appropriate
A key use-case for anomaly detection lies in predictive maintenance, which uses subtle changes in vibration, heat output and other signals to determine whether a piece of equipment needs repair or maintenance before it fails completely. Using AI for predictive maintenance can save money and increase throughput in industrial plants by removing the need for routine maintenance that shuts down equipment or entire production lines, even if repairs are unnecessary.
Though it is possible to run some neural network models on general purpose cores such as the Cortex-A series, vendors have recognised the need for additional performance with offerings such as the Beaglebone AI-64, which alongside the general purpose CPUs provides the C7x+ accelerator in combination with an advanced vector floating-point unit. These units deliver the kind of numeric processing needed not just to perform inferencing on AI models, but also to support an online training element. Whereas inferencing typically uses integer arithmetic, neural network training generally calls for the additional precision offered by floating point. Although large-scale training will normally be performed in the cloud with the resulting model downloaded to the edge computer, local floating point capability offers the ability to perform fine-tuning on the model in the field as well as providing advanced data manipulation to provide the model with better source data.
Higher performance for AI can be obtained through boards such as the J1010 made by Seeed Studio and based on the Nvidia Jetson technology, coupled with an Arm Cortex-A57 host processor. The 128 general-purpose GPU cores can deliver 500GFLOPS. For more complex models, the J20 series employs a Jetson Xavier module, with a peak throughput of 21 TOP/s.
Industrial considerations
Though performance for the target application will always be a key metric for selecting boards, other considerations will often play a key role in reducing a potentially lengthy list of candidates. In industrial control, aspects such as length of the product lifecycle, resistance to environmental hazards and access to I/O play major roles in finding an off-the-shelf board that can support an application. The Raspberry Pi, for example, is designed primarily to have a compact shape and may not provide the optimum placement of I/O ports for a device that will be rack- or rail-mounted.
Other boards that have the bulk of the I/O ports arranged along the length of one side of the board will be easier to integrate into the final enclosure and connect to cables. Furthermore, boards designed for industrial applications often have more extensive support for I/O expansion. Both the Beaglebone and Arduino families now support an extensive range of cape and shield expansions, respectively, that can deliver a variety of I/O options.
In applications such as machine monitoring, industrial inspection and sensor processing, temperature compatibility and vibration resistance will often be important considerations. Connectors designed for desktop use can easily become dislodged in an environment where the machinery is prone to strong mechanical vibrations. Boards designed for office or home use may be more prone to failure in an environment where temperature can reach greater extremes. One way to deal with this is to use specialised enclosures that incorporate cable management and thermal control through fans or heat exchangers.
Off-the-shelf boards designed to cope with industrial use are available. For example, the Beaglebone Black Industrial is built around the Texas Instruments AM335x Cortex-A8 processor. It is similar to other boards in the range, but boasts an operating temperature range of –40°C to +85°C. The Portenta range of boards made by Arduino, based on Arm Cortex-M multicore microcontrollers, is designed to work in the same extended temperature range, making the boards suitable for machine control in an industrial environment. The focus on industrial control is also reflected in the onboard I/O facilities, which include support for RS485 and CANbus fieldbus connection and analogue interfaces to temperature sensors and 4-20mA I/O loops, alongside Wi-Fi, USB and Ethernet ports.
Coding support
Development support is also a key consideration and can be the most important. Project time reductions are greatly helped by the availability of the many open source toolkits that now exist for the Linux environments supported by board families such as the Raspberry Pi and Beaglebone collections. In the past embedded developers needed familiarity with low-level programming languages, such as C and C++, and assembly at the driver level, whereas now much can be done in interpreted languages such as Python.
Linux is not essential to gain access to easier development tools. Where power consumption and cost are important for the target application and demands are comparatively low, Linux-capable boards will often prove to be too expensive and unwieldy. For real-time control with multiple real-time sensor inputs, the Arduino platform has many advantages and does not force developers to abandon Python. The Arduino integrated development environment offers full support for Python and the ecosystem includes support for image processing through the OpenMV software. This helps enable the creation of robotic systems and smart cameras with a minimal hardware footprint.
Informed decisions
From the Arduino to the Jetson, embedded systems developers can integrate a wide range of board-level offerings into systems. Though the choice can initially seem overwhelming, the target application’s precise requirements will often steer the engineer to a valid set of options.