What you’ll learn
- Why developers are using hobbyist platforms in products.
- What industrial solutions are available?
- Problems that can arise when moving to an industrial solution.
If you’ve looked at a development kit lately, it may be compatible with one of the popular hobbyist/maker platforms like Raspberry Pi or Arduino (Fig. 1). It’s not surprising given the ecosystems that have grown up around these popular platforms. This is partially due to the software infrastructure and available tools and applications, but it really comes down to the hardware compatibility.
Expansion boards like the Arduino 4 Relays Shield (Fig. 2) is why these platforms have become so popular. It’s allowed third parties to give developers access to peripherals from wireless communication to gas sensors. The original platforms had standard interfaces such as USB, but they typically lacked features like wireless communication. Though later versions of these platforms included more features along these lines, there was no way a single board could address the needs of all users or vendors.
The Raspberry Pi’s 40-pin, dual inline 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 multiple headers that make board layout interesting. Single inline connectors reside on both sides of the main board; the Arduino Uno has two 6-pin, dual inline headers as well. The single inline headers include a 28-pin set on one side and 7-pin + 8-pin set on the other side. Like the Raspberry Pi, digital I/O pins have dedicated pins for a serial port, SPI, and I2C along 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 makes for an intriguing tradeoff when attempting to deal with a stack of interface cards.
Not all cards are stackable, and conflicts abound as interfaces like SPI can’t be shared by default. Multidrop interfaces like I2C can handle multiple devices, but only if there are no address conflicts, which is often the case with the peripheral adapters. Having fixed addresses makes programming easier, at least for the provider of an adapter. However, that means two boards of the same type could not be used at the same time.
Rugged Design Issues
Some development boards are designed for ease of use, but they ignore things like mounting holes that are needed to provide consistent and reliable connections in industrial applications. Many peripheral boards simply rely on the interface headers to provide the electrical connection as well as physical stability. This tends to be a non-issue when using the system on a workbench, but it can lead to major problems in the field. For instance, when using prototypes in the field, shock, vibration, dust, and so on may become problematic.
Other issues designers will need to contend with are I/O protection and isolation, since these platforms often have limited support in this area. This includes considerations regarding connectors. Many I/O ports will use lower frequencies easily handled by even the headers employed on these systems. However, high-speed interfaces like USB and HDMI require better connectors and board designs.
Power and power sources are areas that will need to be examined when moving a design to production. Particular points of attention include power to the main board and power distribution to peripherals.
Transitioning to Products
These days designers are more cognizant of semiconductor availability. The general availability issues arise with Arduino-based solutions. However, a range of similar chips often can be used when building a new solution from scratch. The board schematics for these platforms are readily available and distributed as open-source hardware. Thus, they could be used as the basis for a customized printed circuit board (PCB).
Creating a custom PCB is a reasonable approach for Arduino platforms at the chip level, but not necessarily for Raspberry Pi platforms. The reason is that system-on-chip (SoC) processors used on the Raspberry Pi aren’t generally available to companies that don’t crank out tens of thousands or millions of products. It’s possible to get similar chips, but additional hardware and software changes would be required, and they could be significant.
One alternative is to utilize 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). The Compute Module 3+ and Compute Module 4 are currently available in two different form factors. The former plugs into an SODIMM socket and has two mounting holes to keep things stable.
Underneath 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 providing more capacity, performance, and features.
Arduino has recognized that providing a more rugged solution is useful for both production as well as 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 prices as expected. There’s no such thing as a free lunch, but the advantage is that the hard design aspects of these modules have been handled and the support and documentation are worth the additional cost.
Designing carrier boards for these COMs is usually much easier than designing a custom PCB that would host the SOM. It may be as simple as a board that provides the necessary connectors, or it may add peripherals that might have been on peripheral boards in a prototype system. The carrier board often is simpler, with fewer layers than the COM PCB, since the carrier PCB usually isn’t as dense as the COM.
Designer Issues
Designers must consider their own background and expertise when turning a prototype into a production solution. Though not a new issue, it’s possible to generate a working prototype with these platforms very quickly. The assumption might be that a product could be created just as quickly. It’s not out of the question, but infrequent.
If a module approach like the Raspberry Pi Compute Module is chosen, it can streamline the design process. However, other considerations should not be overlooked. For instance, the designers’ backgrounds often determine how well these issues are addressed.
Analog, power, and communications tend to be the major issues when transitioning from a prototype to production. Analog interfaces can be some of the most difficult to contend with unless you have a background in this area. Noise, interconnects, and the operation of the analog interfaces can cause reliability and accuracy issues that may not have shown up 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 an issue when it comes to a production solution.
Communications also covers a lot of ground, especially for wireless communication. Industrial and even office and home environments can be electrically noisy. Though testing in different environments with different problems may be costly, it’s necessary to provide a product that works and doesn’t require significant support.
Finally, don’t forget to design for production as well as design for serviceability. Usually, solutions based on platforms like Raspberry Pi or Arduino are simple and oriented around the software added to the system, with a few peripherals and minimal space constraints. In these cases, production and serviceability aren’t significant issues. On the other hand, trying to pack a solution within a tiny 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 feature is dual SDcard sockets, 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 manage field updates with a rollback option should an update fail to work properly. This wouldn’t be found in a stock platform used for a prototype.
Reducing time to market has always been a goal for developers. Platforms and development kits are one way to speed the design process. Addressing the limitations and issues of moving from a prototype platform to production can help as well.