I-Pi Blends Raspberry Pi, Computer-on-Modules for Rapid Industrial Prototyping

Many engineering teams are now starting design projects with development kits that package core system components, baseline firmware infrastructure, and supporting documentation to accelerate the prototyping process. And, for the most part, these kits are incredibly cheap.

But while dev kits can help engineering teams get a head start on their software stacks, they can also be somewhat of an anchor for embedded hardware and firmware engineers later on because: the majority of board components won’t be leveraged in the final design, especially if the system is being developed for commercial or industrial markets. And any code developed on the kit must be tweaked for the production system. So why not use a production-quality system in the prototyping process?

Rapid Prototyping of Production-Grade Industrial Systems

The previous question is only a somewhat rhetorical. The obvious answer is that commercial-grade hardware costs much more than you would usually spend on tinkering, and also that you usually need to customize hardware for a specific end application.

However, there is a hardware option that exists at the intersection of production quality and design flexibility: the computer-on-module (COM). COMs utilize a two-board architecture that consists of an application-specific carrier board with all of the I/O a system needs, and a compute module that slots into the carrier to provide processing, memory, I/O controllers, and the like (Figure 1).

I-Pi SMARC module image.

Figure 1. COM modules like the LEC-IMX8MP are designed for industrial use cases, and include rugged components for harsh environments.

The benefit of this approach for commercial systems is that it protects companies against hardware obsolescence, as a legacy processor module can be replaced with a new and improved one years or decades after initial deployment. In these scenarios, forward and backward compatibility is ensured by industry standards such as PICMG COM Express, Qseven, and SGET SMARC.

But what about for prototyping?

I-Pi is an industrial IoT prototyping platform that combines production-grade components, extreme software portability, and Raspberry Pi-like flexibility and expansion in a COM form factor. Based on the LEC-IMX8MP SMARC module pictured above, the I-Pi is compliant with the SMARC 2.1 specification that defines a compact 82 mm by 50 mm module.

The platform supports operating temperatures of -40ºC to +85ºC, shock and vibration tolerances consistent with IEC 60068-2-27/64 and MIL-STD-202 F, and also integrates USB and PCI switches directly on the processor module (provided the module’s host processor supports PCIe) to reduce carrier board design costs (Figure 2).

Figure 2. The I-Pi SMARC IMX8M Plus prototyping platform combines the flexibility of Raspberry Pi or Arduino with the robustness of an industrial-grade computer-on-module (COM).

Portability for Prototyping

The LEC-IMX8MP at the heart of the I-Pi SMARC IMX8M Plus hosts an Arm Cortex-A53-based NXP i.MX8M Plus quad core system on chip with optional in-SoC Neural Processing Unit (NPU), up to 8 GB of memory. Signals from two GbE LANs, two USB 3.0 ports three USB 2.0 ports and one USB 2.0 OTG port, a four-lane MIPI DSI, a four-lane MIPI CSI and a two-lane MIPI CSI, and CAN, SPI, UART, and I2C serial interfaces are carried to and from the I-Pi carrier board over the MXM 3.0 connector.

But the I-Pi is also capable of supporting SMARC modules with processors as advanced as the latest Intel Elkhart Lake processors, which allows engineers to easily swap one module for another while evaluating different features or levels of performance. PCI decoupling capacitors and locks on SMARC modules make it easy to swap out modules, so all an engineer has to do is ensure that traces are aligned on the carrier board.

The only high-speed signals on the kit’s carrier board are PCI Express and HDMI, which reduces platform complexity so that engineers can easily evaluate different modules without having to re-engineer basic hardware infrastructure. And these interfaces can be modified, added to, or subtracted from in an optimized application-specific carrier board once design requirements are solidified later on.

Of course, hardware modifications precipitate code modifications. Transitioning between an Arm-based compute architecture and an Intel-based processor module as you could with the I-Pi, on the other hand, typically means a complete software redesign.

In the case of the I-Pi, however, I-Pi has enlisted the MRAA hardware abstraction layer (HAL) to bypass that rework. MRAA is an open-source C/C++ library with Java, JavaScript, and Python integrations that allows software to be ported from one platform to another – even SMARC modules with different processor types (Figure 3). Developed by Intel, MRAA provides drivers and APIs that allow engineers to substitute modules, sensor HATs, and even port code written in Arduino or Raspberry Pi environments to the I-Pi without any rework.

Figure 3. All I-Pi SMARC modules integrate the MRAA hardware abstraction layer (HAL) to enable seamless software portability from one target to another, even if that code was developed in an Arduino or Raspberry Pi programming environment.

Faster Time to Industrial-Grade

Cost and time-to-market are the name of the game in the electronics industry. In fact, 46.8 percent of respondents to a recent Embedded & IoT Technologist survey of professional engineers stated that “Aggressive Timelines” or “Staying within Budget” were the most challenging aspects of their job.

The I-Pi’s modular approach to hardware and software addresses both of those issues in the prototyping stage by bridging the accessibility of platforms like Raspberry Pi and Arduino with the robustness of an industrial COM. And by working with a production-grade COM from the outset, engineers can save time and money in later stages of design.