The advantages and disadvantages of using commodity ARM evaluation platforms in production
September 03, 2015
Most of us in the ARM embedded world are familiar with names like Raspberry PI, BeagleBone, Xplained, etc. These boards, as well as a whole host of ot...
Most of us in the ARM embedded world are familiar with names like Raspberry PI, BeagleBone, Xplained, etc. These boards, as well as a whole host of others from various ARM board manufacturers, have enticing price points that lure us into considering them for use in production products. This class of board is designed and built to showcase or evaluate a new hardware platform, thus labeling them evaluation boards or development kits. Determining if it would be prudent to use a commodity evaluation board for production depends on your application.
Some questions that must be answered are:
- How long does my product need to last without revision?
- Upon going end of life (EOL), will my product need to be supplemented with the next-generation compatible product?
- For what environment will I be deploying this product?
- Will my software application code be simple enough to not require much maintenance?
- Does my product require special functionality that will require special hardware or software?
- What type of technical support and/or guidance will I need?
- Is price my driving factor?
There are many more questions that could come into play when making a decision regarding whether or not to use an evaluation board; however, addressing the questions listed above provides a good start for making an informed decision.
How long does my product need to last without revision?
Product longevity is usually an issue for most non-commodity embedded products. In the industrial marketplace, longevity is a paramount factor. A minimum expectation for longevity in the industrial marketplace is typically five years, although ten or more years of longevity is preferred. With ARM hardware which is typically leveraged by the commodity marketplace, this kind of longevity is getting progressively more difficult to achieve. In some scenarios, achieving three years of longevity is considered good.
In order to design a board with sufficient longevity, due diligence must be given to ensure that embedded (versus commodity) components are being utilized in the design. Most of the prominent IC component manufacturers have embedded product lines in addition to their standard product lines. These embedded product lines have extended, guaranteed product life spans that accommodate the longevity needs of the industrial marketplace. Commodity components, on the other hand, go End Of Life (EOL) with short notice when their sales numbers drop or when a new replacement comes out.
Another protection from component obsolescence is the use of module that is guaranteed to have pin-compatible counterparts should a component on the module go EOL. In this scenario, if the module you are using goes EOL you can procure a pin-compatible module that provides the same functionality as the EOL module. This strategy is visibly utilized in system on modules (SoMs), memory modules, PCIe cards, and various communications modules. For example, an application might be utilizing an ARM SoM which features a 500 MHz processor running Linux, 256 MB of RAM, Ethernet, four serial ports, and a CAN port. If this SoM goes EOL, you might be able to upgrade to a pin-compatible 1 GHz SoM running Linux with 512 MB of RAM, Ethernet, four serial ports, and a CAN port. Making this switch can be relatively painless, as it will not require a PCB revision and will only require minimal (if any) software changes. The amount of change required depends on your application and the SoM manufacturer.
Most evaluation boards are designed to show off the latest and greatest hardware available at the time of design and do not utilize embedded components in all areas (embedded components may not exist yet, or they may be revision A0 with lots of errata). Additionally, when an evaluation board is no longer the latest and greatest, it may take a back seat (in terms of stock availability and addressing any issues) to newer evaluation boards. As the evaluation board becomes scarce, its once low price will often rise. Also, purchasing evaluation boards in quantity can be problematic since they’re commonly produced for low-volume orders. An important pitfall to watch for is that any evaluation board using an LCD or commodity USB device is very prone to longevity issues, as these devices typically have very short life spans.
If your application does not require product longevity and will not be produced in large quantities, utilizing an evaluation board may be suitable.
Upon going EOL, will my product need to be supplemented with the next-generation compatible product?
Once the board you are using in your product goes EOL (which it inevitably will), you will need a replacement strategy. If you design around a standard, then you can count on the form factor (and even some of the connector and interfaces) staying the same. For example, PC/104 has been an embedded standard for many years and is still being supported today. The PC/104 standard dictates the size of the board, the mounting holes, and even certain connectors and pinouts. Likewise, utilizing a SoM that has a standard pinout and form factor yields the same benefits, making the transition from a present-generation product to a next-generation product that much smoother.
If your application does not require next-generation upgrades, then utilizing a evaluation board may be suitable.
For what environment will I be deploying this product?
Will the product you are creating require an extended temperature range? Will it operate in a environment with a lot of vibration? If so, an evaluation board may not suitable for your application. Most evaluation boards are only designed to show off the hardware; not much thought is put into designing these boards to operate in harsh environments and the robust component packages and connector choices required for a high-vibration environment are typically discarded in favor of cheaper and/or more convenient components/connectors.
If your application does not require operating in a harsh environment, then utilizing an evaluation board may be suitable.
Will my software application code be simple enough to not require much maintenance?
Most evaluation boards come with a standard desktop distribution of Linux. While these Linux distros work well for desktops, it is far from ideal for an embedded application. There are embedded distributions – such as Open Embedded and EMAC Linux OE – that are specifically tailored for embedded applications.
These embedded distributions differentiate themselves in a number of ways. Embedded distributions are designed for continuous unattended operation. They take into account a number of factors, such as remote updating, build integrity, the resiliency of flash memory, and the need to avoid corruption when power is removed suddenly to ensure that the application will retain reliability despite the real-world hurdles that are faced by embedded systems every day. They also isolate the development environment from the desktop environment so that a change in the desktop system (such as a security or kernel update) does not cause the development system to break (for more information on Embedded Linux versus Desktop Linux see).
The software development kit (SDK) should be well integrated into the integrated development environment (IDE) for seamless compiling, linking, and debugging. For applications that require a graphical user interface (GUI), the IDE should also support what-you-see-is-what-you-get (WYSIWYG) GUI development. These needs are met by EMAC OE, but often are not met by the tools available for commodity hardware.
If your application code is relatively simple and will not require much maintenance, then utilizing an evaluation board may be suitable.
Does my product require special functionality that will require special hardware or software?
Most evaluation boards come with standard computer functionality (video, Ethernet, serial, audio, USB, SD flash card socket, etc.). If you need more special functionality, such as valve drivers, relays, sensors, encoders, motor drives, etc., then you will have to start bolting boards onto your evaluation board. Besides raising the price of the system, you now have a system that may be disjointed and utilize a maze of cables. By using a custom board or semi-custom SoM, all of this functionality can be built onto a single board or a SoM carrier board, providing a much cleaner, more reliable, and more cost-effective solution.
Additionally, all of these special devices will require device drivers (some real time), which must be part of the coard support package (BSP) for your hardware. With commodity hardware, these may be very difficult to come by. With a custom or semi-custom solution, these will be provided to you (and supported) by the vendor that provides you with your custom solution. If you can find these drivers for a commodity solution, it is very unlikely that you will be able to get support for them as well.
If your application does not require special functionality, then utilizing an evaluation board may be suitable.
What type of technical support and/or guidance will I need?
Mainstream evaluation boards generally have good support within the community of hobbyist and other similar users. However, if you cannot get answers to your questions from the community it may be very difficult to get answers from the manufacturer of the evaluation board. By the evaluation board’s nature, the community is where support is furnished, and this is reflected in the price. The bottom line is that providing professional support costs money. One of the significant ways in which evaluation boards keep their costs low is by expecting support to be provided for free by hobbyists helping other hobbyists. The following problems result from this type of support when developing a professional product:
- Slow or no response – Support responses often come very slowly from the community, since the providers of this support are hobbyists who are providing the support in their free time. Additionally, since the support personnel are not being paid for their efforts, there is no guarantee that anyone will even respond to a support request. The questions answered are typically those found either to be easy to answer or interesting to the hobbyist providing the answer. Additionally, an entire team may decide to go on hiatus simultaneously, leaving you high and dry while looking for support.
- Quality issues – Since the community members providing the support are not accountable, there is no guarantee of quality. In some cases, answers are given that are presented as facts but in reality are only guesses as to what the answer may be. All too often community-provided support responses are of questionable quality and suffer from the “one question, many answers” effect. In other words, if you ask five different community members the same question, you may get five different answers. Each answer may, superficially, appear to work. However, four (or even all five) of the answers may suffer from hidden problems, such as: only works until a reboot; does not work when certain hardware switches on or off; works only until an external dependency changes (such as a hobbyist website with no longevity guarantee on its content); only works for one specific user; only works in one specific network; only works in a development version; breaks as soon as a bug is fixed. Professional support is tailored towards applications that are intended to be put into production and, as a result, provides answers that have been found to work around all of these common pitfalls. Community support typically knows little to nothing about putting a product into production.
Support beyond simple technical support is very difficult to get for commodity hardware as well. If you need a custom real-time driver or a modification made to the hardware, more than likely this support will not be available from the manufacturer of the evaluation board.
Is price my driving factor?
If price is the driving factor and no customization of the hardware is required, it is hard to argue with the evaluation pricing in general. Their price point is set with a very low margin (some at break-even or a loss) designed to entice people to experiment or design with the base hardware and thus gain traction in the marketplace. However, if you are going to be ordering in large quantities, evaluation boards cannot offer much of a discount as they are already discounted.
Additionally, commodity hardware will require you to provide a solution for manufacturing your product with the software installed and tested. An embedded manufacturer will provide the software installation and testing service for you, but you will need to provide this yourself if you use commodity hardware.
If price is not the driving factor or is only one of several driving factors, then further consideration should be taken. If your driving factor is price and longevity is of no concern, then a evaluation board may be suitable.
Evaluation boards are great for evaluating a particular processor and experimenting. The community support is generally good and the investment in the hardware is minimal. However, if you are planning to design a production product around an Evaluation board, it is wise to very carefully consider each of the questions posed above. Not considering these questions, can leave you with a product that can no longer be built and may be very difficult to replace.