It might sound controversial, but choosing the best board for a project shouldn’t start with a comparison of different boards and appraising the features and benefits. With such a wealth of development boards on the market, it can be easy for designers, especially makers and hobbyists, to become overwhelmed by choice.
It’s easy to become distracted by exciting new features and functionality or be tempted to choose the newest product on the market as an excuse to try it out. From a designer’s perspective the ‘best’ board for a project will differ depending on a few factors.
Engineers, makers and hobbyists all want their project to succeed but their resources and motivations are different and this will have an effect on the board they choose. Professional engineers have significant pressure to deliver a successful product that meets a clearly defined specification. As they have a clear definition of the functionality required at the start of the project, their development board choice is typically performance driven and therefore the initial board criteria are defined by the processor. Dependent upon the application scenario, these designers look for a board that can deliver the performance they need by including the processor running at a sufficiently high clock speed, the memory needed by the application and any other required components, such as GPUs, etc.
Professional engineers are also motivated by time, as the end product needs to be developed quickly. These designers are likely to choose a board that is from a processor family that they have experience with, unless the specification of the project determines otherwise, as this allows them to utilise existing libraries and tool chains that they are familiar with. Changing processor families may require hiring additional staff if this knowledge is not already available in-house. This takes time, not to mention adding significant cost, but this may prove to be the best course of action if the project and product specification demand it.
Secondary to the processor specification, but also important, is the board functionality. Typically, professional designers will choose to develop custom hardware to meet the needs of their application, making an open source board a more attractive choice, as it’s easier to customise and modify the hardware as needed.
Availability of sample code is less of a concern for professional engineers than it is for makers and hobbyists. They have a level of knowledge and experience that affords them the ability to write more code for their applications, and they will not usually rely on sample application code to use as a basis for their system. If, however, the application needs to run a specific operating system the developer will want to use a board with support for that OS, which may rule out choices that would otherwise meet the requirements.
Last but not least, professional designers assess whether support is available for the programming language and toolchain that their company uses. Changing the toolchain can add significant time to the project, as well as requiring the purchase and implementation of new development tools.
The path a professional engineer takes when choosing a board is therefore to initially select the processor, any additional functionality that is required, and then ensure the software development environment is suitable. This approach is the same for designers whether they are designing washing machines or high-end control and automation systems.
For makers and hobbyists, the decision-making process is still equally as important, but less commercially or time pressured. Makers can find it harder to choose a board as, generally speaking, they have less experience and require more support. Makers who develop startup businesses often look to the design and development community to get a sense of product viability from similar projects to their own, and then assess performance, the opportunity for optimisation and cost when choosing a development board.
Makers and hobbyists tend to choose a board that has a strong user community, particularly boards that their peers have successfully used in similar applications. This is because they typically get their support from the community, rather than directly from a manufacturer. Professional makers also adopt this approach, although they are often able to obtain support from manufacturers and tend to be less concerned about picking a board that has been used in similar applications. The availability of drivers for the peripherals on the board can also be a big deciding factor for professional makers and hobbyists, because of the time and expertise that would be required if they wrote the code themselves.
Hobbyists often base their choice of board on the connectivity and functionality available: this makes products such as the Raspberry Pi, which has a vast range of peripherals available as ‘Hats’, very popular in this market. This is in contrast to professional makers who, generally speaking, look at performance, memory and optimisation as main criteria when choosing a board. Cost is also still an important factor for both hobbyists and makers, but as the price of single board computers has reduced over time, the variety in board choice has increased.
Support for particular software toolchains is not so much of a concern for non-commercial projects, although the availability of free development tools is a major factor. This means development boards, such as those in the Arduino family, are popular amongst makers and hobbyists as they come with an easy-to-use IDE.
IoT has expanded the possibilities for projects and fired up the imagination of professional makers and hobbyists alike, providing more opportunities for new designs than ever before. Although the technology behind the IoT is nothing new, the age of connecting all devices and the widespread use of sensors is new and everyone wants in on the action. Rewinding 10 years, wireless connectivity and encrypted sensors were not mainstream but now this connected ecosystem is building incredibly fast.
For designers looking for a board this is a gift, as all the functionality needed for many IoT nodes exists on a small module or sometimes even on a single chip. This eliminates the need to design everything from scratch, allowing developers with no hardware expertise to create products without the need to design complex circuits. The software to enable the communication is also freely available. For makers, this makes life much more simple, saving time and allowing them to concentrate on the product’s functionality and high-level communication between modules, rather than writing low-level code to run, for example, Bluetooth Low Energy (BLE), Wi-Fi or a TCP/IP stack.
Now we can understand that designers take a different approach to selecting boards depending on their project needs. It’s clear to see that choosing a board is not as hard as it first seems, provided the designer understands the scope of their project. The varying requirements of different users, however, means that it is essential for distributors to offer a wide range of boards to meet all customers’ needs.
Some boards have been designed to meet specific application requirements, primarily for professional engineers. For example, the Intel tinyTILE is a low-power board that measures just 35 x 26 mm and includes a six-axis combo sensor so it’s clearly been designed for wearable and other small, battery powered applications.
Sometimes the decision on which board to choose is more difficult, particularly when comparing families, such as Arduino and BeagleBone. Both are open-source platforms that offer a range of processor and expansion boards (with Arduino expansion boards are called ‘shields’, while the BeagleBoard.org Foundation uses ‘Capes’). The availability of Capes and shields enables a significant reduction in development time. It’s possible that, if cost and performance are not critical, for example if a maker expects to only produce one or two systems, or a professional engineer is designing a proof of concept, then having the right peripherals available on an off-the-shelf expansion card will be a key factor in any decision.
Both the Arduino and BeagleBone families offer open-source operating systems to run on the board, open-source IDEs and the hardware is also open source, so schematics for the boards are available. Both families are also supported by a range of commercial toolchains, therefore software is unlikely to have a significant influence on the family chosen.
Although not built into the specifications, the performance of Arduino boards tends to be less than that of BeagleBone. For example, most
Arduino products use the AVR family of processors, which offer far lower performance than the 1 GHz ARM processor used on the latest BeagleBone Black. Professional engineers will make an initial selection based upon performance; hobbyists might be more attracted by the lower cost of AVR-based Arduino products.
If a user has little or no experience of one of the board families and doesn’t want to use a particular processor family, it’s likely that processor performance will dictate which board is chosen. This is either because of the performance needed or the impact on cost of the higher performance inherent in the BeagleBone family. The situation isn’t totally clear-cut, however, with some Arduino boards running RISC processors at several hundred MHz.
Although hobbyists, makers and professional engineers have very different criteria for choosing a board, they all use a logical process when making a selection. The good news is that, with more and more boards being released, users from hobbyists to professional engineers will have the luxury of being able to choose from an ever-increasing number of products that meet their particular needs.