Why Raspberry Pi Isn’t a Good Choice for Commercial Products July 19, 2019 by Pallav Aggarwal
Qualtek USB 3.1 and Type-C™ USB Cable Assemblies
Qualtek’s USB 3.1 SuperSpeed+ cables offer a whole new level of connectivity
Why Raspberry Pi Isn’t a Good Choice for Commercial Products
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 ready made 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.
6 Ways to Design for Circuit Board Rework
You won’t find DfRwk among any list of DfX design guidelines. DfX refers to a variety of design guidelines collected under the heading “design for excellence.” You’ve probably heard of the more popular guidelines, such as design for manufacturability (DfM), design for assembly (DfA), or design for test (DfT). But how about design for rework (DfRwk)?
DfRwk isn’t yet a part of that family of guidelines, but it should be.
What Does It Mean to Rework a PCB?
For the purposes of this article, rework refers to any operations that need to be completed after the primary printed circuit board assembly operations are complete.
Rework tasks will generally fall into one of two categories:
- Necessary to fix a problem in the design, e.g.:
- You have a schematic symbol that does not coincide with the PCB footprint (which could result in signals being sent to the wrong pins)
- You chose the wrong resistor values.
- You chose the wrong IC
- You forgot to make a necessary connection between two pins (and need to add a jumper wire)
- Necessary to change the design for a specific reason, e.g.:
- You need to create new functionality
- You need to change specs
- You need to switch out components
In the former case, an error was made during design or during assembly, so components or PCB traces need to be changed to fix it. In the latter case, the intended design works, but it turns out to no longer be what is required for the product, so components or PCB traces need to be changed to adjust the design. Primarily, PCBA rework involves heat and solder, though it can also require mechanical operations such as cutting of traces or modifying physical components.
When designing printed circuit boards, you probably don’t think often (if at all) about how your design choices impact future rework operations. But during prototype board bring-up, test, or deployment, rework is often a necessity.
PCB Rework vs. PCB Repair
You may be looking at the above situations and think to yourself that “fixing a problem” in a PCB is the same as PCB repair. The differentiation comes from where errors have occurred. Repair typically occurs when the board has failed for some specific reason. Perhaps there was an ESD strike or a reverse polarity connection. The implication is that the repair is necessary because there has been accidental failure—maybe someone dropped the PCB.
Rework, on the other hand, implies there was a design mistake that needs to be rectified.
6 Tips for Reworking a PCB
Now that we’ve defined what it means to rework a PCB, let’s dive into how it’s done! Here are six steps you can take today to improve the DfRwk of your design.
Make Your PCB Larger
Prototypes rarely need to be as small as final designs, so make your prototype PCB larger and put it in an off-the-shelf prototype enclosure. This will allow you to release your design faster, wasting less time on tricky PCB layout issues. To test as part of your system, connect your larger prototype PCB into tight spots in your system using cables. A larger PCB is easier to work with on the bench top, easier to probe, and easier to rework.
Use Larger Components
While it may seem cool and cutting edge to use micro BGA components or 01005 package resistors, you probably don’t need them – and you certainly don’t need them on your prototypes. You cannot easily rework parts that are smaller than a grain of sugar. For prototypes, consider using parts no smaller than 0402 unless absolutely necessary, and using parts with exposed leads instead of BGA or QFN packages, where possible.
In the µModule Product Guide, Linear Tech presents a bitter reminder of just how ugly rework can be. (This is what happens when you don’t design for rework.)
Allow More Clearance
Rework is easier and more reliable when there is more clearance around parts. For BGA, QFN, or other packages without exposed leads, allowing ample space around them is critical for localized rework reflow heating. For high-density connectors or press-fit connectors, clearance is necessary for tools that leverage against the PCB. For mechanical components such as heat sink snap-in pins, clearance for hand tools such as pliers is important.
Layout Strapping Resistor and Jumper Options
The goal of circuit designers is to design everything right the first time. But you can save yourself a lot of time and trouble by designing in strapping resistors to allow you to pull all your setting pins high or low with a simple rework. Or consider adding extra unpopulated filter circuits around your power regulators. You can even design in entire secondary circuits that can be implemented by just moving a jumper from one header to another.
Use Programmable Parts
Where possible, use programmable parts to allow rework flexibility. Adjusting firmware is usually easier than cutting traces or re-soldering components. Look for locations where programmable voltage regulators, microcontrollers, or CPLDs/FPGAs might make sense in your prototype, even if it’s not what you intend for your final design. Simple, inexpensive programmable parts allow you to rework your design without risking your hardware.
Install All Programming Headers
Not following this guideline has bitten many, many designers. Spend the extra few cents to install every last one of those pesky programming headers. I can hear you all saying, “But I can program that part through the JTAG chain,” or, “We’ve built that part with the same code for a long time – there’s no chance we’re changing it.” Experience says that you’ll thank me later if you install all of your programming headers on your prototypes.