What you will learn
- Why developers use hobbyist rigs in products.
- What industrial solutions are available?
- Problems that may arise when switching to an industrial solution.
If you’ve looked at a dev kit recently, it may be compatible with one of the popular hobbyist/manufacturer platforms like Raspberry Pi or Arduino. (Fig.1). This is not surprising given the ecosystems that have grown up around these popular platforms. This is partly due to the software infrastructure and the tools and applications available, but it really depends on hardware compatibility.
Expansion boards like the Arduino 4 Relays Shield (Fig.2) This is why these platforms have become so popular. Third parties are permitted to give developers access to peripherals ranging from wireless communication to gas sensors. The original platforms had standard interfaces such as USB, but generally lacked features such as wireless communication. Although later versions of these platforms included more features along these lines, there was no way a single card could meet the needs of all users or vendors.
The Raspberry Pi’s 40-pin dual in-line header has 3 and 5 V power plus digital I/O pins that include dedicated pins for a serial port, SPI, and I2C in addition to pulse width modulation (PWM) signals.
The standard Arduino has several headers that make the board layout interesting. Single inline connectors reside on both sides of the main board; the Arduino Uno also has two 6-pin inline dual headers. Single inline headers include 28 pin set on one side and 7 pin + 8 pin set on the other side. Like the Raspberry Pi, the digital I/O pins have dedicated pins for a serial port, SPI, and I2C with PWM signals.
Analog signals are available on both platforms depending on the host microcontroller. Most pins have more than one function associated with them, although only one can be active at a time. This creates an intriguing trade-off when trying to manage a stack of interface cards.
Not all cards are stackable and conflicts abound because interfaces like SPI cannot be shared by default. Multipoint interfaces like me2C can handle multiple devices, but only if there are no address conflicts, which is often the case with device adapters. Having fixed addresses makes programming easier, at least for the supplier of an adapter. However, this means that two cards of the same type cannot be used at the same time.
Robust design issues
Some development boards are designed to be easy to use, but they skip things like mounting holes that are necessary to provide consistent and reliable connections in industrial applications. Many peripheral boards simply rely on interface headers to provide electrical connection as well as physical stability. This tends not to be an issue when using the system on a workbench, but it can cause major issues in the field. For example, when using prototypes in the field, shock, vibration, dust, etc. can become problematic.
Other issues that designers will have to deal with are I/O protection and isolation, as these platforms often have limited support in this area. This includes connector considerations. Many I/O ports will use lower frequencies easily handled even by the headers used on those systems. However, high-speed interfaces such as USB and HDMI require better connectors and board designs.
Power and power sources are areas that will need to be considered when moving from design to production. Special points of attention include main board power supply and power distribution to peripherals.
Transition to products
Nowadays, designers are more aware of the availability of semiconductors. General availability issues arise with Arduino-based solutions. However, a range of similar chips can often be used when building a new solution from scratch. Board schematics for these platforms are readily available and distributed as open source material. Thus, they could be used as the basis for a custom printed circuit board (PCB).
Creating a custom PCB is a reasonable approach for chip-level Arduino platforms, but not necessarily for Raspberry Pi platforms. The reason for this is that the system-on-chip (SoC) processors used on the Raspberry Pi are generally not available to companies that do not release tens of thousands or millions of products. It is possible to get similar chips, but additional hardware and software modifications would be required, and they could be significant.
An alternative is to use a Raspberry Pi Compute Module. This computer-on-module (COM) uses the same processors but lacks the connections, thus requiring a standard socket instead (Fig.3). Compute Module 3+ and Compute Module 4 are currently available in two different formats. The first plugs into a SODIMM socket and has two mounting holes to maintain stability.
Beneath the smaller form factor Compute Module 4 is a pair of high-density sockets. The inclusion of a wireless module simplifies the design for some applications. The module measures only 40 × 55 mm while offering more capacity, performance and functionality.
Arduino recognized that providing a more robust solution is useful for both production and prototyping. The Arduino Portenta family is an industrial-grade system-on-module (SOM) that comes with Linux already installed in flash (Fig.4).
These industrial-grade modules come with industrial-grade pricing as expected. There’s no free lunch, but the upside is that the difficult design aspects of these modules have been addressed and the support and documentation is worth the extra cost.
Designing carrier boards for these COMs is usually much easier than designing a custom PCB that would house the SOM. It can be as simple as a card that provides the necessary connectors, or it can add peripherals that might have been on peripheral cards in a prototype system. The carrier board is often simpler, with fewer layers than the COM PCB, because the carrier PCB is usually not as dense as the COM.
Designers should consider their own experience and expertise when turning a prototype into a production solution. Although not a new problem, it is possible to generate a working prototype very quickly with these platforms. The assumption could be that a product could be created just as quickly. Not out of the question, but infrequent.
If a modular approach such as the Raspberry Pi Compute Module is chosen, it can streamline the design process. However, other considerations should not be overlooked. For example, the background of designers often determines how these issues are handled.
Analog, power and communications tend to be the main issues when transitioning from prototype to production. Analog interfaces can be some of the most difficult to manage unless you have experience in this area. Noise, interconnects, and the operation of analog interfaces can lead to reliability and accuracy issues that may not have appeared in a prototype.
The same is true for power. Providing headroom from a single power source may be sufficient for some applications. However, everything from power surges to noise can be a problem when it comes to a production solution.
Communications also covers a lot of ground, especially for wireless communications. Industrial environments and even offices and homes can be electrically noisy. Although testing in different environments with different issues can be expensive, there is a need to deliver a product that works and does not require heavy support.
Finally, remember to design for production as well as design for maintenance. Usually, solutions based on platforms like Raspberry Pi or Arduino are simple and oriented around the software added to the system, with few peripherals and minimal space constraints. In these cases, production and serviceability are not significant issues. On the other hand, trying to pack a solution into a small footprint or having something with long-term support requirements may warrant design changes.
For example, Sfera Labs’ Iono Pi Max is based on a Raspberry Pi Compute Module. One of the features is the dual SD card socket, as they use this type of flash memory for the operating system and data. They also add a watchdog microcontroller. The MCU can select which card the system boots from to handle updates in the field with a rollback option if an update does not work properly. This would not be in a stock platform used for a prototype.
Reducing time to market has always been a goal for developers. Platforms and development kits are a way to speed up the design process. Addressing the limitations and issues of moving from a prototype platform to production can also help.