Technical Article

Why Raspberry Pi Isn’t a Good Choice for Commercial Products

July 19, 2019 by Pallav Aggarwal

RPi has done some amazing good in the world, especially for aspiring young engineers, but here's the breakdown on why it's probably not what you need for a professional project.

RPi has done some amazing good in the world, especially for aspiring young engineers, but here's the breakdown on why it's probably not what you need for a professional project.

In a recent AAC survey, about 20% of respondents claimed using "maker" boards in end products. In a reader question, some community members reported using maker boards, including the Raspberry Pi, in various settings, including some examples of professional development.

While maker boards are important tools in many situations—including STEM education and product prototyping—in this article, I will highlight some of the shortcomings of maker boards with regard to the general requirements of a commercial or industrial product, using the Raspberry Pi as an example.

My goal here is not to discourage you from using Raspberry Pi or cast judgment upon it. Without a doubt, Raspberry Pi is a great initiative and a great embedded computer board for education and some prototyping. Rather, my goal is to inform engineers about some of the concepts which may impact their commercial product development, especially if they use Raspberry Pi as a base embedded computing board.

 

Why Do Some Engineers Choose RPi?

Let us first try to understand why many engineers may want to use Raspberry Pi for their product development.

There are various benefits to the Raspberry Pi:

  • Low cost (~35$)
  • Huge processing power in a compact board
  • Many interfaces (HDMI, multiple USB, Ethernet, onboard Wi-Fi and Bluetooth, many GPIOs, USB powered, etc.)
  • Supports Linux, Python (making it easy to build applications)
  • Readily available examples with community support
  • Developing such an embedded board is going to cost a lot of money and effort

When you are building a hobby or a personal project, all the points mentioned above are good. But, if you are building an industrial or commercial product, you have to think about a lot of other critical parameters before choosing any ready-to-use embedded board. 

So, what are the different parameters one should consider before selecting an embedded development board for their product development?

1. How Much Do You Need Long-Term Availability?

The availability of the hardware you select for your design is the most critical parameter to consider when building a product. On average, if you are building a commercial product, it will take close to 18-24 months before you can start selling it in the market. 

After this point, you would want to sell the product for a few years—let's say three to four years—before you would want to start migrating to another board. So, if you are considering a readymade embedded development board to be used in your product, I consider the minimum available of that board be seven years or more.

Now let's do a quick check, as per the Raspberry Pi website, about the committed availability of the boards: 

  • Raspberry Pi 3 Model B+ availability, January 2023 (~3.5 years left from July 2019)
  • Raspberry Pi 3 Model A+ availability, January 2023 (~3.5 years left)
  • Raspberry Pi Zero availability, January 2022 (~2.5 years left)

Bear in mind that the availability commitments mentioned above don't guarantee access to a specific number of boards when you need them. So the question for you, the designer, becomes do you want to choose a board which is just available for the next three to four years? On top of that, have you thought about how you will get your hands on the quantities you need when you need them? 

Regardless of what you're sourcing, one recommendation is to visit sites like Digi-Key, Mouser, and others to check your components' availability. You should be able to get hold of a representative who can discuss if they're able to stock the quantities you require.

2. Can You Handle Running Your Operating System (OS) on an SD Card?

Raspberry Pi Board runs Linux on an SD card. This may mean that ruggedized applications will pose a problem as this SD card connection may have issues with vibrations in the field. There is no provision to ensure connections are intact while in operation. You might end up using unreliable workarounds (double-sided tapes, glue, etc.).

 

 

Another problem with this SD card situation is that it can become corrupted if it is written heavily or if the board is not powered down properly while the file-write operation was still going on. In order to solve this, you may end up providing an external battery or supercapacitor-based power supply to provide a mains power-off interrupt signal so that your software can handle proper shutdown before the board shuts off.

3. How Important Are USB Connections to You?

RPi boards lack USB header connectors, which makes it impossible to connect sensors, modems, etc. via USB connection. This forces developers to connect those peripherals via USB cable (not the recommended way, particularly not for industrial applications). 

Next, the most important aspect is the availability of the required feature set. There are various features which are unavailable on the Raspberry Pi board which could be essential when designing a commercial product.

4. Do You Need a Real-time Clock with Battery Backup?

In most of the cases, if you want to track events using real-time, you need a real-time clock. This isn't something that comes standard with Pi boards. If you'd like to add an external RTC circuit, you can do so, but that will add cost, effort, and space.

5. Do You Need Any of these Features/Interfaces?

Here are some things you may determine that you need but the Pi family wouldn't be able to provide.

  • LCD Interface: All display RGB signals are coming on the 40-pin header. If one needs to use a TFT display, very few or no GPIOs will be available. 
  • Onboard ADC: If your product needs an ADC (8/10/12bit resolution), you will need to add an external ADC chip via I2C/SPI. 
  • EEPROM/FRAM/SPI Flash: For data logging applications, it is very important to have onboard EEPROM or FRAM or Flash for data storage. At present, there is no provision for that. 
  • Limited UARTs: Only one UART is available on the header and that doesn't allow eight signals. Usually, two or three UARTs are required for most of the requirements. 
  • A limited number of I/Os: 28 GPIOs are available on the header but these are not enough for many commercial applications. 

Due to the above points, a separate board might be required to fill the gap.

6. Will You Require an External Power Supply?

In a commercial product, you need to provide an additional AC-DC power supply (if the product is directly getting powered by AC) or DC-DC power supply (if the product is getting powered by external adaptor (6V/12/24V) or a battery) to power the board. 

The power supply connector on the board also needs to be reliable while in operation. A USB micro connector-based power supply is not recommended for a commercial product. Additionally, to save Raspberry Pi from failure, it should also have protection for reverse voltage, surge, and overload.

7. How Will You Approach Thermal Management?

The microprocessor on the Raspberry Pi generates heat which must be managed else it may impact the reliability of the board. As of now, only a small heatsink with glue can be used. There are no mounting holes provided near the processor so that heatsink can be fastened properly. 

 

Thermal image of an example circuit from ADI

 

Ultimately, if you are using the Raspberry Pi's computation abilities to 70-90%, you might need a proper heatsink and you will end up using mounting holes of the board and a bigger heatsink, which may not be readily available. There might be a need to custom design heatsink and get it manufactured. This is an extra cost and effort.

As a note, the recently-announced RPi 4 was experiencing some overheating issues that a firmware update should reportedly address.

8. How Important Is Your Form Factor Size?

As with any device design, space is a pain point. Basing a design around a board like a Pi will translate to restrictions on your end design's form factor. 

  • How would you design a product with a round shape, some amount of compromise will be required?
  • Smaller size than the Raspberry Pi board is certainly not possible, right?
  • HDMI is available on one side and USB & Ethernet connectors are provided on another side. In an application, where HDMI port access is required by the user, you need to use a cable to bring it near USB/Ethernet connectors and mount it with a custom enclosure. The HDMI cable connection is not reliable for the field operation. 
  • Extra USB(Model B+): In an application, if only two USBs need to be exposed to the user, one needs to use a custom enclosure to hide the other two USB ports.

9. How Much Development Support Do You Need?

Raspberry Pi boards are remarkably supported via online forums and community. Because RPi's strengths lie in community support, however, they do not specialize in professional dev support. Would you be able to launch the product with tight timelines using the community support or would you need dedicated support? 

Before even deciding, you should create a checklist of all the software components you are going to use and check the level of support available. Most of the time, it is recommended to test the performance so that you are sure you are going to get what you're expecting from your final product.

10. What Are Your Scalability Needs?

Because, to date, Raspberry Pi boards aren't designed with commercial products in mind, they do not have compatible boards which can be used as a replacement and/or offer different performance so that the developer can choose depending on computation requirements.

What would you do if you finished development and then realized that there was demand for different specs? Especially when trying to move from the prototyping stage into a more scalable portion of the product development process, it's important to consider designing for rework.


 

All of the above points are subjective to the commercial product requirements. In some cases, what Raspberry Pi offers is more than enough for the application. In those cases, you may want to use it for your product development. But, I hope this list of points mentioned above can act as a checklist for the engineers to consider before making decisions about using Raspberry Pi in their product. 

My advice for engineers who are looking for readily-available embedded computing boards is to use professional boards. Many companies (such as Kontron, Congatec, Compulab, etc.) offer boards with guaranteed availability for more than seven years. Many other board manufacturers will also have industrial-grade quality and the option for scalability.

Even if you choose to work with boards meant for commercial applications, however, hopefully this article will give you some things to think about when you're designing industrial products.

25 Comments
  • O
    odm4286 July 21, 2019

    I’d be interested in seeing a similar article for Ardunio. Even if the ATMEGA chip is placed on its own PCB, being stuck with that IDE seems like a big problem potentially.

    Like. Reply
    • Pallav Aggarwal July 23, 2019
      Thanks for your comment!
      Like. Reply
    • K
      krokant July 26, 2019
      I only partially agree. For any Arduino product, you don't need to use the IDE. You can use VSCode, or even use a completely different platform such as (the excellent) PlatformIO to develop for Arduino hardware boards. What you are "stuck" with is the Arduino framework, i.e. with their implementation of GPIO functions like analogRead() / digitalWrite(), their usage of timers (e.g. for millis() ), the structure of a setup() and loop() function. Personally, I don't consider that a bad thing -- for quick prototyping, having these generic, portable-across-MCU functions available makes life a breeze. And for those situations where you really need to bang the hardware, you can still revert to underlying Atmel ASF with direct register poking etc. Sure, it generates (quite) some overhead from a performance perspective, but the portability of MCU's in mind and with a huge ecosystem of ready-to-use libraries make it a great starting point. I completely agree that using an Arduino board (official or one of the many clones) just like that for production purposes is a huge operational risk and I would never recommend to do that to any of my clients.
      Like. Reply